]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/blob - src/main/java/com/irtimaled/bbor/client/interop/FlowerForestHelper.java
Setup for 1.15.2-Fabric
[BoundingBoxOutlineReloaded.git] / src / main / java / com / irtimaled / bbor / client / interop / FlowerForestHelper.java
1 package com.irtimaled.bbor.client.interop;
2
3 import com.irtimaled.bbor.client.config.ConfigManager;
4 import com.irtimaled.bbor.client.config.HexColor;
5 import com.irtimaled.bbor.client.config.Setting;
6 import com.irtimaled.bbor.common.models.Coords;
7 import net.minecraft.block.BlockState;
8 import net.minecraft.block.Blocks;
9 import net.minecraft.client.MinecraftClient;
10 import net.minecraft.util.math.BlockPos;
11 import net.minecraft.world.biome.Biomes;
12 import net.minecraft.world.gen.feature.DecoratedFeatureConfig;
13 import net.minecraft.world.gen.feature.FeatureConfig;
14 import net.minecraft.world.gen.feature.FlowerFeature;
15
16 import java.util.HashMap;
17 import java.util.Map;
18 import java.util.Random;
19
20 public class FlowerForestHelper {
21     private static final Random random = new Random();
22
23     private static final Map<BlockState, Setting<HexColor>> flowerColorMap = new HashMap<>();
24     private static final FlowerFeature flowersFeature;
25     private static final FeatureConfig flowersConfig;
26
27     static {
28         flowerColorMap.put(Blocks.DANDELION.getDefaultState(), ConfigManager.colorFlowerForestDandelion);
29         flowerColorMap.put(Blocks.POPPY.getDefaultState(), ConfigManager.colorFlowerForestPoppy);
30         flowerColorMap.put(Blocks.ALLIUM.getDefaultState(), ConfigManager.colorFlowerForestAllium);
31         flowerColorMap.put(Blocks.AZURE_BLUET.getDefaultState(), ConfigManager.colorFlowerForestAzureBluet);
32         flowerColorMap.put(Blocks.RED_TULIP.getDefaultState(), ConfigManager.colorFlowerForestRedTulip);
33         flowerColorMap.put(Blocks.ORANGE_TULIP.getDefaultState(), ConfigManager.colorFlowerForestOrangeTulip);
34         flowerColorMap.put(Blocks.WHITE_TULIP.getDefaultState(), ConfigManager.colorFlowerForestWhiteTulip);
35         flowerColorMap.put(Blocks.PINK_TULIP.getDefaultState(), ConfigManager.colorFlowerForestPinkTulip);
36         flowerColorMap.put(Blocks.OXEYE_DAISY.getDefaultState(), ConfigManager.colorFlowerForestOxeyeDaisy);
37         flowerColorMap.put(Blocks.CORNFLOWER.getDefaultState(), ConfigManager.colorFlowerForestCornflower);
38         flowerColorMap.put(Blocks.LILY_OF_THE_VALLEY.getDefaultState(), ConfigManager.colorFlowerForestLilyOfTheValley);
39
40         DecoratedFeatureConfig config = (DecoratedFeatureConfig) Biomes.FLOWER_FOREST.getFlowerFeatures().get(0).config;
41         flowersFeature = (FlowerFeature) config.feature.feature;
42         flowersConfig = config.feature.config;
43     }
44
45     public static Setting<HexColor> getFlowerColorAtPos(Coords coords) {
46         int x = coords.getX();
47         int z = coords.getZ();
48         BlockState blockState = flowersFeature.getFlowerToPlace(random, new BlockPos(x, coords.getY(), z), flowersConfig);
49         return flowerColorMap.get(blockState);
50     }
51
52     public static void setSeed(long seed) {
53         random.setSeed(seed);
54     }
55
56     public static boolean canGrowFlower(int x, int y, int z) {
57         return MinecraftClient.getInstance().world.getBlockState(new BlockPos(x, y, z)).getBlock() == Blocks.GRASS_BLOCK;
58     }
59 }