ThaumicEnergistics
46 merged pull requests.
Needs action on an existing world:
- [items disappear] #98 Essentia is now stored and moved natively by the ME system instead of through fluids and fake items. The Essentia Terminal, Essentia Level Emitter, Essentia Storage and Conversion Monitors, Wireless Essentia Terminal and Essentia Cell Workbench are replaced by the regular AE2 versions, and placed or stored ones convert on load. Encoded patterns for Essentia must be re-encoded by hand, and this needs the matching Applied Energistics 2 Unofficial build.
Every "Gaseous <Aspect>" fluid is gone, so empty tanks, fluid cells and fluid interfaces into an Essentia Cell first (essentia already in a cell carries over), and re-encode Essentia patterns by hand. The Wireless Essentia Terminal, Essentia Cell Workbench, Essentia Terminal, Level Emitter and Storage/Conversion Monitors convert to their AE2 versions on load, keeping their cell and settings.- [recipes changed] #104 Fixed the Arcane Terminal's contents showing up in other terminals after you used it. The deprecated Essentia Monitoring recipes and research are removed, because the AE2 terminals, level emitter, monitors and cell workbench handle essentia. The Essentia Cell Workbench recipe now turns into the AE2 Cell Workbench.
New Features
- #142 ModuleWaila gets NBT-based server data providers for PartVisInterface, PartArcaneCraftingTerminal and TileArcaneAssembler. The linked device count is computed server-side only while looked at. Adds DigiVisSourceData position, dimension and isSource helpers, new ThEStrings entries and en_US/ru_RU lang keys. - @Eldrinn-Elantey
- Added: Waila display of linked device count on Vis Relay Interface, Waila display of vis source position on Arcane Assembler, Arcane Crafting Terminal and provider interface
- #120 Updated GUI title colors in GuiArcaneCraftingTerminal, GuiArcaneAssembler, GuiDistillationPatternEncoder, and GuiKnowledgeInscriber; added icons to AEStateIconsEnum and registered upgrade cards in AEPartsEnum. - @Ranzuu
- Added: Knowledge Inscriber icons, upgrade card registration
- #118 Added item dropping logic to PartArcaneCraftingTerminal breakage handler. - @koolkrafter5
- Added: item dropping on break
- #111 Extended ModuleNEI, EssentiaItemContainerHelper, and AEEssentiaStack to register Arcane Crafting Terminal and Arcane Assembler as catalysts for ARI handlers. - @koolkrafter5
- Added: Aspect Recipe Index support, Arcane Assembler ARI catalyst
- #107 Extended ContainerPartArcaneCraftingTerminal slot handling to support swapping wand caps. - @lc-1337
- Added: wand cap swapping in Arcana Terminal
New Content
- #124 Updated research descriptions in language files and added GridAccessException handling in TileInfusionProvider and TileAdvancedInfusionProvider. - @koolkrafter5
Changes
- #133 Re-added IThEItems.WirelessEssentiaTerminal, populated in ThEItems from AEApi definitions().items().wirelessTerminal(). - @lc-1337
- #123 PartEssentiaLevelEmitter overrides getUltraLegacyType to return ESSENTIA_STACK_TYPE. Bumps AE2-Unofficial to rv3-beta-889, NEI and GTNHLib. - @lc-1337
- #119 Simplified tooltip generation in ItemEssentiaCell to remove duplicate information. - @Ranzuu
- Removed: redundant tooltip text
- Closes GTNH#24073
- #110 AEEssentiaStackType overrides getColorDefinition to return DARK_PURPLE. Also bumps AE2-Unofficial to rv3-beta-859, NEI, CodeChickenCore, GTNHLib, waila, BuildCraft, Baubles-Expanded, the gradle wrapper and settings convention. - @lc-1337
- Added: dark purple color for essentia in pattern info
- #98 Reimplements essentia handling on AE2's StackType API and removes the fluid and fake item workarounds. Most of the mod is rewritten to inherit from AE2 classes, and ThEPartBase and AEPartGridBlock are removed. The API loses IThEEssentiaGas, IThEInteractionHelper, IThEWirelessEssentiaTerminal, IEssentiaGrid and IEssentiaWatcher, among others. Depends on Applied-Energistics-2-Unofficial PR 958. - @Kogepan229
- Added: Native essentia storage through the AE2 stack type API, Essentia support in the regular terminal and level emitter
- Removed: Essentia as fluids and fake items, Separate Essentia Terminal and Essentia Level Emitter, Several addon API classes
- Fixed: Arcane Crafting Terminal not allowing CTRL+ to craft missing items, Arcane crafting terminal odd behaviour with large amounts of items, Thaumic Energistics configuration bug
- Migration: Every "Gaseous <Aspect>" fluid is gone, so empty tanks, fluid cells and fluid interfaces into an Essentia Cell first (essentia already in a cell carries over), and re-encode Essentia patterns by hand. The Wireless Essentia Terminal, Essentia Cell Workbench, Essentia Terminal, Level Emitter and Storage/Conversion Monitors convert to their AE2 versions on load, keeping their cell and settings.
- Closes GTNH#19232, GTNH#19917, GTNH#20193, GTNH#22966, GTNH#23110
Bug Fixes
- #145 TileProviderBase.setProviderColor now compares the old and new proxy color and, on the server, calls updateState on the grid node when the color changed. This replaces a commented-out block. - @Worive
- Fixed: colored essentia providers not connecting based on their color
- #144 ArcaneCraftingPattern now sets the stack size of any AE input with a size below 1 to 1 when it builds the ingredient list, so AE2's planning no longer divides by zero. - @micvog
- Fixed: Arcane Assembler dividing by zero on patterns with a zero-size ingredient, Warded Glass not craftable in the Arcane Assembler
- Closes GTNH#26762
- #143 PartEssentiaImportBus.importStuff sets this.worked = true when extractFromContainer returns more than 0, so the TickRateModulation reflects actual work. - @Ressed
- Fixed: Essentia Import Bus not setting the worked flag for AE2 tick rate modulation
- Closes GTNH#26900
- #141 PartVisInterface now extends appeng.parts.PartBasicState instead of AEBasePart, which sets the channel flag itself, so the manual REQUIRE_CHANNEL call from the earlier fix is removed. Idle power usage is set to 0, isActive is checked through the proxy, and the isActive override and memory card handling are reworked. - @Kogepan229
- Removed: Manual channel flag call and isActive override in the Vis Relay Interface
- Fixed: Vis relay interfaces not connecting properly, Memory Card not working on servers
- Migration: An intra-cycle regression fix. Vis Relay Interfaces keep their memory card links across the update.
- Closes GTNH#25891, GTNH#26385
- #140 PartVisInterface extends AEBasePart directly, whose AENetworkProxy has no grid flags by default. The constructor now calls setFlags(GridFlags.REQUIRE_CHANNEL), which the removed ThEPartBase grid block used to set for every part. - @Mrnikbobjeff
- Fixed: Vis Relay Interface not consuming an ME channel
- Migration: A regression introduced and removed inside the 2.9.0 cycle. Vis Relay Interfaces used one ME channel before and use one now.
- #139 EssentiaCellInventory.saveChanges cleans up NBT essentia keys up to getMaxTypes() instead of storedTypes, since legacy cells can store stacks sparsely. - @Kogepan229
- Fixed: Stale essentia entries in legacy cells
- #138 ItemEssentiaCell builds the color code from the aspect's integer color in &#RRGGBB format for contents and partitions, instead of the chat color string. - @Sanduhr32
- Fixed: Essentia showing up as nullX in formatted cell filters
- Closes GTNH#25916
- #137 EssentiaCellInventory.loadCellStacks now sets storedTypes and storedCount from the loaded stacks before writing them to NBT. - @Kogepan229
- Fixed: Overflow on old essentia cells
- Closes GTNH#25653
- #136 Replaces direct IPartHost and TileCableBus casts in ThEGuiHandler, DigiVisSourceData, ItemFocusAEWrench and TileProviderBase with Platform.getPartFromTE and Platform.selectPartFromTE. Bumps AE2-Unofficial to rv3-beta-982-GTNH, which is required. - @Kogepan229
- Fixed: Forge Multipart compatibility for AE2 parts
- #134 The three GUIs use GuiColors.GuiTextColorGray instead of color entries that no longer exist after the AE2 GUIColor changes. Bumps Applied-Energistics-2-Unofficial to rv3-beta-972-GTNH. - @Ranzuu
- Fixed: Missing GUI color crash kicking the player from the Arcane Assembler, Distillation Pattern Encoder and Knowledge Inscriber
- Closes GTNH#25047
- #132 Fixed GolemHooks watcher ID assignment logic to use valid IDs instead of -1, preventing NullPointerException in DataWatcher. - @YannickMG
- Fixed: Entity spawning crash with EndlessIds due to null watcher objects
- #128 EssentiaCellConfig.readFromNBT now reads the legacy partition data from the passed NBT with a null check. Before, it read the item's own tag, which could be null. Also bumps NEI, AE2, AspectRecipeIndex, waila, GTNHLib and Baubles-Expanded versions. - @Kogepan229
- Fixed: Client crash when inserting an essentia cell into the Cell Workbench
- Closes GTNH#24440
- #127 ItemCellMicroscope now does the drive scan on the server. A new Packet_C_CellMicroscopeScanFeedback, registered in NetworkHandler, sends the scan result to the client, which completes the scan through ScanManager. - @Kogepan229
- Added: Cell Microscope scan feedback packet
- Fixed: Cell Microscope could not scan cells inside drives
- #122 GuiArcaneCraftingTerminal constructor passes a reserved space reduced by 1 to setReservedSpace, correcting an offset introduced in PR #120. - @koolkrafter5
- Fixed: Arcane Crafting Terminal slots misaligned by 1 px
- #121 Added an InventoryAction.CRAFT_STACK branch in GuiArcaneCraftingTerminal and craftStackToHand in ContainerPartArcaneCraftingTerminal. craftStack now uses calculateMaxTimesToCraft, and Packet_S_NEIRecipe tries the alternate recipe candidates when the first extraction fails. - @czqwq
- Added: Ctrl+click crafting in the Arcane Crafting Terminal
- Fixed: Arcane Crafting Terminal item transfer failing, NEI recipe filling of arcane crystal slots
- #117 ContainerPartArcaneCraftingTerminal now fires PlayerEvent.ItemCraftedEvent on craft. ArcaneCrafingCost is renamed ArcaneCraftingCost and converted to a record with @Desugar, and GuiArcaneCraftingTerminal is updated to the accessors. - @koolkrafter5
- Fixed: primordial pearls consumed in Arcane Terminal recipes, missing warp when crafting in Arcane Terminal
- #114 ModuleNEI.ACTOverlayHandler is now abstract and split into vanilla, TCNEI and ARI handlers. The ARI handler reads slot indices from ArcaneSlotPositioner. Handlers register only when their mod is loaded, and AspectRecipeIndex is bumped to 1.0.7. - @koolkrafter5
- Fixed: NEI overlay button in Arcane Terminal with Aspect Recipe Index recipes
- #113 Replaced the custom SlotArcaneCraftingGrid with AE2's SlotCraftingMatrix in ContainerPartArcaneCraftingTerminal and deleted the old slot class. - @koolkrafter5
- Fixed: shift+click filling Arcane Terminal crafting grid slots
- #112 Corrected GUI rendering and container slot handling in GuiDistillationPatternEncoder and ContainerDistillationPatternEncoder. - @koolkrafter5
- Fixed: Distillation Pattern Encoder issues
- #109 TileArcaneAssembler.craftingTick now injects each output with MODULATE into the item inventory. It tracks which outputs were inserted and which were rejected, instead of simulating first and then injecting. - @lc-1337
- Fixed: Arcane Assembler voiding output items
- #106 Added @SideOnly(Side.CLIENT) to sendEncodePattern and sendResetAspect in Packet_S_DistillationEncoder, so EntityClientPlayerMP is not loaded when the packet class loads on a server. - @Kogepan229
- Fixed: Distillation Pattern Encoder crash
- #105 Adds deprecated compatibility API back: IThEWirelessEssentiaTerminal and IThEInteractionHelper.openWirelessTerminalGui, implemented in ThEInteractionHelper by opening the held wireless terminal through the AE2 wireless registry. ExtraCells2 dependency lines are added commented out. - @lc-1337
- Added: deprecated wireless essentia terminal API for ExtraCells2
- Fixed: crash on load with ExtraCells2
- Closes GTNH#23499
- #104 ContainerPartArcaneCraftingTerminal now calls super.onContainerClosed and uses Platform.isServer/isClient. FeatureEssentiaMonitoring is deleted along with its registry, recipe and research entries. FeatureCells gets the conversion and wireless recipes and a cell workbench conversion recipe, and the AE2 dependency is raised to rv3-beta-817. - @lc-1337
- Added: DEPRECATED tooltip on Wireless Essentia Terminal
- Removed: Essentia Monitoring feature, recipes for deprecated essentia monitoring items, research for deprecated essentia monitoring items
- Fixed: Arcane Terminal contents appearing in other terminals
- #102 Spelling corrections in en_US.lang, 4 lines changed, research page strings. - @Yoshy2002
- Fixed: typos in Thaumic Energistics research text
- #101 Corrected 'alter' to 'altar' in the TEINFPROV research page string in en_US.lang and ko_KR.lang. - @Yoshy2002
- Fixed: Infusion Provider research page typo: alter instead of altar
- Closes GTNH#23367
- #97 ArcaneCraftingPattern used to return the Knowledge Core from getPattern(), which is not an ICraftingPatternItem, so AE2 could not deserialize it. Adds ItemArcaneCraftingPattern, a technical item registered as ARCANE_PATTERN that stores the pattern NBT, and hides it from NEI on the client. The pattern no longer holds a reference to the Knowledge Core. - @zyf051520
- Added: Technical item for serializing Arcane Assembler patterns, hidden from NEI
- Fixed: Arcane Assembler crafting tasks missing from tree view, Pending Arcane Assembler tasks lost on save and load
- Migration: Any Arcane Assembler job that was already in flight before the update is gone; queue it again after updating.
- #95 Added a null check on the IMEInventory returned by the cell registry in ItemCellMicroscope.doCellScan, returning early when it is null. - @PLASMAchicken
- Fixed: Crash when scanning a drive with a fluid storage cell using the Cell Microscope
- Closes GTNH#18455
Removals
- #130 Deleted BlockEssentiaCellWorkbench, TileEssentiaCellWorkbench registration, ItemWirelessEssentiaTerminal, ItemBlockDeprecated, FeatureCells entries and unused texture enum entries; removed the wireless handler registration and the matching IThEBlocks/IThEItems API fields. ItemAEPart.getSubItems now skips deprecated parts. Follows AE2-Unofficial PR 1275. - @lc-1337
- Removed: Essentia Cell Workbench, Wireless Essentia Terminal, unused Essentia Level Emitter and GUI textures
Internal / Refactor
- #129 Removed setTypeWeight(2) from EssentiaCellInventory constructor and added getTypeWeight() returning 2 in ItemEssentiaCell. Bumps AE2-Unofficial to rv3-beta-928. - @lc-1337
- #126 AEEssentiaStackType implements getTestStack, returning a copy of a cached AEEssentiaStack(Aspect.AIR). - @lc-1337
- #96 Removed the ASM transformer classes (ThECore, AClassTransformer, ASMTransformer and the class transformers for CraftingTreeProcess, Aspect, EntityGolemBase and others), replaced by mixins. Enabled usesMixins, set mixinsPackage, dropped required-after:ThE-core, removed golemHooksTransformFailed checks, simplified EffectiveSide. - @Alexdoru
- Removed: ThE-core coremod
Documentation
- #100 Added GUI title and priority string localization keys to ThEStrings.java and updated language files (en_US, de_DE, ko_KR, ru_RU, zh_CN). - @Ranzuu
- Added: GUI title locale strings, priority string localizations
Chores
- #135 Replaced GuiColors.GuiTextColorGray with ColorUtils.guiTextColorGray in three GUI classes. Bumped NEI, AE2-Unofficial and GTNHLib (now devOnly) in dependencies.gradle. - @Ranzuu
- #131 Replaced ItemEssentiaCell.getTypeWeight with AEEssentiaStackType.getAmountPerByte returning 2, following AE2-Unofficial PR 1297. Bumped NEI, AE2, AspectRecipeIndex, Waila, BuildCraft, GTNHLib and Baubles-Expanded versions and the daemon JVM toolchain URLs. - @lc-1337
- #108 dependencies.gradle: runtimeOnly Baubles:1.0.4:dev replaced by Baubles-Expanded:2.2.6-GTNH:dev. - @Nikolay-Sitnikov
- Removed: Baubles runtime dependency
Contributors
Everyone who authored, reviewed or co-authored a change on this page, with how many of them:
@Kogepan229 (31), @lc-1337 (15), @koolkrafter5 (10), @UltraProdigy (8), @Dream-Master (7), @Ranzuu (6), @Nikolay-Sitnikov (3), @Caedis (2), @Guvante (2), @micvog (2), @PLASMAchicken (2), @Yoshy2002 (2), @Alexdoru (1), @Algent (1), @boubou19 (1), @claude (1), @Copilot (1), @czqwq (1), @Eldrinn-Elantey (1), @Luca-Guettinger (1), @Mrnikbobjeff (1), @Nana-Sakura (1), @Ressed (1), @Ruling-0 (1), @Sanduhr32 (1), @Worive (1), @YannickMG (1), @zyf051520 (1)