From f1b650424d0411978e400a74bc98cbc52c00a1d5 Mon Sep 17 00:00:00 2001 From: DaFuqs Date: Fri, 25 Jun 2021 21:37:03 +0200 Subject: [PATCH] Finished most of 1.17s new blocks --- .../SpheroidAdvancementIdentifier.java | 12 +- .../SpheroidAdvancementIdentifierGroups.java | 11 ++ .../dimension/decorators/BambooDecorator.java | 2 +- .../decorators/GlowLichenDecorator.java | 38 ++++++ .../decorators/PointedDripstoneDecorator.java | 81 ++++++++++++ .../SpheroidEntitySpawnDefinitions.java | 6 +- .../spheroid/lists/SpheroidList.java | 50 ++++--- .../spheroid/lists/SpheroidListVanilla.java | 123 +++++++++++++++--- .../spheroids/unique/GeodeSpheroid.java | 78 +++++++++++ .../spheroid/types/CaveSpheroidType.java | 2 +- .../types/unique/GeodeSpheroidType.java | 62 +++++++++ .../advancements/sphere_amethyst.json | 20 +++ .../advancements/sphere_azalea_wood.json | 20 +++ .../sphere_cobbled_deepslate.json | 20 +++ .../advancements/sphere_copper.json | 20 +++ .../advancements/sphere_deepslate.json | 20 +++ .../advancements/sphere_dripstone.json | 20 +++ .../advancements/sphere_powder_snow.json | 20 +++ .../advancements/sphere_rooted_dirt.json | 20 +++ .../advancements/sphere_tinted_glass.json | 20 +++ .../starry_sky/advancements/sphere_tuff.json | 20 +++ 21 files changed, 623 insertions(+), 42 deletions(-) create mode 100644 src/main/java/de/dafuqs/starrysky/dimension/decorators/GlowLichenDecorator.java create mode 100644 src/main/java/de/dafuqs/starrysky/dimension/decorators/PointedDripstoneDecorator.java create mode 100644 src/main/java/de/dafuqs/starrysky/spheroid/spheroids/unique/GeodeSpheroid.java create mode 100644 src/main/java/de/dafuqs/starrysky/spheroid/types/unique/GeodeSpheroidType.java create mode 100644 src/main/resources/data/starry_sky/advancements/sphere_amethyst.json create mode 100644 src/main/resources/data/starry_sky/advancements/sphere_azalea_wood.json create mode 100644 src/main/resources/data/starry_sky/advancements/sphere_cobbled_deepslate.json create mode 100644 src/main/resources/data/starry_sky/advancements/sphere_copper.json create mode 100644 src/main/resources/data/starry_sky/advancements/sphere_deepslate.json create mode 100644 src/main/resources/data/starry_sky/advancements/sphere_dripstone.json create mode 100644 src/main/resources/data/starry_sky/advancements/sphere_powder_snow.json create mode 100644 src/main/resources/data/starry_sky/advancements/sphere_rooted_dirt.json create mode 100644 src/main/resources/data/starry_sky/advancements/sphere_tinted_glass.json create mode 100644 src/main/resources/data/starry_sky/advancements/sphere_tuff.json diff --git a/src/main/java/de/dafuqs/starrysky/advancements/SpheroidAdvancementIdentifier.java b/src/main/java/de/dafuqs/starrysky/advancements/SpheroidAdvancementIdentifier.java index fa4a84ed..1714b6ed 100644 --- a/src/main/java/de/dafuqs/starrysky/advancements/SpheroidAdvancementIdentifier.java +++ b/src/main/java/de/dafuqs/starrysky/advancements/SpheroidAdvancementIdentifier.java @@ -78,5 +78,15 @@ public enum SpheroidAdvancementIdentifier { stronghold, end_city, nether_fortress, - water + water, + dripstone, + powder_snow, + amethyst, + rooted_dirt, + copper, + cobbled_deepslate, + deepslate, + tuff, + azalea_wood, + tinted_glass } diff --git a/src/main/java/de/dafuqs/starrysky/advancements/SpheroidAdvancementIdentifierGroups.java b/src/main/java/de/dafuqs/starrysky/advancements/SpheroidAdvancementIdentifierGroups.java index 9da3f56f..ff5b4957 100644 --- a/src/main/java/de/dafuqs/starrysky/advancements/SpheroidAdvancementIdentifierGroups.java +++ b/src/main/java/de/dafuqs/starrysky/advancements/SpheroidAdvancementIdentifierGroups.java @@ -88,6 +88,17 @@ public SpheroidAdvancementIdentifierGroups() { spheroidAdvancementIdentifierGroups.put(SpheroidAdvancementIdentifier.stronghold, SpheroidAdvancementGroup.RARE); spheroidAdvancementIdentifierGroups.put(SpheroidAdvancementIdentifier.nether_fortress, SpheroidAdvancementGroup.NETHER); spheroidAdvancementIdentifierGroups.put(SpheroidAdvancementIdentifier.end_city, SpheroidAdvancementGroup.END); + + spheroidAdvancementIdentifierGroups.put(SpheroidAdvancementIdentifier.dripstone, SpheroidAdvancementGroup.UNCOMMON); + spheroidAdvancementIdentifierGroups.put(SpheroidAdvancementIdentifier.powder_snow, SpheroidAdvancementGroup.UNCOMMON); + spheroidAdvancementIdentifierGroups.put(SpheroidAdvancementIdentifier.amethyst, SpheroidAdvancementGroup.RARE); + spheroidAdvancementIdentifierGroups.put(SpheroidAdvancementIdentifier.rooted_dirt, SpheroidAdvancementGroup.UNCOMMON); + spheroidAdvancementIdentifierGroups.put(SpheroidAdvancementIdentifier.copper, SpheroidAdvancementGroup.ORES); + spheroidAdvancementIdentifierGroups.put(SpheroidAdvancementIdentifier.cobbled_deepslate, SpheroidAdvancementGroup.COMMON); + spheroidAdvancementIdentifierGroups.put(SpheroidAdvancementIdentifier.deepslate, SpheroidAdvancementGroup.COMMON); + spheroidAdvancementIdentifierGroups.put(SpheroidAdvancementIdentifier.tuff, SpheroidAdvancementGroup.UNCOMMON); + spheroidAdvancementIdentifierGroups.put(SpheroidAdvancementIdentifier.azalea_wood, SpheroidAdvancementGroup.WOOD); + spheroidAdvancementIdentifierGroups.put(SpheroidAdvancementIdentifier.tinted_glass, SpheroidAdvancementGroup.RARE); } } diff --git a/src/main/java/de/dafuqs/starrysky/dimension/decorators/BambooDecorator.java b/src/main/java/de/dafuqs/starrysky/dimension/decorators/BambooDecorator.java index 04ac49ff..c406f866 100644 --- a/src/main/java/de/dafuqs/starrysky/dimension/decorators/BambooDecorator.java +++ b/src/main/java/de/dafuqs/starrysky/dimension/decorators/BambooDecorator.java @@ -16,7 +16,7 @@ public class BambooDecorator extends SpheroidDecorator { private static final Block bambooBlock = Blocks.BAMBOO; - private static final int BAMBOO_CHANCE = 11; + private static final int BAMBOO_CHANCE = 13; private static BlockState bambooBlockState; private static BlockState bambooSaplingBlockState; diff --git a/src/main/java/de/dafuqs/starrysky/dimension/decorators/GlowLichenDecorator.java b/src/main/java/de/dafuqs/starrysky/dimension/decorators/GlowLichenDecorator.java new file mode 100644 index 00000000..239e05ab --- /dev/null +++ b/src/main/java/de/dafuqs/starrysky/dimension/decorators/GlowLichenDecorator.java @@ -0,0 +1,38 @@ +package de.dafuqs.starrysky.dimension.decorators; + +import com.google.common.collect.ImmutableList; +import de.dafuqs.starrysky.dimension.SpheroidDecorator; +import de.dafuqs.starrysky.spheroid.spheroids.Spheroid; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Direction; +import net.minecraft.world.StructureWorldAccess; +import net.minecraft.world.gen.feature.GlowLichenFeature; +import net.minecraft.world.gen.feature.GlowLichenFeatureConfig; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Random; + +public class GlowLichenDecorator extends SpheroidDecorator { + + // TODO: TEST + private final List placeableOn = ImmutableList.of(Blocks.STONE.getDefaultState(), Blocks.ANDESITE.getDefaultState(), Blocks.DIORITE.getDefaultState(), Blocks.GRANITE.getDefaultState(), Blocks.DRIPSTONE_BLOCK.getDefaultState(), Blocks.CALCITE.getDefaultState(), Blocks.TUFF.getDefaultState(), Blocks.DEEPSLATE.getDefaultState()); + private final GlowLichenFeatureConfig glowLichenFeatureConfig = new GlowLichenFeatureConfig(5, true, true, true, 0.5F, placeableOn); + private final float chance; + + public GlowLichenDecorator(float chance) { + this.chance = chance; + } + + @Override + public void decorateSpheroid(StructureWorldAccess world, Spheroid spheroid, ArrayList decorationBlockPositions, Random random) { + for(BlockPos bp : decorationBlockPositions) { + if(random.nextFloat() < chance) { + GlowLichenFeature.generate(world, bp, world.getBlockState(bp), glowLichenFeatureConfig, random, Arrays.asList(Direction.values())); + } + } + } +} diff --git a/src/main/java/de/dafuqs/starrysky/dimension/decorators/PointedDripstoneDecorator.java b/src/main/java/de/dafuqs/starrysky/dimension/decorators/PointedDripstoneDecorator.java new file mode 100644 index 00000000..513a93d3 --- /dev/null +++ b/src/main/java/de/dafuqs/starrysky/dimension/decorators/PointedDripstoneDecorator.java @@ -0,0 +1,81 @@ +package de.dafuqs.starrysky.dimension.decorators; + +import de.dafuqs.starrysky.dimension.SpheroidDecorator; +import de.dafuqs.starrysky.spheroid.spheroids.Spheroid; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.tag.BlockTags; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Direction; +import net.minecraft.world.StructureWorldAccess; + +import java.util.ArrayList; +import java.util.Random; + +public class PointedDripstoneDecorator extends SpheroidDecorator { + + private final float chance; + private final PointedDripstoneDecoratorMode mode; + + public enum PointedDripstoneDecoratorMode { + UP, + DOWN, + CAVE + } + + public PointedDripstoneDecorator(float chance, PointedDripstoneDecoratorMode mode) { + this.chance = chance; + this.mode = mode; + } + + @Override + public void decorateSpheroid(StructureWorldAccess world, Spheroid spheroid, ArrayList decorationBlockPositions, Random random) { + for(BlockPos bp : decorationBlockPositions) { + if(random.nextFloat() < chance) { + int height = random.nextInt(5); + switch (this.mode) { + case UP -> { + placeDripstoneBlocks(world, bp, height, Direction.UP); + } + case DOWN -> { + placeDripstoneBlocks(world, bp, height, Direction.DOWN); + } + case CAVE -> { + if(random.nextBoolean()) { + placeDripstoneBlocks(world, bp, height, Direction.UP); + } else { + BlockPos.Mutable mutable = bp.mutableCopy(); + for(int i = 0; i < spheroid.getRadius(); ++i) { + if (!world.isAir(bp)) { + placeDripstoneBlocks(world, bp, height, Direction.UP); + } + } + } + } + } + + } + } + } + + private void placeDripstoneBlocks(StructureWorldAccess world, BlockPos pos, int height, Direction direction) { + BlockPos.Mutable mutable = pos.mutableCopy(); + for(int i = 0; i < height; ++i) { + if (!generateDripstoneBlock(world, mutable)) { + return; + } + mutable.move(direction); + } + } + + protected static boolean generateDripstoneBlock(StructureWorldAccess world, BlockPos pos) { + BlockState blockState = world.getBlockState(pos); + if (blockState.isIn(BlockTags.DRIPSTONE_REPLACEABLE_BLOCKS)) { + world.setBlockState(pos, Blocks.DRIPSTONE_BLOCK.getDefaultState(), 2); + return true; + } else { + return false; + } + } + +} diff --git a/src/main/java/de/dafuqs/starrysky/spheroid/SpheroidEntitySpawnDefinitions.java b/src/main/java/de/dafuqs/starrysky/spheroid/SpheroidEntitySpawnDefinitions.java index dd0c5416..73b3b70b 100644 --- a/src/main/java/de/dafuqs/starrysky/spheroid/SpheroidEntitySpawnDefinitions.java +++ b/src/main/java/de/dafuqs/starrysky/spheroid/SpheroidEntitySpawnDefinitions.java @@ -22,6 +22,7 @@ public class SpheroidEntitySpawnDefinitions { public static SpheroidEntitySpawnDefinition PANDA = new SpheroidEntitySpawnDefinition(EntityType.PANDA, 1, 3); public static SpheroidEntitySpawnDefinition POLAR_BEAR = new SpheroidEntitySpawnDefinition(EntityType.POLAR_BEAR, 1, 2); public static SpheroidEntitySpawnDefinition WOLF = new SpheroidEntitySpawnDefinition(EntityType.WOLF, 3, 5); + public static SpheroidEntitySpawnDefinition GOAT = new SpheroidEntitySpawnDefinition(EntityType.GOAT, 1, 3); // aquatic // TODO: spawn them @@ -30,9 +31,12 @@ public class SpheroidEntitySpawnDefinitions { public static SpheroidEntitySpawnDefinition COD = new SpheroidEntitySpawnDefinition(EntityType.COD, 2, 5); public static SpheroidEntitySpawnDefinition TROPICAL_FISH = new SpheroidEntitySpawnDefinition(EntityType.TROPICAL_FISH, 2, 5); public static SpheroidEntitySpawnDefinition PUFFERFISH = new SpheroidEntitySpawnDefinition(EntityType.PUFFERFISH, 2, 5); + public static SpheroidEntitySpawnDefinition GLOW_SQUID = new SpheroidEntitySpawnDefinition(EntityType.GLOW_SQUID, 2, 4); + public static SpheroidEntitySpawnDefinition AXOLOTL = new SpheroidEntitySpawnDefinition(EntityType.AXOLOTL, 2, 3); // flying - //public static SpheroidEntitySpawnDefinition BAT = new SpheroidEntitySpawnDefinition(EntityType.BAT, 2, 5); + // TODO: spawn them + public static SpheroidEntitySpawnDefinition BAT = new SpheroidEntitySpawnDefinition(EntityType.BAT, 2, 5); // NETHER public static SpheroidEntitySpawnDefinition HOGLIN = new SpheroidEntitySpawnDefinition(EntityType.HOGLIN, 4, 6); diff --git a/src/main/java/de/dafuqs/starrysky/spheroid/lists/SpheroidList.java b/src/main/java/de/dafuqs/starrysky/spheroid/lists/SpheroidList.java index 4305e2de..fc010043 100644 --- a/src/main/java/de/dafuqs/starrysky/spheroid/lists/SpheroidList.java +++ b/src/main/java/de/dafuqs/starrysky/spheroid/lists/SpheroidList.java @@ -28,7 +28,7 @@ protected static BlockState getDefaultBlockState(String modId, String string) { //COMMONLY USED LISTS - public static final LinkedHashMap MAP_STONES = new LinkedHashMap() {{ + public static final LinkedHashMap MAP_STONES = new LinkedHashMap<>() {{ put(Blocks.STONE.getDefaultState(), 5.0F); put(Blocks.GRANITE.getDefaultState(), 1.0F); put(Blocks.DIORITE.getDefaultState(), 1.0F); @@ -39,18 +39,27 @@ protected static BlockState getDefaultBlockState(String modId, String string) { put(Blocks.INFESTED_COBBLESTONE.getDefaultState(), 0.002F); }}; - public static final LinkedHashMap MAP_DUNGEON_STONES = new LinkedHashMap() {{ + public static final LinkedHashMap MAP_DUNGEON_STONES = new LinkedHashMap<>() {{ put(Blocks.MOSSY_COBBLESTONE.getDefaultState(), 5.0F); put(Blocks.INFESTED_COBBLESTONE.getDefaultState(), 0.5F); put(Blocks.STONE.getDefaultState(), 1.0F); + put(Blocks.DEEPSLATE.getDefaultState(), 1.0F); put(Blocks.GRANITE.getDefaultState(), 0.2F); put(Blocks.DIORITE.getDefaultState(), 0.2F); put(Blocks.ANDESITE.getDefaultState(), 0.2F); put(Blocks.COBBLESTONE.getDefaultState(), 0.1F); + put(Blocks.COBBLED_DEEPSLATE.getDefaultState(), 0.1F); put(Blocks.INFESTED_STONE.getDefaultState(), 0.1F); + put(Blocks.INFESTED_DEEPSLATE.getDefaultState(), 0.1F); }}; - public static final LinkedHashMap MAP_GLASS = new LinkedHashMap() {{ + public static final LinkedHashMap MAP_DEEPSLATE = new LinkedHashMap<>() {{ + put(Blocks.DEEPSLATE.getDefaultState(), 5.0F); + put(Blocks.INFESTED_DEEPSLATE.getDefaultState(), 0.5F); + put(Blocks.COBBLED_DEEPSLATE.getDefaultState(), 1.0F); + }}; + + public static final LinkedHashMap MAP_GLASS = new LinkedHashMap<>() {{ put(Blocks.GLASS.getDefaultState(), 100F); put(Blocks.BLACK_STAINED_GLASS.getDefaultState(), 1.0F); put(Blocks.BLUE_STAINED_GLASS.getDefaultState(), 1.0F); @@ -68,23 +77,24 @@ protected static BlockState getDefaultBlockState(String modId, String string) { put(Blocks.RED_STAINED_GLASS.getDefaultState(), 1.0F); put(Blocks.WHITE_STAINED_GLASS.getDefaultState(), 1.0F); put(Blocks.YELLOW_STAINED_GLASS.getDefaultState(), 1.0F); + put(Blocks.TINTED_GLASS.getDefaultState(), 1.0F); }}; - public static final LinkedHashMap MAP_MOUNTAIN_STONES = new LinkedHashMap() {{ + public static final LinkedHashMap MAP_MOUNTAIN_STONES = new LinkedHashMap<>() {{ put(Blocks.STONE.getDefaultState(), 1.0F); put(Blocks.INFESTED_STONE.getDefaultState(), 1.0F); }}; - public static final LinkedHashMap MAP_OCEAN_STONES = new LinkedHashMap() {{ + public static final LinkedHashMap MAP_OCEAN_STONES = new LinkedHashMap<>() {{ put(Blocks.CLAY.getDefaultState(), 1.0F); put(Blocks.PRISMARINE.getDefaultState(), 1.0F); }}; - public static final LinkedHashMap MAP_JUNGLE_STONES = new LinkedHashMap() {{ + public static final LinkedHashMap MAP_JUNGLE_STONES = new LinkedHashMap<>() {{ put(Blocks.COARSE_DIRT.getDefaultState(), 1.0F); }}; // RAINBOW STUFF - public static final ArrayList LIST_WOOL = new ArrayList() {{ + public static final ArrayList LIST_WOOL = new ArrayList<>() {{ add(Blocks.WHITE_WOOL.getDefaultState()); add(Blocks.LIGHT_GRAY_WOOL.getDefaultState()); add(Blocks.GRAY_WOOL.getDefaultState()); @@ -103,7 +113,7 @@ protected static BlockState getDefaultBlockState(String modId, String string) { add(Blocks.PINK_WOOL.getDefaultState()); }}; - public static final ArrayList LIST_STAINED_GLASS = new ArrayList() {{ + public static final ArrayList LIST_STAINED_GLASS = new ArrayList<>() {{ add(Blocks.WHITE_STAINED_GLASS.getDefaultState()); add(Blocks.LIGHT_GRAY_STAINED_GLASS.getDefaultState()); add(Blocks.GRAY_STAINED_GLASS.getDefaultState()); @@ -122,7 +132,7 @@ protected static BlockState getDefaultBlockState(String modId, String string) { add(Blocks.PINK_STAINED_GLASS.getDefaultState()); }}; - public static final ArrayList LIST_CONCRETE = new ArrayList() {{ + public static final ArrayList LIST_CONCRETE = new ArrayList<>() {{ add(Blocks.WHITE_CONCRETE.getDefaultState()); add(Blocks.LIGHT_GRAY_CONCRETE.getDefaultState()); add(Blocks.GRAY_CONCRETE.getDefaultState()); @@ -141,7 +151,7 @@ protected static BlockState getDefaultBlockState(String modId, String string) { add(Blocks.PINK_CONCRETE.getDefaultState()); }}; - public static final ArrayList LIST_TERRACOTTA = new ArrayList() {{ + public static final ArrayList LIST_TERRACOTTA = new ArrayList<>() {{ add(Blocks.WHITE_TERRACOTTA.getDefaultState()); add(Blocks.LIGHT_GRAY_TERRACOTTA.getDefaultState()); add(Blocks.GRAY_TERRACOTTA.getDefaultState()); @@ -160,7 +170,7 @@ protected static BlockState getDefaultBlockState(String modId, String string) { add(Blocks.PINK_TERRACOTTA.getDefaultState()); }}; - public static final ArrayList LIST_FULL_CORAL_BLOCKS = new ArrayList() {{ + public static final ArrayList LIST_FULL_CORAL_BLOCKS = new ArrayList<>() {{ add(Blocks.BRAIN_CORAL_BLOCK.getDefaultState()); add(Blocks.TUBE_CORAL_BLOCK.getDefaultState()); add(Blocks.BUBBLE_CORAL_BLOCK.getDefaultState()); @@ -168,7 +178,7 @@ protected static BlockState getDefaultBlockState(String modId, String string) { add(Blocks.HORN_CORAL_BLOCK.getDefaultState()); }}; - public static final ArrayList LIST_WATERLOGGABLE_CORAL_BLOCKS = new ArrayList() {{ + public static final ArrayList LIST_WATERLOGGABLE_CORAL_BLOCKS = new ArrayList<>() {{ add(Blocks.BRAIN_CORAL.getDefaultState().with(CoralParentBlock.WATERLOGGED, true)); add(Blocks.TUBE_CORAL.getDefaultState().with(CoralParentBlock.WATERLOGGED, true)); add(Blocks.BUBBLE_CORAL.getDefaultState().with(CoralParentBlock.WATERLOGGED, true)); @@ -187,7 +197,7 @@ protected static BlockState getDefaultBlockState(String modId, String string) { add(Blocks.SEA_PICKLE.getDefaultState().with(SeaPickleBlock.WATERLOGGED, true).with(SeaPickleBlock.PICKLES, 4)); }}; - public static ArrayList LIST_FLOWERS = new ArrayList() {{ + public static ArrayList LIST_FLOWERS = new ArrayList<>() {{ add(Blocks.DANDELION.getDefaultState()); add(Blocks.POPPY.getDefaultState()); add(Blocks.BLUE_ORCHID.getDefaultState()); @@ -204,9 +214,11 @@ protected static BlockState getDefaultBlockState(String modId, String string) { add(Blocks.LILAC.getDefaultState()); add(Blocks.ROSE_BUSH.getDefaultState()); add(Blocks.PEONY.getDefaultState()); + add(Blocks.AZALEA.getDefaultState()); + add(Blocks.FLOWERING_AZALEA.getDefaultState()); }}; - public static ArrayList LIST_TALL_FLOWERS = new ArrayList() {{ + public static ArrayList LIST_TALL_FLOWERS = new ArrayList<>() {{ add(Blocks.SUNFLOWER.getDefaultState()); add(Blocks.LILAC.getDefaultState()); add(Blocks.ROSE_BUSH.getDefaultState()); @@ -216,13 +228,13 @@ protected static BlockState getDefaultBlockState(String modId, String string) { }}; //// NETHER - public static final LinkedHashMap MAP_NETHER_STONES = new LinkedHashMap() {{ + public static final LinkedHashMap MAP_NETHER_STONES = new LinkedHashMap<>() {{ put(Blocks.NETHERRACK.getDefaultState(), 5.0F); put(Blocks.BASALT.getDefaultState(), 1.0F); put(Blocks.MAGMA_BLOCK.getDefaultState(), 1.0F); }}; - public static final LinkedHashMap MAP_NETHER_DUNGEON_STONES = new LinkedHashMap() {{ + public static final LinkedHashMap MAP_NETHER_DUNGEON_STONES = new LinkedHashMap<>() {{ put(Blocks.NETHER_BRICKS.getDefaultState(), 5.0F); put(Blocks.BLACKSTONE.getDefaultState(), 1.0F); put(Blocks.NETHERRACK.getDefaultState(), 0.5F); @@ -230,7 +242,7 @@ protected static BlockState getDefaultBlockState(String modId, String string) { put(Blocks.OBSIDIAN.getDefaultState(), 0.2F); }}; - public static final LinkedHashMap MAP_NETHER_GLASS = new LinkedHashMap() {{ + public static final LinkedHashMap MAP_NETHER_GLASS = new LinkedHashMap<>() {{ put(Blocks.BLACK_STAINED_GLASS.getDefaultState(), 1.0F); put(Blocks.ORANGE_STAINED_GLASS.getDefaultState(), 1.0F); put(Blocks.RED_STAINED_GLASS.getDefaultState(), 1.0F); @@ -239,11 +251,11 @@ protected static BlockState getDefaultBlockState(String modId, String string) { //// END - public static final LinkedHashMap MAP_END_STONES = new LinkedHashMap() {{ + public static final LinkedHashMap MAP_END_STONES = new LinkedHashMap<>() {{ put(Blocks.END_STONE.getDefaultState(), 10.0F); }}; - public static final LinkedHashMap MAP_END_DUNGEON_STONES = new LinkedHashMap() {{ + public static final LinkedHashMap MAP_END_DUNGEON_STONES = new LinkedHashMap<>() {{ put(Blocks.END_STONE_BRICKS.getDefaultState(), 10.0F); put(Blocks.PURPUR_BLOCK.getDefaultState(), 5.0F); put(Blocks.END_STONE.getDefaultState(), 1.0F); diff --git a/src/main/java/de/dafuqs/starrysky/spheroid/lists/SpheroidListVanilla.java b/src/main/java/de/dafuqs/starrysky/spheroid/lists/SpheroidListVanilla.java index e0a34ad7..49563d3d 100644 --- a/src/main/java/de/dafuqs/starrysky/spheroid/lists/SpheroidListVanilla.java +++ b/src/main/java/de/dafuqs/starrysky/spheroid/lists/SpheroidListVanilla.java @@ -9,9 +9,11 @@ import de.dafuqs.starrysky.spheroid.SpheroidEntitySpawnDefinitions; import de.dafuqs.starrysky.spheroid.types.*; import de.dafuqs.starrysky.spheroid.types.unique.BeeHiveSpheroidType; +import de.dafuqs.starrysky.spheroid.types.unique.GeodeSpheroidType; import de.dafuqs.starrysky.spheroid.types.unique.OceanMonumentSpheroidType; import de.dafuqs.starrysky.spheroid.types.unique.StrongholdSpheroidType; import net.minecraft.block.BambooBlock; +import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; import net.minecraft.entity.EntityType; import net.minecraft.loot.LootTables; @@ -39,6 +41,15 @@ public static class SpheroidDecorators { public static PlantDecorator FERNS_DECORATOR = new PlantDecorator(Blocks.FERN.getDefaultState(), 0.1F); public static DoublePlantDecorator LARGE_FERNS_DECORATOR = new DoublePlantDecorator(Blocks.LARGE_FERN.getDefaultState(), 0.1F); public static RuinedPortalDecorator RUINED_PORTAL_DECORATOR = new RuinedPortalDecorator(LootTables.RUINED_PORTAL_CHEST); + + public static SpheroidDecorator POINTED_DRIPSTONE_UP = new PointedDripstoneDecorator(0.2F, PointedDripstoneDecorator.PointedDripstoneDecoratorMode.UP); + public static SpheroidDecorator POINTED_DRIPSTONE_CAVE = new PointedDripstoneDecorator(0.2F, PointedDripstoneDecorator.PointedDripstoneDecoratorMode.CAVE); + public static SpheroidDecorator GLOW_LICHEN = new GlowLichenDecorator(0.1F); + public static SpheroidDecorator HANGING_ROOTS = new UnderPlantDecorator(Blocks.HANGING_ROOTS.getDefaultState(), 0.2F); + + public static SpheroidDecorator AZALEA = new PlantDecorator(Blocks.AZALEA.getDefaultState(), 0.03F); + public static SpheroidDecorator FLOWERING_AZALEA = new PlantDecorator(Blocks.FLOWERING_AZALEA.getDefaultState(), 0.03F); + public static XMarksTheSpotDecorator X_SPOT_DESERT_PYRAMID = new XMarksTheSpotDecorator(LootTables.DESERT_PYRAMID_CHEST, Blocks.ORANGE_TERRACOTTA.getDefaultState()); public static XMarksTheSpotDecorator X_SPOT_JUNGLE_TEMPLE = new XMarksTheSpotDecorator(LootTables.JUNGLE_TEMPLE_CHEST, Blocks.MOSSY_COBBLESTONE.getDefaultState()); public static XMarksTheSpotDecorator X_SPOT_WOODLAND_MANSION = new XMarksTheSpotDecorator(LootTables.WOODLAND_MANSION_CHEST, Blocks.STRIPPED_BIRCH_WOOD.getDefaultState()); @@ -60,7 +71,8 @@ public static class SpheroidDecorators { .addSpawn(SpheroidEntitySpawnDefinitions.WOLF, 0.08F) .addSpawn(SpheroidEntitySpawnDefinitions.HORSE, 0.08F) .addSpawn(SpheroidEntitySpawnDefinitions.DONKEY, 0.05F) - .addSpawn(SpheroidEntitySpawnDefinitions.MULE, 0.05F); + .addSpawn(SpheroidEntitySpawnDefinitions.MULE, 0.05F) + .addSpawn(SpheroidEntitySpawnDefinitions.GOAT, 0.03F); public static final SpheroidType BEACH_GRASS = new ModularSpheroidType(SpheroidAdvancementIdentifier.beach, 10, 18, Blocks.DIRT.getDefaultState()) .setTopBlockState(Blocks.GRASS_BLOCK.getDefaultState()) .addDecorator(SpheroidDecorators.CENTER_POND_UNDERWATER_RUIN_BIG_CHEST, 1.0F) @@ -89,8 +101,13 @@ public static class SpheroidDecorators { .addDecorator(SpheroidDecorators.BAMBOO, 0.5F) .addSpawn(SpheroidEntitySpawnDefinitions.PARROT, 0.4F); public static final SpheroidType STONE = new ModularSpheroidType(SpheroidAdvancementIdentifier.stone, 5, 13, Blocks.STONE.getDefaultState()) - .addDecorator(SpheroidDecorators.CENTER_POND_LAVA, 0.2F) - .addSpawn(SpheroidEntitySpawnDefinitions.LLAMA, 0.08F); + .addDecorator(SpheroidDecorators.CENTER_POND_LAVA, 0.1F) + .addSpawn(SpheroidEntitySpawnDefinitions.LLAMA, 0.08F) + .addSpawn(SpheroidEntitySpawnDefinitions.GOAT, 0.1F); + public static final SpheroidType TUFF = new ModularSpheroidType(SpheroidAdvancementIdentifier.tuff, 6, 8, Blocks.TUFF.getDefaultState()); + public static final SpheroidType DEEPSLATE = new ModularSpheroidType(SpheroidAdvancementIdentifier.deepslate, 5, 11, Blocks.DEEPSLATE.getDefaultState()) + .addDecorator(SpheroidDecorators.CENTER_POND_LAVA, 0.2F); + public static final SpheroidType COBBLED_DEEPSLATE = new ModularSpheroidType(SpheroidAdvancementIdentifier.cobbled_deepslate, 4, 10, Blocks.COBBLED_DEEPSLATE.getDefaultState()); public static final SpheroidType GRANITE = new ModularSpheroidType(SpheroidAdvancementIdentifier.granite, 6, 11, Blocks.GRANITE.getDefaultState()); public static final SpheroidType DIORITE = new ModularSpheroidType(SpheroidAdvancementIdentifier.diorite, 6, 11, Blocks.DIORITE.getDefaultState()); public static final SpheroidType ANDESITE = new ModularSpheroidType(SpheroidAdvancementIdentifier.andesite, 6, 11, Blocks.ANDESITE.getDefaultState()); @@ -114,7 +131,8 @@ public static class SpheroidDecorators { // GIANT SPHERES public static final SpheroidType HUGE_MONSTER_CAVE = ((CaveSpheroidType) new CaveSpheroidType(SpheroidAdvancementIdentifier.cave, 20, 30, Blocks.DIRT.getDefaultState(), Blocks.COARSE_DIRT.getDefaultState(), 2, 5) .setTopBlockState(Blocks.GRASS_BLOCK.getDefaultState()) - .addDecorator(SpheroidDecorators.MUSHROOMS, 0.3F)) + .addDecorator(SpheroidDecorators.MUSHROOMS, 0.3F) + .addDecorator(SpheroidDecorators.GLOW_LICHEN, 0.5F)) .addChestWithLootTable(LootTables.ABANDONED_MINESHAFT_CHEST, 0.5F); public static final SpheroidType THE_SUN = new DoubleCoreSpheroidType(SpheroidAdvancementIdentifier.the_sun, 50, 50, Blocks.NETHERITE_BLOCK.getDefaultState(), Blocks.GOLD_BLOCK.getDefaultState(), Blocks.GLOWSTONE.getDefaultState(), 2, 2, 45, 45); @@ -142,13 +160,15 @@ public static class SpheroidDecorators { public static final SpheroidType RED_STAINED_GLASS = new ModularSpheroidType(SpheroidAdvancementIdentifier.stained_glass, 5, 10, Blocks.RED_STAINED_GLASS.getDefaultState()); public static final SpheroidType WHITE_STAINED_GLASS = new ModularSpheroidType(SpheroidAdvancementIdentifier.stained_glass, 5, 10, Blocks.WHITE_STAINED_GLASS.getDefaultState()); public static final SpheroidType YELLOW_STAINED_GLASS = new ModularSpheroidType(SpheroidAdvancementIdentifier.stained_glass, 5, 10, Blocks.YELLOW_STAINED_GLASS.getDefaultState()); + public static final SpheroidType TINTED_GLASS = new ModularSpheroidType(SpheroidAdvancementIdentifier.tinted_glass, 3, 5, Blocks.TINTED_GLASS.getDefaultState()); // RARE public static final SpheroidType OBSIDIAN = new ModularSpheroidType(SpheroidAdvancementIdentifier.obsidian, 3, 6, Blocks.OBSIDIAN.getDefaultState()); public static final SpheroidType GLOWSTONE = new ModularSpheroidType(SpheroidAdvancementIdentifier.glowstone, 5, 10, Blocks.GLOWSTONE.getDefaultState()); public static final SpheroidType BEDROCK = new ModularSpheroidType(SpheroidAdvancementIdentifier.bedrock, 3, 5, Blocks.BEDROCK.getDefaultState()); public static final SpheroidType STONE_HOLLOW = new ShellSpheroidType(SpheroidAdvancementIdentifier.cave, 5, 20, Blocks.CAVE_AIR.getDefaultState(), MAP_STONES, 3, 8) - .addDecorator(SpheroidDecorators.MUSHROOMS, 0.3F); + .addDecorator(SpheroidDecorators.MUSHROOMS, 0.3F) + .addDecorator(SpheroidDecorators.GLOW_LICHEN, 0.5F); // ORES public static final SpheroidType COAL = new CoreSpheroidType(SpheroidAdvancementIdentifier.coal, 5, 15, Blocks.COAL_ORE.getDefaultState(), MAP_STONES, 4, 8); @@ -158,6 +178,17 @@ public static class SpheroidDecorators { public static final SpheroidType REDSTONE = new CoreSpheroidType(SpheroidAdvancementIdentifier.redstone, 5, 15, Blocks.REDSTONE_ORE.getDefaultState(), MAP_STONES, 4, 8); public static final SpheroidType LAPIS = new CoreSpheroidType(SpheroidAdvancementIdentifier.lapis, 5, 8, Blocks.LAPIS_ORE.getDefaultState(), MAP_STONES, 2, 4); public static final SpheroidType EMERALD = new CoreSpheroidType(SpheroidAdvancementIdentifier.emerald, 5, 6, Blocks.EMERALD_ORE.getDefaultState(), MAP_MOUNTAIN_STONES, 1, 3); + public static final SpheroidType COPPER = new CoreSpheroidType(SpheroidAdvancementIdentifier.copper, 5, 12, Blocks.COPPER_ORE.getDefaultState(), MAP_STONES, 4, 6); + + // DEEPSLATE ORES + public static final SpheroidType DEEPSLATE_COAL = new CoreSpheroidType(SpheroidAdvancementIdentifier.coal, 5, 15, Blocks.DEEPSLATE_COAL_ORE.getDefaultState(), Blocks.DEEPSLATE.getDefaultState(), 4, 8); + public static final SpheroidType DEEPSLATE_IRON = new CoreSpheroidType(SpheroidAdvancementIdentifier.iron, 5, 12, Blocks.DEEPSLATE_IRON_ORE.getDefaultState(), Blocks.DEEPSLATE.getDefaultState(), 3, 5); + public static final SpheroidType DEEPSLATE_GOLD = new CoreSpheroidType(SpheroidAdvancementIdentifier.gold, 5, 10, Blocks.DEEPSLATE_GOLD_ORE.getDefaultState(), MAP_DEEPSLATE, 2, 4); + public static final SpheroidType DEEPSLATE_DIAMOND = new CoreSpheroidType(SpheroidAdvancementIdentifier.diamond, 3, 7, Blocks.DEEPSLATE_DIAMOND_ORE.getDefaultState(), MAP_DEEPSLATE, 1, 3); + public static final SpheroidType DEEPSLATE_REDSTONE = new CoreSpheroidType(SpheroidAdvancementIdentifier.redstone, 5, 15, Blocks.DEEPSLATE_REDSTONE_ORE.getDefaultState(), MAP_DEEPSLATE, 4, 8); + public static final SpheroidType DEEPSLATE_LAPIS = new CoreSpheroidType(SpheroidAdvancementIdentifier.lapis, 5, 8, Blocks.DEEPSLATE_LAPIS_ORE.getDefaultState(), MAP_DEEPSLATE, 2, 4); + public static final SpheroidType DEEPSLATE_EMERALD = new CoreSpheroidType(SpheroidAdvancementIdentifier.emerald, 5, 6, Blocks.DEEPSLATE_EMERALD_ORE.getDefaultState(), MAP_DEEPSLATE, 1, 3); + public static final SpheroidType DEEPSLATE_COPPER = new CoreSpheroidType(SpheroidAdvancementIdentifier.copper, 5, 12, Blocks.DEEPSLATE_COPPER_ORE.getDefaultState(), Blocks.DEEPSLATE.getDefaultState(), 4, 6); // "ORES" public static final SpheroidType BONE = new CoreSpheroidType(SpheroidAdvancementIdentifier.bone, 4, 8, Blocks.BONE_BLOCK.getDefaultState(), MAP_STONES, 2, 4); @@ -166,6 +197,18 @@ public static class SpheroidDecorators { public static final SpheroidType SLIME = new CoreSpheroidType(SpheroidAdvancementIdentifier.slime, 4, 8, Blocks.SLIME_BLOCK.getDefaultState(), MAP_STONES, 2, 4); public static final SpheroidType TNT = new CoreSpheroidType(SpheroidAdvancementIdentifier.tnt, 4, 8, Blocks.TNT.getDefaultState(), MAP_STONES, 2, 4); + // DRIPSTONE + private static final BlockState DRIPSTONE_BLOCK_STATE = Blocks.DRIPSTONE_BLOCK.getDefaultState(); + public static final SpheroidType DRIPSTONE = new CoreSpheroidType(SpheroidAdvancementIdentifier.dripstone, 5, 12, DRIPSTONE_BLOCK_STATE, DRIPSTONE_BLOCK_STATE, 3, 5) + .addDecorator(SpheroidDecorators.POINTED_DRIPSTONE_UP, 0.1F); + public static final SpheroidType DRIPSTONE_COAL = new CoreSpheroidType(SpheroidAdvancementIdentifier.dripstone, 5, 12, DRIPSTONE_BLOCK_STATE, DRIPSTONE_BLOCK_STATE, 3, 5) + .addDecorator(SpheroidDecorators.POINTED_DRIPSTONE_UP, 0.1F); + public static final SpheroidType DRIPSTONE_IRON = new CoreSpheroidType(SpheroidAdvancementIdentifier.dripstone, 5, 12, DRIPSTONE_BLOCK_STATE, DRIPSTONE_BLOCK_STATE, 3, 5) + .addDecorator(SpheroidDecorators.POINTED_DRIPSTONE_UP, 0.1F); + public static final SpheroidType DRIPSTONE_CAVE = new CaveSpheroidType(SpheroidAdvancementIdentifier.cave, 5, 12, DRIPSTONE_BLOCK_STATE, DRIPSTONE_BLOCK_STATE, 2, 4) + .addDecorator(SpheroidDecorators.POINTED_DRIPSTONE_CAVE, 0.1F) + .addDecorator(SpheroidDecorators.GLOW_LICHEN, 0.25F); + //WOOD public static final SpheroidType OAK_WOOD = new ShellSpheroidType(SpheroidAdvancementIdentifier.oak_wood, 8, 15, Blocks.OAK_WOOD.getDefaultState(), Blocks.OAK_LEAVES.getDefaultState().with(Properties.DISTANCE_1_7, 1), 2, 3); public static final SpheroidType SPRUCE_WOOD = new ShellSpheroidType(SpheroidAdvancementIdentifier.spruce_wood, 5, 15, Blocks.SPRUCE_WOOD.getDefaultState(), Blocks.SPRUCE_LEAVES.getDefaultState().with(Properties.DISTANCE_1_7, 1), 2, 3); @@ -176,6 +219,8 @@ public static class SpheroidDecorators { public static final SpheroidType BIRCH_WOOD = new ShellSpheroidType(SpheroidAdvancementIdentifier.birch_wood, 5, 15, Blocks.BIRCH_WOOD.getDefaultState(), Blocks.BIRCH_LEAVES.getDefaultState().with(Properties.DISTANCE_1_7, 1), 2, 3); public static final SpheroidType ACACIA_WOOD = new ShellSpheroidType(SpheroidAdvancementIdentifier.acacia_wood, 5, 12, Blocks.ACACIA_WOOD.getDefaultState(), Blocks.ACACIA_LEAVES.getDefaultState().with(Properties.DISTANCE_1_7, 1), 2, 2) .addDecorator(SpheroidDecorators.X_SPOT_PILLAGER_OUTPOST, 0.1F); + public static final SpheroidType AZALEA_WOOD = new ShellSpheroidType(SpheroidAdvancementIdentifier.azalea_wood, 4, 7, Blocks.AZALEA_LEAVES.getDefaultState().with(Properties.DISTANCE_1_7, 1), Blocks.OAK_LOG.getDefaultState(), 2, 3) + .addShellSpeckles(Blocks.FLOWERING_AZALEA_LEAVES.getDefaultState().with(Properties.DISTANCE_1_7, 1), 0.15F); // WATER public static final SpheroidType WATER_GLASS = new LiquidSpheroidType(SpheroidAdvancementIdentifier.water, 5, 15, Blocks.WATER.getDefaultState(), MAP_GLASS, 1, 2, 20, 100, 75) @@ -213,8 +258,10 @@ public static class SpheroidDecorators { // COLD public static final SpheroidType SNOW_CAVE = new CaveSpheroidType(SpheroidAdvancementIdentifier.cave, 6, 10, Blocks.ICE.getDefaultState(), Blocks.SNOW_BLOCK.getDefaultState(), 2, 4) - .addChestWithLootTable(LootTables.IGLOO_CHEST_CHEST, 50) - .addSpawn(SpheroidEntitySpawnDefinitions.POLAR_BEAR, 0.3F); + .addChestWithLootTable(LootTables.IGLOO_CHEST_CHEST, 0.5F) + .addSpawn(SpheroidEntitySpawnDefinitions.POLAR_BEAR, 0.3F) + .addSpawn(SpheroidEntitySpawnDefinitions.GOAT, 0.25F) + .addDecorator(SpheroidDecorators.GLOW_LICHEN, 0.1F); public static final SpheroidType SNOW_ICE = new CoreSpheroidType(SpheroidAdvancementIdentifier.ice, 5, 15, Blocks.ICE.getDefaultState(), Blocks.SNOW_BLOCK.getDefaultState(), 3, 6) .addDecorator(SpheroidDecorators.SWEET_BERRIES, 0.4F) .addSpawn(SpheroidEntitySpawnDefinitions.FOX, 0.4F); @@ -224,7 +271,14 @@ public static class SpheroidDecorators { .addSpawn(SpheroidEntitySpawnDefinitions.FOX, 0.3F); public static final SpheroidType SNOW_BLUE_ICE = new DoubleCoreSpheroidType(SpheroidAdvancementIdentifier.blue_ice, 5, 8, Blocks.BLUE_ICE.getDefaultState(), Blocks.PACKED_ICE.getDefaultState(), Blocks.SNOW_BLOCK.getDefaultState(), 2, 3, 1, 3) .addDecorator(SpheroidDecorators.SWEET_BERRIES, 0.2F); - public static final SpheroidType ICE_BLUE_ICE = new DoubleCoreSpheroidType(SpheroidAdvancementIdentifier.blue_ice, 5, 8, Blocks.BLUE_ICE.getDefaultState(), Blocks.PACKED_ICE.getDefaultState(), Blocks.ICE.getDefaultState(), 2, 3, 1, 3); + public static final SpheroidType ICE_BLUE_ICE = new DoubleCoreSpheroidType(SpheroidAdvancementIdentifier.blue_ice, 5, 8, Blocks.BLUE_ICE.getDefaultState(), Blocks.PACKED_ICE.getDefaultState(), Blocks.ICE.getDefaultState(), 2, 3, 1, 3) + .addSpawn(SpheroidEntitySpawnDefinitions.GOAT, 0.25F); + public static final SpheroidType POWDER_SNOW_ICE = new ShellSpheroidType(SpheroidAdvancementIdentifier.powder_snow, 5, 15, Blocks.ICE.getDefaultState(), Blocks.POWDER_SNOW.getDefaultState(), 2, 4) + .addDecorator(SpheroidDecorators.SWEET_BERRIES, 0.4F) + .addSpawn(SpheroidEntitySpawnDefinitions.FOX, 0.3F) + .addSpawn(SpheroidEntitySpawnDefinitions.GOAT, 0.25F); + public static final SpheroidType POWDER_SNOW_ICE_PACKED_ICE = new DoubleCoreSpheroidType(SpheroidAdvancementIdentifier.powder_snow, 5, 12, Blocks.PACKED_ICE.getDefaultState(), Blocks.ICE.getDefaultState(), Blocks.POWDER_SNOW.getDefaultState(), 2, 4, 1, 3) + .addSpawn(SpheroidEntitySpawnDefinitions.POLAR_BEAR, 0.2F); // RAINBOW public static final SpheroidType RAINBOW_WOOL = new RainbowSpheroidType(SpheroidAdvancementIdentifier.rainbow_wool, 5, 16, LIST_WOOL); @@ -249,7 +303,13 @@ public static class SpheroidDecorators { // UNIQUE public static final SpheroidType BEE_HIVE = new BeeHiveSpheroidType(SpheroidAdvancementIdentifier.bee_hive,10, 16, 2, 4, 1, 2, 2, 3); public static final SpheroidType OCEAN_MONUMENT = new OceanMonumentSpheroidType(SpheroidAdvancementIdentifier.ocean_monument, 25, 35, 3, 5, 2, 3); - public static final SpheroidType STRONGHOLD = new StrongholdSpheroidType(SpheroidAdvancementIdentifier.stronghold,25, 30); + public static final SpheroidType STRONGHOLD = new StrongholdSpheroidType(SpheroidAdvancementIdentifier.stronghold, 25, 30); + public static final SpheroidType AMETHYST_GEODE = new GeodeSpheroidType(SpheroidAdvancementIdentifier.amethyst, 5, 9, Blocks.AMETHYST_BLOCK.getDefaultState(), Blocks.BUDDING_AMETHYST.getDefaultState(), 0.08F, Blocks.CALCITE.getDefaultState(), Blocks.SMOOTH_BASALT.getDefaultState()); + + public static final SpheroidType ROOTED_DIRT = new ModularSpheroidType(SpheroidAdvancementIdentifier.rooted_dirt, 7, 12, Blocks.ROOTED_DIRT.getDefaultState()) + .addDecorator(SpheroidDecorators.AZALEA, 0.7F) + .addDecorator(SpheroidDecorators.FLOWERING_AZALEA, 0.75F) + .addDecorator(SpheroidDecorators.HANGING_ROOTS, 0.75F); public static void setup(SpheroidLoader spheroidLoader) { @@ -264,28 +324,39 @@ public static void setup(SpheroidLoader spheroidLoader) { // STONES spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.DECORATIVE, 2.0F, STONE); + spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.DECORATIVE, 1.0F, DEEPSLATE); spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.DECORATIVE, 1.0F, GRANITE); spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.DECORATIVE, 1.0F, DIORITE); spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.DECORATIVE, 1.0F, ANDESITE); + spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.DECORATIVE, 1.0F, TUFF); spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.DECORATIVE, 0.3F, COBBLESTONE); + spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.DECORATIVE, 0.2F, COBBLED_DEEPSLATE); spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.DECORATIVE, 0.1F, MOSSY_COBBLESTONE); spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.DECORATIVE, 0.5F, BEACH_GRASS); spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.DECORATIVE, 0.5F, BEACH_SAND); spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.DECORATIVE, 0.5F, JUNGLE_POND); spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.DECORATIVE, 1.0F, PODZOL); + spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.DECORATIVE, 1.0F, ROOTED_DIRT); spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.DECORATIVE, 0.7F, JUNGLE); spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.DECORATIVE, 0.5F, SNOW_CAVE); spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.DECORATIVE, 1.0F, STONE_HOLLOW); spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.DECORATIVE, 0.5F, COARSE_DIRT); spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.DECORATIVE, 0.5F, OBSIDIAN); + spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.DECORATIVE, 0.5F, DRIPSTONE); + spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.DECORATIVE, 0.3F, DRIPSTONE_COAL); + spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.DECORATIVE, 0.2F, DRIPSTONE_IRON); + spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.DECORATIVE, 0.3F, DRIPSTONE_CAVE); + //COLD - spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.DECORATIVE, 1.5F, SNOW_ICE); - spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.DECORATIVE, 1.5F, SNOW_PACKED_ICE); - spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.DECORATIVE, 0.4F, ICE_PACKED_ICE); - spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.DECORATIVE, 0.5F, SNOW_BLUE_ICE); - spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.DECORATIVE, 0.4F, ICE_BLUE_ICE); + spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.DECORATIVE, 1.3F, SNOW_ICE); + spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.DECORATIVE, 1.3F, SNOW_PACKED_ICE); + spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.DECORATIVE, 0.3F, ICE_PACKED_ICE); + spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.DECORATIVE, 0.4F, SNOW_BLUE_ICE); + spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.DECORATIVE, 0.3F, ICE_BLUE_ICE); + spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.DECORATIVE, 0.6F, POWDER_SNOW_ICE); + spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.DECORATIVE, 0.4F, POWDER_SNOW_ICE_PACKED_ICE); // TRANSLUCENT - GLASS spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.DECORATIVE, 0.1F, GLASS); @@ -305,6 +376,7 @@ public static void setup(SpheroidLoader spheroidLoader) { spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.DECORATIVE, 0.02F, RED_STAINED_GLASS); spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.DECORATIVE, 0.02F, WHITE_STAINED_GLASS); spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.DECORATIVE, 0.02F, YELLOW_STAINED_GLASS); + spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.DECORATIVE, 0.005F, TINTED_GLASS); spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.TREASURE, 1.0F, CORALS_GLASS); spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.TREASURE, 1.0F, CORALS_STONE); @@ -338,11 +410,22 @@ public static void setup(SpheroidLoader spheroidLoader) { //ORES spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.ORE, 7.0F, COAL); spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.ORE, 7.0F, IRON); - spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.ORE, 1.0F, GOLD); - spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.ORE, 0.5F, DIAMOND); - spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.ORE, 4.0F, REDSTONE); - spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.ORE, 0.8F, LAPIS); - spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.ORE, 0.1F, EMERALD); + spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.ORE, 0.5F, GOLD); + spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.ORE, 0.2F, DIAMOND); + spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.ORE, 2.0F, REDSTONE); + spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.ORE, 0.3F, LAPIS); + spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.ORE, 0.05F, EMERALD); + spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.ORE, 2.0F, COPPER); + + // DEEPSLATE ORES + spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.ORE, 1.0F, DEEPSLATE_COAL); + spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.ORE, 1.0F, DEEPSLATE_IRON); + spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.ORE, 0.5F, DEEPSLATE_GOLD); + spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.ORE, 0.2F, DEEPSLATE_DIAMOND); + spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.ORE, 2.0F, DEEPSLATE_REDSTONE); + spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.ORE, 0.3F, DEEPSLATE_LAPIS); + spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.ORE, 0.03F, DEEPSLATE_EMERALD); + spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.ORE, 0.2F, DEEPSLATE_COPPER); // "ORES" spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.ORE, 0.05F, BONE); @@ -358,6 +441,7 @@ public static void setup(SpheroidLoader spheroidLoader) { spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.WOOD, 1.5F, JUNGLE_WOOD); spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.WOOD, 1.5F, DARK_OAK_WOOD); spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.WOOD, 1.5F, ACACIA_WOOD); + spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.WOOD, 1.0F, AZALEA_WOOD); // DUNGEON spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.DUNGEON, 3.0F, DUNGEON_ZOMBIE); @@ -377,5 +461,6 @@ public static void setup(SpheroidLoader spheroidLoader) { spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.TREASURE, 4.0F, BEE_HIVE); spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.TREASURE, 0.5F, OCEAN_MONUMENT); spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.TREASURE, 1.0F, STRONGHOLD); + spheroidLoader.registerSpheroidType(OVERWORLD, SpheroidDistributionType.TREASURE, 150F, AMETHYST_GEODE); // TODO: Check and recuce weight to 1.5 } } diff --git a/src/main/java/de/dafuqs/starrysky/spheroid/spheroids/unique/GeodeSpheroid.java b/src/main/java/de/dafuqs/starrysky/spheroid/spheroids/unique/GeodeSpheroid.java new file mode 100644 index 00000000..72e7127b --- /dev/null +++ b/src/main/java/de/dafuqs/starrysky/spheroid/spheroids/unique/GeodeSpheroid.java @@ -0,0 +1,78 @@ +package de.dafuqs.starrysky.spheroid.spheroids.unique; + +import de.dafuqs.starrysky.Support; +import de.dafuqs.starrysky.advancements.SpheroidAdvancementIdentifier; +import de.dafuqs.starrysky.dimension.SpheroidDecorator; +import de.dafuqs.starrysky.spheroid.SpheroidEntitySpawnDefinition; +import de.dafuqs.starrysky.spheroid.spheroids.Spheroid; +import net.minecraft.block.BlockState; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.chunk.Chunk; +import net.minecraft.world.gen.ChunkRandom; + +import java.util.ArrayList; + +public class GeodeSpheroid extends Spheroid { + + private final BlockState innerBlockState; + private final BlockState innerSpecklesBlockState; + private final float speckleChance; + private final BlockState middleBlockSate; + private final BlockState outerBlockState; + + public GeodeSpheroid(ChunkRandom random, SpheroidAdvancementIdentifier spheroidAdvancementIdentifier, int radius, ArrayList spheroidDecorators, ArrayList entityTypesToSpawn, BlockState innerBlockState, BlockState innerSpecklesBlockState, float speckleChance, BlockState middleBlockSate, BlockState outerBlockState) { + super(spheroidAdvancementIdentifier, random, spheroidDecorators, radius, entityTypesToSpawn); + + this.innerBlockState = innerBlockState; + this.innerSpecklesBlockState = innerSpecklesBlockState; + this.speckleChance = speckleChance; + this.middleBlockSate = middleBlockSate; + this.outerBlockState = outerBlockState; + } + + @Override + public void generate(Chunk chunk) { + int chunkX = chunk.getPos().x; + int chunkZ = chunk.getPos().z; + + int x = this.getPosition().getX(); + int y = this.getPosition().getY(); + int z = this.getPosition().getZ(); + + random.setSeed(chunkX * 341873128712L + chunkZ * 132897987541L); + for (int x2 = Math.max(chunkX * 16, x - this.radius); x2 <= Math.min(chunkX * 16 + 15, x + this.radius); x2++) { + for (int y2 = y - this.radius; y2 <= y + this.radius; y2++) { + for (int z2 = Math.max(chunkZ * 16, z - this.radius); z2 <= Math.min(chunkZ * 16 + 15, z + this.radius); z2++) { + BlockPos currBlockPos = new BlockPos(x2, y2, z2); + float d = Math.round(Support.getDistance(x, y, z, x2, y2, z2)); + if(d < radius -4) { + // nothing + } else if (d < radius -3) { + if(random.nextFloat() < speckleChance) { + chunk.setBlockState(currBlockPos, innerSpecklesBlockState, false); + } else { + chunk.setBlockState(currBlockPos, innerBlockState, false); + } + } else if (d < radius -2) { + chunk.setBlockState(currBlockPos, middleBlockSate, false); + } else if (d < radius -1) { + chunk.setBlockState(currBlockPos, outerBlockState, false); + } + } + } + } + } + + @Override + public String getDescription() { + return "+++ GeodeSpheroid +++" + + "\nPosition: x=" + this.getPosition().getX() + " y=" + this.getPosition().getY() + " z=" + this.getPosition().getZ() + + "\nRadius: " + this.radius + + "\nInnerBlock: " + this.innerBlockState + + "\nInnerSpecklesBlock: " + this.innerSpecklesBlockState + + "\nSpeckleChance: " + this.speckleChance + + "\nMiddleBlock: " + this.middleBlockSate + + "\nOuterBlock: " + this.outerBlockState; + } + +} diff --git a/src/main/java/de/dafuqs/starrysky/spheroid/types/CaveSpheroidType.java b/src/main/java/de/dafuqs/starrysky/spheroid/types/CaveSpheroidType.java index 791972ee..50393941 100644 --- a/src/main/java/de/dafuqs/starrysky/spheroid/types/CaveSpheroidType.java +++ b/src/main/java/de/dafuqs/starrysky/spheroid/types/CaveSpheroidType.java @@ -81,7 +81,7 @@ public CaveSpheroid getRandomSpheroid(ChunkRandom chunkRandom) { BlockState bottomBlock = getBottomBlock(); Identifier lootTable = null; - if( chunkRandom.nextFloat() < lootTableChance) { + if(chunkRandom.nextFloat() < lootTableChance) { lootTable = this.lootTable; } diff --git a/src/main/java/de/dafuqs/starrysky/spheroid/types/unique/GeodeSpheroidType.java b/src/main/java/de/dafuqs/starrysky/spheroid/types/unique/GeodeSpheroidType.java new file mode 100644 index 00000000..ac5243c1 --- /dev/null +++ b/src/main/java/de/dafuqs/starrysky/spheroid/types/unique/GeodeSpheroidType.java @@ -0,0 +1,62 @@ +package de.dafuqs.starrysky.spheroid.types.unique; + +import de.dafuqs.starrysky.StarrySkyCommon; +import de.dafuqs.starrysky.advancements.SpheroidAdvancementIdentifier; +import de.dafuqs.starrysky.dimension.SpheroidDecorator; +import de.dafuqs.starrysky.spheroid.SpheroidEntitySpawnDefinition; +import de.dafuqs.starrysky.spheroid.spheroids.unique.GeodeSpheroid; +import de.dafuqs.starrysky.spheroid.types.SpheroidType; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.world.gen.ChunkRandom; + +import java.util.ArrayList; + +import static org.apache.logging.log4j.Level.ERROR; + +public class GeodeSpheroidType extends SpheroidType { + + private final BlockState innerBlockState; + private final BlockState innerSpecklesBlockState; + private final float speckleChance; + private final BlockState middleBlockSate; + private final BlockState outerBlockState; + + public GeodeSpheroidType(SpheroidAdvancementIdentifier spheroidAdvancementIdentifier, int minRadius, int maxRadius, BlockState innerBlockState, BlockState innerSpecklesBlockState, float speckleChance, BlockState middleBlockSate, BlockState outerBlockState) { + super(spheroidAdvancementIdentifier, minRadius, maxRadius); + + if(innerBlockState == Blocks.AIR.getDefaultState()) { + StarrySkyCommon.log(ERROR, "GeodeSpheroidType: Registered a SpheroidType with null innerBlockState!"); + } + if(innerSpecklesBlockState == Blocks.AIR.getDefaultState()) { + StarrySkyCommon.log(ERROR, "GeodeSpheroidType: Registered a SpheroidType with empty innerSpecklesBlockState!"); + } + if(middleBlockSate == Blocks.AIR.getDefaultState()) { + StarrySkyCommon.log(ERROR, "GeodeSpheroidType: Registered a SpheroidType with null middleBlockSate!"); + } + if(outerBlockState == Blocks.AIR.getDefaultState()) { + StarrySkyCommon.log(ERROR, "GeodeSpheroidType: Registered a SpheroidType with empty outerBlockState!"); + } + + this.innerBlockState = innerBlockState; + this.innerSpecklesBlockState = innerSpecklesBlockState; + this.speckleChance = speckleChance; + this.middleBlockSate = middleBlockSate; + this.outerBlockState = outerBlockState; + } + + @Override + public String getDescription() { + return "GeodeSpheroid"; + } + + public GeodeSpheroid getRandomSpheroid(ChunkRandom chunkRandom) { + int radius = getRandomRadius(chunkRandom); + + ArrayList spheroidDecorators = getSpheroidDecoratorsWithChance(chunkRandom); + ArrayList entityTypesToSpawn = getRandomEntityTypesToSpawn(chunkRandom); + + return new GeodeSpheroid(chunkRandom, spheroidAdvancementIdentifier, radius, spheroidDecorators, entityTypesToSpawn, innerBlockState, innerSpecklesBlockState, speckleChance, middleBlockSate, outerBlockState); + } + +} diff --git a/src/main/resources/data/starry_sky/advancements/sphere_amethyst.json b/src/main/resources/data/starry_sky/advancements/sphere_amethyst.json new file mode 100644 index 00000000..d41ae5cb --- /dev/null +++ b/src/main/resources/data/starry_sky/advancements/sphere_amethyst.json @@ -0,0 +1,20 @@ +{ + "display": { + "icon": { + "item": "minecraft:amethyst_block" + }, + "title": { + "translate": "advancements.dafuqs.starry_sky.sphere_amethyst.title" + }, + "description": { + "translate": "advancements.dafuqs.starry_sky.sphere_amethyst.description" + }, + "hidden": true + }, + "parent": "starry_sky:sphere_group_rare", + "criteria": { + "seen": { + "trigger": "minecraft:impossible" + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/starry_sky/advancements/sphere_azalea_wood.json b/src/main/resources/data/starry_sky/advancements/sphere_azalea_wood.json new file mode 100644 index 00000000..1492f460 --- /dev/null +++ b/src/main/resources/data/starry_sky/advancements/sphere_azalea_wood.json @@ -0,0 +1,20 @@ +{ + "display": { + "icon": { + "item": "minecraft:flowering_azalea_leaves" + }, + "title": { + "translate": "advancements.dafuqs.starry_sky.sphere_azalea_wood.title" + }, + "description": { + "translate": "advancements.dafuqs.starry_sky.sphere_azalea_wood.description" + }, + "hidden": true + }, + "parent": "starry_sky:sphere_group_wood", + "criteria": { + "seen": { + "trigger": "minecraft:impossible" + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/starry_sky/advancements/sphere_cobbled_deepslate.json b/src/main/resources/data/starry_sky/advancements/sphere_cobbled_deepslate.json new file mode 100644 index 00000000..eace3b23 --- /dev/null +++ b/src/main/resources/data/starry_sky/advancements/sphere_cobbled_deepslate.json @@ -0,0 +1,20 @@ +{ + "display": { + "icon": { + "item": "minecraft:cobbled_deepslate" + }, + "title": { + "translate": "advancements.dafuqs.starry_sky.sphere_cobbled_deepslate.title" + }, + "description": { + "translate": "advancements.dafuqs.starry_sky.sphere_cobbled_deepslate.description" + }, + "hidden": true + }, + "parent": "starry_sky:sphere_group_common", + "criteria": { + "seen": { + "trigger": "minecraft:impossible" + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/starry_sky/advancements/sphere_copper.json b/src/main/resources/data/starry_sky/advancements/sphere_copper.json new file mode 100644 index 00000000..b072e64e --- /dev/null +++ b/src/main/resources/data/starry_sky/advancements/sphere_copper.json @@ -0,0 +1,20 @@ +{ + "display": { + "icon": { + "item": "minecraft:copper_ore" + }, + "title": { + "translate": "advancements.dafuqs.starry_sky.sphere_copper.title" + }, + "description": { + "translate": "advancements.dafuqs.starry_sky.sphere_copper.description" + }, + "hidden": false + }, + "parent": "starry_sky:sphere_group_ores", + "criteria": { + "seen": { + "trigger": "minecraft:impossible" + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/starry_sky/advancements/sphere_deepslate.json b/src/main/resources/data/starry_sky/advancements/sphere_deepslate.json new file mode 100644 index 00000000..4d6f5496 --- /dev/null +++ b/src/main/resources/data/starry_sky/advancements/sphere_deepslate.json @@ -0,0 +1,20 @@ +{ + "display": { + "icon": { + "item": "minecraft:deepslate" + }, + "title": { + "translate": "advancements.dafuqs.starry_sky.sphere_deepslate.title" + }, + "description": { + "translate": "advancements.dafuqs.starry_sky.sphere_deepslate.description" + }, + "hidden": true + }, + "parent": "starry_sky:sphere_group_common", + "criteria": { + "seen": { + "trigger": "minecraft:impossible" + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/starry_sky/advancements/sphere_dripstone.json b/src/main/resources/data/starry_sky/advancements/sphere_dripstone.json new file mode 100644 index 00000000..da8b5d1e --- /dev/null +++ b/src/main/resources/data/starry_sky/advancements/sphere_dripstone.json @@ -0,0 +1,20 @@ +{ + "display": { + "icon": { + "item": "minecraft:dripstone_block" + }, + "title": { + "translate": "advancements.dafuqs.starry_sky.sphere_dripstone.title" + }, + "description": { + "translate": "advancements.dafuqs.starry_sky.sphere_dripstone.description" + }, + "hidden": true + }, + "parent": "starry_sky:sphere_group_uncommon", + "criteria": { + "seen": { + "trigger": "minecraft:impossible" + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/starry_sky/advancements/sphere_powder_snow.json b/src/main/resources/data/starry_sky/advancements/sphere_powder_snow.json new file mode 100644 index 00000000..f8b36a33 --- /dev/null +++ b/src/main/resources/data/starry_sky/advancements/sphere_powder_snow.json @@ -0,0 +1,20 @@ +{ + "display": { + "icon": { + "item": "minecraft:powder_snow_bucket" + }, + "title": { + "translate": "advancements.dafuqs.starry_sky.sphere_powder_snow.title" + }, + "description": { + "translate": "advancements.dafuqs.starry_sky.sphere_powder_snow.description" + }, + "hidden": true + }, + "parent": "starry_sky:sphere_group_uncommon", + "criteria": { + "seen": { + "trigger": "minecraft:impossible" + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/starry_sky/advancements/sphere_rooted_dirt.json b/src/main/resources/data/starry_sky/advancements/sphere_rooted_dirt.json new file mode 100644 index 00000000..2361421e --- /dev/null +++ b/src/main/resources/data/starry_sky/advancements/sphere_rooted_dirt.json @@ -0,0 +1,20 @@ +{ + "display": { + "icon": { + "item": "minecraft:rooted_dirt" + }, + "title": { + "translate": "advancements.dafuqs.starry_sky.sphere_rooted_dirt.title" + }, + "description": { + "translate": "advancements.dafuqs.starry_sky.sphere_rooted_dirt.description" + }, + "hidden": true + }, + "parent": "starry_sky:sphere_group_uncommon", + "criteria": { + "seen": { + "trigger": "minecraft:impossible" + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/starry_sky/advancements/sphere_tinted_glass.json b/src/main/resources/data/starry_sky/advancements/sphere_tinted_glass.json new file mode 100644 index 00000000..8f37c531 --- /dev/null +++ b/src/main/resources/data/starry_sky/advancements/sphere_tinted_glass.json @@ -0,0 +1,20 @@ +{ + "display": { + "icon": { + "item": "minecraft:tinted_glass" + }, + "title": { + "translate": "advancements.dafuqs.starry_sky.sphere_tinted_glass.title" + }, + "description": { + "translate": "advancements.dafuqs.starry_sky.sphere_tinted_glass.description" + }, + "hidden": true + }, + "parent": "starry_sky:sphere_group_rare", + "criteria": { + "seen": { + "trigger": "minecraft:impossible" + } + } +} \ No newline at end of file diff --git a/src/main/resources/data/starry_sky/advancements/sphere_tuff.json b/src/main/resources/data/starry_sky/advancements/sphere_tuff.json new file mode 100644 index 00000000..0a5665a3 --- /dev/null +++ b/src/main/resources/data/starry_sky/advancements/sphere_tuff.json @@ -0,0 +1,20 @@ +{ + "display": { + "icon": { + "item": "minecraft:tuff" + }, + "title": { + "translate": "advancements.dafuqs.starry_sky.sphere_tuff.title" + }, + "description": { + "translate": "advancements.dafuqs.starry_sky.sphere_tuff.description" + }, + "hidden": true + }, + "parent": "starry_sky:sphere_group_uncommon", + "criteria": { + "seen": { + "trigger": "minecraft:impossible" + } + } +} \ No newline at end of file