This repository has been archived on 2023-11-26. You can view files and clone it, but cannot push or open issues or pull requests.
RelicCraft/src/main/java/com/thebrokenrail/reliccraft/structure/TimeTempleFeature.java

53 lines
2.2 KiB
Java
Raw Normal View History

2020-04-04 02:32:34 +00:00
package com.thebrokenrail.reliccraft.structure;
2020-06-28 16:38:49 +00:00
import com.mojang.serialization.Codec;
import net.minecraft.structure.StructureManager;
import net.minecraft.structure.StructureStart;
import net.minecraft.util.BlockRotation;
import net.minecraft.util.math.BlockBox;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.ChunkPos;
import net.minecraft.world.biome.Biome;
import net.minecraft.world.biome.source.BiomeSource;
import net.minecraft.world.gen.ChunkRandom;
import net.minecraft.world.gen.chunk.ChunkGenerator;
2020-04-04 02:32:34 +00:00
import net.minecraft.world.gen.feature.DefaultFeatureConfig;
2020-06-28 16:38:49 +00:00
import net.minecraft.world.gen.feature.StructureFeature;
2020-04-04 02:32:34 +00:00
2020-06-28 16:38:49 +00:00
import java.util.Random;
2020-04-04 02:32:34 +00:00
2020-06-28 16:38:49 +00:00
public class TimeTempleFeature extends StructureFeature<DefaultFeatureConfig> {
public TimeTempleFeature(Codec<DefaultFeatureConfig> codec) {
super(codec);
2020-04-04 02:32:34 +00:00
}
@Override
2020-06-28 16:38:49 +00:00
public StructureStartFactory<DefaultFeatureConfig> getStructureStartFactory() {
return Start::new;
2020-04-04 02:32:34 +00:00
}
2020-06-28 16:38:49 +00:00
protected boolean shouldStartAt(ChunkGenerator chunkGenerator, BiomeSource biomeSource, long l, ChunkRandom chunkRandom, int i, int j, Biome biome, ChunkPos chunkPos, DefaultFeatureConfig defaultFeatureConfig) {
int k = i >> 4;
int m = j >> 4;
chunkRandom.setSeed((long) (k ^ m << 4) ^ l);
chunkRandom.nextInt();
return chunkRandom.nextInt(5) == 0;
2020-04-04 02:32:34 +00:00
}
2020-06-28 16:38:49 +00:00
public static class Start extends StructureStart<DefaultFeatureConfig> {
public Start(StructureFeature<DefaultFeatureConfig> feature, int chunkX, int chunkZ, BlockBox box, int references, long seed) {
super(feature, chunkX, chunkZ, box, references, seed);
}
2020-04-04 02:32:34 +00:00
2020-06-28 16:38:49 +00:00
@Override
public void init(ChunkGenerator chunkGenerator, StructureManager structureManager, int x, int z, Biome biome, DefaultFeatureConfig featureConfig) {
int i = x * 16;
int j = z * 16;
BlockPos blockPos = new BlockPos(i, 90, j);
BlockRotation blockRotation = BlockRotation.values()[random.nextInt(BlockRotation.values().length)];
TimeTempleGenerator.addPieces(structureManager, blockPos, blockRotation, children);
setBoundingBoxFromChildren();
}
2020-04-04 02:32:34 +00:00
}
}