Postea ae2fc and ThE deprecated (#1275)

Co-authored-by: Martin Robertz <dream-master@gmx.net>
This commit is contained in:
lc-1337andMartin Robertz authored and GitHub committed 2026-05-10 16:20:55 +02:00
1 parent 755d827594
commit fd00f3fc24
5 files changed
+236 -1

No files matched your search

+4
View File
@@ -38,6 +38,8 @@ dependencies {
compileOnly("org.jetbrains:annotations:26.0.2")
compileOnly("com.github.GTNewHorizons:Postea:1.2.5:dev")
//Uncomment to add thermal expansion + foundation for testing
//runtimeOnlyNonPublishable('curse.maven:thermal-foundation-222880:2388753')
//runtimeOnlyNonPublishable('curse.maven:thermal-expansion-69163:2388759')
@@ -58,6 +60,8 @@ dependencies {
exclude module: "Hodgepodge"
}
runtimeOnlyNonPublishable("com.github.GTNewHorizons:Postea:1.2.5:dev")
runtimeOnlyNonPublishable("com.github.GTNewHorizons:DuraDisplay:1.4.2:dev")
runtimeOnlyNonPublishable('com.github.GTNewHorizons:Baubles-Expanded:2.2.11-GTNH:dev')
runtimeOnlyNonPublishable('thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev') {
+10
View File
@@ -41,6 +41,8 @@ import appeng.services.export.ExportProcess;
import appeng.services.export.ForgeExportConfig;
import appeng.util.InvTweakSortingModule;
import appeng.util.Platform;
import appeng.util.ThEConvertor;
import appeng.util.ae2fcConvertor;
import baubles.api.expanded.BaubleExpandedSlots;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.common.Loader;
@@ -216,6 +218,14 @@ public final class AppEng {
AELog.info("Post Initialization ( ended after " + start.elapsed(TimeUnit.MILLISECONDS) + "ms )");
}
@Mod.EventHandler
public void PostLoad(FMLPostInitializationEvent PostEvent) {
if (Platform.isPosteaLoaded) {
if (Platform.isAE2FCLoaded) ae2fcConvertor.postLoad();
if (Platform.isThaumicEnergisticsLoaded) ThEConvertor.postLoad();
}
}
@EventHandler
private void handleIMCEvent(final FMLInterModComms.IMCEvent event) {
final IMCHandler imcHandler = new IMCHandler();
+3 -1
View File
@@ -177,6 +177,8 @@ public class Platform {
public static final boolean isMultiPartLoaded = Loader.isModLoaded("ForgeMultipart");
public static final boolean isBaublesLoaded = Loader.isModLoaded("Baubles|Expanded");
public static final boolean isBackhandLoaded = Loader.isModLoaded("backhand");
public static final boolean isPosteaLoaded = Loader.isModLoaded("postea");
public static final boolean isThaumicEnergisticsLoaded = Loader.isModLoaded("thaumicenergistics");
static {
BYTE_LIMIT = new double[10];
@@ -1991,7 +1993,7 @@ public class Platform {
}
public static NBTTagCompound writeStackNBT(IAEStack<?> stack, NBTTagCompound tag) {
return writeStackNBT(stack, tag, false);
return writeStackNBT(stack, tag, true);
}
public static NBTTagCompound writeStackNBT(IAEStack<?> stack, NBTTagCompound tag, boolean isModern) {
+116
View File
@@ -0,0 +1,116 @@
package appeng.util;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.common.util.ForgeDirection;
import com.gtnewhorizons.postea.api.ItemStackReplacementManager;
import com.gtnewhorizons.postea.api.TileEntityReplacementManager;
import appeng.api.AEApi;
import appeng.api.config.RedstoneMode;
import appeng.api.storage.data.AEStackTypeRegistry;
import appeng.api.storage.data.IAEStackType;
public final class ThEConvertor {
private final static String thePart = "thaumicenergistics:part.base",
wireless = "thaumicenergistics:wireless.essentia.terminal";
private final static int emitter = 1, terminal = 4, mon = 7, conMon = 8;
private static int thePartID;
private static final String NBT_KEY_ASPECT_FILTER = "aspect", NBT_KEY_REDSTONE_MODE = "mode",
NBT_KEY_WANTED_AMOUNT = "wantedAmount", NBT_KEY_LOCKED = "Locked", NBT_KEY_TRACKED_ASPECT = "TrackedAspect",
NBT_KEY_OWNER = "Owner";
public static void postLoad() {
ItemStackReplacementManager.registerIDResolver(thePart, i -> thePartID = i);
TileEntityReplacementManager.tileEntityTransformer("BlockCableBus", (tag, world, chunk) -> {
for (int x = 0; x < 7; x++) {
final ForgeDirection side = ForgeDirection.getOrientation(x);
final NBTTagCompound def = tag.getCompoundTag("def:" + side.ordinal());
final NBTTagCompound extra = tag.getCompoundTag("extra:" + side.ordinal());
if (!def.hasNoTags() && !extra.hasNoTags()) {
if (!extra.hasKey(NBT_KEY_OWNER)) continue;
final int currentPartID = def.getInteger("id");
final int currentPartDamage = def.getInteger("Damage");
if (currentPartID != thePartID) continue;
if (currentPartDamage == emitter) {
extra.setString(
"REDSTONE_EMITTER",
extra.getInteger(NBT_KEY_REDSTONE_MODE) == 1 ? RedstoneMode.LOW_SIGNAL.name()
: RedstoneMode.HIGH_SIGNAL.name());
if (extra.hasKey(NBT_KEY_ASPECT_FILTER)) {
final NBTTagCompound config = extra.getCompoundTag("config");
final NBTTagCompound aspectNbt = new NBTTagCompound();
aspectNbt.setString("AspectTag", extra.getString(NBT_KEY_ASPECT_FILTER));
aspectNbt.setString("StackType", "essentia");
config.setTag("#0", aspectNbt);
extra.setTag("config", config);
}
if (!extra.hasKey(AEStackTypeFilter.NBT_FILTERS)) {
final AEStackTypeFilter typeFilters = new AEStackTypeFilter();
final IAEStackType<?> type = AEStackTypeRegistry.getType("essentia");
typeFilters.setOnlyEnabled(type);
typeFilters.writeToNBT(extra);
}
if (extra.hasKey(NBT_KEY_WANTED_AMOUNT))
extra.setLong("reportingValue", extra.getLong(NBT_KEY_WANTED_AMOUNT));
} else if (currentPartDamage == mon || currentPartDamage == conMon) {
if (extra.hasKey(NBT_KEY_TRACKED_ASPECT)) {
final NBTTagCompound aspectNbt = new NBTTagCompound();
aspectNbt.setString("AspectTag", extra.getString(NBT_KEY_TRACKED_ASPECT));
aspectNbt.setString("StackType", "essentia");
extra.setTag("configuredItem", aspectNbt);
}
if (extra.hasKey(NBT_KEY_LOCKED)) {
extra.setBoolean("isLocked", extra.getBoolean(NBT_KEY_LOCKED));
}
}
}
}
return null;
});
ItemStackReplacementManager.addSimpleReplacement(
thePart,
terminal,
AEApi.instance().definitions().parts().terminal().maybeStack(1).get(),
true);
ItemStackReplacementManager.addSimpleReplacement(
thePart,
emitter,
AEApi.instance().definitions().parts().levelEmitter().maybeStack(1).get(),
true);
ItemStackReplacementManager.addSimpleReplacement(
thePart,
mon,
AEApi.instance().definitions().parts().storageMonitor().maybeStack(1).get(),
true);
ItemStackReplacementManager.addSimpleReplacement(
thePart,
conMon,
AEApi.instance().definitions().parts().conversionMonitor().maybeStack(1).get(),
true);
ItemStackReplacementManager.addSimpleReplacement(
wireless,
AEApi.instance().definitions().items().wirelessTerminal().maybeStack(1).get(),
true);
}
}
@@ -0,0 +1,103 @@
package appeng.util;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.common.util.ForgeDirection;
import com.gtnewhorizons.postea.api.ItemStackReplacementManager;
import com.gtnewhorizons.postea.api.TileEntityReplacementManager;
import appeng.api.AEApi;
import appeng.util.item.AEFluidStackType;
public final class ae2fcConvertor {
private final static String ae2fcPatternEx = "ae2fc:part_fluid_pattern_terminal_ex",
ae2fcFluidEmitter = "ae2fc:part_fluid_level_emitter",
ae2fcWirelessFluidTerminal = "ae2fc:wireless_fluid_terminal",
ae2fcPattern = "ae2fc:part_fluid_pattern_terminal", ae2fcConvMon = "ae2fc:part_fluid_conversion_monitor",
ae2fcMon = "ae2fc:part_fluid_storage_monitor", ae2fcTerm = "ae2fc:part_fluid_terminal",
ae2fcFluidPacket = "ae2fc:fluid_packet";
private static int ae2fcEmitterID, ae2fcMonID, ae2fcConMonID, ae2fcPacketID;
public static void postLoad() {
ItemStackReplacementManager.registerIDResolver(ae2fcFluidEmitter, i -> ae2fcEmitterID = i);
ItemStackReplacementManager.registerIDResolver(ae2fcMon, i -> ae2fcMonID = i);
ItemStackReplacementManager.registerIDResolver(ae2fcConvMon, i -> ae2fcConMonID = i);
ItemStackReplacementManager.registerIDResolver(ae2fcFluidPacket, i -> ae2fcPacketID = i);
TileEntityReplacementManager.tileEntityTransformer("BlockCableBus", ((tag, world, chunk) -> {
for (int x = 0; x < 7; x++) {
final ForgeDirection side = ForgeDirection.getOrientation(x);
final NBTTagCompound def = tag.getCompoundTag("def:" + side.ordinal());
final NBTTagCompound extra = tag.getCompoundTag("extra:" + side.ordinal());
if (!def.hasNoTags() && !extra.hasNoTags()) {
final int currentPartID = def.getInteger("id");
if (currentPartID == ae2fcEmitterID) {
final NBTTagCompound config = extra.getCompoundTag("config");
final NBTTagCompound item = config.getCompoundTag("#0");
final int itemID = item.getInteger("id");
if (itemID == ae2fcPacketID) {
final NBTTagCompound packetNBT = item.getCompoundTag("tag");
final NBTTagCompound fluidStackNBT = packetNBT.getCompoundTag("FluidStack");
item.setString("FluidName", fluidStackNBT.getString("FluidName"));
item.setString("StackType", AEFluidStackType.FLUID_STACK_TYPE.getId());
}
if (!extra.hasKey(AEStackTypeFilter.NBT_FILTERS)) {
final AEStackTypeFilter typeFilters = new AEStackTypeFilter();
typeFilters.setOnlyEnabled(AEFluidStackType.FLUID_STACK_TYPE);
typeFilters.writeToNBT(extra);
}
} else if ((currentPartID == ae2fcMonID || currentPartID == ae2fcConMonID)
&& extra.hasKey("configuredItem")) {
final NBTTagCompound myItem = extra.getCompoundTag("configuredItem");
if (myItem.hasKey("FluidName"))
myItem.setString("StackType", AEFluidStackType.FLUID_STACK_TYPE.getId());
}
}
}
return null;
}));
// items
ItemStackReplacementManager.addSimpleReplacement(
ae2fcPatternEx,
AEApi.instance().definitions().parts().patternTerminalEx().maybeStack(1).get(),
true);
ItemStackReplacementManager.addSimpleReplacement(
ae2fcFluidEmitter,
AEApi.instance().definitions().parts().levelEmitter().maybeStack(1).get(),
true);
ItemStackReplacementManager.addSimpleReplacement(
ae2fcWirelessFluidTerminal,
AEApi.instance().definitions().items().wirelessTerminal().maybeStack(1).get(),
true);
ItemStackReplacementManager.addSimpleReplacement(
ae2fcPattern,
AEApi.instance().definitions().parts().patternTerminal().maybeStack(1).get(),
true);
ItemStackReplacementManager.addSimpleReplacement(
ae2fcConvMon,
AEApi.instance().definitions().parts().conversionMonitor().maybeStack(1).get(),
true);
ItemStackReplacementManager.addSimpleReplacement(
ae2fcMon,
AEApi.instance().definitions().parts().storageMonitor().maybeStack(1).get(),
true);
ItemStackReplacementManager.addSimpleReplacement(
ae2fcTerm,
AEApi.instance().definitions().parts().terminal().maybeStack(1).get(),
true);
}
}