Skip to content

Commit

Permalink
Extra Utilities Trading Post Village Names nitwit filtering
Browse files Browse the repository at this point in the history
  • Loading branch information
jss2a98aj committed Jun 30, 2023
1 parent 7b0bf27 commit 87ced84
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 3 deletions.
6 changes: 4 additions & 2 deletions src/main/java/jss/bugtorch/config/BugTorchConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,7 @@ public class BugTorchConfig {

//Mixin mod tweaks
public static boolean disableCrayfishFurnitureAchievements;
public static boolean extraUtilitiesTradingPostVillageNamesNitwitFilter;
public static boolean proxyLLibraryPastebin;
public static float scaledExtraUtilitiesDarknessDamageMaxHealthFlat;
public static float scaledExtraUtilitiesDarknessDamageMaxHealthMult;
Expand Down Expand Up @@ -304,8 +305,9 @@ public static void loadModdedMixinConfig(File configFile) {
reuseAetherIIRenderPlayer = config.getBoolean("reuseAetherIIRenderPlayer", categoryPerformance, true, "Makes Aether II reuse the same player renderer object across frames.");

//Tweaks
disableCrayfishFurnitureAchievements= config.getBoolean("disableCrayfishFurnitureAchievements", categoryTweaks, false, "Disables MrCrayfish's Furniture Mod achievements.");
proxyLLibraryPastebin = config.getBoolean("proxyLLibraryPastebin", categoryTweaks, false, "Use a pastebin proxy to keep LLibrary from crashing with some regional blocks.");
disableCrayfishFurnitureAchievements = config.getBoolean("disableCrayfishFurnitureAchievements", categoryTweaks, false, "Disables MrCrayfish's Furniture Mod achievements.");
extraUtilitiesTradingPostVillageNamesNitwitFilter = config.getBoolean("extraUtilitiesTradingPostVillageNamesNitwitFilter", categoryTweaks, true, "Filters Village Names Nitwit villagers from Extra Utilities Trading Post.");
proxyLLibraryPastebin = config.getBoolean("proxyLLibraryPastebin", categoryTweaks, false, "Use a pastebin proxy to keep LLibrary from crashing with some regional blocks.");
scaledExtraUtilitiesDarknessDamageMaxHealthFlat = config.getFloat("scaledExtraUtilitiesDarknessDamageMaxHealthFlat", categoryTweaks, 0f, 0f, 20000f, "Portion of max player health to remove each darkness tick.\nSet to 0 to disable.");
scaledExtraUtilitiesDarknessDamageMaxHealthMult = config.getFloat("scaledExtraUtilitiesDarknessDamageMaxHealthMult", categoryTweaks, 0f, 0f, 1f, "Portion of max player health to remove each darkness tick.\nSet to 0 to disable.");

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,13 @@ public List<String> getMixins(Set<String> loadedMods) {
BugTorchConfig.fixWitcheryLeavesOptifineRendering = false;
}
if(!loadedMods.contains("ExtraUtilities")) {
BugTorchConfig.extraUtilitiesTradingPostVillageNamesNitwitFilter = false;
BugTorchConfig.scaledExtraUtilitiesDarknessDamageMaxHealthFlat = 0;
BugTorchConfig.scaledExtraUtilitiesDarknessDamageMaxHealthMult = 0;
}
if(!loadedMods.contains("VillageNames")) {
BugTorchConfig.extraUtilitiesTradingPostVillageNamesNitwitFilter = false;
}

BugTorch.logger.info("Kicking off BugTorch late mixins.");
boolean client = FMLLaunchHandler.side().isClient();
Expand Down Expand Up @@ -86,10 +90,12 @@ public List<String> getMixins(Set<String> loadedMods) {
if(BugTorchConfig.disableCrayfishFurnitureAchievements) {
mixins.add("crayfishfurniture.tweak.MixinFurnitureAchievements");
}
if(BugTorchConfig.extraUtilitiesTradingPostVillageNamesNitwitFilter) {
mixins.add("extrautils.tweaks.MixinTileEntityTradingPost");
}
if(BugTorchConfig.proxyLLibraryPastebin) {
mixins.add("llibrary.fix.MixinWebUtils");
}

if(BugTorchConfig.scaledExtraUtilitiesDarknessDamageMaxHealthFlat > 0f || BugTorchConfig.scaledExtraUtilitiesDarknessDamageMaxHealthMult > 0f) {
mixins.add("extrautils.tweaks.damage.MixinDarknessDamage");
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package jss.bugtorch.mixins.late.extrautils.tweaks;

import com.rwtema.extrautils.tileentity.TileEntityTradingPost;
import jss.bugtorch.modsupport.VillageNamesSupport;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.IMerchant;
import net.minecraft.entity.passive.EntityVillager;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.Vec3;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Overwrite;
import org.spongepowered.asm.mixin.Shadow;

@Mixin(value = TileEntityTradingPost.class)
public abstract class MixinTileEntityTradingPost {

/**
* @author jss2a98aj
* @reason Filter out invalid Nitwit trades from Village Names
*/
@Overwrite(remap = false)
public boolean isValidVillager(IMerchant villager, boolean locationAlreadyChecked) {
if(!(villager instanceof EntityLiving)) {
return false;
}
EntityVillager entity = (EntityVillager)villager;
boolean mature = !entity.isChild() && entity.getProfession() != VillageNamesSupport.nitwit;
return mature && (locationAlreadyChecked || getAABB().isVecInside(Vec3.createVectorHelper(entity.posX, entity.posY, entity.posZ)));
}

@Shadow
public AxisAlignedBB getAABB() { return null; }

}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@

public class VillageNamesSupport {

public static int nitwit = 5;

public static void enableSupport() {
//Tweaks
if(BugTorchConfig.enableVillageNamesMetadataSensitiveTrades) {
Expand Down

0 comments on commit 87ced84

Please sign in to comment.