diff --git a/src/main/java/org/dimdev/dimdoors/world/feature/ModFeatures.java b/src/main/java/org/dimdev/dimdoors/world/feature/ModFeatures.java index a1e1489c..25604751 100644 --- a/src/main/java/org/dimdev/dimdoors/world/feature/ModFeatures.java +++ b/src/main/java/org/dimdev/dimdoors/world/feature/ModFeatures.java @@ -9,11 +9,8 @@ import org.dimdev.dimdoors.block.ModBlocks; import org.dimdev.dimdoors.mixin.accessor.GenerationSettingsAccessor; import org.dimdev.dimdoors.world.feature.decorator.EternalFluidLakeDecorator; import org.dimdev.dimdoors.world.feature.gateway.LimboGatewayFeature; -import org.dimdev.dimdoors.world.feature.gateway.schematic.SandstonePillarsV2Gateway; -import org.dimdev.dimdoors.world.feature.gateway.schematic.SchematicV2Gateway; -import org.dimdev.dimdoors.world.feature.gateway.schematic.SchematicV2GatewayFeature; -import org.dimdev.dimdoors.world.feature.gateway.schematic.SchematicV2GatewayFeatureConfig; -import org.dimdev.dimdoors.world.feature.gateway.schematic.TwoPillarsV2Gateway; +import org.dimdev.dimdoors.world.feature.gateway.schematic.*; +import org.dimdev.dimdoors.world.feature.gateway.schematic.SchematicGateway; import net.minecraft.structure.rule.BlockMatchRuleTest; import net.minecraft.util.Identifier; @@ -38,10 +35,10 @@ import net.fabricmc.loader.api.FabricLoader; // Do not remove deprecated stuff @SuppressWarnings("DeprecatedIsStillUsed") public final class ModFeatures { - public static final Feature SCHEMATIC_GATEWAY_FEATURE = new SchematicV2GatewayFeature(SchematicV2GatewayFeatureConfig.CODEC); + public static final Feature SCHEMATIC_GATEWAY_FEATURE = new SchematicGatewayFeature(SchematicGatewayFeatureConfig.CODEC); public static final Feature LIMBO_GATEWAY_FEATURE = Registry.register(Registry.FEATURE, new Identifier("dimdoors", "limbo_gateway"), new LimboGatewayFeature()); - public static final SchematicV2Gateway SANDSTONE_PILLARS_GATEWAY = new SandstonePillarsV2Gateway(); - public static final SchematicV2Gateway TWO_PILLARS_GATEWAY = new TwoPillarsV2Gateway(); + public static final SchematicGateway SANDSTONE_PILLARS_GATEWAY = new SandstonePillarsGateway(); + public static final SchematicGateway TWO_PILLARS_GATEWAY = new TwoPillarsGateway(); @Deprecated public static final Decorator ETERNAL_FLUID_LAKE_DECORATOR = new EternalFluidLakeDecorator(ChanceDecoratorConfig.CODEC); public static final ConfiguredFeature SANDSTONE_PILLARS_FEATURE; public static final ConfiguredFeature TWO_PILLARS_FEATURE; @@ -79,8 +76,8 @@ public final class ModFeatures { static { int gatewayChance = FabricLoader.getInstance().isDevelopmentEnvironment() ? 20 : DimensionalDoorsInitializer.getConfig().getWorldConfig().gatewayGenChance; - SANDSTONE_PILLARS_FEATURE = SCHEMATIC_GATEWAY_FEATURE.configure(new SchematicV2GatewayFeatureConfig(SchematicV2Gateway.ID_SCHEMATIC_MAP.inverse().get(SANDSTONE_PILLARS_GATEWAY))).decorate(ConfiguredFeatures.Decorators.SQUARE_TOP_SOLID_HEIGHTMAP.applyChance(gatewayChance)); - TWO_PILLARS_FEATURE = SCHEMATIC_GATEWAY_FEATURE.configure(new SchematicV2GatewayFeatureConfig(SchematicV2Gateway.ID_SCHEMATIC_MAP.inverse().get(TWO_PILLARS_GATEWAY))).decorate(ConfiguredFeatures.Decorators.SQUARE_TOP_SOLID_HEIGHTMAP.applyChance(gatewayChance)); + SANDSTONE_PILLARS_FEATURE = SCHEMATIC_GATEWAY_FEATURE.configure(new SchematicGatewayFeatureConfig(SchematicGateway.ID_SCHEMATIC_MAP.inverse().get(SANDSTONE_PILLARS_GATEWAY))).decorate(ConfiguredFeatures.Decorators.SQUARE_TOP_SOLID_HEIGHTMAP.applyChance(gatewayChance)); + TWO_PILLARS_FEATURE = SCHEMATIC_GATEWAY_FEATURE.configure(new SchematicGatewayFeatureConfig(SchematicGateway.ID_SCHEMATIC_MAP.inverse().get(TWO_PILLARS_GATEWAY))).decorate(ConfiguredFeatures.Decorators.SQUARE_TOP_SOLID_HEIGHTMAP.applyChance(gatewayChance)); LIMBO_GATEWAY_CONFIGURED_FEATURE = LIMBO_GATEWAY_FEATURE.configure(DefaultFeatureConfig.INSTANCE).decorate(ConfiguredFeatures.Decorators.SQUARE_TOP_SOLID_HEIGHTMAP.applyChance(gatewayChance)); SOLID_STATIC_ORE = Feature.ORE.configure(new OreFeatureConfig(new BlockMatchRuleTest(ModBlocks.UNRAVELLED_FABRIC), ModBlocks.SOLID_STATIC.getDefaultState(), 4)).range(new RangeDecoratorConfig(YOffset.getBottom(), YOffset.getTop())).repeat(3); } diff --git a/src/main/java/org/dimdev/dimdoors/world/feature/gateway/schematic/SandstonePillarsV2Gateway.java b/src/main/java/org/dimdev/dimdoors/world/feature/gateway/schematic/SandstonePillarsGateway.java similarity index 88% rename from src/main/java/org/dimdev/dimdoors/world/feature/gateway/schematic/SandstonePillarsV2Gateway.java rename to src/main/java/org/dimdev/dimdoors/world/feature/gateway/schematic/SandstonePillarsGateway.java index b0f031b2..8391f332 100644 --- a/src/main/java/org/dimdev/dimdoors/world/feature/gateway/schematic/SandstonePillarsV2Gateway.java +++ b/src/main/java/org/dimdev/dimdoors/world/feature/gateway/schematic/SandstonePillarsGateway.java @@ -11,8 +11,8 @@ import net.minecraft.world.StructureWorldAccess; import net.minecraft.world.biome.Biome; import net.minecraft.world.biome.BiomeKeys; -public class SandstonePillarsV2Gateway extends SchematicV2Gateway { - public SandstonePillarsV2Gateway() { +public class SandstonePillarsGateway extends SchematicGateway { + public SandstonePillarsGateway() { super("sandstone_pillars"); } diff --git a/src/main/java/org/dimdev/dimdoors/world/feature/gateway/schematic/SchematicV2Gateway.java b/src/main/java/org/dimdev/dimdoors/world/feature/gateway/schematic/SchematicGateway.java similarity index 88% rename from src/main/java/org/dimdev/dimdoors/world/feature/gateway/schematic/SchematicV2Gateway.java rename to src/main/java/org/dimdev/dimdoors/world/feature/gateway/schematic/SchematicGateway.java index 8d617206..ebc2f790 100644 --- a/src/main/java/org/dimdev/dimdoors/world/feature/gateway/schematic/SchematicV2Gateway.java +++ b/src/main/java/org/dimdev/dimdoors/world/feature/gateway/schematic/SchematicGateway.java @@ -18,19 +18,19 @@ import net.minecraft.nbt.NbtIo; import net.minecraft.util.math.BlockPos; import net.minecraft.world.StructureWorldAccess; -public abstract class SchematicV2Gateway implements Gateway, BiPredicate { +public abstract class SchematicGateway implements Gateway, BiPredicate { private Schematic schematic; private final String id; - public static final BiMap ID_SCHEMATIC_MAP = HashBiMap.create(); + public static final BiMap ID_SCHEMATIC_MAP = HashBiMap.create(); private boolean replaced; - public SchematicV2Gateway(String id) { + public SchematicGateway(String id) { ID_SCHEMATIC_MAP.putIfAbsent(id, this); this.id = id; } public void init() { - String schematicJarDirectory = "/data/dimdoors/gateways/v2/"; + String schematicJarDirectory = "/data/dimdoors/gateways/"; try (InputStream stream = DimensionalDoorsInitializer.class.getResourceAsStream(schematicJarDirectory + this.id + ".schem")) { if (stream == null) { diff --git a/src/main/java/org/dimdev/dimdoors/world/feature/gateway/schematic/SchematicV2GatewayFeature.java b/src/main/java/org/dimdev/dimdoors/world/feature/gateway/schematic/SchematicGatewayFeature.java similarity index 71% rename from src/main/java/org/dimdev/dimdoors/world/feature/gateway/schematic/SchematicV2GatewayFeature.java rename to src/main/java/org/dimdev/dimdoors/world/feature/gateway/schematic/SchematicGatewayFeature.java index 0fa5608a..ca66321e 100644 --- a/src/main/java/org/dimdev/dimdoors/world/feature/gateway/schematic/SchematicV2GatewayFeature.java +++ b/src/main/java/org/dimdev/dimdoors/world/feature/gateway/schematic/SchematicGatewayFeature.java @@ -6,13 +6,13 @@ import net.minecraft.block.AirBlock; import net.minecraft.world.gen.feature.Feature; import net.minecraft.world.gen.feature.util.FeatureContext; -public class SchematicV2GatewayFeature extends Feature { - public SchematicV2GatewayFeature(Codec codec) { +public class SchematicGatewayFeature extends Feature { + public SchematicGatewayFeature(Codec codec) { super(codec); } @Override - public boolean generate(FeatureContext featureContext) { + public boolean generate(FeatureContext featureContext) { if (featureContext.getWorld().getBlockState(featureContext.getOrigin()).getBlock() instanceof AirBlock && featureContext.getConfig().getGateway().test(featureContext.getWorld(), featureContext.getOrigin())) { featureContext.getConfig().getGateway().generate(featureContext.getWorld(), featureContext.getOrigin()); return true; diff --git a/src/main/java/org/dimdev/dimdoors/world/feature/gateway/schematic/SchematicGatewayFeatureConfig.java b/src/main/java/org/dimdev/dimdoors/world/feature/gateway/schematic/SchematicGatewayFeatureConfig.java new file mode 100644 index 00000000..bf3edba6 --- /dev/null +++ b/src/main/java/org/dimdev/dimdoors/world/feature/gateway/schematic/SchematicGatewayFeatureConfig.java @@ -0,0 +1,28 @@ +package org.dimdev.dimdoors.world.feature.gateway.schematic; + +import com.mojang.serialization.Codec; +import com.mojang.serialization.codecs.RecordCodecBuilder; + +import net.minecraft.world.gen.feature.FeatureConfig; + +public class SchematicGatewayFeatureConfig implements FeatureConfig { + public static final Codec CODEC = RecordCodecBuilder.create((instance) -> instance.group( + Codec.STRING.fieldOf("gatewayId").forGetter(SchematicGatewayFeatureConfig::getGatewayId) + ).apply(instance, SchematicGatewayFeatureConfig::new)); + + private final SchematicGateway gateway; + private final String gatewayId; + + public SchematicGatewayFeatureConfig(String id) { + this.gatewayId = id; + this.gateway = SchematicGateway.ID_SCHEMATIC_MAP.get(id); + } + + public SchematicGateway getGateway() { + return this.gateway; + } + + public String getGatewayId() { + return this.gatewayId; + } +} diff --git a/src/main/java/org/dimdev/dimdoors/world/feature/gateway/schematic/SchematicV2GatewayFeatureConfig.java b/src/main/java/org/dimdev/dimdoors/world/feature/gateway/schematic/SchematicV2GatewayFeatureConfig.java deleted file mode 100644 index 99593bcb..00000000 --- a/src/main/java/org/dimdev/dimdoors/world/feature/gateway/schematic/SchematicV2GatewayFeatureConfig.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.dimdev.dimdoors.world.feature.gateway.schematic; - -import com.mojang.serialization.Codec; -import com.mojang.serialization.codecs.RecordCodecBuilder; - -import net.minecraft.world.gen.feature.FeatureConfig; - -public class SchematicV2GatewayFeatureConfig implements FeatureConfig { - public static final Codec CODEC = RecordCodecBuilder.create((instance) -> instance.group( - Codec.STRING.fieldOf("gatewayId").forGetter(SchematicV2GatewayFeatureConfig::getGatewayId) - ).apply(instance, SchematicV2GatewayFeatureConfig::new)); - - private final SchematicV2Gateway gateway; - private final String gatewayId; - - public SchematicV2GatewayFeatureConfig(String id) { - this.gatewayId = id; - this.gateway = SchematicV2Gateway.ID_SCHEMATIC_MAP.get(id); - } - - public SchematicV2Gateway getGateway() { - return this.gateway; - } - - public String getGatewayId() { - return this.gatewayId; - } -} diff --git a/src/main/java/org/dimdev/dimdoors/world/feature/gateway/schematic/TwoPillarsV2Gateway.java b/src/main/java/org/dimdev/dimdoors/world/feature/gateway/schematic/TwoPillarsGateway.java similarity index 95% rename from src/main/java/org/dimdev/dimdoors/world/feature/gateway/schematic/TwoPillarsV2Gateway.java rename to src/main/java/org/dimdev/dimdoors/world/feature/gateway/schematic/TwoPillarsGateway.java index d6c3bc86..f0f56aa5 100644 --- a/src/main/java/org/dimdev/dimdoors/world/feature/gateway/schematic/TwoPillarsV2Gateway.java +++ b/src/main/java/org/dimdev/dimdoors/world/feature/gateway/schematic/TwoPillarsGateway.java @@ -12,10 +12,10 @@ import net.minecraft.util.registry.RegistryKey; import net.minecraft.world.StructureWorldAccess; import net.minecraft.world.biome.Biome; -public class TwoPillarsV2Gateway extends SchematicV2Gateway { +public class TwoPillarsGateway extends SchematicGateway { private static final int GATEWAY_RADIUS = 4; - public TwoPillarsV2Gateway() { + public TwoPillarsGateway() { super("two_pillars"); } diff --git a/src/main/resources/data/dimdoors/gateways/sandstone_pillars.schem b/src/main/resources/data/dimdoors/gateways/sandstone_pillars.schem index 8836a829..60942fa6 100644 Binary files a/src/main/resources/data/dimdoors/gateways/sandstone_pillars.schem and b/src/main/resources/data/dimdoors/gateways/sandstone_pillars.schem differ diff --git a/src/main/resources/data/dimdoors/gateways/two_pillars.schem b/src/main/resources/data/dimdoors/gateways/two_pillars.schem index cf9b7bdc..b1266930 100644 Binary files a/src/main/resources/data/dimdoors/gateways/two_pillars.schem and b/src/main/resources/data/dimdoors/gateways/two_pillars.schem differ diff --git a/src/main/resources/data/dimdoors/gateways/v2/sandstone_pillars.schem b/src/main/resources/data/dimdoors/gateways/v2/sandstone_pillars.schem deleted file mode 100644 index 2c45b972..00000000 Binary files a/src/main/resources/data/dimdoors/gateways/v2/sandstone_pillars.schem and /dev/null differ diff --git a/src/main/resources/data/dimdoors/gateways/v2/two_pillars.schem b/src/main/resources/data/dimdoors/gateways/v2/two_pillars.schem deleted file mode 100644 index 34a8465a..00000000 Binary files a/src/main/resources/data/dimdoors/gateways/v2/two_pillars.schem and /dev/null differ