From da06973b36b952da4128f0bb3c4e7655720c74f0 Mon Sep 17 00:00:00 2001 From: alterNERDtive Date: Wed, 26 Jul 2023 11:15:19 +0200 Subject: [PATCH] modularized portal block configuration --- CHANGELOG.md | 1 + .../alterNERD/VaultModTweaks/Configuration.java | 17 +++++++++++++---- .../mixin/MixinVaultPortalConfig.java | 6 ++++-- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2dea0a3..77ce921 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ # devel * Balance changes are now disabled by default, bug fixes enabled. Will not affect exsting worlds/configs. +* Modularized Portal block configuration; you can now define your own blocks to build Vault Portals out of. # 3.11.1.0 (2023-07-25) diff --git a/src/main/java/tv/alterNERD/VaultModTweaks/Configuration.java b/src/main/java/tv/alterNERD/VaultModTweaks/Configuration.java index 77521a3..2fa0ee5 100644 --- a/src/main/java/tv/alterNERD/VaultModTweaks/Configuration.java +++ b/src/main/java/tv/alterNERD/VaultModTweaks/Configuration.java @@ -18,12 +18,15 @@ package tv.alterNERD.VaultModTweaks; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import net.minecraft.resources.ResourceLocation; import net.minecraftforge.common.ForgeConfigSpec; import net.minecraftforge.common.ForgeConfigSpec.BooleanValue; import net.minecraftforge.common.ForgeConfigSpec.DoubleValue; import net.minecraftforge.common.ForgeConfigSpec.IntValue; +import net.minecraftforge.registries.ForgeRegistries; import net.minecraftforge.common.ForgeConfigSpec.Builder; import net.minecraftforge.common.ForgeConfigSpec.ConfigValue; @@ -51,7 +54,8 @@ public class Configuration { public static BooleanValue VAULTAR_ENABLED; public static IntValue VAULTAR_INFUSION_TIME; - public static BooleanValue PORTAL_TEMPLATE_ENABLED; + public static BooleanValue PORTAL_BLOCKS_ENABLED; + public static ConfigValue> PORTAL_BLOCKS; public static BooleanValue FAKE_PLAYER_FIX; public static BooleanValue ROUTER_VAULTAR_FIX; @@ -149,9 +153,14 @@ public class Configuration { // Vault Portal builder.push("VaultPortal"); - PORTAL_TEMPLATE_ENABLED = builder - .comment("Allow Template Frame Blocks extruded by Modular Routers’ Extruder Mk2 module as Vault Portal Frame blocks") - .define("allowTemplateFrames", false); + PORTAL_BLOCKS_ENABLED = builder + .comment("Add additional blocks as valid Portal frame blocks") + .define("extendValidPortalBlocks", false); + PORTAL_BLOCKS = builder + .comment("List of additional blocks") + .defineList("additionalPortalBlocks", new ArrayList(), entry -> { + return ForgeRegistries.BLOCKS.containsKey(new ResourceLocation((String)entry)); + }); builder.pop(); // Bug fixes diff --git a/src/main/java/tv/alterNERD/VaultModTweaks/integration/mixin/MixinVaultPortalConfig.java b/src/main/java/tv/alterNERD/VaultModTweaks/integration/mixin/MixinVaultPortalConfig.java index 84e3e89..cdc0596 100644 --- a/src/main/java/tv/alterNERD/VaultModTweaks/integration/mixin/MixinVaultPortalConfig.java +++ b/src/main/java/tv/alterNERD/VaultModTweaks/integration/mixin/MixinVaultPortalConfig.java @@ -51,9 +51,11 @@ public abstract class MixinVaultPortalConfig extends Config { @Override protected void onLoad(Config oldConfigInstance) { super.onLoad(oldConfigInstance); - if (Configuration.PORTAL_TEMPLATE_ENABLED.get()) { + if (Configuration.PORTAL_BLOCKS_ENABLED.get()) { ArrayList list = new ArrayList(Arrays.asList(VALID_BLOCKS)); - list.add("modularrouters:template_frame"); + for (String block : Configuration.PORTAL_BLOCKS.get()) { + list.add(block); + } VALID_BLOCKS = list.toArray(VALID_BLOCKS); } }