mirror of
https://github.com/GTNewHorizons/Applied-Energistics-2-Unofficial.git
synced 2026-10-25 20:22:23 +00:00
Postea ae2fc and ThE deprecated (#1275)
Co-authored-by: Martin Robertz <dream-master@gmx.net>
This commit is contained in:
1 parent
755d827594
commit
fd00f3fc24
5 files changed
+236
-1
No files matched your search
@@ -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') {
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user