super secret new feature
This commit is contained in:
parent
464a941ad0
commit
87d7cfb0ca
3 changed files with 85 additions and 0 deletions
|
@ -17,6 +17,9 @@
|
|||
*/
|
||||
package tv.alterNERD.VaultModTweaks;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraftforge.common.ForgeConfigSpec;
|
||||
import net.minecraftforge.common.ForgeConfigSpec.BooleanValue;
|
||||
import net.minecraftforge.common.ForgeConfigSpec.DoubleValue;
|
||||
|
@ -60,6 +63,9 @@ public class Configuration {
|
|||
public static ConfigValue<Integer> JUNKMGMT_T3;
|
||||
public static ConfigValue<Integer> JUNKMGMT_T4;
|
||||
|
||||
public static ConfigValue<List<? extends String>> GOBLINS;
|
||||
public static ConfigValue<List<? extends String>> CHAMPIONS;
|
||||
|
||||
static {
|
||||
Builder builder = new Builder();
|
||||
|
||||
|
@ -142,6 +148,14 @@ public class Configuration {
|
|||
FRAGMENT_WEIGHT_FIX = builder.define("fragmentFix", true);
|
||||
builder.pop();
|
||||
|
||||
// Transmogs
|
||||
builder.push("Transmogs");
|
||||
GOBLINS = builder.comment("Additional “Goblin” tier Patrons")
|
||||
.defineList("goblins", new ArrayList<String>(), entry -> true);
|
||||
CHAMPIONS = builder.comment("Additional “Champion” tier Patrons")
|
||||
.defineList("champions", new ArrayList<String>(), entry -> true);
|
||||
builder.pop();
|
||||
|
||||
CONFIG = builder.build();
|
||||
|
||||
builder = new Builder();
|
||||
|
|
|
@ -0,0 +1,70 @@
|
|||
/**
|
||||
* Copyright 2023 alterNERDtive.
|
||||
*
|
||||
* This file is part of Vault Mod Tweaks.
|
||||
*
|
||||
* Vault Mod Tweaks is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Vault Mod Tweaks is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Vault Mod Tweaks. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package tv.alterNERD.VaultModTweaks.integration.mixin;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Set;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Overwrite;
|
||||
import org.spongepowered.asm.mixin.Shadow;
|
||||
import iskallia.vault.block.TransmogTableBlock;
|
||||
import iskallia.vault.dynamodel.model.armor.ArmorPieceModel;
|
||||
import iskallia.vault.init.ModDynamicModels;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import tv.alterNERD.VaultModTweaks.Configuration;
|
||||
import tv.alterNERD.VaultModTweaks.VaultModTweaks;
|
||||
|
||||
/**
|
||||
* Changes the {@link iskallia.vault.block.TransmogTableBlock} class for
|
||||
* managing the Transmog Table.
|
||||
*
|
||||
* Specifically, unlocks Patreon transmogs.
|
||||
*/
|
||||
@Mixin(TransmogTableBlock.class)
|
||||
public abstract class MixinTransmogTableBlock {
|
||||
@Shadow(remap = false)
|
||||
private static Set<Long> CHAMPION_LIST;
|
||||
|
||||
@Shadow(remap = false)
|
||||
private static Set<Long> GOBLIN_LIST;
|
||||
|
||||
/***
|
||||
* Injects some new Goblin / Champion tier patrons into the transmogajigga
|
||||
* thing.
|
||||
*
|
||||
* @param player
|
||||
* @param discoveredModelIds
|
||||
* @param modelId
|
||||
*/
|
||||
@Overwrite(remap = false)
|
||||
public static boolean canTransmogModel(Player player, Collection<ResourceLocation> discoveredModelIds, ResourceLocation modelId) {
|
||||
return ModDynamicModels.Armor.PIECE_REGISTRY.get(modelId).map(ArmorPieceModel::getArmorModel).map(armorModel -> {
|
||||
VaultModTweaks.LOGGER.debug(player.getName().getString());
|
||||
long id = player.getUUID().getMostSignificantBits() ^ player.getUUID().getLeastSignificantBits();
|
||||
String name = player.getName().getString();
|
||||
if (armorModel.equals(ModDynamicModels.Armor.CHAMPION)) {
|
||||
return CHAMPION_LIST.contains(id) || Configuration.CHAMPIONS.get().contains(name);
|
||||
}
|
||||
if (armorModel.equals(ModDynamicModels.Armor.GOBLIN)) {
|
||||
return GOBLIN_LIST.contains(id) || CHAMPION_LIST.contains(id) || Configuration.GOBLINS.get().contains(name) || Configuration.CHAMPIONS.get().contains(name);
|
||||
}
|
||||
return null;
|
||||
}).orElse(discoveredModelIds.contains(modelId));
|
||||
}
|
||||
}
|
|
@ -11,6 +11,7 @@
|
|||
"MixinPlayerResearchesData",
|
||||
"MixinStageManager",
|
||||
"MixinToolType",
|
||||
"MixinTransmogTableBlock",
|
||||
"MixinUnidentifiedRelicFragmentsConfig",
|
||||
"MixinVaultAltarBlock",
|
||||
"MixinVaultAltarConfig",
|
||||
|
|
Loading…
Reference in a new issue