Placed features and some fixes
This commit is contained in:
parent
89c93ce610
commit
5bf0c9b51f
25 changed files with 198 additions and 106 deletions
|
@ -147,8 +147,6 @@ public final class ModConfig implements ConfigData {
|
|||
@RequiresRestart
|
||||
@Tooltip public double clusterGenChance = 20000;
|
||||
@RequiresRestart
|
||||
@Tooltip public int gatewayGenChance = 200;
|
||||
@RequiresRestart
|
||||
@Tooltip public List<String> clusterDimBlacklist = new LinkedList<>();
|
||||
@RequiresRestart
|
||||
@Tooltip public List<String> gatewayDimBlacklist = new LinkedList<>();
|
||||
|
|
|
@ -3,17 +3,17 @@ package org.dimdev.dimdoors.enchantment;
|
|||
import net.minecraft.enchantment.Enchantment;
|
||||
import net.minecraft.enchantment.EnchantmentTarget;
|
||||
import net.minecraft.entity.EquipmentSlot;
|
||||
import net.minecraft.registry.Registries;
|
||||
import net.minecraft.registry.Registry;
|
||||
|
||||
import org.dimdev.dimdoors.DimensionalDoors;
|
||||
|
||||
import net.minecraft.util.registry.Registry;
|
||||
|
||||
public class ModEnchants {
|
||||
public static Enchantment STRING_THEORY_ENCHANTMENT;
|
||||
|
||||
public static void init() {
|
||||
STRING_THEORY_ENCHANTMENT = Registry.register(
|
||||
Registry.ENCHANTMENT,
|
||||
Registries.ENCHANTMENT,
|
||||
DimensionalDoors.id("string_theory"),
|
||||
new StringTheoryEnchantment(Enchantment.Rarity.UNCOMMON, EnchantmentTarget.WEARABLE, new EquipmentSlot[] {EquipmentSlot.FEET, EquipmentSlot.LEGS, EquipmentSlot.CHEST, EquipmentSlot.HEAD})
|
||||
);
|
||||
|
|
|
@ -7,7 +7,8 @@ import net.minecraft.entity.Entity;
|
|||
import net.minecraft.entity.EntityDimensions;
|
||||
import net.minecraft.entity.EntityType;
|
||||
import net.minecraft.entity.SpawnGroup;
|
||||
import net.minecraft.util.registry.Registry;
|
||||
import net.minecraft.registry.Registries;
|
||||
import net.minecraft.registry.Registry;
|
||||
|
||||
import net.fabricmc.api.EnvType;
|
||||
import net.fabricmc.api.Environment;
|
||||
|
@ -40,6 +41,6 @@ public class ModEntityTypes {
|
|||
}
|
||||
|
||||
private static <E extends Entity> EntityType<E> register(String id, EntityType.EntityFactory<E> factory, float width, float height, boolean fixed) {
|
||||
return Registry.register(Registry.ENTITY_TYPE, id, FabricEntityTypeBuilder.create(SpawnGroup.MONSTER, factory).dimensions(new EntityDimensions(width, height, fixed)).spawnableFarFromPlayer().fireImmune().build());
|
||||
return Registry.register(Registries.ENTITY_TYPE, id, FabricEntityTypeBuilder.create(SpawnGroup.MONSTER, factory).dimensions(new EntityDimensions(width, height, fixed)).spawnableFarFromPlayer().fireImmune().build());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,33 +0,0 @@
|
|||
package org.dimdev.dimdoors.mixin;
|
||||
|
||||
import net.minecraft.util.Identifier;
|
||||
import net.minecraft.util.registry.RegistryKey;
|
||||
import org.spongepowered.asm.mixin.Final;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Shadow;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
@Mixin(RegistryKey.class)
|
||||
public class RegistryKeyMixin {
|
||||
@Final
|
||||
@Shadow
|
||||
private Identifier value;
|
||||
|
||||
@Final
|
||||
@Shadow
|
||||
private Identifier registry;
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (this == o) return true;
|
||||
if (!(o instanceof RegistryKey)) return false;
|
||||
RegistryKey<?> that = (RegistryKey<?>) o;
|
||||
return Objects.equals(this.value, that.getValue());
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(this.value, this.registry);
|
||||
}
|
||||
}
|
|
@ -2,7 +2,6 @@ package org.dimdev.dimdoors.mixin.accessor;
|
|||
|
||||
import com.google.gson.JsonObject;
|
||||
import net.minecraft.data.DataWriter;
|
||||
import net.minecraft.data.server.RecipeProvider;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.gen.Invoker;
|
||||
|
||||
|
|
|
@ -6,13 +6,13 @@ import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking;
|
|||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.network.PacketByteBuf;
|
||||
import net.minecraft.registry.RegistryKey;
|
||||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.server.network.ServerPlayNetworkHandler;
|
||||
import net.minecraft.server.network.ServerPlayerEntity;
|
||||
import net.minecraft.util.Hand;
|
||||
import net.minecraft.util.Identifier;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.registry.RegistryKey;
|
||||
import net.minecraft.world.World;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
|
|
|
@ -6,8 +6,8 @@ import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
|
|||
import net.fabricmc.fabric.api.networking.v1.PacketByteBufs;
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
import net.minecraft.client.network.ClientPlayNetworkHandler;
|
||||
import net.minecraft.registry.RegistryKey;
|
||||
import net.minecraft.util.Identifier;
|
||||
import net.minecraft.util.registry.RegistryKey;
|
||||
import net.minecraft.world.World;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
|
|
|
@ -5,6 +5,9 @@ import net.minecraft.block.Blocks;
|
|||
import net.minecraft.fluid.FluidState;
|
||||
import net.minecraft.fluid.Fluids;
|
||||
import net.minecraft.nbt.NbtCompound;
|
||||
import net.minecraft.registry.Registry;
|
||||
import net.minecraft.registry.RegistryKey;
|
||||
import net.minecraft.registry.RegistryKeys;
|
||||
import net.minecraft.resource.ResourceManager;
|
||||
import net.minecraft.server.world.ServerLightingProvider;
|
||||
import net.minecraft.server.world.ServerWorld;
|
||||
|
@ -13,8 +16,6 @@ import net.minecraft.util.math.BlockPos;
|
|||
import net.minecraft.util.math.Box;
|
||||
import net.minecraft.util.math.ChunkPos;
|
||||
import net.minecraft.util.math.Vec3i;
|
||||
import net.minecraft.util.registry.Registry;
|
||||
import net.minecraft.util.registry.RegistryKey;
|
||||
import net.minecraft.world.ChunkRegion;
|
||||
import net.minecraft.world.HeightLimitView;
|
||||
import net.minecraft.world.Heightmap;
|
||||
|
@ -90,7 +91,7 @@ public class ChunkGenerator extends PocketGenerator {
|
|||
|
||||
LOGGER.info("Generating chunk pocket at location " + pocket.getOrigin());
|
||||
|
||||
ServerWorld genWorld = DimensionalDoors.getWorld(RegistryKey.of(Registry.WORLD_KEY, dimensionID));
|
||||
ServerWorld genWorld = DimensionalDoors.getWorld(RegistryKey.of(RegistryKeys.WORLD, dimensionID));
|
||||
net.minecraft.world.gen.chunk.ChunkGenerator genWorldChunkGenerator = genWorld.getChunkManager().getChunkGenerator();
|
||||
|
||||
NoiseConfig config = NoiseConfig.create(ChunkGeneratorSettings.createMissingSettings(), world.getRegistryManager().get(Registry.NOISE_KEY), world.getSeed());
|
||||
|
@ -113,7 +114,7 @@ public class ChunkGenerator extends PocketGenerator {
|
|||
((ProtoChunk) protoChunk).setStatus(ChunkStatus.STRUCTURE_REFERENCES);
|
||||
}
|
||||
for (Chunk protoChunk : protoChunks) {
|
||||
genWorldChunkGenerator.populateBiomes(genWorld.getRegistryManager().get(Registry.BIOME_KEY), net.minecraft.util.Util.getMainWorkerExecutor(), config, Blender.getNoBlending(), genWorld.getStructureAccessor(), protoChunk);
|
||||
genWorldChunkGenerator.populateBiomes(genWorld.getRegistryManager().get(RegistryKeys.BIOME), net.minecraft.util.Util.getMainWorkerExecutor(), config, Blender.getNoBlending(), genWorld.getStructureAccessor(), protoChunk);
|
||||
((ProtoChunk) protoChunk).setStatus(ChunkStatus.BIOMES);
|
||||
}
|
||||
for (Chunk protoChunk : protoChunks) {
|
||||
|
@ -212,7 +213,7 @@ public class ChunkGenerator extends PocketGenerator {
|
|||
@Override
|
||||
public Chunk getChunk(int chunkX, int chunkZ, ChunkStatus leastStatus, boolean create) {
|
||||
Chunk chunk = super.getChunk(chunkX, chunkZ, leastStatus, false);
|
||||
return chunk == null ? new ProtoChunkHack(new ChunkPos(chunkX, chunkZ), UpgradeData.NO_UPGRADE_DATA, this, this.getRegistryManager().get(Registry.BIOME_KEY)) : chunk;
|
||||
return chunk == null ? new ProtoChunkHack(new ChunkPos(chunkX, chunkZ), UpgradeData.NO_UPGRADE_DATA, this, this.getRegistryManager().get(RegistryKeys.BIOME)) : chunk;
|
||||
}
|
||||
|
||||
// TODO: Override getSeed()
|
||||
|
|
|
@ -6,13 +6,13 @@ import net.minecraft.block.Block;
|
|||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.block.enums.DoubleBlockHalf;
|
||||
import net.minecraft.nbt.NbtCompound;
|
||||
import net.minecraft.registry.Registries;
|
||||
import net.minecraft.resource.ResourceManager;
|
||||
import net.minecraft.server.world.ServerWorld;
|
||||
import net.minecraft.util.Identifier;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.ChunkPos;
|
||||
import net.minecraft.util.math.Direction;
|
||||
import net.minecraft.util.registry.Registry;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
import org.dimdev.dimdoors.api.util.NbtEquations;
|
||||
|
@ -57,7 +57,7 @@ public class DimensionalDoorModifier extends AbstractLazyCompatibleModifier {
|
|||
}
|
||||
|
||||
doorTypeString = nbt.getString("door_type");
|
||||
Block doorBlock = Registry.BLOCK.get(Identifier.tryParse(doorTypeString));
|
||||
Block doorBlock = Registries.BLOCK.get(Identifier.tryParse(doorTypeString));
|
||||
if (!(doorBlock instanceof DimensionalDoorBlock)) {
|
||||
throw new RuntimeException("Could not interpret door type \"" + doorTypeString + "\"");
|
||||
}
|
||||
|
|
|
@ -6,11 +6,11 @@ import net.fabricmc.fabric.api.event.registry.FabricRegistryBuilder;
|
|||
import net.fabricmc.fabric.api.util.NbtType;
|
||||
import net.minecraft.nbt.NbtCompound;
|
||||
import net.minecraft.nbt.NbtElement;
|
||||
import net.minecraft.registry.Registry;
|
||||
import net.minecraft.registry.RegistryKey;
|
||||
import net.minecraft.registry.SimpleRegistry;
|
||||
import net.minecraft.resource.ResourceManager;
|
||||
import net.minecraft.util.Identifier;
|
||||
import net.minecraft.util.registry.Registry;
|
||||
import net.minecraft.util.registry.RegistryKey;
|
||||
import net.minecraft.util.registry.SimpleRegistry;
|
||||
import org.dimdev.dimdoors.DimensionalDoors;
|
||||
import org.dimdev.dimdoors.api.util.ReferenceSerializable;
|
||||
import org.dimdev.dimdoors.api.util.ResourceUtil;
|
||||
|
@ -21,7 +21,7 @@ import java.util.Collection;
|
|||
import java.util.function.Supplier;
|
||||
|
||||
public interface Modifier extends ReferenceSerializable {
|
||||
Registry<ModifierType<? extends Modifier>> REGISTRY = FabricRegistryBuilder.from(new SimpleRegistry<ModifierType<? extends Modifier>>(RegistryKey.ofRegistry(DimensionalDoors.id("modifier_type")), Lifecycle.stable(), null)).buildAndRegister();
|
||||
Registry<ModifierType<? extends Modifier>> REGISTRY = FabricRegistryBuilder.from(new SimpleRegistry<ModifierType<? extends Modifier>>(RegistryKey.ofRegistry(DimensionalDoors.id("modifier_type")), Lifecycle.stable())).buildAndRegister();
|
||||
|
||||
String RESOURCE_STARTING_PATH = "pockets/modifier"; //TODO: might want to restructure data packs
|
||||
|
||||
|
|
|
@ -5,13 +5,13 @@ import java.util.UUID;
|
|||
import com.mojang.serialization.Codec;
|
||||
import com.mojang.serialization.codecs.RecordCodecBuilder;
|
||||
import net.minecraft.nbt.NbtCompound;
|
||||
import net.minecraft.util.dynamic.DynamicSerializableUuid;
|
||||
import net.minecraft.util.Uuids;
|
||||
|
||||
public class PlayerRiftPointer extends RegistryVertex {
|
||||
public static final Codec<PlayerRiftPointer> CODEC = RecordCodecBuilder.create(instance -> {
|
||||
return instance.group(
|
||||
DynamicSerializableUuid.CODEC.fieldOf("id").forGetter(a -> a.id),
|
||||
DynamicSerializableUuid.CODEC.fieldOf("player").forGetter(a -> a.player)
|
||||
Uuids.CODEC.fieldOf("id").forGetter(a -> a.id),
|
||||
Uuids.CODEC.fieldOf("player").forGetter(a -> a.player)
|
||||
).apply(instance, (id, player) -> {
|
||||
PlayerRiftPointer pointer = new PlayerRiftPointer(player);
|
||||
pointer.id = id;
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
package org.dimdev.dimdoors.rift.registry;
|
||||
|
||||
import net.minecraft.nbt.NbtCompound;
|
||||
import net.minecraft.registry.RegistryKey;
|
||||
import net.minecraft.registry.RegistryKeys;
|
||||
import net.minecraft.util.Identifier;
|
||||
import net.minecraft.util.registry.Registry;
|
||||
import net.minecraft.util.registry.RegistryKey;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class PocketEntrancePointer extends RegistryVertex { // TODO: PocketRiftPointer superclass?
|
||||
|
@ -35,7 +35,7 @@ public class PocketEntrancePointer extends RegistryVertex { // TODO: PocketRiftP
|
|||
}
|
||||
|
||||
public static PocketEntrancePointer fromNbt(NbtCompound nbt) {
|
||||
PocketEntrancePointer pointer = new PocketEntrancePointer(RegistryKey.of(Registry.WORLD_KEY, new Identifier(nbt.getString("pocketDim"))), nbt.getInt("pocketId"));
|
||||
PocketEntrancePointer pointer = new PocketEntrancePointer(RegistryKey.of(RegistryKeys.WORLD, new Identifier(nbt.getString("pocketDim"))), nbt.getInt("pocketId"));
|
||||
pointer.id = nbt.getUuid("id");
|
||||
return pointer;
|
||||
}
|
||||
|
|
|
@ -4,8 +4,8 @@ import net.fabricmc.fabric.api.event.registry.FabricRegistryBuilder;
|
|||
import net.fabricmc.fabric.api.event.registry.RegistryAttribute;
|
||||
import net.minecraft.nbt.NbtCompound;
|
||||
import net.minecraft.util.Identifier;
|
||||
import net.minecraft.util.registry.Registry;
|
||||
import net.minecraft.util.registry.RegistryKey;
|
||||
import net.minecraft.registry.Registry;
|
||||
import net.minecraft.registry.RegistryKey;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import org.dimdev.dimdoors.DimensionalDoors;
|
||||
|
|
|
@ -20,7 +20,7 @@ import org.dimdev.dimdoors.world.pocket.type.Pocket;
|
|||
import org.dimdev.dimdoors.world.pocket.PocketDirectory;
|
||||
import org.jgrapht.graph.DefaultDirectedGraph;
|
||||
import org.jgrapht.graph.DefaultEdge;
|
||||
import net.minecraft.util.registry.RegistryKey;
|
||||
import net.minecraft.registry.RegistryKey;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class RiftRegistry {
|
||||
|
|
|
@ -1,9 +1,5 @@
|
|||
package org.dimdev.dimdoors.world.feature;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.dimdev.dimdoors.DimensionalDoors;
|
||||
import org.dimdev.dimdoors.block.ModBlocks;
|
||||
import org.dimdev.dimdoors.world.feature.gateway.LimboGatewayFeature;
|
||||
import org.dimdev.dimdoors.world.feature.gateway.schematic.EndGateway;
|
||||
import org.dimdev.dimdoors.world.feature.gateway.schematic.SandstonePillarsGateway;
|
||||
|
@ -12,38 +8,23 @@ import org.dimdev.dimdoors.world.feature.gateway.schematic.SchematicGatewayFeatu
|
|||
import org.dimdev.dimdoors.world.feature.gateway.schematic.SchematicGatewayFeatureConfig;
|
||||
import org.dimdev.dimdoors.world.feature.gateway.schematic.TwoPillarsGateway;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.fluid.Fluids;
|
||||
import net.minecraft.registry.Registries;
|
||||
import net.minecraft.registry.Registry;
|
||||
import net.minecraft.registry.RegistryKey;
|
||||
import net.minecraft.registry.RegistryKeys;
|
||||
import net.minecraft.registry.entry.RegistryEntry;
|
||||
import net.minecraft.structure.rule.BlockMatchRuleTest;
|
||||
import net.minecraft.world.biome.BiomeKeys;
|
||||
import net.minecraft.world.gen.GenerationStep;
|
||||
import net.minecraft.world.gen.YOffset;
|
||||
import net.minecraft.world.gen.feature.ConfiguredFeature;
|
||||
import net.minecraft.world.gen.feature.ConfiguredFeatures;
|
||||
import net.minecraft.world.gen.feature.DefaultFeatureConfig;
|
||||
import net.minecraft.world.gen.feature.Feature;
|
||||
import net.minecraft.world.gen.feature.OreFeatureConfig;
|
||||
import net.minecraft.world.gen.feature.PlacedFeature;
|
||||
import net.minecraft.world.gen.feature.PlacedFeatures;
|
||||
import net.minecraft.world.gen.feature.SpringFeatureConfig;
|
||||
import net.minecraft.world.gen.placementmodifier.BiomePlacementModifier;
|
||||
import net.minecraft.world.gen.placementmodifier.CountPlacementModifier;
|
||||
import net.minecraft.world.gen.placementmodifier.HeightRangePlacementModifier;
|
||||
import net.minecraft.world.gen.placementmodifier.RarityFilterPlacementModifier;
|
||||
import net.minecraft.world.gen.placementmodifier.SquarePlacementModifier;
|
||||
|
||||
import net.fabricmc.fabric.api.biome.v1.BiomeModifications;
|
||||
import net.fabricmc.fabric.api.tag.convention.v1.ConventionalBiomeTags;
|
||||
|
||||
import static net.minecraft.world.gen.feature.Feature.ORE;
|
||||
import static net.minecraft.world.gen.feature.Feature.SPRING_FEATURE;
|
||||
import static org.dimdev.dimdoors.DimensionalDoors.id;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
public final class ModFeatures {
|
||||
public static final SchematicGateway SANDSTONE_PILLARS_GATEWAY = new SandstonePillarsGateway();
|
||||
public static final SchematicGateway TWO_PILLARS_GATEWAY = new TwoPillarsGateway();
|
||||
|
@ -78,31 +59,31 @@ public final class ModFeatures {
|
|||
}
|
||||
|
||||
public static class Placed {
|
||||
public static final RegistryEntry<PlacedFeature> SANDSTONE_PILLARS_PLACED_FEATURE = PlacedFeatures.register("dimdoors:sandstone_pillars", Configured.SANDSTONE_PILLARS_CONFIGURED_FEATURE, List.of(RarityFilterPlacementModifier.of(DimensionalDoors.getConfig().getWorldConfig().gatewayGenChance), SquarePlacementModifier.of(), PlacedFeatures.WORLD_SURFACE_WG_HEIGHTMAP, BiomePlacementModifier.of()));
|
||||
public static final RegistryEntry<PlacedFeature> TWO_PILLARS_PLACED_FEATURE = PlacedFeatures.register("dimdoors:two_pillars", Configured.TWO_PILLARS_CONFIGURED_FEATURE, List.of(RarityFilterPlacementModifier.of(DimensionalDoors.getConfig().getWorldConfig().gatewayGenChance), SquarePlacementModifier.of(), PlacedFeatures.WORLD_SURFACE_WG_HEIGHTMAP, BiomePlacementModifier.of()));
|
||||
public static final RegistryEntry<PlacedFeature> END_GATEWAY_PLACED_FEATURE = PlacedFeatures.register("dimdoors:end_gateway", Configured.END_GATEWAY_CONFIGURED_FEATURE, List.of(RarityFilterPlacementModifier.of(DimensionalDoors.getConfig().getWorldConfig().gatewayGenChance), SquarePlacementModifier.of(), PlacedFeatures.WORLD_SURFACE_WG_HEIGHTMAP, BiomePlacementModifier.of()));
|
||||
public static final RegistryEntry<PlacedFeature> LIMBO_GATEWAY_PLACED_FEATURE = PlacedFeatures.register("dimdoors:limbo_gateway", Configured.LIMBO_GATEWAY_CONFIGURED_FEATURE, List.of(RarityFilterPlacementModifier.of(DimensionalDoors.getConfig().getWorldConfig().gatewayGenChance), SquarePlacementModifier.of(), PlacedFeatures.MOTION_BLOCKING_HEIGHTMAP, BiomePlacementModifier.of()));
|
||||
public static final RegistryEntry<PlacedFeature> SOLID_STATIC_ORE_PLACED_FEATURE = PlacedFeatures.register("dimdoors:solid_static_ore", Configured.SOLID_STATIC_ORE_CONFIGURED_FEATURE, List.of(CountPlacementModifier.of(3), HeightRangePlacementModifier.uniform(YOffset.getBottom(), YOffset.getTop()), SquarePlacementModifier.of(), BiomePlacementModifier.of()));
|
||||
public static final RegistryEntry<PlacedFeature> DECAYED_BLOCK_ORE_PLACED_FEATURE = PlacedFeatures.register("dimdoors:decayed_block_ore", Configured.DECAYED_BLOCK_ORE_CONFIGURED_FEATURE, List.of(CountPlacementModifier.of(4), HeightRangePlacementModifier.uniform(YOffset.fixed(0), YOffset.fixed(79)), SquarePlacementModifier.of(), BiomePlacementModifier.of()));
|
||||
public static final RegistryEntry<PlacedFeature> ETERNAL_FLUID_SPRING_PLACED_FEATURE = PlacedFeatures.register("dimdoors:eternal_fluid_spring", Configured.ETERNAL_FLUID_SPRING_CONFIGURED_FEATURE, List.of(CountPlacementModifier.of(25), SquarePlacementModifier.of(), HeightRangePlacementModifier.uniform(YOffset.getBottom(), YOffset.fixed(192)), BiomePlacementModifier.of()));
|
||||
public static final RegistryKey<PlacedFeature> SANDSTONE_PILLARS = of("sandstone_pillars");
|
||||
public static final RegistryKey<PlacedFeature> TWO_PILLARS = of("two_pillars");
|
||||
public static final RegistryKey<PlacedFeature> END_GATEWAY = of("end_gateway");
|
||||
public static final RegistryKey<PlacedFeature> LIMBO_GATEWAY = of("limbo_gateway");
|
||||
public static final RegistryKey<PlacedFeature> SOLID_STATIC_ORE = of("solid_static_ore");
|
||||
public static final RegistryKey<PlacedFeature> DECAYED_BLOCK_ORE = of("decayed_block_ore");
|
||||
public static final RegistryKey<PlacedFeature> ETERNAL_FLUID_SPRING = of("eternal_fluid_spring");
|
||||
|
||||
public static void init() {
|
||||
BiomeModifications.addFeature(ctx -> ctx.hasTag(ConventionalBiomeTags.IN_OVERWORLD) &&
|
||||
!ctx.hasTag(ConventionalBiomeTags.DESERT) &&
|
||||
!ctx.hasTag(ConventionalBiomeTags.OCEAN),
|
||||
GenerationStep.Feature.SURFACE_STRUCTURES,
|
||||
TWO_PILLARS_PLACED_FEATURE.getKey().get()
|
||||
TWO_PILLARS
|
||||
);
|
||||
BiomeModifications.addFeature(
|
||||
ctx -> ctx.hasTag(ConventionalBiomeTags.DESERT),
|
||||
GenerationStep.Feature.SURFACE_STRUCTURES,
|
||||
SANDSTONE_PILLARS_PLACED_FEATURE.getKey().get()
|
||||
SANDSTONE_PILLARS
|
||||
);
|
||||
|
||||
BiomeModifications.addFeature(
|
||||
ctx -> ctx.getBiomeKey().equals(BiomeKeys.END_HIGHLANDS) || ctx.getBiomeKey().equals(BiomeKeys.END_MIDLANDS) || ctx.getBiomeKey().equals(BiomeKeys.SMALL_END_ISLANDS),
|
||||
ctx -> !ctx.getBiomeKey().equals(BiomeKeys.THE_END) && ctx.hasTag(ConventionalBiomeTags.IN_THE_END),
|
||||
GenerationStep.Feature.SURFACE_STRUCTURES,
|
||||
END_GATEWAY_PLACED_FEATURE.getKey().get()
|
||||
END_GATEWAY
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,12 +1,7 @@
|
|||
package org.dimdev.dimdoors.world.feature.gateway;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.registry.BuiltinRegistries;
|
||||
import net.minecraft.util.registry.RegistryKey;
|
||||
import net.minecraft.world.StructureWorldAccess;
|
||||
import net.minecraft.world.biome.Biome;
|
||||
|
||||
public interface Gateway {
|
||||
void generate(StructureWorldAccess world, BlockPos pos);
|
||||
|
|
|
@ -1,18 +1,12 @@
|
|||
package org.dimdev.dimdoors.world.feature.gateway;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import org.dimdev.dimdoors.block.ModBlocks;
|
||||
import org.dimdev.dimdoors.world.ModBiomes;
|
||||
import org.dimdev.dimdoors.world.ModDimensions;
|
||||
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.Direction;
|
||||
import net.minecraft.util.registry.RegistryKey;
|
||||
import net.minecraft.world.StructureWorldAccess;
|
||||
import net.minecraft.world.biome.Biome;
|
||||
|
||||
public enum LimboGateway implements Gateway {
|
||||
INSTANCE;
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
"feature": "dimdoors:decayed_block_ore",
|
||||
"placement": [
|
||||
{
|
||||
"type": "minecraft:count",
|
||||
"count": 4
|
||||
},
|
||||
{
|
||||
"type": "minecraft:height_range",
|
||||
"height": {
|
||||
"type": "minecraft:uniform",
|
||||
"max_inclusive": {
|
||||
"absolute": 79
|
||||
},
|
||||
"min_inclusive": {
|
||||
"absolute": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "minecraft:in_square"
|
||||
},
|
||||
{
|
||||
"type": "minecraft:biome"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"feature": "dimdoors:end_gateway",
|
||||
"placement": [
|
||||
{
|
||||
"type": "minecraft:rarity_filter",
|
||||
"chance": 200
|
||||
},
|
||||
{
|
||||
"type": "minecraft:in_square"
|
||||
},
|
||||
{
|
||||
"type": "minecraft:heightmap",
|
||||
"heightmap": "WORLD_SURFACE_WG"
|
||||
},
|
||||
{
|
||||
"type": "minecraft:biome"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
"feature": "dimdoors:eternal_fluid_spring",
|
||||
"placement": [
|
||||
{
|
||||
"type": "minecraft:count",
|
||||
"count": 8
|
||||
},
|
||||
{
|
||||
"type": "minecraft:height_range",
|
||||
"height": {
|
||||
"type": "minecraft:uniform",
|
||||
"max_inclusive": {
|
||||
"absolute": 192
|
||||
},
|
||||
"min_inclusive": {
|
||||
"above_bottom": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "minecraft:in_square"
|
||||
},
|
||||
{
|
||||
"type": "minecraft:biome"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"feature": "dimdoors:limbo_gateway",
|
||||
"placement": [
|
||||
{
|
||||
"type": "minecraft:rarity_filter",
|
||||
"chance": 200
|
||||
},
|
||||
{
|
||||
"type": "minecraft:in_square"
|
||||
},
|
||||
{
|
||||
"type": "minecraft:heightmap",
|
||||
"heightmap": "MOTION_BLOCKING"
|
||||
},
|
||||
{
|
||||
"type": "minecraft:biome"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"feature": "dimdoors:sandstone_pillars",
|
||||
"placement": [
|
||||
{
|
||||
"type": "minecraft:rarity_filter",
|
||||
"chance": 200
|
||||
},
|
||||
{
|
||||
"type": "minecraft:in_square"
|
||||
},
|
||||
{
|
||||
"type": "minecraft:heightmap",
|
||||
"heightmap": "WORLD_SURFACE_WG"
|
||||
},
|
||||
{
|
||||
"type": "minecraft:biome"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
"feature": "dimdoors:solid_static_ore",
|
||||
"placement": [
|
||||
{
|
||||
"type": "minecraft:count",
|
||||
"count": 3
|
||||
},
|
||||
{
|
||||
"type": "minecraft:height_range",
|
||||
"height": {
|
||||
"type": "minecraft:uniform",
|
||||
"max_inclusive": {
|
||||
"below_top": 0
|
||||
},
|
||||
"min_inclusive": {
|
||||
"above_bottom": 0
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "minecraft:in_square"
|
||||
},
|
||||
{
|
||||
"type": "minecraft:biome"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"feature": "dimdoors:two_pillars",
|
||||
"placement": [
|
||||
{
|
||||
"type": "minecraft:rarity_filter",
|
||||
"chance": 200
|
||||
},
|
||||
{
|
||||
"type": "minecraft:in_square"
|
||||
},
|
||||
{
|
||||
"type": "minecraft:heightmap",
|
||||
"heightmap": "WORLD_SURFACE_WG"
|
||||
},
|
||||
{
|
||||
"type": "minecraft:biome"
|
||||
}
|
||||
]
|
||||
}
|
|
@ -11,7 +11,6 @@
|
|||
"ItemMixin",
|
||||
"ItemMixin$SettingsMixin",
|
||||
"PlayerEntityMixin",
|
||||
"RegistryKeyMixin",
|
||||
"ServerPlayerEntityMixin",
|
||||
"ServerPlayerInteractionManagerMixin",
|
||||
"ServerPlayNetworkHandlerMixin",
|
||||
|
|
Loading…
Reference in a new issue