Add feature to limbo

Changes to be committed:
	modified:   src/main/java/org/dimdev/dimdoors/world/ModBiomes.java
	modified:   src/main/java/org/dimdev/dimdoors/world/ModDimensions.java
	modified:   src/main/java/org/dimdev/dimdoors/world/feature/gateway/Gateway.java
	modified:   src/main/java/org/dimdev/dimdoors/world/feature/gateway/LimboGateway.java
This commit is contained in:
SD 2020-09-26 14:19:23 +05:30
parent 3374b34e7a
commit 88210b1965
No known key found for this signature in database
GPG key ID: E36B57EE08544BC5
4 changed files with 13 additions and 9 deletions

View file

@ -4,6 +4,7 @@ import org.dimdev.dimdoors.block.ModBlocks;
import org.dimdev.dimdoors.entity.ModEntityTypes; import org.dimdev.dimdoors.entity.ModEntityTypes;
import org.dimdev.dimdoors.mixin.BuiltinBiomesAccessor; import org.dimdev.dimdoors.mixin.BuiltinBiomesAccessor;
import org.dimdev.dimdoors.sound.ModSoundEvents; import org.dimdev.dimdoors.sound.ModSoundEvents;
import org.dimdev.dimdoors.world.feature.ModFeatures;
import net.minecraft.block.Blocks; import net.minecraft.block.Blocks;
import net.minecraft.entity.SpawnGroup; import net.minecraft.entity.SpawnGroup;
@ -16,6 +17,7 @@ import net.minecraft.world.biome.Biome;
import net.minecraft.world.biome.BiomeEffects; import net.minecraft.world.biome.BiomeEffects;
import net.minecraft.world.biome.GenerationSettings; import net.minecraft.world.biome.GenerationSettings;
import net.minecraft.world.biome.SpawnSettings; import net.minecraft.world.biome.SpawnSettings;
import net.minecraft.world.gen.GenerationStep;
import net.minecraft.world.gen.surfacebuilder.SurfaceBuilder; import net.minecraft.world.gen.surfacebuilder.SurfaceBuilder;
import net.minecraft.world.gen.surfacebuilder.TernarySurfaceConfig; import net.minecraft.world.gen.surfacebuilder.TernarySurfaceConfig;
@ -34,10 +36,10 @@ public final class ModBiomes {
Registry.register(BuiltinRegistries.BIOME, PERSONAL_WHITE_VOID_KEY.getValue(), PERSONAL_WHITE_VOID_BIOME); Registry.register(BuiltinRegistries.BIOME, PERSONAL_WHITE_VOID_KEY.getValue(), PERSONAL_WHITE_VOID_BIOME);
Registry.register(BuiltinRegistries.BIOME, PUBLIC_BLACK_VOID_KEY.getValue(), PUBLIC_BLACK_VOID_BIOME); Registry.register(BuiltinRegistries.BIOME, PUBLIC_BLACK_VOID_KEY.getValue(), PUBLIC_BLACK_VOID_BIOME);
Registry.register(BuiltinRegistries.BIOME, DUNGEON_DANGEROUS_BLACK_VOID_KEY.getValue(), DUNGEON_DANGEROUS_BLACK_VOID_BIOME); Registry.register(BuiltinRegistries.BIOME, DUNGEON_DANGEROUS_BLACK_VOID_KEY.getValue(), DUNGEON_DANGEROUS_BLACK_VOID_BIOME);
// BuiltinBiomesAccessor.getIdMap().put(BuiltinRegistries.BIOME.getRawId(LIMBO_BIOME), LIMBO_KEY); BuiltinBiomesAccessor.getIdMap().put(BuiltinRegistries.BIOME.getRawId(LIMBO_BIOME), LIMBO_KEY);
// BuiltinBiomesAccessor.getIdMap().put(BuiltinRegistries.BIOME.getRawId(PERSONAL_WHITE_VOID_BIOME), PERSONAL_WHITE_VOID_KEY); BuiltinBiomesAccessor.getIdMap().put(BuiltinRegistries.BIOME.getRawId(PERSONAL_WHITE_VOID_BIOME), PERSONAL_WHITE_VOID_KEY);
// BuiltinBiomesAccessor.getIdMap().put(BuiltinRegistries.BIOME.getRawId(PUBLIC_BLACK_VOID_BIOME), PUBLIC_BLACK_VOID_KEY); BuiltinBiomesAccessor.getIdMap().put(BuiltinRegistries.BIOME.getRawId(PUBLIC_BLACK_VOID_BIOME), PUBLIC_BLACK_VOID_KEY);
// BuiltinBiomesAccessor.getIdMap().put(BuiltinRegistries.BIOME.getRawId(DUNGEON_DANGEROUS_BLACK_VOID_BIOME), DUNGEON_DANGEROUS_BLACK_VOID_KEY); BuiltinBiomesAccessor.getIdMap().put(BuiltinRegistries.BIOME.getRawId(DUNGEON_DANGEROUS_BLACK_VOID_BIOME), DUNGEON_DANGEROUS_BLACK_VOID_KEY);
} }
private static BiomeEffects createEffect(boolean white) { private static BiomeEffects createEffect(boolean white) {
@ -76,6 +78,7 @@ public final class ModBiomes {
.grassColor(0) .grassColor(0)
.build()) .build())
.generationSettings(new GenerationSettings.Builder() .generationSettings(new GenerationSettings.Builder()
.feature(GenerationStep.Feature.SURFACE_STRUCTURES, ModFeatures.LIMBO_GATEWAY_CONFIGURED_FEATURE)
.surfaceBuilder(SurfaceBuilder.NETHER.method_30478(new TernarySurfaceConfig(ModBlocks.UNRAVELLED_FABRIC.getDefaultState(), ModBlocks.UNRAVELLED_FABRIC.getDefaultState(), ModBlocks.ETERNAL_FLUID.getDefaultState()))) .surfaceBuilder(SurfaceBuilder.NETHER.method_30478(new TernarySurfaceConfig(ModBlocks.UNRAVELLED_FABRIC.getDefaultState(), ModBlocks.UNRAVELLED_FABRIC.getDefaultState(), ModBlocks.ETERNAL_FLUID.getDefaultState())))
.build()) .build())
.precipitation(Biome.Precipitation.NONE) .precipitation(Biome.Precipitation.NONE)

View file

@ -61,10 +61,14 @@ public final class ModDimensions {
return type == PERSONAL || type == PUBLIC || type == DUNGEON; return type == PERSONAL || type == PUBLIC || type == DUNGEON;
} }
public static boolean isLimboDimension(StructureWorldAccess world) { public static boolean isLimbo(StructureWorldAccess world) {
return world.getDimension() == LIMBO_TYPE || world == LIMBO_DIMENSION; return world.getDimension() == LIMBO_TYPE || world == LIMBO_DIMENSION;
} }
public static boolean isLimboDimension(World world) {
return world.getRegistryKey() == LIMBO || world.getDimension() == LIMBO_TYPE || world == LIMBO_DIMENSION;
}
public static void init() { public static void init() {
ServerLifecycleEvents.SERVER_STARTED.register(server -> { ServerLifecycleEvents.SERVER_STARTED.register(server -> {
ModDimensions.LIMBO_TYPE = server.getRegistryManager().getDimensionTypes().get(LIMBO_TYPE_KEY); ModDimensions.LIMBO_TYPE = server.getRegistryManager().getDimensionTypes().get(LIMBO_TYPE_KEY);

View file

@ -2,13 +2,10 @@ package org.dimdev.dimdoors.world.feature.gateway;
import java.util.Set; import java.util.Set;
import com.google.common.collect.ImmutableSet;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import net.minecraft.util.registry.BuiltinRegistries; import net.minecraft.util.registry.BuiltinRegistries;
import net.minecraft.util.registry.RegistryKey; import net.minecraft.util.registry.RegistryKey;
import net.minecraft.world.StructureWorldAccess; import net.minecraft.world.StructureWorldAccess;
import net.minecraft.world.World;
import net.minecraft.world.biome.Biome; import net.minecraft.world.biome.Biome;
public interface Gateway { public interface Gateway {

View file

@ -39,7 +39,7 @@ public enum LimboGateway implements Gateway {
@Override @Override
public boolean isLocationValid(StructureWorldAccess world, BlockPos pos) { public boolean isLocationValid(StructureWorldAccess world, BlockPos pos) {
return ModDimensions.isLimboDimension(world); return ModDimensions.isLimbo(world);
} }
private void placePortal(StructureWorldAccess world, BlockPos pos, Direction facing) { private void placePortal(StructureWorldAccess world, BlockPos pos, Direction facing) {