├── .github └── workflows │ └── build.yml ├── .gitignore ├── ExampleConfiguration.cfg ├── LICENSE ├── README.md ├── build.gradle.kts ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── settings.gradle.kts └── src └── main ├── java └── github │ └── kasuminova │ └── stellarcore │ ├── StellarCore.java │ ├── client │ ├── ClientProxy.java │ ├── gui │ │ ├── config │ │ │ ├── StellarConfigGUI.java │ │ │ └── StellarCoreGUIFactory.java │ │ ├── font │ │ │ ├── CachedRGBFontRenderer.java │ │ │ ├── RGBSettingsUtils.java │ │ │ ├── TextRenderFunction.java │ │ │ ├── TextRenderInfo.java │ │ │ └── TextWrapInfo.java │ │ └── widget │ │ │ └── config │ │ │ └── BooleanOption.java │ ├── handler │ │ └── ClientEventHandler.java │ ├── hitokoto │ │ ├── HitokotoAPI.java │ │ ├── HitokotoDeserializer.java │ │ └── HitokotoResult.java │ ├── hudcaching │ │ ├── HUDCaching.java │ │ └── LICENSE-Patcher_HUDCaching.md │ ├── integration │ │ ├── libnine │ │ │ └── L9ModScanner.java │ │ └── railcraft │ │ │ └── RCModelBaker.java │ ├── model │ │ ├── ModelLoaderRegistryRef.java │ │ └── ParallelModelLoaderAsyncBlackList.java │ ├── pool │ │ ├── BakedQuadPool.java │ │ ├── BlockFaceUVsPool.java │ │ ├── StellarUnpackedDataPool.java │ │ ├── TLMCubesItemPool.java │ │ └── TLMPositionTextureVertexPool.java │ ├── resource │ │ └── ResourceExistingCache.java │ ├── texture │ │ ├── SpriteBufferedImageCache.java │ │ └── StitcherCache.java │ └── util │ │ ├── AutoCanonizingStringMap.java │ │ ├── ClassSet.java │ │ ├── RenderUtils.java │ │ └── TitleUtils.java │ ├── common │ ├── CommonProxy.java │ ├── bugfix │ │ └── TileEntityContainerFixes.java │ ├── command │ │ ├── CommandStellarCore.java │ │ └── CommandStellarCoreClient.java │ ├── config │ │ ├── StellarCoreConfig.java │ │ ├── category │ │ │ ├── BugFixes.java │ │ │ ├── Debug.java │ │ │ ├── Features.java │ │ │ └── Performance.java │ │ └── element │ │ │ ├── Category.java │ │ │ ├── ConfigElement.java │ │ │ ├── ConfigElementPrimitive.java │ │ │ ├── ConfigElements.java │ │ │ ├── ElementBoolean.java │ │ │ ├── ElementDouble.java │ │ │ ├── ElementInteger.java │ │ │ └── ElementTypeAdapter.java │ ├── entity │ │ └── EntityForceUpdateManager.java │ ├── handler │ │ └── StellarCoreTickHandler.java │ ├── integration │ │ ├── censoredasm │ │ │ └── CensoredASMCompat.java │ │ ├── ebwizardry │ │ │ └── DispenserCastingCompat.java │ │ ├── fluxnetworks │ │ │ ├── FluxPlugAcceptor.java │ │ │ ├── IntegrationsFluxNetworks.java │ │ │ └── MekanismEnergyHandler.java │ │ ├── ftblib │ │ │ └── FTBLibInvUtilsQueue.java │ │ └── ftbquests │ │ │ └── FTBQInvListener.java │ ├── itemstack │ │ ├── ItemStackCapInitTask.java │ │ ├── ItemStackCapInitializer.java │ │ └── SharedEmptyTag.java │ ├── mod │ │ └── Mods.java │ ├── pool │ │ ├── AsyncCanonicalizePool.java │ │ ├── AsyncCanonicalizePoolBase.java │ │ ├── CanonicalizeTask.java │ │ ├── CanonicalizeWorker.java │ │ ├── DeferredCanonicalizable.java │ │ ├── LowerCaseStringPool.java │ │ ├── NBTTagPrimitivePool.java │ │ └── StringPool.java │ ├── util │ │ ├── BlockPos2IntMap.java │ │ ├── BlockPos2ValueMap.java │ │ ├── BlockPosSet.java │ │ ├── ClassUtils.java │ │ ├── ContainerTECache.java │ │ ├── FakeArrayList.java │ │ ├── FakeConcurrentLinkedQueue.java │ │ ├── FakeContainer.java │ │ ├── FastClearIdentityHashMap.java │ │ ├── HashedItemStack.java │ │ ├── HashedStackFluidPair.java │ │ ├── LargeNBTUtils.java │ │ ├── LinkedFakeArrayList.java │ │ ├── NBTTagBackingList.java │ │ ├── NBTTagBackingMap.java │ │ ├── NonNullList.java │ │ ├── NumberUtils.java │ │ ├── RandomUtils.java │ │ ├── RuntimeEnv.java │ │ ├── StackUtils.java │ │ ├── StellarEnvironment.java │ │ ├── StellarLog.java │ │ ├── TagListIterator.java │ │ ├── TagListListIterator.java │ │ ├── UTF8FileReader.java │ │ ├── UTF8FileWriter.java │ │ └── func │ │ │ └── Consumer4.java │ └── world │ │ └── ParallelRandomBlockTicker.java │ ├── mixin │ ├── StellarCoreEarlyMixinLoader.java │ ├── StellarCoreLateMixinLoader.java │ ├── advancedrocketry │ │ ├── MixinDimensionManager.java │ │ └── MixinItemBiomeChanger.java │ ├── ancientspellcraft │ │ └── MixinASFakePlayer.java │ ├── appeng │ │ ├── MixinCraftingGridCache.java │ │ ├── MixinFluidStackSizeRenderer.java │ │ └── MixinStackSizeRenderer.java │ ├── armourersworkshop │ │ └── MixinSkinTexture.java │ ├── astralsorcery │ │ ├── MixinContainerJournal.java │ │ ├── MixinKeyChainMining.java │ │ ├── MixinParticleEffectWatcher.java │ │ ├── MixinPlayerAttributeMap.java │ │ └── MixinTileNetworkSkybound.java │ ├── avaritia │ │ ├── MixinAvaritiaRecipeManager.java │ │ └── MixinTileBase.java │ ├── avaritiaddons │ │ └── MixinTileEntityExtremeAutoCrafter.java │ ├── betterchat │ │ └── MixinGuiBetterChat.java │ ├── biomesoplenty │ │ └── MixinBiomesOPlenty.java │ ├── bloodmagic │ │ └── MixinBloodAltar.java │ ├── botania │ │ ├── MixinCosmeticAttachRecipe.java │ │ ├── MixinCosmeticRemoveRecipe.java │ │ ├── MixinEntitySpark.java │ │ ├── MixinTileAlfPortal.java │ │ ├── MixinTilePylon.java │ │ └── MixinTileRuneAltar.java │ ├── cfm │ │ ├── MixinBlockFurnitureTile.java │ │ ├── MixinImageCache.java │ │ ├── MixinTileEntityCookieJar.java │ │ ├── MixinTileEntityDeskCabinet.java │ │ ├── MixinTileEntityFurniture.java │ │ ├── MixinTileEntityKitchenCounter.java │ │ ├── MixinTileEntityKitchenCounterDrawer.java │ │ ├── MixinTileEntitySyncClient.java │ │ ├── MixinTileEntityTVStand.java │ │ └── MixinTileEntityWashingMachine.java │ ├── chisel │ │ └── MixinTileAutoChisel.java │ ├── cofhcore │ │ ├── MixinContainerInventoryItem.java │ │ └── MixinTileInventory.java │ ├── ctm │ │ ├── MixinModelLoaderCTM.java │ │ └── MixinTextureMetadataHandler.java │ ├── cucumber │ │ └── MixinVanillaPacketDispatcher.java │ ├── customloadingscreen │ │ └── MixinModLoadingListener.java │ ├── customstartinggear │ │ └── MixinDataManager.java │ ├── deepmoblearning │ │ └── MixinDMLEnergyStorage.java │ ├── draconicevolution │ │ ├── MixinChaosWorldGenHandler.java │ │ ├── MixinPacketPlaceItem.java │ │ ├── MixinTileChaosCrystal.java │ │ ├── MixinTileCraftingInjector.java │ │ ├── MixinTileEnergyPylon.java │ │ └── MixinTileFusionCraftingCore.java │ ├── ebwizardry │ │ ├── MixinBlockImbuementAltar.java │ │ ├── MixinDispenserCastingData.java │ │ └── MixinWizardSpell.java │ ├── ebwizardry_early │ │ └── MixinTileEntityDispenser.java │ ├── endercore │ │ ├── InvokerIThing.java │ │ ├── MixinOreThing.java │ │ └── MixinThings.java │ ├── enderio │ │ ├── MixinCommune.java │ │ ├── MixinItemTools.java │ │ ├── MixinRecipe.java │ │ ├── MixinServerTickHandler.java │ │ └── MixinTileEntityBase.java │ ├── enderioconduits │ │ ├── AccessorTarget.java │ │ ├── InvokerNetworkedInventory.java │ │ ├── MixinAbstractConduit.java │ │ ├── MixinEnderLiquidConduitNetwork.java │ │ ├── MixinEnderLiquidConduitNetworkNetworkTankKey.java │ │ ├── MixinItemConduit.java │ │ ├── MixinNetworkedInventory.java │ │ └── MixinTileConduitBundle.java │ ├── enderioconduits_energy │ │ ├── AccessorReceptorEntry.java │ │ ├── MixinCapBankSupply.java │ │ ├── MixinNetworkPowerManager.java │ │ ├── MixinPowerConduitNetwork.java │ │ └── MixinReceptorEntry.java │ ├── enderutilities │ │ ├── MixinGuiContainerLargeStacks.java │ │ ├── MixinItemHandyBag.java │ │ ├── MixinItemNullifier.java │ │ └── MixinUtilItemModular.java │ ├── extrabotany │ │ ├── MixinClientProxy.java │ │ └── MixinTileManaLiquefaction.java │ ├── fluxnetworks │ │ ├── MixinCommonProxy.java │ │ ├── MixinConnectionTransfer.java │ │ ├── MixinFluxNetworkCache.java │ │ ├── MixinFluxNetworkServer.java │ │ └── MixinTOPIntegration.java │ ├── ftblib │ │ └── MixinInvUtils.java │ ├── ftbquests │ │ └── MixinFTBQuestsInventoryListener.java │ ├── gugu_utils │ │ └── MixinPacketSetContainerSlot.java │ ├── ic2 │ │ ├── AccessorGridChange.java │ │ ├── MixinBaseElectricItem.java │ │ ├── MixinBlockTileEntity.java │ │ ├── MixinElectricItemManager.java │ │ ├── MixinEnergyCalculatorLegGridData.java │ │ ├── MixinEnergyNetLocal.java │ │ ├── MixinGradualRecipe.java │ │ ├── MixinGrid.java │ │ ├── MixinItemArmorElectric.java │ │ ├── MixinItemBattery.java │ │ ├── MixinItemElectricTool.java │ │ ├── MixinItemUpgradeModule.java │ │ ├── MixinReflectionUtil.java │ │ └── MixinStackUtil.java │ ├── ic2_energynet │ │ ├── MixinEnergyCalculatorLeg.java │ │ ├── MixinGridData.java │ │ └── MixinGridUpdater.java │ ├── igi │ │ ├── MixinInGameInfoCore.java │ │ ├── MixinInfoItem.java │ │ ├── MixinPlayerHandler.java │ │ └── MixinTicker.java │ ├── immersiveengineering │ │ ├── MixinBlockIEMultiblock.java │ │ ├── MixinBlockIETileProvider.java │ │ ├── MixinEventHandler.java │ │ ├── MixinRecipeJerrycan.java │ │ ├── MixinThreadContributorSpecialsDownloader.java │ │ ├── MixinTileEntityArcFurnace.java │ │ ├── MixinTileEntityExcavator.java │ │ └── MixinTileEntityMultiblockMetal.java │ ├── jei │ │ └── MixinProxyCommonClient.java │ ├── legendarytooltips │ │ └── MixinTooltipDecor.java │ ├── libnine │ │ ├── MixinL9Models.java │ │ └── MixinResourceInjector.java │ ├── mek_top │ │ ├── MixinEnergyAcceptorWrapper.java │ │ └── MixinIStrictEnergyStorage.java │ ├── mekanism │ │ ├── MixinEnergyNetwork.java │ │ ├── MixinFrequency.java │ │ └── MixinPipeUtils.java │ ├── mets │ │ ├── MixinEnchantmentManager.java │ │ ├── MixinFirstAidLifeSupport.java │ │ ├── MixinForceFieldGenerator.java │ │ ├── MixinItemStackUtils.java │ │ ├── MixinLifeSupportRing.java │ │ ├── MixinNutritionSupply.java │ │ ├── MixinThoriumBattery.java │ │ └── MixinUniformElectricItem.java │ ├── minecraft │ │ ├── advancements │ │ │ └── MixinCriterionProgress.java │ │ ├── bakedmodel │ │ │ └── MixinSimpleBakedModel.java │ │ ├── bakedquad │ │ │ └── MixinBakedQuad.java │ │ ├── blockfaceuv │ │ │ └── MixinBlockFaceUV.java │ │ ├── blockpart │ │ │ └── MixinBlockPart.java │ │ ├── blockstateimpl │ │ │ └── MixinStateImplementation.java │ │ ├── chunktecache │ │ │ └── MixinChunk.java │ │ ├── chunktemap │ │ │ └── MixinChunk.java │ │ ├── chunktequeue │ │ │ └── MixinChunk.java │ │ ├── classmultimap │ │ │ └── MixinClassInheritanceMultiMap.java │ │ ├── entitytracker │ │ │ ├── MixinEntityTracker.java │ │ │ ├── MixinEntityTrackerEntry.java │ │ │ └── y_range │ │ │ │ └── MixinEntityTrackerEntry.java │ │ ├── forge │ │ │ ├── MixinASMDataTable.java │ │ │ ├── MixinSplashProgress.java │ │ │ ├── asmmodparser │ │ │ │ └── MixinASMModParser.java │ │ │ ├── bakedquad │ │ │ │ ├── MixinUnpackedBakedQuad.java │ │ │ │ └── vertexdata │ │ │ │ │ ├── MixinBakedQuad.java │ │ │ │ │ └── MixinUnpackedBakedQuad.java │ │ │ ├── capability │ │ │ │ └── MixinCapabilityDispatcher.java │ │ │ ├── chunkmanager │ │ │ │ ├── MixinForgeChunkManager.java │ │ │ │ └── MixinPlayerChunkMap.java │ │ │ ├── parallelmodelloader │ │ │ │ ├── AccessorBlockStateMapper.java │ │ │ │ ├── MixinModelBakery.java │ │ │ │ ├── MixinModelLoader.java │ │ │ │ ├── MixinModelLoaderRegistry.java │ │ │ │ ├── MixinModelManager.java │ │ │ │ └── MixinModelRotation.java │ │ │ └── registry │ │ │ │ └── MixinForgeRegistry.java │ │ ├── hudcaching │ │ │ ├── AccessorGuiIngameForge.java │ │ │ ├── EntityRendererMixin_HUDCaching.java │ │ │ ├── FramebufferMixin_HUDCaching.java │ │ │ ├── GlStateManagerMixin_HUDCaching.java │ │ │ ├── GuiIngameForgeMixin_HUDCaching.java │ │ │ ├── GuiIngameMixin_HUDCaching.java │ │ │ └── LICENSE-Patcher_HUDCaching.md │ │ ├── itemstack │ │ │ └── MixinItemStack.java │ │ ├── longnbtkiller │ │ │ ├── MixinNBTSizeTracker.java │ │ │ ├── MixinNBTTagCompound.java │ │ │ └── MixinNBTTagList.java │ │ ├── modelblock │ │ │ └── MixinModelBlock.java │ │ ├── nbtmaplist │ │ │ ├── MixinNBTTagCompound.java │ │ │ └── MixinNBTTagList.java │ │ ├── nbtpool │ │ │ ├── MixinNBTTagByte.java │ │ │ ├── MixinNBTTagCompound.java │ │ │ ├── MixinNBTTagDouble.java │ │ │ ├── MixinNBTTagFloat.java │ │ │ ├── MixinNBTTagInt.java │ │ │ ├── MixinNBTTagList.java │ │ │ ├── MixinNBTTagLong.java │ │ │ ├── MixinNBTTagShort.java │ │ │ └── MixinNBTTagString.java │ │ ├── nethandlerplayserver │ │ │ └── MixinNetHandlerPlayServer.java │ │ ├── nnlist │ │ │ └── MixinNonNullList.java │ │ ├── noglerror │ │ │ └── MixinGlStateManager.java │ │ ├── phys │ │ │ └── MixinAxisAlignedBB.java │ │ ├── property │ │ │ └── MixinPropertyEnum.java │ │ ├── randomtick │ │ │ └── MixinWorldServer.java │ │ ├── renderglobal │ │ │ └── MixinRenderGlobal.java │ │ ├── resourcelocation │ │ │ ├── MixinModelResourceLocation.java │ │ │ └── MixinResourceLocation.java │ │ ├── resourcelocation_async │ │ │ ├── MixinModelResourceLocation.java │ │ │ └── MixinResourceLocation.java │ │ ├── resources │ │ │ ├── MixinAbstractResourcePack.java │ │ │ ├── MixinDefaultResourcePack.java │ │ │ ├── MixinMinecraft.java │ │ │ ├── MixinModelLoader.java │ │ │ ├── MixinSimpleReloadableResourceManager.java │ │ │ └── MixinTextureMap.java │ │ ├── statemapperbase │ │ │ └── MixinStateMapperBase.java │ │ ├── stitcher │ │ │ ├── AccessorStitcher.java │ │ │ ├── MixinModelManager.java │ │ │ ├── MixinStitcher.java │ │ │ ├── MixinStitcherHolder.java │ │ │ ├── MixinStitcherSlot.java │ │ │ └── MixinTextureMap.java │ │ ├── texture │ │ │ └── MixinTextureMap.java │ │ ├── texture_load │ │ │ ├── MixinTextureAtlasSprite.java │ │ │ └── MixinTextureMap.java │ │ ├── world │ │ │ └── MixinWorld.java │ │ ├── world_load │ │ │ └── MixinMinecraft.java │ │ ├── world_pos_judgement │ │ │ └── MixinWorld.java │ │ ├── worldclient │ │ │ └── MixinWorldClient.java │ │ └── worldserver │ │ │ └── MixinWorldServer.java │ ├── modularrouters │ │ ├── MixinBufferHandler.java │ │ └── MixinTileEntityItemRouter.java │ ├── nco │ │ ├── MixinBasicRecipeHandler.java │ │ └── MixinRadiationCapabilityHandler.java │ ├── psi │ │ └── MixinPieceTrickPlaceBlock.java │ ├── rgbchat │ │ ├── MixinRGBChat.java │ │ └── MixinRGBSettings.java │ ├── scalingguis │ │ └── MixinJsonHelper.java │ ├── specialmobs │ │ └── MixinSpecialMobReplacer.java │ ├── sync │ │ └── MixinTileEntityDualVertical.java │ ├── sync_techguns │ │ └── MixinTileEntityDualVerticalTechguns.java │ ├── tconevo │ │ └── MixinAvaritiaMaterialModel.java │ ├── tconstruct │ │ ├── MixinCustomTextureCreator.java │ │ ├── MixinTileSmeltery.java │ │ └── MixinTinkerRegistry.java │ ├── techguns │ │ ├── MixinAmmoSumRecipe.java │ │ ├── MixinBioGunProjectile.java │ │ ├── MixinFlamethrowerProjectile.java │ │ ├── MixinTGDamageSource.java │ │ ├── MixinTGExtendedPlayer.java │ │ └── MixinTGPermissions.java │ ├── theoneprobe │ │ └── MixinRenderHelper.java │ ├── thermaldynamics │ │ └── MixinDuctUnitFluidSuper.java │ ├── thermalexpansion │ │ └── MixinContainerSatchelFilter.java │ ├── threng │ │ └── MixinInventoryRequest.java │ ├── tlm │ │ ├── MixinBonesItem.java │ │ ├── MixinCubesItem.java │ │ ├── MixinCustomResourcesLoader.java │ │ ├── MixinModelBoxFaceFloat.java │ │ └── MixinTexturedQuadFloat.java │ ├── util │ │ ├── AccessorBakedQuad.java │ │ ├── AccessorGridData.java │ │ ├── AccessorResourceLocation.java │ │ ├── AccessorStitcherHolder.java │ │ ├── AccessorStitcherSlot.java │ │ ├── CachedItemConduit.java │ │ ├── CanonicalizationCubesItem.java │ │ ├── ConcurrentModelLoaderRegistry.java │ │ ├── CustomLoadingScreenUtils.java │ │ ├── DefaultTextureGetter.java │ │ ├── DuctUniFluidSuperHandlerProxy.java │ │ ├── IC2EnergySyncCalcTask.java │ │ ├── ICapBankSupply.java │ │ ├── IFusionCraftingCore.java │ │ ├── IIThing.java │ │ ├── IMixinInGameInfoCore.java │ │ ├── IStellarEnergyCalculatorLeg.java │ │ ├── IStellarFluxNetwork.java │ │ ├── IStellarNetworkPowerManager.java │ │ ├── IStellarServerTickListener.java │ │ ├── ITileCraftingInjector.java │ │ ├── ReceptorPowerInterface.java │ │ ├── StellarCoreResourcePack.java │ │ ├── StellarItemStack.java │ │ ├── StellarNBTTagCompound.java │ │ ├── StellarNBTTagList.java │ │ ├── StellarNBTTagUnique.java │ │ ├── StellarPooledNBT.java │ │ ├── TagKeySet.java │ │ └── TinkerRegistryUtils.java │ └── vintagefix │ │ ├── MixinTextureCollector.java │ │ └── MixinVintageFixClient.java │ └── shaded │ └── org │ └── jctools │ ├── counters │ ├── Counter.java │ ├── CountersFactory.java │ ├── FixedSizeStripedLongCounter.java │ ├── FixedSizeStripedLongCounterV6.java │ ├── FixedSizeStripedLongCounterV8.java │ └── package-info.java │ ├── maps │ ├── AbstractEntry.java │ ├── ConcurrentAutoTable.java │ ├── NonBlockingHashMap.java │ ├── NonBlockingHashMapLong.java │ ├── NonBlockingHashSet.java │ ├── NonBlockingIdentityHashMap.java │ ├── NonBlockingSetInt.java │ └── package-info.java │ ├── queues │ ├── BaseLinkedQueue.java │ ├── BaseMpscLinkedArrayQueue.java │ ├── BaseSpscLinkedArrayQueue.java │ ├── ConcurrentCircularArrayQueue.java │ ├── ConcurrentSequencedCircularArrayQueue.java │ ├── IndexedQueueSizeUtil.java │ ├── LinkedArrayQueueUtil.java │ ├── LinkedQueueNode.java │ ├── MessagePassingQueue.java │ ├── MessagePassingQueueUtil.java │ ├── MpUnboundedXaddArrayQueue.java │ ├── MpUnboundedXaddChunk.java │ ├── MpmcArrayQueue.java │ ├── MpmcUnboundedXaddArrayQueue.java │ ├── MpmcUnboundedXaddChunk.java │ ├── MpscArrayQueue.java │ ├── MpscBlockingConsumerArrayQueue.java │ ├── MpscChunkedArrayQueue.java │ ├── MpscCompoundQueue.java │ ├── MpscGrowableArrayQueue.java │ ├── MpscLinkedQueue.java │ ├── MpscUnboundedArrayQueue.java │ ├── MpscUnboundedXaddArrayQueue.java │ ├── MpscUnboundedXaddChunk.java │ ├── QueueProgressIndicators.java │ ├── SpmcArrayQueue.java │ ├── SpscArrayQueue.java │ ├── SpscChunkedArrayQueue.java │ ├── SpscGrowableArrayQueue.java │ ├── SpscLinkedQueue.java │ ├── SpscUnboundedArrayQueue.java │ ├── SupportsIterator.java │ ├── atomic │ │ ├── AtomicQueueUtil.java │ │ ├── AtomicReferenceArrayQueue.java │ │ ├── BaseLinkedAtomicQueue.java │ │ ├── BaseMpscLinkedAtomicArrayQueue.java │ │ ├── BaseSpscLinkedAtomicArrayQueue.java │ │ ├── LinkedQueueAtomicNode.java │ │ ├── MpmcAtomicArrayQueue.java │ │ ├── MpscAtomicArrayQueue.java │ │ ├── MpscChunkedAtomicArrayQueue.java │ │ ├── MpscGrowableAtomicArrayQueue.java │ │ ├── MpscLinkedAtomicQueue.java │ │ ├── MpscUnboundedAtomicArrayQueue.java │ │ ├── SequencedAtomicReferenceArrayQueue.java │ │ ├── SpmcAtomicArrayQueue.java │ │ ├── SpscAtomicArrayQueue.java │ │ ├── SpscChunkedAtomicArrayQueue.java │ │ ├── SpscGrowableAtomicArrayQueue.java │ │ ├── SpscLinkedAtomicQueue.java │ │ ├── SpscUnboundedAtomicArrayQueue.java │ │ ├── package-info.java │ │ └── unpadded │ │ │ ├── BaseLinkedAtomicUnpaddedQueue.java │ │ │ ├── BaseMpscLinkedAtomicUnpaddedArrayQueue.java │ │ │ ├── BaseSpscLinkedAtomicUnpaddedArrayQueue.java │ │ │ ├── MpmcAtomicUnpaddedArrayQueue.java │ │ │ ├── MpscAtomicUnpaddedArrayQueue.java │ │ │ ├── MpscChunkedAtomicUnpaddedArrayQueue.java │ │ │ ├── MpscGrowableAtomicUnpaddedArrayQueue.java │ │ │ ├── MpscLinkedAtomicUnpaddedQueue.java │ │ │ ├── MpscUnboundedAtomicUnpaddedArrayQueue.java │ │ │ ├── SpmcAtomicUnpaddedArrayQueue.java │ │ │ ├── SpscAtomicUnpaddedArrayQueue.java │ │ │ ├── SpscChunkedAtomicUnpaddedArrayQueue.java │ │ │ ├── SpscGrowableAtomicUnpaddedArrayQueue.java │ │ │ ├── SpscLinkedAtomicUnpaddedQueue.java │ │ │ ├── SpscUnboundedAtomicUnpaddedArrayQueue.java │ │ │ └── package-info.java │ ├── package-info.java │ └── unpadded │ │ ├── BaseLinkedUnpaddedQueue.java │ │ ├── BaseMpscLinkedUnpaddedArrayQueue.java │ │ ├── BaseSpscLinkedUnpaddedArrayQueue.java │ │ ├── ConcurrentCircularUnpaddedArrayQueue.java │ │ ├── ConcurrentSequencedCircularUnpaddedArrayQueue.java │ │ ├── MpmcUnpaddedArrayQueue.java │ │ ├── MpscChunkedUnpaddedArrayQueue.java │ │ ├── MpscGrowableUnpaddedArrayQueue.java │ │ ├── MpscLinkedUnpaddedQueue.java │ │ ├── MpscUnboundedUnpaddedArrayQueue.java │ │ ├── MpscUnpaddedArrayQueue.java │ │ ├── SpmcUnpaddedArrayQueue.java │ │ ├── SpscChunkedUnpaddedArrayQueue.java │ │ ├── SpscGrowableUnpaddedArrayQueue.java │ │ ├── SpscLinkedUnpaddedQueue.java │ │ ├── SpscUnboundedUnpaddedArrayQueue.java │ │ ├── SpscUnpaddedArrayQueue.java │ │ └── package-info.java │ └── util │ ├── InternalAPI.java │ ├── PaddedAtomicLong.java │ ├── PortableJvmInfo.java │ ├── Pow2.java │ ├── RangeUtil.java │ ├── SpscLookAheadUtil.java │ ├── UnsafeAccess.java │ ├── UnsafeJvmInfo.java │ ├── UnsafeLongArrayAccess.java │ ├── UnsafeRefArrayAccess.java │ └── package-info.java └── resources ├── assets └── stellar_core │ ├── lang │ ├── en_US.lang │ └── zh_CN.lang │ └── textures │ └── logo.png ├── mcmod.info ├── mixins.stellar_core_advancedrocketry.json ├── mixins.stellar_core_ae.json ├── mixins.stellar_core_ancientspellcraft.json ├── mixins.stellar_core_armourers_workshop.json ├── mixins.stellar_core_astralsorcery.json ├── mixins.stellar_core_avaritia.json ├── mixins.stellar_core_avaritiaddons.json ├── mixins.stellar_core_betterchat.json ├── mixins.stellar_core_biomesoplenty.json ├── mixins.stellar_core_bloodmagic.json ├── mixins.stellar_core_botania.json ├── mixins.stellar_core_cfm.json ├── mixins.stellar_core_chisel.json ├── mixins.stellar_core_cofhcore.json ├── mixins.stellar_core_ctm.json ├── mixins.stellar_core_cucumber.json ├── mixins.stellar_core_customloadingscreen.json ├── mixins.stellar_core_customstartinggear.json ├── mixins.stellar_core_deepmoblearing.json ├── mixins.stellar_core_draconicevolution.json ├── mixins.stellar_core_draconicevolution_chunk.json ├── mixins.stellar_core_ebwizardry.json ├── mixins.stellar_core_ebwizardry_early.json ├── mixins.stellar_core_endercore.json ├── mixins.stellar_core_enderio.json ├── mixins.stellar_core_enderioconduits.json ├── mixins.stellar_core_enderioconduits_energy.json ├── mixins.stellar_core_enderutilities.json ├── mixins.stellar_core_extrabotany.json ├── mixins.stellar_core_fluxnetworks.json ├── mixins.stellar_core_forge.json ├── mixins.stellar_core_forge_asmdatatable.json ├── mixins.stellar_core_forge_asmmodparser.json ├── mixins.stellar_core_forge_bakedquad.json ├── mixins.stellar_core_forge_bakedquad_vertexdata.json ├── mixins.stellar_core_forge_capability.json ├── mixins.stellar_core_forge_chunkmanager.json ├── mixins.stellar_core_forge_modelloader.json ├── mixins.stellar_core_forge_registry.json ├── mixins.stellar_core_ftblib.json ├── mixins.stellar_core_ftbquests.json ├── mixins.stellar_core_guguutils.json ├── mixins.stellar_core_hudcaching.json ├── mixins.stellar_core_ic2.json ├── mixins.stellar_core_ic2_energynet.json ├── mixins.stellar_core_igi.json ├── mixins.stellar_core_immersiveengineering.json ├── mixins.stellar_core_jei.json ├── mixins.stellar_core_legendarytooltips.json ├── mixins.stellar_core_libnine.json ├── mixins.stellar_core_mek_top.json ├── mixins.stellar_core_mekanism.json ├── mixins.stellar_core_mets.json ├── mixins.stellar_core_minecraft_advancements.json ├── mixins.stellar_core_minecraft_bakedmodel.json ├── mixins.stellar_core_minecraft_bakedquad.json ├── mixins.stellar_core_minecraft_blockfaceuv.json ├── mixins.stellar_core_minecraft_blockpart.json ├── mixins.stellar_core_minecraft_blockstateimpl.json ├── mixins.stellar_core_minecraft_chunktecache.json ├── mixins.stellar_core_minecraft_chunktemap.json ├── mixins.stellar_core_minecraft_chunktequeue.json ├── mixins.stellar_core_minecraft_classmultimap.json ├── mixins.stellar_core_minecraft_entitytracker.json ├── mixins.stellar_core_minecraft_entitytracker_y_range.json ├── mixins.stellar_core_minecraft_itemstack_cap.json ├── mixins.stellar_core_minecraft_longnbtkiller.json ├── mixins.stellar_core_minecraft_modelblock.json ├── mixins.stellar_core_minecraft_nbtmaplist.json ├── mixins.stellar_core_minecraft_nbtpool.json ├── mixins.stellar_core_minecraft_nethandlerplayserver.json ├── mixins.stellar_core_minecraft_nnlist.json ├── mixins.stellar_core_minecraft_noglerror.json ├── mixins.stellar_core_minecraft_phys.json ├── mixins.stellar_core_minecraft_property.json ├── mixins.stellar_core_minecraft_randomtick.json ├── mixins.stellar_core_minecraft_renderglobal.json ├── mixins.stellar_core_minecraft_resourcelocation.json ├── mixins.stellar_core_minecraft_resourcelocation_async.json ├── mixins.stellar_core_minecraft_resourcepack.json ├── mixins.stellar_core_minecraft_statemapperbase.json ├── mixins.stellar_core_minecraft_stitcher.json ├── mixins.stellar_core_minecraft_texture_load.json ├── mixins.stellar_core_minecraft_texturemap.json ├── mixins.stellar_core_minecraft_world.json ├── mixins.stellar_core_minecraft_world_load.json ├── mixins.stellar_core_minecraft_world_pos_judgement.json ├── mixins.stellar_core_minecraft_worldclient.json ├── mixins.stellar_core_minecraft_worldserver.json ├── mixins.stellar_core_modularrouters.json ├── mixins.stellar_core_nco.json ├── mixins.stellar_core_psi.json ├── mixins.stellar_core_rgb_chat.json ├── mixins.stellar_core_scalingguis.json ├── mixins.stellar_core_specialmobs.json ├── mixins.stellar_core_sync.json ├── mixins.stellar_core_sync_techguns.json ├── mixins.stellar_core_tconevo.json ├── mixins.stellar_core_tconstruct.json ├── mixins.stellar_core_techguns.json ├── mixins.stellar_core_theoneprobe.json ├── mixins.stellar_core_thermaldynamics.json ├── mixins.stellar_core_thermalexpansion.json ├── mixins.stellar_core_threng.json ├── mixins.stellar_core_touhou_little_maid.json └── mixins.stellar_core_vintagefix.json /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: Build mod 2 | 3 | on: [ push, pull_request, workflow_dispatch ] 4 | 5 | jobs: 6 | build: 7 | name: Build mod 8 | runs-on: ubuntu-latest 9 | 10 | steps: 11 | - uses: actions/checkout@v3 12 | - name: Set up JDK 1.8 13 | uses: actions/setup-java@v3 14 | with: 15 | distribution: 'adopt' 16 | java-version: '8' 17 | - name: Grant execute permission for gradlew 18 | run: chmod +x gradlew 19 | - name: Build with Gradle 20 | run: ./gradlew -Pnet.minecraftforge.gradle.disableUpdateChecker=true build 21 | - name: Upload artifacts 22 | uses: actions/upload-artifact@v4 23 | with: 24 | name: StellarCore 25 | path: build/libs 26 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NovaEngineering-Source/StellarCore/47477615e390eed9a55c140e8af57f8cf209da70/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /settings.gradle.kts: -------------------------------------------------------------------------------- 1 | pluginManagement { 2 | repositories { 3 | maven { 4 | // RetroFuturaGradle 5 | name = "GTNH Maven" 6 | url = uri("http://jenkins.usrv.eu:8081/nexus/content/groups/public/") 7 | isAllowInsecureProtocol = true 8 | mavenContent { 9 | includeGroup("com.gtnewhorizons") 10 | includeGroup("com.gtnewhorizons.retrofuturagradle") 11 | } 12 | } 13 | gradlePluginPortal() 14 | mavenCentral() 15 | mavenLocal() 16 | } 17 | } 18 | 19 | plugins { 20 | // Automatic toolchain provisioning 21 | id("org.gradle.toolchains.foojay-resolver-convention") version "0.4.0" 22 | } 23 | 24 | rootProject.name = "StellarCore" 25 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/client/gui/config/StellarConfigGUI.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.client.gui.config; 2 | 3 | import github.kasuminova.mmce.client.gui.GuiScreenDynamic; 4 | 5 | public class StellarConfigGUI extends GuiScreenDynamic { 6 | 7 | public StellarConfigGUI(final Class cfgClass) { 8 | 9 | } 10 | 11 | @Override 12 | public void initGui() { 13 | 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/client/gui/config/StellarCoreGUIFactory.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.client.gui.config; 2 | 3 | import github.kasuminova.stellarcore.common.mod.Mods; 4 | import net.minecraft.client.Minecraft; 5 | import net.minecraft.client.gui.GuiScreen; 6 | import net.minecraftforge.fml.client.IModGuiFactory; 7 | 8 | import java.util.Collections; 9 | import java.util.Set; 10 | 11 | public class StellarCoreGUIFactory implements IModGuiFactory { 12 | 13 | @Override 14 | public void initialize(final Minecraft minecraftInstance) { 15 | 16 | } 17 | 18 | @Override 19 | public boolean hasConfigGui() { 20 | return Mods.MMCE.loaded(); 21 | } 22 | 23 | @Override 24 | public GuiScreen createConfigGui(final GuiScreen parentScreen) { 25 | return null; 26 | } 27 | 28 | @Override 29 | public Set runtimeGuiCategories() { 30 | return Collections.emptySet(); 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/client/gui/font/TextRenderFunction.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.client.gui.font; 2 | 3 | public interface TextRenderFunction { 4 | 5 | void renderText(float y, boolean dropShadow); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/client/gui/font/TextRenderInfo.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.client.gui.font; 2 | 3 | import com.github.bsideup.jabel.Desugar; 4 | 5 | import java.util.Objects; 6 | 7 | @Desugar 8 | public record TextRenderInfo(String info, int color) { 9 | 10 | @Override 11 | public boolean equals(final Object o) { 12 | if (o instanceof TextRenderInfo renderInfo) { 13 | return renderInfo.hashCode() == hashCode(); 14 | } 15 | return false; 16 | } 17 | 18 | @Override 19 | public int hashCode() { 20 | return Objects.hash(info, color); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/client/gui/font/TextWrapInfo.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.client.gui.font; 2 | 3 | import com.github.bsideup.jabel.Desugar; 4 | 5 | import java.util.Objects; 6 | 7 | @Desugar 8 | public record TextWrapInfo(String info, int wrapWidth) { 9 | 10 | @Override 11 | public boolean equals(final Object o) { 12 | if (o instanceof TextWrapInfo renderInfo) { 13 | return renderInfo.hashCode() == hashCode(); 14 | } 15 | return false; 16 | } 17 | 18 | @Override 19 | public int hashCode() { 20 | return Objects.hash(info, wrapWidth); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/client/gui/widget/config/BooleanOption.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.client.gui.widget.config; 2 | 3 | import github.kasuminova.mmce.client.gui.util.MousePos; 4 | import github.kasuminova.mmce.client.gui.util.RenderPos; 5 | import github.kasuminova.mmce.client.gui.util.RenderSize; 6 | import github.kasuminova.mmce.client.gui.widget.base.DynamicWidget; 7 | import github.kasuminova.mmce.client.gui.widget.base.WidgetGui; 8 | 9 | public class BooleanOption extends DynamicWidget { 10 | 11 | @Override 12 | public void render(final WidgetGui gui, final RenderSize renderSize, final RenderPos renderPos, final MousePos mousePos) { 13 | 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/client/integration/railcraft/RCModelBaker.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.client.integration.railcraft; 2 | 3 | import net.minecraft.client.renderer.block.model.IBakedModel; 4 | import net.minecraft.client.renderer.block.model.ModelResourceLocation; 5 | import net.minecraft.client.renderer.texture.TextureAtlasSprite; 6 | import net.minecraft.client.renderer.vertex.DefaultVertexFormats; 7 | import net.minecraft.util.ResourceLocation; 8 | import net.minecraftforge.client.model.IModel; 9 | 10 | import javax.annotation.Nullable; 11 | import java.util.Set; 12 | import java.util.function.Function; 13 | 14 | public class RCModelBaker { 15 | 16 | @Nullable 17 | public static IBakedModel load(final Set modelRL, final IModel model, Function textureGetter) { 18 | boolean detected = false; 19 | for (final ModelResourceLocation rl : modelRL) { 20 | if (rl.getNamespace().startsWith("railcraft")) { 21 | detected = true; 22 | break; 23 | } 24 | } 25 | if (detected) { 26 | synchronized (RCModelBaker.class) { 27 | return model.bake(model.getDefaultState(), DefaultVertexFormats.ITEM, textureGetter); 28 | } 29 | } 30 | return null; 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/client/model/ModelLoaderRegistryRef.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.client.model; 2 | 3 | import github.kasuminova.stellarcore.mixin.util.ConcurrentModelLoaderRegistry; 4 | 5 | public class ModelLoaderRegistryRef { 6 | 7 | public static ConcurrentModelLoaderRegistry instance = null; 8 | 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/client/model/ParallelModelLoaderAsyncBlackList.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.client.model; 2 | 3 | import github.kasuminova.stellarcore.client.util.ClassSet; 4 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 5 | 6 | import java.util.Arrays; 7 | 8 | public class ParallelModelLoaderAsyncBlackList extends ClassSet { 9 | 10 | public static final ParallelModelLoaderAsyncBlackList INSTANCE = new ParallelModelLoaderAsyncBlackList(); 11 | 12 | public void reload() { 13 | classSet.clear(); 14 | Arrays.stream(StellarCoreConfig.PERFORMANCE.vanilla.parallelModelLoaderBlackList) 15 | .forEach(className -> findClass(className).ifPresent(this::add)); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/client/util/ClassSet.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.client.util; 2 | 3 | import it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet; 4 | 5 | import java.util.Optional; 6 | import java.util.Set; 7 | 8 | public abstract class ClassSet { 9 | 10 | protected final Set> classSet = new ReferenceOpenHashSet<>(); 11 | 12 | public ClassSet() { 13 | reload(); 14 | } 15 | 16 | public abstract void reload(); 17 | 18 | public void add(Class clazz) { 19 | classSet.add(clazz); 20 | } 21 | 22 | public boolean isInSet(Class clazz) { 23 | return !classSet.isEmpty() && classSet.contains(clazz); 24 | } 25 | 26 | public static Optional> findClass(String name) { 27 | try { 28 | return Optional.of(Class.forName(name)); 29 | } catch (ClassNotFoundException e) { 30 | return Optional.empty(); 31 | } 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/common/config/category/Debug.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.common.config.category; 2 | 3 | import net.minecraftforge.common.config.Config; 4 | 5 | public class Debug { 6 | 7 | @Config.Name("EnableDebugLog") 8 | public boolean enableDebugLog = false; 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/common/config/element/Category.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.common.config.element; 2 | 3 | import java.lang.reflect.Field; 4 | import java.util.ArrayList; 5 | import java.util.List; 6 | 7 | public class Category implements ConfigElement { 8 | 9 | private final Object object; 10 | private final Field field; 11 | private final List elements; 12 | 13 | public Category(final Object object, final Field field, final List elements) { 14 | this.object = object; 15 | this.field = field; 16 | this.elements = elements; 17 | } 18 | 19 | public Category(final Object object, final Field field) { 20 | this.object = object; 21 | this.field = field; 22 | this.elements = new ArrayList<>(); 23 | } 24 | 25 | public Object getObject() { 26 | return object; 27 | } 28 | 29 | public void addElement(final ConfigElement element) { 30 | elements.add(element); 31 | } 32 | 33 | @Override 34 | public Object object() { 35 | return object; 36 | } 37 | 38 | @Override 39 | public Field field() { 40 | return field; 41 | } 42 | 43 | } 44 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/common/config/element/ConfigElement.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.common.config.element; 2 | 3 | import net.minecraftforge.common.config.Config; 4 | 5 | import java.lang.reflect.Field; 6 | 7 | public interface ConfigElement { 8 | 9 | default String name() { 10 | return field().getAnnotation(Config.Name.class).value(); 11 | } 12 | 13 | default String langKey() { 14 | Field field = field(); 15 | if (field.isAnnotationPresent(Config.LangKey.class)) { 16 | return field.getAnnotation(Config.LangKey.class).value(); 17 | } 18 | return field.getAnnotation(Config.Name.class).value(); 19 | } 20 | 21 | Object object(); 22 | 23 | Field field(); 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/common/config/element/ConfigElementPrimitive.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.common.config.element; 2 | 3 | public interface ConfigElementPrimitive extends ConfigElement { 4 | 5 | T get() throws IllegalAccessException; 6 | 7 | void set(final T value) throws IllegalAccessException; 8 | 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/common/config/element/ElementBoolean.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.common.config.element; 2 | 3 | import com.github.bsideup.jabel.Desugar; 4 | 5 | import java.lang.reflect.Field; 6 | 7 | @Desugar 8 | public record ElementBoolean(Object object, Field field) implements ConfigElementPrimitive { 9 | 10 | public Boolean get() throws IllegalAccessException { 11 | return field.getBoolean(object); 12 | } 13 | 14 | public void set(final Boolean newValue) throws IllegalAccessException { 15 | field.setBoolean(object, newValue); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/common/config/element/ElementDouble.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.common.config.element; 2 | 3 | import com.github.bsideup.jabel.Desugar; 4 | 5 | import java.lang.reflect.Field; 6 | 7 | @Desugar 8 | public record ElementDouble(Object object, Field field) implements ConfigElementPrimitive { 9 | 10 | public Double get() throws IllegalAccessException { 11 | return field.getDouble(object); 12 | } 13 | 14 | public void set(final Double newValue) throws IllegalAccessException { 15 | field.setDouble(object, newValue); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/common/config/element/ElementInteger.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.common.config.element; 2 | 3 | import com.github.bsideup.jabel.Desugar; 4 | import net.minecraftforge.common.config.Config; 5 | 6 | import java.lang.reflect.Field; 7 | 8 | @Desugar 9 | public record ElementInteger(Object object, Field field) implements ConfigElementPrimitive { 10 | 11 | @Override 12 | public Integer get() throws IllegalAccessException { 13 | return field.getInt(object); 14 | } 15 | 16 | public void set(final Integer newValue) throws IllegalAccessException { 17 | field.setInt(object, newValue); 18 | } 19 | 20 | public int getMin() { 21 | if (field.isAnnotationPresent(Config.RangeInt.class)) { 22 | return field.getAnnotation(Config.RangeInt.class).min(); 23 | } 24 | return Integer.MIN_VALUE; 25 | } 26 | 27 | public int getMax() { 28 | if (field.isAnnotationPresent(Config.RangeInt.class)) { 29 | return field.getAnnotation(Config.RangeInt.class).max(); 30 | } 31 | return Integer.MAX_VALUE; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/common/config/element/ElementTypeAdapter.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.common.config.element; 2 | 3 | import java.lang.reflect.Field; 4 | 5 | public interface ElementTypeAdapter { 6 | 7 | ConfigElement get(Object object, Field field); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/common/entity/EntityForceUpdateManager.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.common.entity; 2 | 3 | import github.kasuminova.stellarcore.client.util.ClassSet; 4 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 5 | import net.minecraftforge.event.entity.EntityEvent; 6 | import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; 7 | 8 | import java.util.Arrays; 9 | 10 | public class EntityForceUpdateManager extends ClassSet { 11 | 12 | public static final EntityForceUpdateManager INSTANCE = new EntityForceUpdateManager(); 13 | 14 | @SubscribeEvent 15 | public void onEntityCanUpdate(final EntityEvent.CanUpdate event) { 16 | if (isInSet(event.getEntity().getClass())) { 17 | event.setCanUpdate(true); 18 | } 19 | } 20 | 21 | @Override 22 | public void reload() { 23 | classSet.clear(); 24 | Arrays.stream(StellarCoreConfig.FEATURES.vanilla.forceUpdateEntityClasses) 25 | .forEach(className -> findClass(className).ifPresent(this::add)); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/common/integration/ebwizardry/DispenserCastingCompat.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.common.integration.ebwizardry; 2 | 3 | import electroblob.wizardry.data.DispenserCastingData; 4 | import net.minecraft.tileentity.TileEntityDispenser; 5 | import net.minecraftforge.fml.common.Optional; 6 | 7 | public class DispenserCastingCompat { 8 | 9 | @Optional.Method(modid = "ebwizardry") 10 | public static void handleEBWizardryUpdate(final TileEntityDispenser dispenser) { 11 | DispenserCastingData data = DispenserCastingData.get(dispenser); 12 | if (data != null) { 13 | data.update(); 14 | } 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/common/integration/fluxnetworks/FluxPlugAcceptor.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.common.integration.fluxnetworks; 2 | 3 | import mekanism.common.base.EnergyAcceptorWrapper; 4 | import net.minecraft.util.EnumFacing; 5 | import net.minecraftforge.energy.CapabilityEnergy; 6 | import sonar.fluxnetworks.common.tileentity.TileFluxPlug; 7 | 8 | public class FluxPlugAcceptor extends EnergyAcceptorWrapper.ForgeAcceptor { 9 | 10 | private final TileFluxPlug plug; 11 | 12 | public FluxPlugAcceptor(final TileFluxPlug plug, final EnumFacing side) { 13 | super(plug.getCapability(CapabilityEnergy.ENERGY, side)); 14 | this.plug = plug; 15 | } 16 | 17 | @Override 18 | public double acceptEnergy(final EnumFacing facing, final double amount, final boolean simulate) { 19 | double maxCanReceive = Math.min(plug.getMaxTransferLimit() - plug.getTransferBuffer(), amount / 2.5D); 20 | if (maxCanReceive >= Long.MAX_VALUE) { 21 | maxCanReceive = Long.MAX_VALUE; 22 | } 23 | return plug.getTransferHandler().receiveFromSupplier((long) maxCanReceive, facing, simulate) * 2.5D; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/common/integration/fluxnetworks/IntegrationsFluxNetworks.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.common.integration.fluxnetworks; 2 | 3 | import github.kasuminova.stellarcore.common.mod.Mods; 4 | import github.kasuminova.stellarcore.common.util.StellarLog; 5 | import net.minecraftforge.fml.common.Optional; 6 | import sonar.fluxnetworks.common.handler.TileEntityHandler; 7 | 8 | public class IntegrationsFluxNetworks { 9 | 10 | @Optional.Method(modid = "fluxnetworks") 11 | public static void preInit() { 12 | if (Mods.MEK.loaded() && !Mods.MEKCEU.loaded()) { 13 | initMekanismIntegration(); 14 | } 15 | } 16 | 17 | @Optional.Method(modid = "mekanism") 18 | public static void initMekanismIntegration() { 19 | //在列表头部插入适配器,保证不被其他类型覆盖结果。 20 | //Insert adapters in the head of the list to ensure that the results are not overwritten by other types. 21 | TileEntityHandler.tileEnergyHandlers.add(0, MekanismEnergyHandler.INSTANCE); 22 | StellarLog.LOG.info("Mekanism <===> FluxNetworks is initialized!"); 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/common/integration/ftblib/FTBLibInvUtilsQueue.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.common.integration.ftblib; 2 | 3 | import com.feed_the_beast.ftblib.lib.util.InvUtils; 4 | import it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet; 5 | import it.unimi.dsi.fastutil.objects.ReferenceSet; 6 | import net.minecraft.entity.player.EntityPlayer; 7 | import net.minecraftforge.fml.common.Optional; 8 | 9 | public class FTBLibInvUtilsQueue { 10 | 11 | public static final FTBLibInvUtilsQueue INSTANCE = new FTBLibInvUtilsQueue(); 12 | 13 | private final ReferenceSet requiredToUpdate = new ReferenceOpenHashSet<>(); 14 | 15 | private FTBLibInvUtilsQueue() { 16 | } 17 | 18 | @Optional.Method(modid = "ftblib") 19 | public void updateAll() { 20 | requiredToUpdate.forEach(player -> InvUtils.forceUpdate(player.inventoryContainer)); 21 | requiredToUpdate.clear(); 22 | } 23 | 24 | @Optional.Method(modid = "ftblib") 25 | public void enqueuePlayer(final EntityPlayer player) { 26 | requiredToUpdate.add(player); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/common/integration/ftbquests/FTBQInvListener.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.common.integration.ftbquests; 2 | 3 | import com.feed_the_beast.ftbquests.util.FTBQuestsInventoryListener; 4 | import it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet; 5 | import it.unimi.dsi.fastutil.objects.ReferenceSet; 6 | import net.minecraft.entity.player.EntityPlayerMP; 7 | import net.minecraft.item.ItemStack; 8 | import net.minecraftforge.fml.common.Optional; 9 | 10 | public class FTBQInvListener { 11 | 12 | public static final FTBQInvListener INSTANCE = new FTBQInvListener(); 13 | 14 | private final ReferenceSet requiredToDetect = new ReferenceOpenHashSet<>(); 15 | 16 | private FTBQInvListener() { 17 | } 18 | 19 | @Optional.Method(modid = "ftbquests") 20 | public void detect() { 21 | requiredToDetect.forEach(playerMP -> FTBQuestsInventoryListener.detect(playerMP, ItemStack.EMPTY, 0)); 22 | requiredToDetect.clear(); 23 | } 24 | 25 | @Optional.Method(modid = "ftbquests") 26 | public void addRequiredToDetect(EntityPlayerMP player) { 27 | requiredToDetect.add(player); 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/common/pool/AsyncCanonicalizePoolBase.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.common.pool; 2 | 3 | import javax.annotation.Nullable; 4 | import java.util.function.Consumer; 5 | 6 | public abstract class AsyncCanonicalizePoolBase { 7 | 8 | protected final CanonicalizeWorker worker = new CanonicalizeWorker<>(getName()); 9 | 10 | public AsyncCanonicalizePoolBase() { 11 | worker.start(); 12 | } 13 | 14 | public void canonicalizeAsync(final T target, final Consumer callback) { 15 | worker.offer(new CanonicalizeTask<>(() -> canonicalize(target), callback)); 16 | } 17 | 18 | public void canonicalizeDeferred(final DeferredCanonicalizable target) { 19 | worker.defer(target); 20 | } 21 | 22 | public abstract T canonicalize(@Nullable final T target); 23 | 24 | public CanonicalizeWorker getWorker() { 25 | return worker; 26 | } 27 | 28 | public abstract long getProcessedCount(); 29 | 30 | public abstract int getUniqueCount(); 31 | 32 | public abstract void clear(); 33 | 34 | protected abstract String getName(); 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/common/pool/CanonicalizeTask.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.common.pool; 2 | 3 | import javax.annotation.Nullable; 4 | import java.util.function.Consumer; 5 | import java.util.function.Supplier; 6 | 7 | public class CanonicalizeTask { 8 | 9 | private final Supplier task; 10 | private final Consumer callback; 11 | 12 | public CanonicalizeTask(final Supplier task, @Nullable final Consumer callback) { 13 | this.task = task; 14 | this.callback = callback; 15 | } 16 | 17 | public void execute() { 18 | T result = task.get(); 19 | if (callback != null) { 20 | callback.accept(result); 21 | } 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/common/pool/DeferredCanonicalizable.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.common.pool; 2 | 3 | public interface DeferredCanonicalizable { 4 | 5 | void canonicalizeAsync(); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/common/pool/StringPool.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.common.pool; 2 | 3 | import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet; 4 | 5 | import javax.annotation.Nullable; 6 | 7 | public class StringPool extends AsyncCanonicalizePoolBase { 8 | 9 | public static final StringPool INSTANCE = new StringPool(); 10 | 11 | private final ObjectOpenHashSet pool = new ObjectOpenHashSet<>(); 12 | private volatile long processedCount = 0; 13 | 14 | private StringPool() { 15 | } 16 | 17 | @Override 18 | public String canonicalize(@Nullable final String target) { 19 | if (target == null) { 20 | return null; 21 | } 22 | synchronized (pool) { 23 | processedCount++; 24 | return pool.addOrGet(target); 25 | } 26 | } 27 | 28 | @Override 29 | public long getProcessedCount() { 30 | return processedCount; 31 | } 32 | 33 | @Override 34 | public int getUniqueCount() { 35 | return pool.size(); 36 | } 37 | 38 | @Override 39 | protected String getName() { 40 | return "StringPool"; 41 | } 42 | 43 | @Override 44 | public void clear() { 45 | synchronized (pool) { 46 | processedCount = 0; 47 | pool.clear(); 48 | } 49 | } 50 | 51 | } 52 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/common/util/FastClearIdentityHashMap.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.common.util; 2 | 3 | import java.lang.invoke.MethodHandle; 4 | import java.lang.invoke.MethodHandles; 5 | import java.lang.reflect.Field; 6 | import java.util.IdentityHashMap; 7 | 8 | public class FastClearIdentityHashMap extends IdentityHashMap { 9 | 10 | private static final MethodHandle setTable; 11 | 12 | static { 13 | try { 14 | Field tableField = IdentityHashMap.class.getDeclaredField("table"); 15 | tableField.setAccessible(true); 16 | setTable = MethodHandles.lookup().unreflectSetter(tableField); 17 | } catch (NoSuchFieldException | IllegalAccessException e) { 18 | throw new RuntimeException(e); 19 | } 20 | } 21 | 22 | public FastClearIdentityHashMap() { 23 | } 24 | 25 | public FastClearIdentityHashMap(int expectedMaxSize) { 26 | super(expectedMaxSize); 27 | } 28 | 29 | @Override 30 | public void clear() { 31 | try { 32 | setTable.invoke(this, new Object[4]); 33 | } catch (Throwable e) { 34 | throw new RuntimeException(e); 35 | } 36 | super.clear(); 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/common/util/HashedStackFluidPair.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.common.util; 2 | 3 | import com.github.bsideup.jabel.Desugar; 4 | import net.minecraftforge.fluids.Fluid; 5 | 6 | @Desugar 7 | public record HashedStackFluidPair(HashedItemStack stack, Fluid fluid) { 8 | 9 | public HashedStackFluidPair copy() { 10 | return new HashedStackFluidPair(stack.copy(), fluid); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/common/util/LinkedFakeArrayList.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.common.util; 2 | 3 | import java.util.Collection; 4 | import java.util.LinkedList; 5 | 6 | /** 7 | * 这是一个假的 ArrayList,内部使用 LinkedList 封装。 8 | */ 9 | @SuppressWarnings({"StandardVariableNames", "unused", "CloneableClassInSecureContext", "MethodDoesntCallSuperMethod", "NonFinalClone"}) 10 | public class LinkedFakeArrayList extends FakeArrayList { 11 | 12 | public LinkedFakeArrayList(final int initialCapacity) { 13 | super(new LinkedList<>(), initialCapacity); 14 | } 15 | 16 | public LinkedFakeArrayList() { 17 | super(new LinkedList<>()); 18 | } 19 | 20 | public LinkedFakeArrayList(final Collection c) { 21 | super(new LinkedList<>(c)); 22 | } 23 | 24 | @Override 25 | public Object clone() { 26 | return new LinkedFakeArrayList<>(internal); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/common/util/NonNullList.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.common.util; 2 | 3 | import it.unimi.dsi.fastutil.objects.ObjectArrayList; 4 | 5 | import javax.annotation.Nullable; 6 | import java.util.List; 7 | 8 | public class NonNullList extends net.minecraft.util.NonNullList { 9 | 10 | public NonNullList() { 11 | this(new ObjectArrayList<>(), null); 12 | } 13 | 14 | public NonNullList(final List delegateIn, @Nullable final E listType) { 15 | super(delegateIn, listType); 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/common/util/RandomUtils.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.common.util; 2 | 3 | import java.util.concurrent.ThreadLocalRandom; 4 | 5 | public class RandomUtils { 6 | 7 | public static int nextInt(int bound) { 8 | return ThreadLocalRandom.current().nextInt(bound); 9 | } 10 | 11 | public static int nextInt() { 12 | return ThreadLocalRandom.current().nextInt(); 13 | } 14 | 15 | public static float nextFloat() { 16 | return ThreadLocalRandom.current().nextFloat(); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/common/util/RuntimeEnv.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.common.util; 2 | 3 | @SuppressWarnings("unused") 4 | public class RuntimeEnv { 5 | private RuntimeEnv() { 6 | } 7 | 8 | public static final boolean IS_CLEANROOM_LOADER = isClassInPath("com.cleanroommc.common.CleanroomContainer"); 9 | 10 | public static boolean isClassInPath(String className) { 11 | String classPath = className.replace('.', '/') + ".class"; 12 | try { 13 | return Thread.currentThread().getContextClassLoader().getResource(classPath) != null; 14 | } catch (Throwable e) { 15 | return false; 16 | } 17 | } 18 | 19 | public static boolean isClassLoaded(String className) { 20 | try { 21 | Class.forName(className); 22 | return true; 23 | } catch (Throwable e) { 24 | return false; 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/common/util/StackUtils.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.common.util; 2 | 3 | import net.minecraft.init.Items; 4 | import net.minecraft.item.Item; 5 | import net.minecraft.item.ItemStack; 6 | import net.minecraft.nbt.NBTTagCompound; 7 | 8 | public class StackUtils { 9 | 10 | public static ItemStack loadStackWithNonCap(final NBTTagCompound stackTag) { 11 | Item item = stackTag.hasKey("id", 8) ? Item.getByNameOrId(stackTag.getString("id")) : Items.AIR; 12 | if (item == null) { 13 | return ItemStack.EMPTY; 14 | } 15 | 16 | int stackSize = stackTag.getByte("Count"); 17 | int itemDamage = Math.max(0, stackTag.getShort("Damage")); 18 | ItemStack stack = new ItemStack(item, stackSize, itemDamage, null); 19 | if (stackTag.hasKey("tag", 10)) { 20 | stack.setTagCompound(stackTag.getCompoundTag("tag")); 21 | } 22 | return stack; 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/common/util/StellarEnvironment.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.common.util; 2 | 3 | import github.kasuminova.stellarcore.mixin.StellarCoreEarlyMixinLoader; 4 | 5 | public class StellarEnvironment { 6 | 7 | private static int processors = 0; 8 | 9 | /** 10 | * 在 {@link StellarCoreEarlyMixinLoader} 处静态加载处调用,主要防止线程亲和导致始终返回 1 的问题。 11 | */ 12 | public static void init() { 13 | processors = Runtime.getRuntime().availableProcessors(); 14 | StellarLog.LOG.info("[StellarEnvironment] Processor count: {}", processors); 15 | if (!shouldParallel()) { 16 | StellarLog.LOG.warn("[StellarEnvironment] Processor count is less than 3, parallel processing is disabled."); 17 | } else { 18 | StellarLog.LOG.info("[StellarEnvironment] Parallel execution is enabled."); 19 | } 20 | } 21 | 22 | public static boolean shouldParallel() { 23 | return processors > 2; 24 | } 25 | 26 | public static int getConcurrency() { 27 | return shouldParallel() ? processors : 1; 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/common/util/StellarLog.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.common.util; 2 | 3 | import org.apache.logging.log4j.LogManager; 4 | import org.apache.logging.log4j.Logger; 5 | 6 | public class StellarLog { 7 | 8 | public static final Logger LOG = LogManager.getLogger("stellar_core"); 9 | public static final String LOG_PREFIX = "[STELLAR_CORE]" + ' '; 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/common/util/UTF8FileReader.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.common.util; 2 | 3 | import java.io.File; 4 | import java.io.FileInputStream; 5 | import java.io.IOException; 6 | import java.io.InputStreamReader; 7 | import java.nio.charset.StandardCharsets; 8 | 9 | public class UTF8FileReader extends InputStreamReader { 10 | 11 | public UTF8FileReader(File file) throws IOException { 12 | super(new FileInputStream(file), StandardCharsets.UTF_8); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/common/util/UTF8FileWriter.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.common.util; 2 | 3 | import java.io.File; 4 | import java.io.FileOutputStream; 5 | import java.io.IOException; 6 | import java.io.OutputStreamWriter; 7 | import java.nio.charset.StandardCharsets; 8 | 9 | public class UTF8FileWriter extends OutputStreamWriter { 10 | 11 | public UTF8FileWriter(File file) throws IOException { 12 | super(new FileOutputStream(file), StandardCharsets.UTF_8); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/common/util/func/Consumer4.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.common.util.func; 2 | 3 | @FunctionalInterface 4 | public interface Consumer4 { 5 | 6 | void accept(P1 p1, P2 p2, P3 p3, P4 p4); 7 | 8 | default Consumer4 andThen(Consumer4 after) { 9 | return (p1, p2, p3, p4) -> { 10 | accept(p1, p2, p3, p4); 11 | after.accept(p1, p2, p3, p4); 12 | }; 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/appeng/MixinFluidStackSizeRenderer.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.appeng; 2 | 3 | import appeng.fluids.client.render.FluidStackSizeRenderer; 4 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.injection.Constant; 7 | import org.spongepowered.asm.mixin.injection.ModifyConstant; 8 | 9 | @SuppressWarnings("MethodMayBeStatic") 10 | @Mixin(value = FluidStackSizeRenderer.class, remap = false) 11 | public class MixinFluidStackSizeRenderer { 12 | 13 | @ModifyConstant(method = "renderStackSize", constant = @Constant(floatValue = 0.5F)) 14 | public float onRenderStackSize(final float ci) { 15 | return StellarCoreConfig.FEATURES.fontScale.ae2; 16 | } 17 | 18 | @ModifyConstant(method = "renderStackSize", constant = {@Constant(intValue = 0), @Constant(intValue = -1)}) 19 | public int onRenderStackSize(final int ci) { 20 | if (ci == -1) { 21 | return 0; 22 | } 23 | return ci; 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/appeng/MixinStackSizeRenderer.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.appeng; 2 | 3 | import appeng.client.render.StackSizeRenderer; 4 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.injection.Constant; 7 | import org.spongepowered.asm.mixin.injection.ModifyConstant; 8 | 9 | /** 10 | * 允许自行调节小字体的缩放。 11 | */ 12 | @Mixin(value = StackSizeRenderer.class, remap = false) 13 | @SuppressWarnings("MethodMayBeStatic") 14 | public class MixinStackSizeRenderer { 15 | 16 | @ModifyConstant(method = "renderStackSize", constant = @Constant(floatValue = 0.5F)) 17 | public float onRenderStackSize(final float ci) { 18 | return StellarCoreConfig.FEATURES.fontScale.ae2; 19 | } 20 | 21 | @ModifyConstant(method = "renderStackSize", constant = {@Constant(intValue = 0), @Constant(intValue = -1)}) 22 | public int onRenderStackSize(final int ci) { 23 | if (ci == -1) { 24 | return 0; 25 | } 26 | return ci; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/astralsorcery/MixinKeyChainMining.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.astralsorcery; 2 | 3 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 4 | import hellfirepvp.astralsorcery.common.constellation.perk.tree.nodes.key.KeyChainMining; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.injection.At; 7 | import org.spongepowered.asm.mixin.injection.Inject; 8 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 9 | 10 | @Mixin(KeyChainMining.class) 11 | @SuppressWarnings("MethodMayBeStatic") 12 | public class MixinKeyChainMining { 13 | 14 | /** 15 | * @author Kasumi_Nova 16 | * @reason 配置文件不让禁用,那就把方法爆了。 17 | */ 18 | @Inject(method = "onBreak", at = @At("HEAD"), cancellable = true, remap = false) 19 | public void onBreak(final CallbackInfo ci) { 20 | if (StellarCoreConfig.FEATURES.astralSorcery.disableChainMining) { 21 | ci.cancel(); 22 | } 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/astralsorcery/MixinTileNetworkSkybound.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.astralsorcery; 2 | 3 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 4 | import hellfirepvp.astralsorcery.common.tile.base.TileNetwork; 5 | import hellfirepvp.astralsorcery.common.tile.base.TileNetworkSkybound; 6 | import org.spongepowered.asm.mixin.Mixin; 7 | import org.spongepowered.asm.mixin.Shadow; 8 | import org.spongepowered.asm.mixin.injection.At; 9 | import org.spongepowered.asm.mixin.injection.Inject; 10 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 11 | 12 | @Mixin(value = TileNetworkSkybound.class, remap = false) 13 | public class MixinTileNetworkSkybound extends TileNetwork { 14 | 15 | @Shadow 16 | protected boolean doesSeeSky; 17 | 18 | @Inject(method = "updateSkyState", at = @At("HEAD"), cancellable = true) 19 | protected void updateSkyState(final boolean seesSky, final CallbackInfo ci) { 20 | if (!StellarCoreConfig.PERFORMANCE.astralSorcery.tileNetworkSkybound) { 21 | return; 22 | } 23 | 24 | if (this.doesSeeSky != seesSky) { 25 | this.doesSeeSky = seesSky; 26 | markForUpdate(); 27 | } 28 | 29 | ci.cancel(); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/avaritia/MixinTileBase.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.avaritia; 2 | 3 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 4 | import morph.avaritia.tile.TileBase; 5 | import net.minecraft.tileentity.TileEntity; 6 | import org.spongepowered.asm.mixin.Mixin; 7 | import org.spongepowered.asm.mixin.Unique; 8 | import org.spongepowered.asm.mixin.injection.At; 9 | import org.spongepowered.asm.mixin.injection.Inject; 10 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 11 | 12 | @Mixin(TileBase.class) 13 | public class MixinTileBase extends TileEntity { 14 | 15 | /** 16 | * @author Kasumi_Nova 17 | * @reason 移除不必要的同步。 18 | */ 19 | @Inject(method = "markDirty", at = @At("HEAD"), cancellable = true) 20 | public void markDirty(final CallbackInfo ci) { 21 | if (StellarCoreConfig.PERFORMANCE.avaritia.tileBase) { 22 | superMarkDirty(); 23 | ci.cancel(); 24 | } 25 | } 26 | 27 | @Unique 28 | private void superMarkDirty() { 29 | super.markDirty(); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/biomesoplenty/MixinBiomesOPlenty.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.biomesoplenty; 2 | 3 | import biomesoplenty.common.remote.TrailManager; 4 | import biomesoplenty.core.BiomesOPlenty; 5 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 6 | import org.spongepowered.asm.mixin.Mixin; 7 | import org.spongepowered.asm.mixin.injection.At; 8 | import org.spongepowered.asm.mixin.injection.Redirect; 9 | 10 | import java.util.concurrent.CompletableFuture; 11 | 12 | 13 | @Mixin(BiomesOPlenty.class) 14 | public class MixinBiomesOPlenty { 15 | 16 | /** 17 | * 主线程执行网络操作,罪大恶极! 18 | */ 19 | @Redirect(method = "preInit", 20 | at = @At( 21 | value = "INVOKE", 22 | target = "Lbiomesoplenty/common/remote/TrailManager;retrieveTrails()V", 23 | remap = false), 24 | remap = false) 25 | @SuppressWarnings("MethodMayBeStatic") 26 | private void onPreInit() { 27 | if (StellarCoreConfig.PERFORMANCE.biomesOPlenty.trailManager) { 28 | CompletableFuture.runAsync(TrailManager::retrieveTrails); 29 | return; 30 | } 31 | TrailManager.retrieveTrails(); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/cfm/MixinTileEntityCookieJar.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.cfm; 2 | 3 | import com.mrcrayfish.furniture.tileentity.TileEntityCookieJar; 4 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 5 | import net.minecraft.block.state.IBlockState; 6 | import net.minecraft.tileentity.TileEntity; 7 | import net.minecraft.util.math.BlockPos; 8 | import net.minecraft.world.World; 9 | import org.spongepowered.asm.mixin.Mixin; 10 | import org.spongepowered.asm.mixin.Unique; 11 | 12 | import javax.annotation.Nonnull; 13 | 14 | @Mixin(TileEntityCookieJar.class) 15 | public class MixinTileEntityCookieJar extends TileEntity { 16 | 17 | @Unique 18 | @Override 19 | public boolean shouldRefresh(@Nonnull final World world, 20 | @Nonnull final BlockPos pos, 21 | @Nonnull final IBlockState oldState, 22 | @Nonnull final IBlockState newSate) { 23 | if (!StellarCoreConfig.BUG_FIXES.mrCrayfishFurniture.rotatableFurniture) { 24 | return super.shouldRefresh(world, pos, oldState, newSate); 25 | } 26 | return oldState.getBlock() != newSate.getBlock(); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/cfm/MixinTileEntityDeskCabinet.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.cfm; 2 | 3 | import com.mrcrayfish.furniture.tileentity.TileEntityDeskCabinet; 4 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 5 | import net.minecraft.block.state.IBlockState; 6 | import net.minecraft.tileentity.TileEntity; 7 | import net.minecraft.util.math.BlockPos; 8 | import net.minecraft.world.World; 9 | import org.spongepowered.asm.mixin.Mixin; 10 | import org.spongepowered.asm.mixin.Unique; 11 | 12 | import javax.annotation.Nonnull; 13 | 14 | @Mixin(TileEntityDeskCabinet.class) 15 | public class MixinTileEntityDeskCabinet extends TileEntity { 16 | 17 | @Unique 18 | @Override 19 | public boolean shouldRefresh(@Nonnull final World world, 20 | @Nonnull final BlockPos pos, 21 | @Nonnull final IBlockState oldState, 22 | @Nonnull final IBlockState newSate) 23 | { 24 | if (!StellarCoreConfig.BUG_FIXES.mrCrayfishFurniture.rotatableFurniture) { 25 | return super.shouldRefresh(world, pos, oldState, newSate); 26 | } 27 | return oldState.getBlock() != newSate.getBlock(); 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/cfm/MixinTileEntityFurniture.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.cfm; 2 | 3 | import com.mrcrayfish.furniture.tileentity.TileEntityFurniture; 4 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 5 | import net.minecraft.block.state.IBlockState; 6 | import net.minecraft.tileentity.TileEntity; 7 | import net.minecraft.util.math.BlockPos; 8 | import net.minecraft.world.World; 9 | import org.spongepowered.asm.mixin.Mixin; 10 | import org.spongepowered.asm.mixin.Unique; 11 | 12 | import javax.annotation.Nonnull; 13 | 14 | @Mixin(TileEntityFurniture.class) 15 | public class MixinTileEntityFurniture extends TileEntity { 16 | 17 | @Unique 18 | @Override 19 | public boolean shouldRefresh(@Nonnull final World world, 20 | @Nonnull final BlockPos pos, 21 | @Nonnull final IBlockState oldState, 22 | @Nonnull final IBlockState newSate) 23 | { 24 | if (!StellarCoreConfig.BUG_FIXES.mrCrayfishFurniture.rotatableFurniture) { 25 | return super.shouldRefresh(world, pos, oldState, newSate); 26 | } 27 | return oldState.getBlock() != newSate.getBlock(); 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/cfm/MixinTileEntityKitchenCounter.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.cfm; 2 | 3 | import com.mrcrayfish.furniture.tileentity.TileEntityKitchenCounter; 4 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 5 | import net.minecraft.block.state.IBlockState; 6 | import net.minecraft.tileentity.TileEntity; 7 | import net.minecraft.util.math.BlockPos; 8 | import net.minecraft.world.World; 9 | import org.spongepowered.asm.mixin.Mixin; 10 | import org.spongepowered.asm.mixin.Unique; 11 | 12 | import javax.annotation.Nonnull; 13 | 14 | @Mixin(TileEntityKitchenCounter.class) 15 | public class MixinTileEntityKitchenCounter extends TileEntity { 16 | 17 | @Unique 18 | @Override 19 | public boolean shouldRefresh(@Nonnull final World world, 20 | @Nonnull final BlockPos pos, 21 | @Nonnull final IBlockState oldState, 22 | @Nonnull final IBlockState newSate) { 23 | if (!StellarCoreConfig.BUG_FIXES.mrCrayfishFurniture.rotatableFurniture) { 24 | return super.shouldRefresh(world, pos, oldState, newSate); 25 | } 26 | return oldState.getBlock() != newSate.getBlock(); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/cfm/MixinTileEntityKitchenCounterDrawer.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.cfm; 2 | 3 | import com.mrcrayfish.furniture.tileentity.TileEntityKitchenCounterDrawer; 4 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 5 | import net.minecraft.block.state.IBlockState; 6 | import net.minecraft.tileentity.TileEntity; 7 | import net.minecraft.util.math.BlockPos; 8 | import net.minecraft.world.World; 9 | import org.spongepowered.asm.mixin.Mixin; 10 | import org.spongepowered.asm.mixin.Unique; 11 | 12 | import javax.annotation.Nonnull; 13 | 14 | @Mixin(TileEntityKitchenCounterDrawer.class) 15 | public class MixinTileEntityKitchenCounterDrawer extends TileEntity { 16 | 17 | @Unique 18 | @Override 19 | public boolean shouldRefresh(@Nonnull final World world, 20 | @Nonnull final BlockPos pos, 21 | @Nonnull final IBlockState oldState, 22 | @Nonnull final IBlockState newSate) { 23 | if (!StellarCoreConfig.BUG_FIXES.mrCrayfishFurniture.rotatableFurniture) { 24 | return super.shouldRefresh(world, pos, oldState, newSate); 25 | } 26 | return oldState.getBlock() != newSate.getBlock(); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/cfm/MixinTileEntitySyncClient.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.cfm; 2 | 3 | import com.mrcrayfish.furniture.tileentity.TileEntitySyncClient; 4 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 5 | import net.minecraft.block.state.IBlockState; 6 | import net.minecraft.tileentity.TileEntity; 7 | import net.minecraft.util.math.BlockPos; 8 | import net.minecraft.world.World; 9 | import org.spongepowered.asm.mixin.Mixin; 10 | import org.spongepowered.asm.mixin.Unique; 11 | 12 | import javax.annotation.Nonnull; 13 | 14 | @Mixin(TileEntitySyncClient.class) 15 | public class MixinTileEntitySyncClient extends TileEntity { 16 | 17 | @Unique 18 | @Override 19 | public boolean shouldRefresh(@Nonnull final World world, 20 | @Nonnull final BlockPos pos, 21 | @Nonnull final IBlockState oldState, 22 | @Nonnull final IBlockState newSate) 23 | { 24 | if (!StellarCoreConfig.BUG_FIXES.mrCrayfishFurniture.rotatableFurniture) { 25 | return super.shouldRefresh(world, pos, oldState, newSate); 26 | } 27 | return oldState.getBlock() != newSate.getBlock(); 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/cfm/MixinTileEntityTVStand.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.cfm; 2 | 3 | import com.mrcrayfish.furniture.tileentity.TileEntityTVStand; 4 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 5 | import net.minecraft.block.state.IBlockState; 6 | import net.minecraft.tileentity.TileEntity; 7 | import net.minecraft.util.math.BlockPos; 8 | import net.minecraft.world.World; 9 | import org.spongepowered.asm.mixin.Mixin; 10 | import org.spongepowered.asm.mixin.Unique; 11 | 12 | import javax.annotation.Nonnull; 13 | 14 | @Mixin(TileEntityTVStand.class) 15 | public class MixinTileEntityTVStand extends TileEntity { 16 | 17 | @Unique 18 | @Override 19 | public boolean shouldRefresh(@Nonnull final World world, 20 | @Nonnull final BlockPos pos, 21 | @Nonnull final IBlockState oldState, 22 | @Nonnull final IBlockState newSate) { 23 | if (!StellarCoreConfig.BUG_FIXES.mrCrayfishFurniture.rotatableFurniture) { 24 | return super.shouldRefresh(world, pos, oldState, newSate); 25 | } 26 | return oldState.getBlock() != newSate.getBlock(); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/cfm/MixinTileEntityWashingMachine.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.cfm; 2 | 3 | import com.mrcrayfish.furniture.tileentity.TileEntityWashingMachine; 4 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 5 | import net.minecraft.item.ItemStack; 6 | import org.spongepowered.asm.mixin.Mixin; 7 | import org.spongepowered.asm.mixin.injection.At; 8 | import org.spongepowered.asm.mixin.injection.Redirect; 9 | 10 | @SuppressWarnings("MethodMayBeStatic") 11 | @Mixin(TileEntityWashingMachine.class) 12 | public class MixinTileEntityWashingMachine { 13 | 14 | @Redirect(method = "update", at = @At(value = "INVOKE", target = "Lnet/minecraft/item/ItemStack;isEmpty()Z", ordinal = 0)) 15 | private boolean redirectUpdateIsEmpty(final ItemStack instance) { 16 | if (!StellarCoreConfig.BUG_FIXES.mrCrayfishFurniture.washingMachine) { 17 | return instance.isEmpty(); 18 | } 19 | return instance.isEmpty() || !instance.getItem().isRepairable(); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/cofhcore/MixinTileInventory.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.cofhcore; 2 | 3 | import cofh.core.block.TileInventory; 4 | import com.llamalad7.mixinextras.sugar.Local; 5 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 6 | import net.minecraft.item.ItemStack; 7 | import org.spongepowered.asm.mixin.Mixin; 8 | import org.spongepowered.asm.mixin.injection.At; 9 | import org.spongepowered.asm.mixin.injection.Redirect; 10 | 11 | @Mixin(TileInventory.class) 12 | @SuppressWarnings("MethodMayBeStatic") 13 | public class MixinTileInventory { 14 | 15 | @Redirect(method = "extractItem", 16 | at = @At( 17 | value = "INVOKE", 18 | target = "Ljava/lang/Math;min(II)I", 19 | ordinal = 1, 20 | remap = false 21 | ), 22 | remap = false 23 | ) 24 | private int injectExtractItem(final int a, final int b, @Local(name = "queryStack") ItemStack queryStack) { 25 | if (!StellarCoreConfig.BUG_FIXES.coFHCore.tileInventory) { 26 | return Math.min(a, b); 27 | } 28 | return Math.min(a, Math.min(b, queryStack.getMaxStackSize())); 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/ctm/MixinModelLoaderCTM.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.ctm; 2 | 3 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 4 | import github.kasuminova.stellarcore.shaded.org.jctools.maps.NonBlockingHashMap; 5 | import net.minecraft.util.ResourceLocation; 6 | import org.spongepowered.asm.mixin.Mixin; 7 | import org.spongepowered.asm.mixin.Shadow; 8 | import org.spongepowered.asm.mixin.injection.At; 9 | import org.spongepowered.asm.mixin.injection.Inject; 10 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 11 | import team.chisel.ctm.api.model.IModelCTM; 12 | import team.chisel.ctm.client.model.parsing.ModelLoaderCTM; 13 | 14 | import java.util.Map; 15 | 16 | @Mixin(value = ModelLoaderCTM.class, remap = false) 17 | public class MixinModelLoaderCTM { 18 | 19 | @Shadow 20 | private Map loadedModels; 21 | 22 | @Inject(method = "", at = @At("RETURN")) 23 | private void injectInit(final String par1, final int par2, final CallbackInfo ci) { 24 | if (!StellarCoreConfig.PERFORMANCE.vanilla.parallelModelLoader) { 25 | return; 26 | } 27 | loadedModels = new NonBlockingHashMap<>(); 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/cucumber/MixinVanillaPacketDispatcher.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.cucumber; 2 | 3 | import com.blakebr0.cucumber.util.VanillaPacketDispatcher; 4 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.injection.Constant; 7 | import org.spongepowered.asm.mixin.injection.ModifyConstant; 8 | 9 | @Mixin(VanillaPacketDispatcher.class) 10 | public class MixinVanillaPacketDispatcher { 11 | 12 | @ModifyConstant(method = "dispatchTEToNearbyPlayers(Lnet/minecraft/tileentity/TileEntity;)V", constant = @Constant(floatValue = 64F), remap = false) 13 | private static float modifyRange(final float constant) { 14 | if (!StellarCoreConfig.PERFORMANCE.cucumber.vanillaPacketDispatcher) { 15 | return constant; 16 | } 17 | return StellarCoreConfig.PERFORMANCE.cucumber.tileEntityUpdateRange; 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/customloadingscreen/MixinModLoadingListener.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.customloadingscreen; 2 | 3 | import alexiil.mc.mod.load.ModLoadingListener; 4 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.injection.At; 7 | import org.spongepowered.asm.mixin.injection.Redirect; 8 | 9 | @Mixin(ModLoadingListener.class) 10 | public class MixinModLoadingListener { 11 | 12 | @Redirect( 13 | method = "doProgress", 14 | at = @At( 15 | value = "INVOKE", 16 | target = "Ljava/lang/Thread;sleep(J)V", 17 | remap = false 18 | ), 19 | remap = false 20 | ) 21 | private static void redirectDoProgressSleep(final long l) { 22 | if (StellarCoreConfig.PERFORMANCE.customLoadingScreen.modLoadingListener) { 23 | // For our better future, don't do that. 24 | return; 25 | } 26 | try { 27 | // Congratulations on wasting 20ms of your life. 28 | Thread.sleep(l); 29 | } catch (InterruptedException e) { 30 | } 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/deepmoblearning/MixinDMLEnergyStorage.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.deepmoblearning; 2 | 3 | import com.llamalad7.mixinextras.sugar.Local; 4 | import mustapelto.deepmoblearning.common.energy.DMLEnergyStorage; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.Shadow; 7 | import org.spongepowered.asm.mixin.injection.At; 8 | import org.spongepowered.asm.mixin.injection.Redirect; 9 | 10 | @Mixin(value = DMLEnergyStorage.class, remap = false) 11 | public abstract class MixinDMLEnergyStorage { 12 | 13 | @Shadow 14 | protected abstract void onEnergyChanged(); 15 | 16 | @Redirect(method = "receiveEnergy", at = @At(value = "INVOKE", target = "Lmustapelto/deepmoblearning/common/energy/DMLEnergyStorage;onEnergyChanged()V")) 17 | private void redirectReceiveEnergyOnEnergyChanged(final DMLEnergyStorage _inst, @Local(name = "simulate") boolean simulate) { 18 | if (!simulate) { 19 | // Prevent async chunk update. 20 | this.onEnergyChanged(); 21 | } 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/draconicevolution/MixinTileEnergyPylon.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.draconicevolution; 2 | 3 | import com.brandon3055.draconicevolution.blocks.tileentity.TileEnergyPylon; 4 | import net.minecraft.util.math.BlockPos; 5 | import net.minecraft.util.math.ChunkPos; 6 | import net.minecraft.world.World; 7 | import net.minecraft.world.chunk.Chunk; 8 | import org.spongepowered.asm.mixin.Mixin; 9 | import org.spongepowered.asm.mixin.injection.At; 10 | import org.spongepowered.asm.mixin.injection.Redirect; 11 | 12 | @SuppressWarnings("MethodMayBeStatic") 13 | @Mixin(TileEnergyPylon.class) 14 | public class MixinTileEnergyPylon { 15 | 16 | /** 17 | * Prevent chunk load. 18 | */ 19 | @Redirect( 20 | method = "getCore", 21 | at = @At( 22 | value = "INVOKE", 23 | target = "Lnet/minecraft/world/World;getChunk(Lnet/minecraft/util/math/BlockPos;)Lnet/minecraft/world/chunk/Chunk;" 24 | ), 25 | remap = false 26 | ) 27 | private Chunk redirectGetCore(final World instance, final BlockPos pos) { 28 | ChunkPos chunkPos = new ChunkPos(pos); 29 | return instance.getChunkProvider().getLoadedChunk(chunkPos.x, chunkPos.z); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/ebwizardry/MixinWizardSpell.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.ebwizardry; 2 | 3 | import electroblob.wizardry.loot.WizardSpell; 4 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 5 | import org.apache.logging.log4j.Logger; 6 | import org.spongepowered.asm.mixin.Mixin; 7 | import org.spongepowered.asm.mixin.injection.At; 8 | import org.spongepowered.asm.mixin.injection.Redirect; 9 | 10 | @SuppressWarnings("MethodMayBeStatic") 11 | @Mixin(WizardSpell.class) 12 | public class MixinWizardSpell { 13 | 14 | @Redirect( 15 | method = "apply", 16 | at = @At( 17 | value = "INVOKE", 18 | target = "Lorg/apache/logging/log4j/Logger;warn(Ljava/lang/String;)V", 19 | ordinal = 2, 20 | remap = false 21 | ) 22 | ) 23 | private void injectApply(final Logger instance, final String s) { 24 | if (!StellarCoreConfig.FEATURES.ebwizardry.preventWizardSpellLogSpam) { 25 | instance.warn(s); 26 | } 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/ebwizardry_early/MixinTileEntityDispenser.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.ebwizardry_early; 2 | 3 | import github.kasuminova.stellarcore.common.integration.ebwizardry.DispenserCastingCompat; 4 | import github.kasuminova.stellarcore.common.mod.Mods; 5 | import net.minecraft.tileentity.TileEntityDispenser; 6 | import net.minecraft.tileentity.TileEntityLockableLoot; 7 | import net.minecraft.util.ITickable; 8 | import net.minecraftforge.fml.common.Optional; 9 | import org.spongepowered.asm.mixin.Mixin; 10 | import org.spongepowered.asm.mixin.Unique; 11 | 12 | @Mixin(TileEntityDispenser.class) 13 | public abstract class MixinTileEntityDispenser extends TileEntityLockableLoot implements ITickable { 14 | 15 | @Unique 16 | @Override 17 | @SuppressWarnings("AddedMixinMembersNamePattern") 18 | public void update() { 19 | if (world.isRemote) { 20 | return; 21 | } 22 | if (Mods.EBWIZARDRY.loaded()) { 23 | stellar_core$handleEBWizardryUpdate(); 24 | } 25 | } 26 | 27 | @Unique 28 | @Optional.Method(modid = "ebwizardry") 29 | private void stellar_core$handleEBWizardryUpdate() { 30 | DispenserCastingCompat.handleEBWizardryUpdate((TileEntityDispenser) (Object) this); 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/endercore/InvokerIThing.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.endercore; 2 | 3 | import github.kasuminova.stellarcore.mixin.util.IIThing; 4 | import net.minecraft.block.Block; 5 | import net.minecraft.item.Item; 6 | import net.minecraft.item.ItemStack; 7 | import org.spongepowered.asm.mixin.Mixin; 8 | import org.spongepowered.asm.mixin.gen.Invoker; 9 | 10 | import javax.annotation.Nullable; 11 | 12 | @Mixin(targets = "com.enderio.core.common.util.stackable.IThing") 13 | public interface InvokerIThing extends IIThing { 14 | 15 | @Override 16 | @Invoker(remap = false) 17 | boolean callIs(@Nullable Item var1); 18 | 19 | @Override 20 | @Invoker(remap = false) 21 | boolean callIs(@Nullable ItemStack var1); 22 | 23 | @Override 24 | @Invoker(remap = false) 25 | boolean callIs(@Nullable Block var1); 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/enderioconduits/AccessorTarget.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.enderioconduits; 2 | 3 | import crazypants.enderio.conduits.conduit.item.NetworkedInventory; 4 | import org.spongepowered.asm.mixin.Mixin; 5 | import org.spongepowered.asm.mixin.gen.Accessor; 6 | 7 | @Mixin(targets = "crazypants.enderio.conduits.conduit.item.NetworkedInventory$Target") 8 | public interface AccessorTarget { 9 | 10 | @Accessor(remap = false) 11 | boolean getStickyInput(); 12 | 13 | @Accessor(remap = false) 14 | NetworkedInventory getInv(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/enderioconduits/InvokerNetworkedInventory.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.enderioconduits; 2 | 3 | import crazypants.enderio.conduits.conduit.item.NetworkedInventory; 4 | import net.minecraftforge.items.IItemHandler; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.gen.Invoker; 7 | 8 | @Mixin(NetworkedInventory.class) 9 | public interface InvokerNetworkedInventory { 10 | 11 | @Invoker(remap = false) 12 | boolean callCanInsert(); 13 | 14 | @Invoker(remap = false) 15 | IItemHandler callGetInventory(); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/enderioconduits_energy/AccessorReceptorEntry.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.enderioconduits_energy; 2 | 3 | import crazypants.enderio.base.power.IPowerInterface; 4 | import crazypants.enderio.conduits.conduit.power.IPowerConduit; 5 | import crazypants.enderio.conduits.conduit.power.PowerConduitNetwork; 6 | import net.minecraft.util.EnumFacing; 7 | import net.minecraft.util.math.BlockPos; 8 | import org.spongepowered.asm.mixin.Mixin; 9 | import org.spongepowered.asm.mixin.gen.Accessor; 10 | import org.spongepowered.asm.mixin.gen.Invoker; 11 | 12 | @Mixin(value = PowerConduitNetwork.ReceptorEntry.class, remap = false) 13 | public interface AccessorReceptorEntry { 14 | 15 | @Invoker 16 | IPowerInterface invokeGetPowerInterface(); 17 | 18 | @Accessor 19 | IPowerConduit getEmmiter(); 20 | 21 | @Accessor 22 | BlockPos getPos(); 23 | 24 | @Accessor 25 | EnumFacing getDirection(); 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/enderutilities/MixinUtilItemModular.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.enderutilities; 2 | 3 | import fi.dy.masa.enderutilities.util.nbt.NBTUtils; 4 | import fi.dy.masa.enderutilities.util.nbt.UtilItemModular; 5 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 6 | import github.kasuminova.stellarcore.common.util.StackUtils; 7 | import net.minecraft.item.ItemStack; 8 | import net.minecraft.nbt.NBTTagCompound; 9 | import org.spongepowered.asm.mixin.Mixin; 10 | import org.spongepowered.asm.mixin.injection.At; 11 | import org.spongepowered.asm.mixin.injection.Redirect; 12 | 13 | @Mixin(value = UtilItemModular.class, remap = false) 14 | public class MixinUtilItemModular { 15 | 16 | @Redirect(method = "getModuleStackBySlotNumber", at = @At(value = "INVOKE", target = "Lfi/dy/masa/enderutilities/util/nbt/NBTUtils;loadItemStackFromTag(Lnet/minecraft/nbt/NBTTagCompound;)Lnet/minecraft/item/ItemStack;")) 17 | private static ItemStack injectGetModuleStackBySlotNumber(final NBTTagCompound moduleTag) { 18 | if (!StellarCoreConfig.PERFORMANCE.enderUtilities.utilItemModular) { 19 | return NBTUtils.loadItemStackFromTag(moduleTag); 20 | } 21 | return StackUtils.loadStackWithNonCap(moduleTag); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/ftblib/MixinInvUtils.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.ftblib; 2 | 3 | import com.feed_the_beast.ftblib.lib.util.InvUtils; 4 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 5 | import github.kasuminova.stellarcore.common.integration.ftblib.FTBLibInvUtilsQueue; 6 | import net.minecraft.entity.player.EntityPlayer; 7 | import org.spongepowered.asm.mixin.Mixin; 8 | import org.spongepowered.asm.mixin.injection.At; 9 | import org.spongepowered.asm.mixin.injection.Inject; 10 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 11 | 12 | @Mixin(InvUtils.class) 13 | public class MixinInvUtils { 14 | 15 | @Inject( 16 | method = "forceUpdate(Lnet/minecraft/entity/player/EntityPlayer;)V", 17 | at = @At("HEAD"), 18 | cancellable = true, 19 | remap = false 20 | ) 21 | private static void redirectPlayerForceUpdate(final EntityPlayer player, final CallbackInfo ci) { 22 | if (!StellarCoreConfig.PERFORMANCE.ftbLib.invUtilForceUpdate) { 23 | return; 24 | } 25 | FTBLibInvUtilsQueue.INSTANCE.enqueuePlayer(player); 26 | ci.cancel(); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/ic2/AccessorGridChange.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.ic2; 2 | 3 | import ic2.api.energy.tile.IEnergyTile; 4 | import net.minecraft.util.math.BlockPos; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.gen.Accessor; 7 | 8 | import javax.annotation.Nullable; 9 | import java.util.List; 10 | 11 | @Mixin(targets = "ic2.core.energy.grid.GridChange", remap = false) 12 | public interface AccessorGridChange { 13 | 14 | @Accessor 15 | BlockPos getPos(); 16 | 17 | @Accessor 18 | IEnergyTile getIoTile(); 19 | 20 | @Nullable 21 | @Accessor 22 | List getSubTiles(); 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/ic2/MixinGradualRecipe.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.ic2; 2 | 3 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 4 | import ic2.core.recipe.GradualRecipe; 5 | import net.minecraft.item.ItemStack; 6 | import org.spongepowered.asm.mixin.Mixin; 7 | import org.spongepowered.asm.mixin.injection.At; 8 | import org.spongepowered.asm.mixin.injection.Redirect; 9 | 10 | @Mixin(GradualRecipe.class) 11 | public class MixinGradualRecipe { 12 | 13 | @Redirect( 14 | method = "getCraftingResult", 15 | at = @At( 16 | value = "INVOKE", 17 | target = "Lnet/minecraft/item/ItemStack;copy()Lnet/minecraft/item/ItemStack;" 18 | ) 19 | ) 20 | public ItemStack redirectItemStackCopy(final ItemStack instance) { 21 | ItemStack copied = instance.copy(); 22 | if (!StellarCoreConfig.BUG_FIXES.industrialCraft2.gradualRecipe) { 23 | return copied; 24 | } 25 | 26 | if (copied.getCount() > 1) { 27 | copied.setCount(1); 28 | } 29 | return copied; 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/ic2/MixinGrid.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.ic2; 2 | 3 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 4 | import ic2.core.energy.grid.EnergyNetLocal; 5 | import ic2.core.energy.grid.Grid; 6 | import ic2.core.energy.grid.Node; 7 | import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; 8 | import org.spongepowered.asm.mixin.Final; 9 | import org.spongepowered.asm.mixin.Mixin; 10 | import org.spongepowered.asm.mixin.Mutable; 11 | import org.spongepowered.asm.mixin.Shadow; 12 | import org.spongepowered.asm.mixin.injection.At; 13 | import org.spongepowered.asm.mixin.injection.Inject; 14 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 15 | 16 | import java.util.Map; 17 | 18 | @Mixin(Grid.class) 19 | public class MixinGrid { 20 | 21 | @Final 22 | @Mutable 23 | @Shadow(remap = false) 24 | private Map nodes; 25 | 26 | @Inject(method = "", at = @At("RETURN"), remap = false) 27 | private void injectInit(final EnergyNetLocal enet, final CallbackInfo ci) { 28 | if (!StellarCoreConfig.PERFORMANCE.industrialCraft2.grid) { 29 | return; 30 | } 31 | this.nodes = new Int2ObjectOpenHashMap<>(); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/igi/MixinPlayerHandler.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.igi; 2 | 3 | import com.github.lunatrius.ingameinfo.handler.PlayerHandler; 4 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.injection.At; 7 | import org.spongepowered.asm.mixin.injection.Inject; 8 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 9 | 10 | @Mixin(PlayerHandler.class) 11 | public class MixinPlayerHandler { 12 | 13 | @SuppressWarnings("MethodMayBeStatic") 14 | @Inject(method = "onPlayerLogin", at = @At("HEAD"), cancellable = true, remap = false) 15 | private void prevOnPlayerLogin(final CallbackInfo ci) { 16 | if (!StellarCoreConfig.BUG_FIXES.inGameInfoXML.playerHandler) { 17 | return; 18 | } 19 | ci.cancel(); 20 | } 21 | 22 | } -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/igi/MixinTicker.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.igi; 2 | 3 | import com.github.lunatrius.ingameinfo.handler.Ticker; 4 | import github.kasuminova.stellarcore.client.hudcaching.HUDCaching; 5 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 6 | import net.minecraftforge.fml.common.gameevent.TickEvent; 7 | import org.spongepowered.asm.mixin.Mixin; 8 | import org.spongepowered.asm.mixin.injection.At; 9 | import org.spongepowered.asm.mixin.injection.Inject; 10 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 11 | 12 | @SuppressWarnings("MethodMayBeStatic") 13 | @Mixin(Ticker.class) 14 | public class MixinTicker { 15 | 16 | @Inject(method = "onRenderTick", at = @At("HEAD"), remap = false, cancellable = true) 17 | private void injectOnRenderTick(final TickEvent.RenderTickEvent event, final CallbackInfo ci) { 18 | if (StellarCoreConfig.PERFORMANCE.inGameInfoXML.hudFrameBuffer && StellarCoreConfig.PERFORMANCE.vanilla.hudCaching && !HUDCaching.igiRendering) { 19 | ci.cancel(); 20 | } 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/immersiveengineering/MixinEventHandler.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.immersiveengineering; 2 | 3 | import blusunrize.immersiveengineering.common.EventHandler; 4 | import com.llamalad7.mixinextras.sugar.Local; 5 | import net.minecraft.tileentity.TileEntity; 6 | import org.spongepowered.asm.mixin.Mixin; 7 | import org.spongepowered.asm.mixin.injection.At; 8 | import org.spongepowered.asm.mixin.injection.Redirect; 9 | 10 | import java.util.Set; 11 | 12 | @Mixin(value = EventHandler.class, remap = false) 13 | public class MixinEventHandler { 14 | 15 | @SuppressWarnings("MethodMayBeStatic") 16 | @Redirect(method = "onWorldTick", at = @At(value = "INVOKE", target = "Ljava/util/Set;isEmpty()Z")) 17 | private boolean redirectOnWorldTickIsEmpty(final Set instance, @Local(name = "dim") int dim) { 18 | if (instance.isEmpty()) { 19 | return true; 20 | } 21 | return !instance.stream().anyMatch(te -> te.getWorld().provider.getDimension() == dim); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/immersiveengineering/MixinTileEntityMultiblockMetal.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.immersiveengineering; 2 | 3 | import blusunrize.immersiveengineering.common.blocks.metal.TileEntityMultiblockMetal; 4 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.injection.At; 7 | import org.spongepowered.asm.mixin.injection.Inject; 8 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 9 | 10 | @SuppressWarnings("MethodMayBeStatic") 11 | @Mixin(value = TileEntityMultiblockMetal.class, remap = false) 12 | public class MixinTileEntityMultiblockMetal { 13 | 14 | @Inject(method = "postEnergyTransferUpdate", at = @At("HEAD"), cancellable = true) 15 | private void injectPostEnergyTransferUpdate(final int energy, final boolean simulate, final CallbackInfo ci) { 16 | if (!StellarCoreConfig.PERFORMANCE.immersiveEngineering.energyTransferNoUpdate) { 17 | return; 18 | } 19 | ci.cancel(); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/mets/MixinEnchantmentManager.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.mets; 2 | 3 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 4 | import net.lrsoft.mets.manager.EnchantmentManager; 5 | import net.minecraft.enchantment.Enchantment; 6 | import net.minecraftforge.event.RegistryEvent; 7 | import org.spongepowered.asm.mixin.Mixin; 8 | import org.spongepowered.asm.mixin.injection.At; 9 | import org.spongepowered.asm.mixin.injection.Inject; 10 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 11 | 12 | /** 13 | * 移除节能附魔,实际作用接近无。 14 | */ 15 | @Mixin(EnchantmentManager.class) 16 | public class MixinEnchantmentManager { 17 | 18 | @Inject(method = "onEnchantmentInit", at = @At("HEAD"), cancellable = true, remap = false) 19 | private static void removeEnchantment(final RegistryEvent.Register event, final CallbackInfo ci) { 20 | if (!StellarCoreConfig.FEATURES.moreElectricTools.disableEfficientEnergyCost) { 21 | return; 22 | } 23 | ci.cancel(); 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/mets/MixinFirstAidLifeSupport.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.mets; 2 | 3 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 4 | import net.lrsoft.mets.item.ElectricFirstAidLifeSupport; 5 | import net.minecraft.entity.Entity; 6 | import net.minecraft.item.ItemStack; 7 | import net.minecraft.world.World; 8 | import org.spongepowered.asm.mixin.Mixin; 9 | import org.spongepowered.asm.mixin.injection.At; 10 | import org.spongepowered.asm.mixin.injection.Inject; 11 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 12 | 13 | @SuppressWarnings("MethodMayBeStatic") 14 | @Mixin(ElectricFirstAidLifeSupport.class) 15 | public class MixinFirstAidLifeSupport { 16 | 17 | /** 18 | * 电力生命维护仪。 19 | * (急救失败!) 20 | */ 21 | @Inject(method = "onUpdate", at = @At("HEAD"), cancellable = true) 22 | private void injectOnWorkTick(final ItemStack stack, final World worldIn, final Entity entity, final int itemSlot, final boolean isSelected, final CallbackInfo ci) { 23 | if (!StellarCoreConfig.BUG_FIXES.moreElectricTools.fixLifeSupports) { 24 | return; 25 | } 26 | if (entity == null || !entity.isEntityAlive()) { 27 | ci.cancel(); 28 | } 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/mets/MixinForceFieldGenerator.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.mets; 2 | 3 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 4 | import net.lrsoft.mets.item.ElectricForceFieldGenerator; 5 | import net.minecraft.entity.Entity; 6 | import net.minecraft.item.ItemStack; 7 | import net.minecraft.world.World; 8 | import org.spongepowered.asm.mixin.Mixin; 9 | import org.spongepowered.asm.mixin.injection.At; 10 | import org.spongepowered.asm.mixin.injection.Inject; 11 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 12 | 13 | @SuppressWarnings("MethodMayBeStatic") 14 | @Mixin(ElectricForceFieldGenerator.class) 15 | public class MixinForceFieldGenerator { 16 | 17 | /** 18 | * 电力伤害吸收仪 19 | * (虽然死灵护盾挺合理的,但是还是有点不太对劲...) 20 | */ 21 | @Inject(method = "onUpdate", at = @At("HEAD"), cancellable = true) 22 | private void injectOnWorkTick(final ItemStack stack, final World worldIn, final Entity entity, final int itemSlot, final boolean isSelected, final CallbackInfo ci) { 23 | if (!StellarCoreConfig.BUG_FIXES.moreElectricTools.fixLifeSupports) { 24 | return; 25 | } 26 | if (entity == null || !entity.isEntityAlive()) { 27 | ci.cancel(); 28 | } 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/mets/MixinLifeSupportRing.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.mets; 2 | 3 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 4 | import net.lrsoft.mets.item.bauble.ElectricLifeSupportRing; 5 | import net.minecraft.entity.EntityLivingBase; 6 | import net.minecraft.item.ItemStack; 7 | import org.spongepowered.asm.mixin.Mixin; 8 | import org.spongepowered.asm.mixin.injection.At; 9 | import org.spongepowered.asm.mixin.injection.Inject; 10 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 11 | 12 | @SuppressWarnings("MethodMayBeStatic") 13 | @Mixin(ElectricLifeSupportRing.class) 14 | public class MixinLifeSupportRing { 15 | 16 | /** 17 | * 终极维生指环 18 | * (神已经跌落神坛了。) 19 | */ 20 | @Inject(method = "onWornTick", at = @At("HEAD"), cancellable = true, remap = false) 21 | private void injectOnWorkTick(final ItemStack itemstack, final EntityLivingBase entity, final CallbackInfo ci) { 22 | if (!StellarCoreConfig.BUG_FIXES.moreElectricTools.fixLifeSupports) { 23 | return; 24 | } 25 | if (entity == null || !entity.isEntityAlive()) { 26 | ci.cancel(); 27 | } 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/mets/MixinNutritionSupply.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.mets; 2 | 3 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 4 | import net.lrsoft.mets.item.ElectricNutritionSupply; 5 | import net.minecraft.entity.Entity; 6 | import net.minecraft.item.ItemStack; 7 | import net.minecraft.world.World; 8 | import org.spongepowered.asm.mixin.Mixin; 9 | import org.spongepowered.asm.mixin.injection.At; 10 | import org.spongepowered.asm.mixin.injection.Inject; 11 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 12 | 13 | @SuppressWarnings("MethodMayBeStatic") 14 | @Mixin(ElectricNutritionSupply.class) 15 | public class MixinNutritionSupply { 16 | 17 | /** 18 | * 电力营养供应器 19 | * (死因是撑死。) 20 | */ 21 | @Inject(method = "onUpdate", at = @At("HEAD"), cancellable = true) 22 | private void injectOnWorkTick(final ItemStack stack, final World worldIn, final Entity entity, final int itemSlot, final boolean isSelected, final CallbackInfo ci) { 23 | if (!StellarCoreConfig.BUG_FIXES.moreElectricTools.fixLifeSupports) { 24 | return; 25 | } 26 | if (entity == null || !entity.isEntityAlive()) { 27 | ci.cancel(); 28 | } 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/minecraft/blockfaceuv/MixinBlockFaceUV.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.minecraft.blockfaceuv; 2 | 3 | import github.kasuminova.stellarcore.client.pool.BlockFaceUVsPool; 4 | import net.minecraft.client.renderer.block.model.BlockFaceUV; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.Shadow; 7 | import org.spongepowered.asm.mixin.injection.At; 8 | import org.spongepowered.asm.mixin.injection.Inject; 9 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 10 | 11 | @Mixin(BlockFaceUV.class) 12 | public class MixinBlockFaceUV { 13 | 14 | @Shadow 15 | public float[] uvs; 16 | 17 | @Inject(method = "", at = @At("RETURN")) 18 | private void injectInit(final float[] uvsIn, final int rotationIn, final CallbackInfo ci) { 19 | if (this.uvs != null) { 20 | BlockFaceUVsPool.INSTANCE.canonicalizeAsync(uvsIn, (canonicalizeUVs) -> this.uvs = canonicalizeUVs); 21 | } 22 | } 23 | 24 | @Inject(method = "setUvs", at = @At("HEAD")) 25 | private void injectSetUV(final float[] uvsIn, final CallbackInfo ci) { 26 | if (this.uvs == null) { 27 | BlockFaceUVsPool.INSTANCE.canonicalizeAsync(uvsIn, (canonicalizeUVs) -> this.uvs = canonicalizeUVs); 28 | } 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/minecraft/chunktequeue/MixinChunk.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.minecraft.chunktequeue; 2 | 3 | import github.kasuminova.stellarcore.common.util.FakeConcurrentLinkedQueue; 4 | import github.kasuminova.stellarcore.shaded.org.jctools.queues.MpscUnboundedXaddArrayQueue; 5 | import net.minecraft.util.math.BlockPos; 6 | import net.minecraft.world.chunk.Chunk; 7 | import org.spongepowered.asm.mixin.Mixin; 8 | import org.spongepowered.asm.mixin.injection.At; 9 | import org.spongepowered.asm.mixin.injection.Redirect; 10 | 11 | import java.util.concurrent.ConcurrentLinkedQueue; 12 | 13 | @SuppressWarnings("MethodMayBeStatic") 14 | @Mixin(Chunk.class) 15 | public class MixinChunk { 16 | 17 | @Redirect( 18 | method = "(Lnet/minecraft/world/World;II)V", 19 | at = @At( 20 | value = "INVOKE", 21 | target = "Lcom/google/common/collect/Queues;newConcurrentLinkedQueue()Ljava/util/concurrent/ConcurrentLinkedQueue;", 22 | remap = false 23 | ) 24 | ) 25 | private ConcurrentLinkedQueue redirectNewQueue() { 26 | // Use new queue type. 27 | return new FakeConcurrentLinkedQueue<>(new MpscUnboundedXaddArrayQueue<>(16)); 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/minecraft/entitytracker/MixinEntityTracker.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.minecraft.entitytracker; 2 | 3 | import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet; 4 | import net.minecraft.entity.EntityTracker; 5 | import net.minecraft.entity.EntityTrackerEntry; 6 | import net.minecraft.world.WorldServer; 7 | import org.spongepowered.asm.mixin.Final; 8 | import org.spongepowered.asm.mixin.Mixin; 9 | import org.spongepowered.asm.mixin.Mutable; 10 | import org.spongepowered.asm.mixin.Shadow; 11 | import org.spongepowered.asm.mixin.injection.At; 12 | import org.spongepowered.asm.mixin.injection.Inject; 13 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 14 | 15 | import java.util.Set; 16 | 17 | @Mixin(EntityTracker.class) 18 | public class MixinEntityTracker { 19 | 20 | @Final 21 | @Shadow 22 | @Mutable 23 | private Set entries; 24 | 25 | @Inject(method = "", at = @At("RETURN")) 26 | private void injectInit(final WorldServer theWorldIn, final CallbackInfo ci) { 27 | this.entries = new ObjectOpenHashSet<>(); 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/minecraft/entitytracker/MixinEntityTrackerEntry.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.minecraft.entitytracker; 2 | 3 | import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet; 4 | import net.minecraft.entity.Entity; 5 | import net.minecraft.entity.EntityTrackerEntry; 6 | import net.minecraft.entity.player.EntityPlayerMP; 7 | import org.spongepowered.asm.mixin.Final; 8 | import org.spongepowered.asm.mixin.Mixin; 9 | import org.spongepowered.asm.mixin.Mutable; 10 | import org.spongepowered.asm.mixin.Shadow; 11 | import org.spongepowered.asm.mixin.injection.At; 12 | import org.spongepowered.asm.mixin.injection.Inject; 13 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 14 | 15 | import java.util.Set; 16 | 17 | @Mixin(EntityTrackerEntry.class) 18 | public class MixinEntityTrackerEntry { 19 | 20 | @Final 21 | @Shadow 22 | @Mutable 23 | public Set trackingPlayers; 24 | 25 | @Inject(method = "", at = @At("RETURN")) 26 | private void injectInit(final Entity entityIn, final int rangeIn, final int maxRangeIn, final int updateFrequencyIn, final boolean sendVelocityUpdatesIn, final CallbackInfo ci) { 27 | this.trackingPlayers = new ObjectOpenHashSet<>(); 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/minecraft/forge/MixinSplashProgress.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.minecraft.forge; 2 | 3 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 4 | import github.kasuminova.stellarcore.mixin.util.CustomLoadingScreenUtils; 5 | import net.minecraftforge.fml.client.SplashProgress; 6 | import net.minecraftforge.fml.common.Loader; 7 | import org.spongepowered.asm.mixin.Mixin; 8 | import org.spongepowered.asm.mixin.injection.At; 9 | import org.spongepowered.asm.mixin.injection.Inject; 10 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 11 | 12 | 13 | @Mixin(SplashProgress.class) 14 | public class MixinSplashProgress { 15 | 16 | @Inject(method = "finish", at = @At("TAIL"), remap = false) 17 | private static void injectFinish(final CallbackInfo ci) { 18 | if (!StellarCoreConfig.PERFORMANCE.customLoadingScreen.splashProgress) { 19 | return; 20 | } 21 | if (Loader.isModLoaded("customloadingscreen")) { 22 | CustomLoadingScreenUtils.cleanCLSTextures(); 23 | } 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/minecraft/forge/asmmodparser/MixinASMModParser.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.minecraft.forge.asmmodparser; 2 | 3 | import net.minecraftforge.fml.common.discovery.asm.ASMModParser; 4 | import org.objectweb.asm.ClassReader; 5 | import org.objectweb.asm.ClassVisitor; 6 | import org.spongepowered.asm.mixin.Mixin; 7 | import org.spongepowered.asm.mixin.injection.At; 8 | import org.spongepowered.asm.mixin.injection.Redirect; 9 | 10 | @SuppressWarnings("MethodMayBeStatic") 11 | @Mixin(value = ASMModParser.class, remap = false) 12 | public class MixinASMModParser { 13 | 14 | @Redirect(method = "", at = @At(value = "INVOKE", target = "Lorg/objectweb/asm/ClassReader;accept(Lorg/objectweb/asm/ClassVisitor;I)V")) 15 | private void redirectInit(final ClassReader instance, final ClassVisitor classVisitor, final int flags) { 16 | instance.accept(classVisitor, ClassReader.SKIP_CODE | ClassReader.SKIP_DEBUG | ClassReader.SKIP_FRAMES); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/minecraft/forge/bakedquad/vertexdata/MixinBakedQuad.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.minecraft.forge.bakedquad.vertexdata; 2 | 3 | import github.kasuminova.stellarcore.mixin.util.AccessorBakedQuad; 4 | import net.minecraft.client.renderer.block.model.BakedQuad; 5 | import org.spongepowered.asm.mixin.Final; 6 | import org.spongepowered.asm.mixin.Mixin; 7 | import org.spongepowered.asm.mixin.Mutable; 8 | import org.spongepowered.asm.mixin.Shadow; 9 | 10 | @Mixin(BakedQuad.class) 11 | public class MixinBakedQuad implements AccessorBakedQuad { 12 | 13 | @Final 14 | @Shadow 15 | @Mutable 16 | protected int[] vertexData; 17 | 18 | @Override 19 | public void stellar_core$setVertexData(final int[] vertexData) { 20 | this.vertexData = vertexData; 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/minecraft/forge/capability/MixinCapabilityDispatcher.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.minecraft.forge.capability; 2 | 3 | import net.minecraft.nbt.NBTBase; 4 | import net.minecraft.nbt.NBTTagCompound; 5 | import net.minecraftforge.common.capabilities.CapabilityDispatcher; 6 | import org.spongepowered.asm.mixin.Mixin; 7 | import org.spongepowered.asm.mixin.injection.At; 8 | import org.spongepowered.asm.mixin.injection.Redirect; 9 | 10 | @SuppressWarnings("MethodMayBeStatic") 11 | @Mixin(CapabilityDispatcher.class) 12 | public class MixinCapabilityDispatcher { 13 | 14 | @Redirect( 15 | method = "serializeNBT()Lnet/minecraft/nbt/NBTTagCompound;", 16 | at = @At( 17 | value = "INVOKE", 18 | target = "Lnet/minecraft/nbt/NBTTagCompound;setTag(Ljava/lang/String;Lnet/minecraft/nbt/NBTBase;)V", 19 | remap = true 20 | ), 21 | remap = false 22 | ) 23 | private void redirectSerializeNBTSetTag(final NBTTagCompound instance, final String key, final NBTBase value) { 24 | if (value.isEmpty()) { 25 | return; 26 | } 27 | instance.setTag(key, value); 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/minecraft/forge/parallelmodelloader/AccessorBlockStateMapper.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.minecraft.forge.parallelmodelloader; 2 | 3 | import net.minecraft.block.state.IBlockState; 4 | import net.minecraft.client.renderer.block.model.ModelResourceLocation; 5 | import net.minecraft.client.renderer.block.statemap.BlockStateMapper; 6 | import org.spongepowered.asm.mixin.Mixin; 7 | import org.spongepowered.asm.mixin.gen.Accessor; 8 | 9 | import java.util.Map; 10 | 11 | @Mixin(BlockStateMapper.class) 12 | public interface AccessorBlockStateMapper { 13 | 14 | @Accessor 15 | Map getBlockStateMap(); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/minecraft/forge/parallelmodelloader/MixinModelRotation.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.minecraft.forge.parallelmodelloader; 2 | 3 | import net.minecraft.client.renderer.block.model.ModelRotation; 4 | import net.minecraftforge.common.model.TRSRTransformation; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.Overwrite; 7 | 8 | import javax.vecmath.Matrix4f; 9 | 10 | @Mixin(ModelRotation.class) 11 | public class MixinModelRotation { 12 | 13 | /** 14 | * @author Kasumi_Nova 15 | * @reason Optifine fix 16 | */ 17 | @Overwrite(remap = false) 18 | public Matrix4f getMatrix() { 19 | return TRSRTransformation.from((ModelRotation) (Object) this).getMatrix(); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/minecraft/hudcaching/AccessorGuiIngameForge.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.minecraft.hudcaching; 2 | 3 | import net.minecraftforge.client.GuiIngameForge; 4 | import org.spongepowered.asm.mixin.Mixin; 5 | import org.spongepowered.asm.mixin.gen.Invoker; 6 | 7 | @Mixin(GuiIngameForge.class) 8 | public interface AccessorGuiIngameForge { 9 | 10 | @Invoker(remap = false) 11 | void callRenderCrosshairs(float partialTicks); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/minecraft/hudcaching/EntityRendererMixin_HUDCaching.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.minecraft.hudcaching; 2 | 3 | import github.kasuminova.stellarcore.client.hudcaching.HUDCaching; 4 | import net.minecraft.client.gui.GuiIngame; 5 | import net.minecraft.client.renderer.EntityRenderer; 6 | import org.spongepowered.asm.mixin.Mixin; 7 | import org.spongepowered.asm.mixin.injection.At; 8 | import org.spongepowered.asm.mixin.injection.Redirect; 9 | 10 | @Mixin(value = EntityRenderer.class, priority = 1001) 11 | public class EntityRendererMixin_HUDCaching { 12 | @Redirect(method = "updateCameraAndRender", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/GuiIngame;renderGameOverlay(F)V")) 13 | public void patcher$renderCachedHUD(GuiIngame guiIngame, float partialTicks) { 14 | HUDCaching.renderCachedHud((EntityRenderer) (Object) this, guiIngame, partialTicks); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/minecraft/hudcaching/FramebufferMixin_HUDCaching.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.minecraft.hudcaching; 2 | 3 | import github.kasuminova.stellarcore.client.hudcaching.HUDCaching; 4 | import net.minecraft.client.Minecraft; 5 | import net.minecraft.client.shader.Framebuffer; 6 | import org.spongepowered.asm.mixin.Mixin; 7 | import org.spongepowered.asm.mixin.injection.At; 8 | import org.spongepowered.asm.mixin.injection.Inject; 9 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 10 | 11 | @Mixin(Framebuffer.class) 12 | public class FramebufferMixin_HUDCaching { 13 | 14 | @Inject(method = "bindFramebuffer", at = @At("HEAD"), cancellable = true) 15 | public void patcher$bindHUDCachingBuffer(boolean viewport, CallbackInfo ci) { 16 | final Framebuffer framebuffer = (Framebuffer) (Object) this; 17 | if (HUDCaching.renderingCacheOverride && framebuffer == Minecraft.getMinecraft().getFramebuffer()) { 18 | HUDCaching.framebuffer.bindFramebuffer(viewport); 19 | ci.cancel(); 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/minecraft/hudcaching/GuiIngameForgeMixin_HUDCaching.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.minecraft.hudcaching; 2 | 3 | import github.kasuminova.stellarcore.client.hudcaching.HUDCaching; 4 | import net.minecraftforge.client.GuiIngameForge; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.injection.At; 7 | import org.spongepowered.asm.mixin.injection.Inject; 8 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 9 | 10 | @Mixin(GuiIngameForge.class) 11 | public class GuiIngameForgeMixin_HUDCaching { 12 | @Inject(method = "renderCrosshairs", at = @At("HEAD"), cancellable = true, remap = false) 13 | private void patcher$cancelCrosshair(CallbackInfo ci) { 14 | if (HUDCaching.renderingCacheOverride) { 15 | ci.cancel(); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/minecraft/hudcaching/GuiIngameMixin_HUDCaching.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.minecraft.hudcaching; 2 | 3 | import github.kasuminova.stellarcore.client.hudcaching.HUDCaching; 4 | import net.minecraft.client.gui.GuiIngame; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.injection.At; 7 | import org.spongepowered.asm.mixin.injection.Inject; 8 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 9 | 10 | @Mixin(GuiIngame.class) 11 | public class GuiIngameMixin_HUDCaching { 12 | @Inject(method = "renderVignette", at = @At("HEAD"), cancellable = true) 13 | private void patcher$cancelVignette(CallbackInfo ci) { 14 | if (HUDCaching.renderingCacheOverride) { 15 | ci.cancel(); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/minecraft/longnbtkiller/MixinNBTTagCompound.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.minecraft.longnbtkiller; 2 | 3 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 4 | import net.minecraft.nbt.NBTTagCompound; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.injection.Constant; 7 | import org.spongepowered.asm.mixin.injection.ModifyConstant; 8 | 9 | @Mixin(NBTTagCompound.class) 10 | @SuppressWarnings("MethodMayBeStatic") 11 | public class MixinNBTTagCompound { 12 | 13 | @ModifyConstant(method = "read", constant = @Constant(intValue = 512)) 14 | private int modifyReadMaxDepth(final int constant) { 15 | return StellarCoreConfig.BUG_FIXES.vanilla.maxNBTDepth; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/minecraft/longnbtkiller/MixinNBTTagList.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.minecraft.longnbtkiller; 2 | 3 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 4 | import net.minecraft.nbt.NBTTagList; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.injection.Constant; 7 | import org.spongepowered.asm.mixin.injection.ModifyConstant; 8 | 9 | @Mixin(NBTTagList.class) 10 | @SuppressWarnings("MethodMayBeStatic") 11 | public class MixinNBTTagList { 12 | 13 | @ModifyConstant(method = "read", constant = @Constant(intValue = 512)) 14 | private int modifyReadMaxDepth(final int constant) { 15 | return StellarCoreConfig.BUG_FIXES.vanilla.maxNBTDepth; 16 | } 17 | 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/minecraft/nethandlerplayserver/MixinNetHandlerPlayServer.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.minecraft.nethandlerplayserver; 2 | 3 | import net.minecraft.entity.player.EntityPlayerMP; 4 | import net.minecraft.network.NetHandlerPlayServer; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.Shadow; 7 | import org.spongepowered.asm.mixin.injection.At; 8 | import org.spongepowered.asm.mixin.injection.Inject; 9 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 10 | 11 | @Mixin(NetHandlerPlayServer.class) 12 | public class MixinNetHandlerPlayServer { 13 | 14 | @Shadow 15 | public EntityPlayerMP player; 16 | 17 | @Inject( 18 | method = {"processTryUseItemOnBlock", "processTryUseItem"}, 19 | at = @At( 20 | value = "INVOKE", 21 | target = "Lnet/minecraft/server/MinecraftServer;getWorld(I)Lnet/minecraft/world/WorldServer;" 22 | ), 23 | cancellable = true 24 | ) 25 | private void injectProcessTryUseItemOnBlock(final CallbackInfo ci) { 26 | if (this.player.openContainer != this.player.inventoryContainer) { 27 | ci.cancel(); 28 | } 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/minecraft/noglerror/MixinGlStateManager.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.minecraft.noglerror; 2 | 3 | import net.minecraft.client.renderer.GlStateManager; 4 | import org.spongepowered.asm.mixin.Mixin; 5 | import org.spongepowered.asm.mixin.Overwrite; 6 | 7 | @Mixin(GlStateManager.class) 8 | public class MixinGlStateManager { 9 | 10 | /** 11 | * @author Kasumi_Nova 12 | * @reason NoGLError 13 | */ 14 | @Overwrite 15 | public static int glGetError() { 16 | return 0; 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/minecraft/resourcelocation/MixinModelResourceLocation.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.minecraft.resourcelocation; 2 | 3 | import github.kasuminova.stellarcore.common.pool.LowerCaseStringPool; 4 | import net.minecraft.client.renderer.block.model.ModelResourceLocation; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.injection.At; 7 | import org.spongepowered.asm.mixin.injection.Redirect; 8 | 9 | import java.util.Locale; 10 | 11 | @SuppressWarnings("MethodMayBeStatic") 12 | @Mixin(ModelResourceLocation.class) 13 | public class MixinModelResourceLocation { 14 | 15 | @Redirect(method = "(I[Ljava/lang/String;)V", at = @At(value = "INVOKE", target = "Ljava/lang/String;toLowerCase(Ljava/util/Locale;)Ljava/lang/String;")) 16 | private String injectInit(final String instance, final Locale locale) { 17 | return LowerCaseStringPool.INSTANCE.canonicalize(instance); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/minecraft/resourcelocation/MixinResourceLocation.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.minecraft.resourcelocation; 2 | 3 | import github.kasuminova.stellarcore.common.pool.LowerCaseStringPool; 4 | import net.minecraft.util.ResourceLocation; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.injection.At; 7 | import org.spongepowered.asm.mixin.injection.Redirect; 8 | 9 | import java.util.Locale; 10 | 11 | @SuppressWarnings("MethodMayBeStatic") 12 | @Mixin(ResourceLocation.class) 13 | public class MixinResourceLocation { 14 | 15 | @Redirect(method = "(I[Ljava/lang/String;)V", at = @At(value = "INVOKE", target = "Ljava/lang/String;toLowerCase(Ljava/util/Locale;)Ljava/lang/String;")) 16 | private String injectInit(final String instance, final Locale locale) { 17 | return LowerCaseStringPool.INSTANCE.canonicalize(instance); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/minecraft/resources/MixinMinecraft.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.minecraft.resources; 2 | 3 | import github.kasuminova.stellarcore.mixin.util.StellarCoreResourcePack; 4 | import net.minecraft.client.Minecraft; 5 | import net.minecraft.client.resources.DefaultResourcePack; 6 | import org.spongepowered.asm.mixin.Final; 7 | import org.spongepowered.asm.mixin.Mixin; 8 | import org.spongepowered.asm.mixin.Shadow; 9 | import org.spongepowered.asm.mixin.injection.At; 10 | import org.spongepowered.asm.mixin.injection.Inject; 11 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 12 | 13 | @SuppressWarnings("MethodMayBeStatic") 14 | @Mixin(Minecraft.class) 15 | public class MixinMinecraft { 16 | 17 | @Final 18 | @Shadow 19 | public DefaultResourcePack defaultResourcePack; 20 | 21 | @Inject(method = "refreshResources", at = @At("HEAD")) 22 | private void injectRefreshResourcesBefore(final CallbackInfo ci) { 23 | if (defaultResourcePack instanceof StellarCoreResourcePack reloadListener) { 24 | reloadListener.stellar_core$onReload(); 25 | } 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/minecraft/stitcher/AccessorStitcher.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.minecraft.stitcher; 2 | 3 | import net.minecraft.client.renderer.texture.Stitcher; 4 | import org.spongepowered.asm.mixin.Mixin; 5 | import org.spongepowered.asm.mixin.gen.Accessor; 6 | 7 | @Mixin(Stitcher.class) 8 | public interface AccessorStitcher { 9 | 10 | @Accessor 11 | int getMipmapLevelStitcher(); 12 | 13 | @Accessor 14 | int getMaxTileDimension(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/minecraft/stitcher/MixinModelManager.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.minecraft.stitcher; 2 | 3 | import github.kasuminova.stellarcore.client.texture.StitcherCache; 4 | import net.minecraft.client.renderer.block.model.ModelManager; 5 | import net.minecraft.client.renderer.texture.TextureMap; 6 | import org.spongepowered.asm.mixin.Final; 7 | import org.spongepowered.asm.mixin.Mixin; 8 | import org.spongepowered.asm.mixin.Shadow; 9 | import org.spongepowered.asm.mixin.injection.At; 10 | import org.spongepowered.asm.mixin.injection.Inject; 11 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 12 | 13 | @Mixin(ModelManager.class) 14 | public class MixinModelManager { 15 | 16 | @Final 17 | @Shadow 18 | private TextureMap texMap; 19 | 20 | @Inject(method = "", at = @At("RETURN")) 21 | private void injectFinishLoadingBefore(final TextureMap textures, final CallbackInfo ci) { 22 | StitcherCache.create("vanilla", texMap); 23 | StitcherCache.setActiveMap(texMap); 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/minecraft/stitcher/MixinStitcherHolder.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.minecraft.stitcher; 2 | 3 | import github.kasuminova.stellarcore.mixin.util.AccessorStitcherHolder; 4 | import net.minecraft.client.renderer.texture.Stitcher; 5 | import org.spongepowered.asm.mixin.Final; 6 | import org.spongepowered.asm.mixin.Mixin; 7 | import org.spongepowered.asm.mixin.Shadow; 8 | 9 | @SuppressWarnings("AddedMixinMembersNamePattern") 10 | @Mixin(Stitcher.Holder.class) 11 | public class MixinStitcherHolder implements AccessorStitcherHolder { 12 | 13 | @Final 14 | @Shadow 15 | private int width; 16 | 17 | @Final 18 | @Shadow 19 | private int height; 20 | 21 | @Shadow 22 | private float scaleFactor; 23 | 24 | @Override 25 | public int realWidth() { 26 | return width; 27 | } 28 | 29 | @Override 30 | public int realHeight() { 31 | return height; 32 | } 33 | 34 | @Override 35 | public float scaleFactor() { 36 | return scaleFactor; 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/minecraft/world/MixinWorld.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.minecraft.world; 2 | 3 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 4 | import github.kasuminova.stellarcore.common.util.LinkedFakeArrayList; 5 | import net.minecraft.world.World; 6 | import net.minecraftforge.common.util.BlockSnapshot; 7 | import org.spongepowered.asm.mixin.Mixin; 8 | import org.spongepowered.asm.mixin.Shadow; 9 | import org.spongepowered.asm.mixin.injection.At; 10 | import org.spongepowered.asm.mixin.injection.Inject; 11 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; 12 | 13 | import java.util.ArrayList; 14 | 15 | @Mixin(World.class) 16 | public class MixinWorld { 17 | 18 | @Shadow(remap = false) public ArrayList capturedBlockSnapshots; 19 | 20 | @Inject(method = "init", at = @At("HEAD")) 21 | private void injectInit(final CallbackInfoReturnable cir) { 22 | if (!StellarCoreConfig.PERFORMANCE.vanilla.capturedBlockSnapshots) { 23 | return; 24 | } 25 | this.capturedBlockSnapshots = new LinkedFakeArrayList<>(this.capturedBlockSnapshots); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/minecraft/world_load/MixinMinecraft.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.minecraft.world_load; 2 | 3 | import github.kasuminova.stellarcore.client.handler.ClientEventHandler; 4 | import net.minecraft.client.Minecraft; 5 | import net.minecraft.client.multiplayer.WorldClient; 6 | import org.spongepowered.asm.mixin.Mixin; 7 | import org.spongepowered.asm.mixin.injection.At; 8 | import org.spongepowered.asm.mixin.injection.Inject; 9 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 10 | 11 | @SuppressWarnings("MethodMayBeStatic") 12 | @Mixin(Minecraft.class) 13 | public class MixinMinecraft { 14 | 15 | @Inject(method = "loadWorld(Lnet/minecraft/client/multiplayer/WorldClient;Ljava/lang/String;)V", at = @At("HEAD")) 16 | private void injectLoadWorld(final WorldClient worldClientIn, final String loadingMessage, final CallbackInfo ci) { 17 | ClientEventHandler.INSTANCE.onClientWorldLoad(worldClientIn); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/minecraft/world_pos_judgement/MixinWorld.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.minecraft.world_pos_judgement; 2 | 3 | import net.minecraft.util.math.BlockPos; 4 | import net.minecraft.world.World; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.Overwrite; 7 | 8 | @Mixin(World.class) 9 | public class MixinWorld { 10 | 11 | /** 12 | * @author Kasumi_Nova 13 | * @reason Faster than vanilla. 14 | */ 15 | @Overwrite 16 | public boolean isValid(BlockPos pos) { 17 | if (isOutsideBuildHeight(pos)) { 18 | return false; 19 | } 20 | final int x = pos.getX(); 21 | final int z = pos.getZ(); 22 | return x >= -30000000 && z >= -30000000 && x < 30000000 && z < 30000000; 23 | } 24 | 25 | /** 26 | * @author Kasumi_Nova 27 | * @reason Faster than vanilla. 28 | */ 29 | @Overwrite 30 | public boolean isOutsideBuildHeight(BlockPos pos) { 31 | final int y = pos.getY(); 32 | return y < 0 || y >= 256; 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/minecraft/worldclient/MixinWorldClient.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.minecraft.worldclient; 2 | 3 | import net.minecraft.block.state.IBlockState; 4 | import net.minecraft.client.multiplayer.WorldClient; 5 | import net.minecraft.util.math.BlockPos; 6 | import org.spongepowered.asm.mixin.Mixin; 7 | import org.spongepowered.asm.mixin.injection.At; 8 | import org.spongepowered.asm.mixin.injection.Inject; 9 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; 10 | 11 | @SuppressWarnings("MethodMayBeStatic") 12 | @Mixin(WorldClient.class) 13 | public class MixinWorldClient { 14 | 15 | @Inject(method = "invalidateRegionAndSetBlock", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/World;setBlockState(Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/state/IBlockState;I)Z"), cancellable = true) 16 | private void injectInvalidateRegionAndSetBlock(final BlockPos pos, final IBlockState state, final CallbackInfoReturnable cir) { 17 | if (state == null) { 18 | cir.setReturnValue(Boolean.FALSE); 19 | } 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/minecraft/worldserver/MixinWorldServer.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.minecraft.worldserver; 2 | 3 | import github.kasuminova.stellarcore.common.util.LinkedFakeArrayList; 4 | import net.minecraft.world.NextTickListEntry; 5 | import net.minecraft.world.WorldServer; 6 | import org.spongepowered.asm.mixin.Mixin; 7 | import org.spongepowered.asm.mixin.injection.At; 8 | import org.spongepowered.asm.mixin.injection.Redirect; 9 | 10 | import java.util.ArrayList; 11 | 12 | @SuppressWarnings("MethodMayBeStatic") 13 | @Mixin(WorldServer.class) 14 | public class MixinWorldServer { 15 | 16 | @Redirect( 17 | method = "getPendingBlockUpdates(Lnet/minecraft/world/gen/structure/StructureBoundingBox;Z)Ljava/util/List;", 18 | at = @At( 19 | value = "INVOKE", 20 | target = "Lcom/google/common/collect/Lists;newArrayList()Ljava/util/ArrayList;", 21 | remap = false 22 | ) 23 | ) 24 | private ArrayList injectGetPendingBlockUpdates() { 25 | return new LinkedFakeArrayList<>(); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/modularrouters/MixinTileEntityItemRouter.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.modularrouters; 2 | 3 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 4 | import me.desht.modularrouters.block.tile.TileEntityItemRouter; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.Shadow; 7 | import org.spongepowered.asm.mixin.injection.At; 8 | import org.spongepowered.asm.mixin.injection.Inject; 9 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 10 | 11 | @Mixin(value = TileEntityItemRouter.class, remap = false) 12 | public class MixinTileEntityItemRouter { 13 | 14 | @Shadow 15 | private boolean ecoMode; 16 | 17 | @Inject(method = "", at = @At("RETURN")) 18 | private void injectInit(final CallbackInfo ci) { 19 | if (!StellarCoreConfig.FEATURES.modularRouters.routerECOModeByDefault) { 20 | return; 21 | } 22 | this.ecoMode = true; 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/rgbchat/MixinRGBChat.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.rgbchat; 2 | 3 | import com.fred.jianghun.Main; 4 | import github.kasuminova.stellarcore.client.gui.font.CachedRGBFontRenderer; 5 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 6 | import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; 7 | import org.spongepowered.asm.mixin.Mixin; 8 | import org.spongepowered.asm.mixin.injection.At; 9 | import org.spongepowered.asm.mixin.injection.Inject; 10 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 11 | 12 | @Mixin(Main.class) 13 | @SuppressWarnings("MethodMayBeStatic") 14 | public class MixinRGBChat { 15 | 16 | @Inject(method = "postInit", at = @At("HEAD"), cancellable = true, remap = false) 17 | public void onPostInit(final FMLPostInitializationEvent event, final CallbackInfo ci) { 18 | if (!StellarCoreConfig.FEATURES.rgbChat.cachedRGBFontRenderer) { 19 | return; 20 | } 21 | CachedRGBFontRenderer.overrideFontRenderer(); 22 | ci.cancel(); 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/rgbchat/MixinRGBSettings.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.rgbchat; 2 | 3 | import com.fred.jianghun.truergb.IColor; 4 | import com.fred.jianghun.truergb.RGBSettings; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.gen.Accessor; 7 | 8 | import java.util.List; 9 | 10 | @Mixin(RGBSettings.class) 11 | public interface MixinRGBSettings { 12 | 13 | @Accessor(remap = false) 14 | List getColors(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/sync/MixinTileEntityDualVertical.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.sync; 2 | 3 | import com.llamalad7.mixinextras.sugar.Local; 4 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 5 | import me.ichun.mods.sync.common.tileentity.TileEntityDualVertical; 6 | import net.minecraft.entity.player.EntityPlayerMP; 7 | import org.spongepowered.asm.mixin.Mixin; 8 | import org.spongepowered.asm.mixin.injection.At; 9 | import org.spongepowered.asm.mixin.injection.Inject; 10 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 11 | 12 | @Mixin(TileEntityDualVertical.class) 13 | public class MixinTileEntityDualVertical { 14 | 15 | @Inject(method = "update", 16 | at = @At( 17 | value = "INVOKE", 18 | target = "Lnet/minecraft/entity/player/EntityPlayerMP;setHealth(F)V" 19 | ) 20 | ) 21 | private void injectUpdateClearInventory(final CallbackInfo ci, @Local(name = "player") EntityPlayerMP player) { 22 | if (!StellarCoreConfig.BUG_FIXES.sync.ridingFixes) { 23 | return; 24 | } 25 | if (player.isRiding()) { 26 | player.dismountRidingEntity(); 27 | } 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/tconevo/MixinAvaritiaMaterialModel.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.tconevo; 2 | 3 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 4 | import net.minecraft.client.renderer.block.model.ItemCameraTransforms; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.injection.At; 7 | import org.spongepowered.asm.mixin.injection.Inject; 8 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 9 | 10 | @SuppressWarnings("MethodMayBeStatic") 11 | @Mixin(targets = "xyz.phanta.tconevo.integration.avaritia.client.AvaritiaMaterialModel$BakedAvaritiaMaterialModel$WithoutHalo") 12 | public class MixinAvaritiaMaterialModel { 13 | 14 | @Inject(method = "handleCosmicLighting", at = @At("HEAD"), cancellable = true, remap = false) 15 | private void injectHandleCosmicLighting(final ItemCameraTransforms.TransformType transType, final CallbackInfo ci) { 16 | if (!StellarCoreConfig.BUG_FIXES.tConEvo.handleCosmicLightingNPEFixes) { 17 | return; 18 | } 19 | if (transType == null) { 20 | ci.cancel(); 21 | } 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/techguns/MixinTGDamageSource.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.techguns; 2 | 3 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 4 | import org.spongepowered.asm.mixin.Mixin; 5 | import org.spongepowered.asm.mixin.injection.At; 6 | import org.spongepowered.asm.mixin.injection.Inject; 7 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 8 | import techguns.damagesystem.TGDamageSource; 9 | 10 | @Mixin(TGDamageSource.class) 11 | public class MixinTGDamageSource { 12 | 13 | @Inject(method = "setBehaviourForVanilla", at = @At("HEAD"), remap = false) 14 | private void onSetBehaviourForVanilla(final CallbackInfo ci) { 15 | if (!StellarCoreConfig.FEATURES.techguns.tgDamageSource) { 16 | return; 17 | } 18 | ((TGDamageSource) ((Object) this)).setProjectile(); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/techguns/MixinTGPermissions.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.techguns; 2 | 3 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 4 | import net.minecraft.entity.player.EntityPlayer; 5 | import org.spongepowered.asm.mixin.Mixin; 6 | import org.spongepowered.asm.mixin.injection.At; 7 | import org.spongepowered.asm.mixin.injection.Inject; 8 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; 9 | import techguns.TGPermissions; 10 | 11 | @Mixin(TGPermissions.class) 12 | public class MixinTGPermissions { 13 | 14 | @Inject(method = "isPlayerOp", at = @At("HEAD"), cancellable = true, remap = false) 15 | private static void onIsPlayerOp(final EntityPlayer player, final CallbackInfoReturnable cir) { 16 | if (!StellarCoreConfig.BUG_FIXES.techguns.tgPermissions) { 17 | return; 18 | } 19 | cir.setReturnValue(player.canUseCommand(4, "")); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/thermaldynamics/MixinDuctUnitFluidSuper.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.thermaldynamics; 2 | 3 | import cofh.thermaldynamics.duct.fluid.DuctUnitFluidSuper; 4 | import com.llamalad7.mixinextras.injector.ModifyReturnValue; 5 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 6 | import github.kasuminova.stellarcore.mixin.util.DuctUniFluidSuperHandlerProxy; 7 | import net.minecraft.util.EnumFacing; 8 | import net.minecraftforge.fluids.capability.IFluidHandler; 9 | import net.minecraftforge.fluids.capability.templates.EmptyFluidHandler; 10 | import org.spongepowered.asm.mixin.Mixin; 11 | import org.spongepowered.asm.mixin.injection.At; 12 | 13 | @Mixin(DuctUnitFluidSuper.class) 14 | public class MixinDuctUnitFluidSuper { 15 | 16 | @ModifyReturnValue(method = "getFluidCapability", at = @At("RETURN"), remap = false) 17 | private IFluidHandler modifyFluidCapability(final IFluidHandler handler, final EnumFacing from) { 18 | if (!StellarCoreConfig.BUG_FIXES.thermalDynamics.fixFluidDuplicate) { 19 | return handler; 20 | } 21 | if (handler == EmptyFluidHandler.INSTANCE) { 22 | return handler; 23 | } 24 | return new DuctUniFluidSuperHandlerProxy((DuctUnitFluidSuper) (Object) this, handler, from); 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/tlm/MixinCustomResourcesLoader.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.tlm; 2 | 3 | import com.github.tartaricacid.touhoulittlemaid.client.resources.CustomResourcesLoader; 4 | import github.kasuminova.stellarcore.client.pool.TLMCubesItemPool; 5 | import github.kasuminova.stellarcore.client.pool.TLMPositionTextureVertexPool; 6 | import org.spongepowered.asm.mixin.Mixin; 7 | import org.spongepowered.asm.mixin.injection.At; 8 | import org.spongepowered.asm.mixin.injection.Inject; 9 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 10 | 11 | @Mixin(value = CustomResourcesLoader.class, remap = false) 12 | public class MixinCustomResourcesLoader { 13 | 14 | @Inject(method = "reloadResources", at = @At("RETURN")) 15 | private static void injectReloadSourcesPost(final CallbackInfo ci) { 16 | TLMCubesItemPool.INSTANCE.clear(); 17 | TLMPositionTextureVertexPool.INSTANCE.clear(); 18 | } 19 | 20 | @Inject(method = "reloadResources", at = @At("HEAD")) 21 | private static void injectReloadSourcesPre(final CallbackInfo ci) { 22 | TLMCubesItemPool.INSTANCE.getWorker().start(); 23 | TLMPositionTextureVertexPool.INSTANCE.getWorker().start(); 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/util/AccessorBakedQuad.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.util; 2 | 3 | public interface AccessorBakedQuad { 4 | 5 | void stellar_core$setVertexData(final int[] vertexData); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/util/AccessorGridData.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.util; 2 | 3 | import ic2.core.energy.grid.Node; 4 | import org.apache.commons.lang3.mutable.MutableDouble; 5 | 6 | import java.util.List; 7 | import java.util.Map; 8 | import java.util.Set; 9 | 10 | public interface AccessorGridData { 11 | 12 | boolean isActive(); 13 | 14 | Map> getEnergySourceToEnergyPathMap(); 15 | 16 | List getActiveSources(); 17 | 18 | Map getActiveSinks(); 19 | 20 | Set getEventPaths(); 21 | 22 | Map> getPathCache(); 23 | 24 | int currentCalcId(); 25 | 26 | int incrementCurrentCalcId(); 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/util/AccessorResourceLocation.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.util; 2 | 3 | public interface AccessorResourceLocation { 4 | 5 | void stellar_core$setNamespace(final String namespace); 6 | 7 | void stellar_core$setPath(final String path); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/util/AccessorStitcherHolder.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.util; 2 | 3 | public interface AccessorStitcherHolder { 4 | 5 | int realWidth(); 6 | 7 | int realHeight(); 8 | 9 | float scaleFactor(); 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/util/AccessorStitcherSlot.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.util; 2 | 3 | import net.minecraft.client.renderer.texture.Stitcher; 4 | 5 | import java.util.List; 6 | 7 | public interface AccessorStitcherSlot { 8 | 9 | int width(); 10 | 11 | int height(); 12 | 13 | List subSlots(); 14 | 15 | Stitcher.Holder holder(); 16 | 17 | void setHolder(Stitcher.Holder holder); 18 | 19 | void setSubSlots(List subSlots); 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/util/CachedItemConduit.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.util; 2 | 3 | import net.minecraft.item.ItemStack; 4 | 5 | public interface CachedItemConduit { 6 | 7 | ItemStack getCachedStack(); 8 | 9 | void setCachedStack(final ItemStack cachedStack); 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/util/CanonicalizationCubesItem.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.util; 2 | 3 | public interface CanonicalizationCubesItem { 4 | 5 | void stellar_core$canonicalize(); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/util/ConcurrentModelLoaderRegistry.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.util; 2 | 3 | public interface ConcurrentModelLoaderRegistry { 4 | 5 | void stellar_core$toConcurrent(); 6 | 7 | void stellar_core$writeToOriginalMap(); 8 | 9 | void stellar_core$toDefault(); 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/util/CustomLoadingScreenUtils.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.util; 2 | 3 | import alexiil.mc.mod.load.ClsManager; 4 | import alexiil.mc.mod.load.render.MinecraftDisplayerRenderer; 5 | import net.minecraftforge.fml.common.ObfuscationReflectionHelper; 6 | import net.minecraftforge.fml.common.Optional; 7 | 8 | public class CustomLoadingScreenUtils { 9 | 10 | @Optional.Method(modid = "customloadingscreen") 11 | public static void cleanCLSTextures() { 12 | try { 13 | MinecraftDisplayerRenderer instance = ObfuscationReflectionHelper.getPrivateValue(ClsManager.class, null, "instance"); 14 | ObfuscationReflectionHelper.setPrivateValue(MinecraftDisplayerRenderer.class, instance, null, "renderingParts"); 15 | } catch (Exception ignored) { 16 | } 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/util/DefaultTextureGetter.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.util; 2 | 3 | import com.google.common.base.Function; 4 | import net.minecraft.client.Minecraft; 5 | import net.minecraft.client.renderer.texture.TextureAtlasSprite; 6 | import net.minecraft.util.ResourceLocation; 7 | 8 | import javax.annotation.Nonnull; 9 | 10 | public class DefaultTextureGetter implements Function { 11 | @Nonnull 12 | @Override 13 | public TextureAtlasSprite apply(final ResourceLocation input) { 14 | return Minecraft.getMinecraft().getTextureMapBlocks().getAtlasSprite(input.toString()); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/util/IC2EnergySyncCalcTask.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.util; 2 | 3 | import com.github.bsideup.jabel.Desugar; 4 | import ic2.core.energy.grid.Grid; 5 | import ic2.core.energy.grid.Node; 6 | import net.minecraft.world.World; 7 | import org.apache.commons.lang3.mutable.MutableDouble; 8 | 9 | import java.util.List; 10 | import java.util.Map; 11 | 12 | @Desugar 13 | public record IC2EnergySyncCalcTask(World world, int calcID, Grid grid, AccessorGridData gridData, List activeSources, Map activeSinks) { 14 | 15 | public static final IC2EnergySyncCalcTask EMPTY = new IC2EnergySyncCalcTask(null, 0, null, null, null, null); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/util/ICapBankSupply.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.util; 2 | 3 | import crazypants.enderio.base.power.IPowerStorage; 4 | 5 | import java.util.Set; 6 | 7 | public interface ICapBankSupply { 8 | 9 | int getCanExtract(); 10 | 11 | int getCanFill(); 12 | 13 | Set getCapBanks(); 14 | 15 | void invokeInit(); 16 | 17 | void invokeBalance(); 18 | 19 | void invokeRemove(long remove); 20 | 21 | long invokeAdd(long add); 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/util/IFusionCraftingCore.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.util; 2 | 3 | public interface IFusionCraftingCore { 4 | 5 | void onInjectorUnload(); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/util/IIThing.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.util; 2 | 3 | import net.minecraft.block.Block; 4 | import net.minecraft.item.Item; 5 | import net.minecraft.item.ItemStack; 6 | 7 | import javax.annotation.Nullable; 8 | 9 | public interface IIThing { 10 | 11 | boolean callIs(@Nullable Item var1); 12 | 13 | boolean callIs(@Nullable ItemStack var1); 14 | 15 | boolean callIs(@Nullable Block var1); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/util/IMixinInGameInfoCore.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.util; 2 | 3 | public interface IMixinInGameInfoCore { 4 | 5 | void addPostDrawAction(Runnable action); 6 | 7 | boolean isPostDrawing(); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/util/IStellarEnergyCalculatorLeg.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.util; 2 | 3 | import ic2.core.energy.grid.Grid; 4 | 5 | public interface IStellarEnergyCalculatorLeg { 6 | 7 | IC2EnergySyncCalcTask doParallelCalc(final Grid grid); 8 | 9 | void doSyncCalc(final IC2EnergySyncCalcTask task); 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/util/IStellarFluxNetwork.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.util; 2 | 3 | public interface IStellarFluxNetwork { 4 | 5 | Runnable getCycleStartRunnable(); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/util/IStellarNetworkPowerManager.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.util; 2 | 3 | public interface IStellarNetworkPowerManager { 4 | 5 | void stellar_core$parallelTick(); 6 | 7 | void stellar_core$finalApplyReceivedPower(); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/util/IStellarServerTickListener.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.util; 2 | 3 | public interface IStellarServerTickListener { 4 | 5 | void stellar_core$tickParallel(); 6 | 7 | void stellar_core$tickFinal(); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/util/ITileCraftingInjector.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.util; 2 | 3 | public interface ITileCraftingInjector { 4 | 5 | void onInjectorAddToCore(final IFusionCraftingCore core); 6 | 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/util/ReceptorPowerInterface.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.util; 2 | 3 | import com.github.bsideup.jabel.Desugar; 4 | import crazypants.enderio.base.power.IPowerInterface; 5 | import github.kasuminova.stellarcore.mixin.enderioconduits_energy.AccessorReceptorEntry; 6 | 7 | @Desugar 8 | public record ReceptorPowerInterface(IPowerInterface pp, AccessorReceptorEntry receptor) { 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/util/StellarCoreResourcePack.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.util; 2 | 3 | public interface StellarCoreResourcePack { 4 | 5 | void stellar_core$onReload(); 6 | 7 | void stellar_core$disableCache(); 8 | 9 | void stellar_core$enableCache(); 10 | 11 | default boolean stellar_core$isPersistent() { 12 | return false; 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/util/StellarItemStack.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.util; 2 | 3 | import net.minecraft.nbt.NBTTagCompound; 4 | import net.minecraftforge.common.capabilities.CapabilityDispatcher; 5 | 6 | public interface StellarItemStack { 7 | 8 | void stellar_core$initCap(); 9 | 10 | void stellar_core$joinCapInit(); 11 | 12 | void stellar_core$ensureCapInitialized(); 13 | 14 | void stellar_core$ensureCapNBTInitialized(); 15 | 16 | NBTTagCompound stellar_core$getCapNBT(); 17 | 18 | CapabilityDispatcher stellar_core$getCap(); 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/util/StellarNBTTagCompound.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.util; 2 | 3 | import github.kasuminova.stellarcore.common.util.NBTTagBackingMap; 4 | 5 | public interface StellarNBTTagCompound extends StellarNBTTagUnique { 6 | 7 | NBTTagBackingMap stellar_core$getTagMap(); 8 | 9 | void stellar_core$setTagMap(final NBTTagBackingMap tagMap); 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/util/StellarNBTTagList.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.util; 2 | 3 | import github.kasuminova.stellarcore.common.util.NBTTagBackingList; 4 | 5 | public interface StellarNBTTagList extends StellarNBTTagUnique { 6 | 7 | NBTTagBackingList stellar_core$getTagList(); 8 | 9 | void stellar_core$setTagList(NBTTagBackingList tagList); 10 | 11 | byte stellar_core$getTagType(); 12 | 13 | void stellar_core$setTagType(byte tagType); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/util/StellarNBTTagUnique.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.util; 2 | 3 | public interface StellarNBTTagUnique { 4 | 5 | void stellar_core$onModified(); 6 | 7 | void stellar_core$setUID(final long uid); 8 | 9 | long stellar_core$getUID(); 10 | 11 | void stellar_core$setUnique(final boolean unique); 12 | 13 | /** 14 | * 使用 Boolean 而不是 boolean,沟槽的插件扫 Method 来获取方法。 15 | */ 16 | Boolean stellar_core$isUnique(); 17 | 18 | void stellar_core$setHashCodeCache(final int hashCode); 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/util/StellarPooledNBT.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.util; 2 | 3 | import net.minecraft.nbt.NBTBase; 4 | 5 | public interface StellarPooledNBT { 6 | 7 | static Object stellar_core$getPooledNBT(final NBTBase nbt) { 8 | try { 9 | return ((StellarPooledNBT) nbt).stellar_core$getPooledNBT(); 10 | } catch (ClassCastException e) { 11 | return nbt; 12 | } 13 | } 14 | 15 | /** 16 | * 返回 Object 来兼容其他模组的反射。 17 | */ 18 | Object stellar_core$getPooledNBT(); 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/util/TinkerRegistryUtils.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.util; 2 | 3 | import net.minecraftforge.fluids.Fluid; 4 | import net.minecraftforge.fluids.FluidStack; 5 | import slimeknights.tconstruct.library.TinkerRegistry; 6 | import slimeknights.tconstruct.library.smeltery.AlloyRecipe; 7 | 8 | import java.util.ArrayList; 9 | import java.util.HashMap; 10 | import java.util.List; 11 | import java.util.Map; 12 | 13 | public class TinkerRegistryUtils { 14 | private static final Map> ALLOY_RECIPE_PREFIX_MAP = new HashMap<>(); 15 | 16 | public static boolean stellar_core$alloyRecipeDirty = false; 17 | 18 | public static Map> getAlloyRecipePrefixMap() { 19 | if (stellar_core$alloyRecipeDirty) { 20 | stellar_core$alloyRecipeDirty = false; 21 | ALLOY_RECIPE_PREFIX_MAP.clear(); 22 | TinkerRegistry.getAlloys().forEach(recipe -> { 23 | if (!recipe.isValid()) { 24 | return; 25 | } 26 | FluidStack stack = recipe.getFluids().get(0); 27 | ALLOY_RECIPE_PREFIX_MAP.computeIfAbsent(stack.getFluid(), k -> new ArrayList<>()).add(recipe); 28 | }); 29 | } 30 | return ALLOY_RECIPE_PREFIX_MAP; 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/mixin/vintagefix/MixinTextureCollector.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.mixin.vintagefix; 2 | 3 | import github.kasuminova.stellarcore.client.resource.ResourceExistingCache; 4 | import github.kasuminova.stellarcore.common.config.StellarCoreConfig; 5 | import org.embeddedt.vintagefix.dynamicresources.TextureCollector; 6 | import org.spongepowered.asm.mixin.Mixin; 7 | import org.spongepowered.asm.mixin.injection.At; 8 | import org.spongepowered.asm.mixin.injection.Inject; 9 | import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 10 | 11 | @Mixin(value = TextureCollector.class, remap = false) 12 | public class MixinTextureCollector { 13 | 14 | @Inject(method = "startDiscovery", at = @At("HEAD")) 15 | private static void injectStartDiscovery(final CallbackInfo ci) { 16 | if (StellarCoreConfig.PERFORMANCE.vanilla.resourceExistStateCache) { 17 | ResourceExistingCache.enableCache(); 18 | } 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/shaded/org/jctools/counters/Counter.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.shaded.org.jctools.counters; 2 | 3 | /** 4 | * Base counter interface. 5 | * 6 | * @author Tolstopyatov Vsevolod 7 | */ 8 | public interface Counter { 9 | 10 | void inc(); 11 | 12 | void inc(long delta); 13 | 14 | long get(); 15 | 16 | long getAndReset(); 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/shaded/org/jctools/counters/CountersFactory.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.shaded.org.jctools.counters; 2 | 3 | import github.kasuminova.stellarcore.shaded.org.jctools.util.UnsafeAccess; 4 | 5 | /** 6 | * @author Tolstopyatov Vsevolod 7 | */ 8 | public final class CountersFactory { 9 | 10 | private CountersFactory() { 11 | } 12 | 13 | public static FixedSizeStripedLongCounter createFixedSizeStripedCounter(int stripesCount) { 14 | if (UnsafeAccess.SUPPORTS_GET_AND_ADD_LONG) { 15 | return new FixedSizeStripedLongCounterV8(stripesCount); 16 | } else { 17 | return new FixedSizeStripedLongCounterV6(stripesCount); 18 | } 19 | } 20 | 21 | public static FixedSizeStripedLongCounter createFixedSizeStripedCounterV6(int stripesCount) { 22 | return new FixedSizeStripedLongCounterV6(stripesCount); 23 | } 24 | 25 | public static FixedSizeStripedLongCounter createFixedSizeStripedCounterV8(int stripesCount) { 26 | return new FixedSizeStripedLongCounterV8(stripesCount); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/shaded/org/jctools/counters/FixedSizeStripedLongCounterV6.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.shaded.org.jctools.counters; 2 | 3 | import static github.kasuminova.stellarcore.shaded.org.jctools.util.UnsafeAccess.UNSAFE; 4 | 5 | /** 6 | * Lock-free implementation of striped counter using 7 | * CAS primitives. 8 | * 9 | * @author Tolstopyatov Vsevolod 10 | */ 11 | class FixedSizeStripedLongCounterV6 extends FixedSizeStripedLongCounter { 12 | 13 | public FixedSizeStripedLongCounterV6(int stripesCount) { 14 | super(stripesCount); 15 | } 16 | 17 | @Override 18 | protected void inc(long[] cells, long offset, long delta) { 19 | long v; 20 | do { 21 | v = UNSAFE.getLongVolatile(cells, offset); 22 | } while (!UNSAFE.compareAndSwapLong(cells, offset, v, v + delta)); 23 | } 24 | 25 | @Override 26 | protected long getAndReset(long[] cells, long offset) { 27 | long v; 28 | do { 29 | v = UNSAFE.getLongVolatile(cells, offset); 30 | } while (!UNSAFE.compareAndSwapLong(cells, offset, v, 0L)); 31 | 32 | return v; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/shaded/org/jctools/counters/FixedSizeStripedLongCounterV8.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.shaded.org.jctools.counters; 2 | 3 | import static github.kasuminova.stellarcore.shaded.org.jctools.util.UnsafeAccess.UNSAFE; 4 | 5 | /** 6 | * Wait-free implementation of striped counter using 7 | * Java 8 Unsafe intrinsics (lock addq and lock xchg). 8 | * 9 | * @author Tolstopyatov Vsevolod 10 | */ 11 | class FixedSizeStripedLongCounterV8 extends FixedSizeStripedLongCounter { 12 | 13 | public FixedSizeStripedLongCounterV8(int stripesCount) { 14 | super(stripesCount); 15 | } 16 | 17 | @Override 18 | protected void inc(long[] cells, long offset, long delta) { 19 | UNSAFE.getAndAddLong(cells, offset, delta); 20 | } 21 | 22 | @Override 23 | protected long getAndReset(long[] cells, long offset) { 24 | return UNSAFE.getAndSetLong(cells, offset, 0L); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/shaded/org/jctools/counters/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (the "License"); 3 | * you may not use this file except in compliance with the License. 4 | * You may obtain a copy of the License at 5 | * 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Unless required by applicable law or agreed to in writing, software 9 | * distributed under the License is distributed on an "AS IS" BASIS, 10 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | * See the License for the specific language governing permissions and 12 | * limitations under the License. 13 | */ 14 | package github.kasuminova.stellarcore.shaded.org.jctools.counters; 15 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/shaded/org/jctools/maps/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (the "License"); 3 | * you may not use this file except in compliance with the License. 4 | * You may obtain a copy of the License at 5 | * 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Unless required by applicable law or agreed to in writing, software 9 | * distributed under the License is distributed on an "AS IS" BASIS, 10 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | * See the License for the specific language governing permissions and 12 | * limitations under the License. 13 | */ 14 | package github.kasuminova.stellarcore.shaded.org.jctools.maps; 15 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/shaded/org/jctools/queues/LinkedArrayQueueUtil.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.shaded.org.jctools.queues; 2 | 3 | import github.kasuminova.stellarcore.shaded.org.jctools.util.InternalAPI; 4 | 5 | import static github.kasuminova.stellarcore.shaded.org.jctools.util.UnsafeRefArrayAccess.REF_ARRAY_BASE; 6 | import static github.kasuminova.stellarcore.shaded.org.jctools.util.UnsafeRefArrayAccess.REF_ELEMENT_SHIFT; 7 | 8 | /** 9 | * This is used for method substitution in the LinkedArray classes code generation. 10 | */ 11 | @InternalAPI 12 | public final class LinkedArrayQueueUtil 13 | { 14 | public static int length(Object[] buf) 15 | { 16 | return buf.length; 17 | } 18 | 19 | /** 20 | * This method assumes index is actually (index << 1) because lower bit is 21 | * used for resize. This is compensated for by reducing the element shift. 22 | * The computation is constant folded, so there's no cost. 23 | */ 24 | public static long modifiedCalcCircularRefElementOffset(long index, long mask) 25 | { 26 | return REF_ARRAY_BASE + ((index & mask) << (REF_ELEMENT_SHIFT - 1)); 27 | } 28 | 29 | public static long nextArrayOffset(Object[] curr) 30 | { 31 | return REF_ARRAY_BASE + ((long) (length(curr) - 1) << REF_ELEMENT_SHIFT); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/shaded/org/jctools/queues/MpscUnboundedXaddChunk.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (the "License"); 3 | * you may not use this file except in compliance with the License. 4 | * You may obtain a copy of the License at 5 | * 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Unless required by applicable law or agreed to in writing, software 9 | * distributed under the License is distributed on an "AS IS" BASIS, 10 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | * See the License for the specific language governing permissions and 12 | * limitations under the License. 13 | */ 14 | package github.kasuminova.stellarcore.shaded.org.jctools.queues; 15 | 16 | import github.kasuminova.stellarcore.shaded.org.jctools.util.InternalAPI; 17 | 18 | @InternalAPI 19 | public final class MpscUnboundedXaddChunk extends MpUnboundedXaddChunk, E> 20 | { 21 | public MpscUnboundedXaddChunk(long index, MpscUnboundedXaddChunk prev, int size, boolean pooled) 22 | { 23 | super(index, prev, size, pooled); 24 | 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/shaded/org/jctools/queues/SupportsIterator.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (the "License"); 3 | * you may not use this file except in compliance with the License. 4 | * You may obtain a copy of the License at 5 | * 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Unless required by applicable law or agreed to in writing, software 9 | * distributed under the License is distributed on an "AS IS" BASIS, 10 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | * See the License for the specific language governing permissions and 12 | * limitations under the License. 13 | */ 14 | package github.kasuminova.stellarcore.shaded.org.jctools.queues; 15 | 16 | import github.kasuminova.stellarcore.shaded.org.jctools.util.InternalAPI; 17 | 18 | /** 19 | * Tagging interface to help testing 20 | */ 21 | @InternalAPI 22 | public interface SupportsIterator 23 | { 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/shaded/org/jctools/queues/atomic/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (the "License"); 3 | * you may not use this file except in compliance with the License. 4 | * You may obtain a copy of the License at 5 | * 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Unless required by applicable law or agreed to in writing, software 9 | * distributed under the License is distributed on an "AS IS" BASIS, 10 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | * See the License for the specific language governing permissions and 12 | * limitations under the License. 13 | */ 14 | package github.kasuminova.stellarcore.shaded.org.jctools.queues.atomic; 15 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/shaded/org/jctools/queues/atomic/unpadded/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (the "License"); 3 | * you may not use this file except in compliance with the License. 4 | * You may obtain a copy of the License at 5 | * 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Unless required by applicable law or agreed to in writing, software 9 | * distributed under the License is distributed on an "AS IS" BASIS, 10 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | * See the License for the specific language governing permissions and 12 | * limitations under the License. 13 | */ 14 | package github.kasuminova.stellarcore.shaded.org.jctools.queues.atomic.unpadded; 15 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/shaded/org/jctools/queues/unpadded/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (the "License"); 3 | * you may not use this file except in compliance with the License. 4 | * You may obtain a copy of the License at 5 | * 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Unless required by applicable law or agreed to in writing, software 9 | * distributed under the License is distributed on an "AS IS" BASIS, 10 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | * See the License for the specific language governing permissions and 12 | * limitations under the License. 13 | */ 14 | package github.kasuminova.stellarcore.shaded.org.jctools.queues.unpadded; 15 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/shaded/org/jctools/util/PortableJvmInfo.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (the "License"); 3 | * you may not use this file except in compliance with the License. 4 | * You may obtain a copy of the License at 5 | * 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Unless required by applicable law or agreed to in writing, software 9 | * distributed under the License is distributed on an "AS IS" BASIS, 10 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | * See the License for the specific language governing permissions and 12 | * limitations under the License. 13 | */ 14 | package github.kasuminova.stellarcore.shaded.org.jctools.util; 15 | 16 | import github.kasuminova.stellarcore.common.util.StellarEnvironment; 17 | 18 | /** 19 | * JVM Information that is standard and available on all JVMs (i.e. does not use unsafe) 20 | */ 21 | @InternalAPI 22 | public interface PortableJvmInfo { 23 | int CACHE_LINE_SIZE = Integer.getInteger("jctools.cacheLineSize", 64); 24 | int CPUs = StellarEnvironment.getConcurrency(); 25 | int RECOMENDED_OFFER_BATCH = CPUs * 4; 26 | int RECOMENDED_POLL_BATCH = CPUs * 4; 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/shaded/org/jctools/util/SpscLookAheadUtil.java: -------------------------------------------------------------------------------- 1 | package github.kasuminova.stellarcore.shaded.org.jctools.util; 2 | 3 | @InternalAPI 4 | public class SpscLookAheadUtil 5 | { 6 | public static final int MAX_LOOK_AHEAD_STEP = Integer.getInteger("jctools.spsc.max.lookahead.step", 4096); 7 | 8 | public static int computeLookAheadStep(int actualCapacity) 9 | { 10 | return Math.min(actualCapacity / 4, MAX_LOOK_AHEAD_STEP); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/shaded/org/jctools/util/UnsafeJvmInfo.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (the "License"); 3 | * you may not use this file except in compliance with the License. 4 | * You may obtain a copy of the License at 5 | * 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Unless required by applicable law or agreed to in writing, software 9 | * distributed under the License is distributed on an "AS IS" BASIS, 10 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | * See the License for the specific language governing permissions and 12 | * limitations under the License. 13 | */ 14 | package github.kasuminova.stellarcore.shaded.org.jctools.util; 15 | 16 | @InternalAPI 17 | public interface UnsafeJvmInfo { 18 | int PAGE_SIZE = UnsafeAccess.UNSAFE.pageSize(); 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/github/kasuminova/stellarcore/shaded/org/jctools/util/package-info.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Licensed under the Apache License, Version 2.0 (the "License"); 3 | * you may not use this file except in compliance with the License. 4 | * You may obtain a copy of the License at 5 | * 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Unless required by applicable law or agreed to in writing, software 9 | * distributed under the License is distributed on an "AS IS" BASIS, 10 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 | * See the License for the specific language governing permissions and 12 | * limitations under the License. 13 | */ 14 | package github.kasuminova.stellarcore.shaded.org.jctools.util; 15 | -------------------------------------------------------------------------------- /src/main/resources/assets/stellar_core/lang/en_US.lang: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NovaEngineering-Source/StellarCore/47477615e390eed9a55c140e8af57f8cf209da70/src/main/resources/assets/stellar_core/lang/en_US.lang -------------------------------------------------------------------------------- /src/main/resources/assets/stellar_core/lang/zh_CN.lang: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NovaEngineering-Source/StellarCore/47477615e390eed9a55c140e8af57f8cf209da70/src/main/resources/assets/stellar_core/lang/zh_CN.lang -------------------------------------------------------------------------------- /src/main/resources/assets/stellar_core/textures/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NovaEngineering-Source/StellarCore/47477615e390eed9a55c140e8af57f8cf209da70/src/main/resources/assets/stellar_core/textures/logo.png -------------------------------------------------------------------------------- /src/main/resources/mcmod.info: -------------------------------------------------------------------------------- 1 | { 2 | "modListVersion": 2, 3 | "modList": [ 4 | { 5 | "modid": "stellar_core", 6 | "name": "Stellar Core", 7 | "description": "Stellar Core,An optimization mod.\n星核,一个普通的优化模组。", 8 | "version": "${version}", 9 | "mcversion": "${mcversion}", 10 | "url": "https://github.com/NovaEngineering-Source/StellarCore", 11 | "updateUrl": "", 12 | "authorList": [ 13 | "Kasumi_Nova" 14 | ], 15 | "credits": "", 16 | "logoFile": "assets/stellar_core/textures/logo.png", 17 | "screenshots": [], 18 | "dependencies": [], 19 | "requiredMods": [], 20 | "useDependencyInformation": true 21 | } 22 | ] 23 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_advancedrocketry.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.advancedrocketry", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "client": [ 8 | "MixinItemBiomeChanger" 9 | ], 10 | "mixins": [ 11 | "MixinDimensionManager" 12 | ] 13 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_ae.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.appeng", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "client": [ 8 | "MixinFluidStackSizeRenderer", 9 | "MixinStackSizeRenderer" 10 | ], 11 | "mixins": [ 12 | "MixinCraftingGridCache" 13 | ] 14 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_ancientspellcraft.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.ancientspellcraft", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "client": [ 8 | "MixinASFakePlayer" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_armourers_workshop.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.armourersworkshop", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "client": [ 8 | "MixinSkinTexture" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_astralsorcery.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.astralsorcery", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinContainerJournal", 9 | "MixinKeyChainMining", 10 | "MixinParticleEffectWatcher", 11 | "MixinPlayerAttributeMap", 12 | "MixinTileNetworkSkybound" 13 | ] 14 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_avaritia.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.avaritia", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinAvaritiaRecipeManager", 9 | "MixinTileBase" 10 | ] 11 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_avaritiaddons.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.avaritiaddons", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinTileEntityExtremeAutoCrafter" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_betterchat.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.betterchat", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "client": [ 8 | "MixinGuiBetterChat" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_biomesoplenty.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.biomesoplenty", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinBiomesOPlenty" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_bloodmagic.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.bloodmagic", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinBloodAltar" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_botania.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.botania", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinCosmeticAttachRecipe", 9 | "MixinCosmeticRemoveRecipe", 10 | "MixinEntitySpark", 11 | "MixinTileAlfPortal", 12 | "MixinTilePylon", 13 | "MixinTileRuneAltar" 14 | ] 15 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_cfm.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.cfm", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinBlockFurnitureTile", 9 | "MixinTileEntityCookieJar", 10 | "MixinTileEntityDeskCabinet", 11 | "MixinTileEntityFurniture", 12 | "MixinTileEntityKitchenCounter", 13 | "MixinTileEntityKitchenCounterDrawer", 14 | "MixinTileEntitySyncClient", 15 | "MixinTileEntityTVStand", 16 | "MixinTileEntityWashingMachine" 17 | ], 18 | "client": [ 19 | "MixinImageCache" 20 | ] 21 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_chisel.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.chisel", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinTileAutoChisel" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_cofhcore.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.cofhcore", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinContainerInventoryItem", 9 | "MixinTileInventory" 10 | ] 11 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_ctm.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.ctm", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "client": [ 8 | "MixinModelLoaderCTM", 9 | "MixinTextureMetadataHandler" 10 | ] 11 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_cucumber.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.cucumber", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinVanillaPacketDispatcher" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_customloadingscreen.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.customloadingscreen", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "client": [ 8 | "MixinModLoadingListener" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_customstartinggear.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.customstartinggear", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinDataManager" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_deepmoblearing.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.deepmoblearning", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinDMLEnergyStorage" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_draconicevolution.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.draconicevolution", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinPacketPlaceItem", 9 | "MixinTileCraftingInjector", 10 | "MixinTileEnergyPylon", 11 | "MixinTileFusionCraftingCore" 12 | ] 13 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_draconicevolution_chunk.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.draconicevolution", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinTileChaosCrystal", 9 | "MixinChaosWorldGenHandler" 10 | ] 11 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_ebwizardry.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.ebwizardry", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinBlockImbuementAltar", 9 | "MixinDispenserCastingData", 10 | "MixinWizardSpell" 11 | ] 12 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_ebwizardry_early.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.ebwizardry_early", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinTileEntityDispenser" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_endercore.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.endercore", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "InvokerIThing", 9 | "MixinOreThing", 10 | "MixinThings" 11 | ] 12 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_enderio.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.enderio", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinCommune", 9 | "MixinItemTools", 10 | "MixinRecipe", 11 | "MixinServerTickHandler", 12 | "MixinTileEntityBase" 13 | ] 14 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_enderioconduits.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.enderioconduits", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "AccessorTarget", 9 | "InvokerNetworkedInventory", 10 | "MixinAbstractConduit", 11 | "MixinEnderLiquidConduitNetwork", 12 | "MixinEnderLiquidConduitNetworkNetworkTankKey", 13 | "MixinItemConduit", 14 | "MixinNetworkedInventory", 15 | "MixinTileConduitBundle" 16 | ] 17 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_enderioconduits_energy.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.enderioconduits_energy", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "AccessorReceptorEntry", 9 | "MixinCapBankSupply", 10 | "MixinNetworkPowerManager", 11 | "MixinPowerConduitNetwork", 12 | "MixinReceptorEntry" 13 | ] 14 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_enderutilities.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.enderutilities", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "client": [ 8 | "MixinGuiContainerLargeStacks" 9 | ], 10 | "mixins": [ 11 | "MixinItemHandyBag", 12 | "MixinItemNullifier", 13 | "MixinUtilItemModular" 14 | ] 15 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_extrabotany.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.extrabotany", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "client": [ 8 | "MixinClientProxy" 9 | ], 10 | "mixins": [ 11 | "MixinTileManaLiquefaction" 12 | ] 13 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_fluxnetworks.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.fluxnetworks", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinCommonProxy", 9 | "MixinConnectionTransfer", 10 | "MixinFluxNetworkCache", 11 | "MixinFluxNetworkServer", 12 | "MixinTOPIntegration" 13 | ] 14 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_forge.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.forge", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "client": [ 8 | "MixinSplashProgress" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_forge_asmdatatable.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.forge", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinASMDataTable" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_forge_asmmodparser.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.forge.asmmodparser", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinASMModParser" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_forge_bakedquad.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.forge.bakedquad", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "client": [ 8 | "MixinUnpackedBakedQuad" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_forge_bakedquad_vertexdata.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.forge.bakedquad.vertexdata", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "client": [ 8 | "MixinBakedQuad", 9 | "MixinUnpackedBakedQuad" 10 | ] 11 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_forge_capability.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.forge.capability", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinCapabilityDispatcher" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_forge_chunkmanager.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.forge.chunkmanager", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinForgeChunkManager", 9 | "MixinPlayerChunkMap" 10 | ] 11 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_forge_modelloader.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.forge.parallelmodelloader", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "client": [ 8 | "AccessorBlockStateMapper", 9 | "MixinModelBakery", 10 | "MixinModelLoader", 11 | "MixinModelLoaderRegistry", 12 | "MixinModelManager", 13 | "MixinModelRotation" 14 | ] 15 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_forge_registry.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.forge.registry", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinForgeRegistry" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_ftblib.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.ftblib", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinInvUtils" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_ftbquests.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.ftbquests", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinFTBQuestsInventoryListener" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_guguutils.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.gugu_utils", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinPacketSetContainerSlot" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_hudcaching.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.hudcaching", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "client": [ 8 | "AccessorGuiIngameForge", 9 | "EntityRendererMixin_HUDCaching", 10 | "FramebufferMixin_HUDCaching", 11 | "GlStateManagerMixin_HUDCaching", 12 | "GuiIngameForgeMixin_HUDCaching", 13 | "GuiIngameMixin_HUDCaching" 14 | ] 15 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_ic2.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.ic2", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "client": [ 8 | "MixinItemBattery" 9 | ], 10 | "mixins": [ 11 | "AccessorGridChange", 12 | "MixinBaseElectricItem", 13 | "MixinElectricItemManager", 14 | "MixinEnergyCalculatorLegGridData", 15 | "MixinGradualRecipe", 16 | "MixinGrid", 17 | "MixinItemArmorElectric", 18 | "MixinItemElectricTool", 19 | "MixinItemUpgradeModule", 20 | "MixinReflectionUtil", 21 | "MixinStackUtil" 22 | ] 23 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_ic2_energynet.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.ic2_energynet", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinEnergyCalculatorLeg", 9 | "MixinGridData", 10 | "MixinGridUpdater" 11 | ] 12 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_igi.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.igi", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinPlayerHandler" 9 | ], 10 | "client": [ 11 | "MixinInfoItem", 12 | "MixinInGameInfoCore", 13 | "MixinTicker" 14 | ] 15 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_immersiveengineering.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.immersiveengineering", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinBlockIEMultiblock", 9 | "MixinBlockIETileProvider", 10 | "MixinEventHandler", 11 | "MixinRecipeJerrycan", 12 | "MixinThreadContributorSpecialsDownloader", 13 | "MixinTileEntityArcFurnace", 14 | "MixinTileEntityExcavator", 15 | "MixinTileEntityMultiblockMetal" 16 | ] 17 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_jei.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.jei", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "client": [ 8 | "MixinProxyCommonClient" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_legendarytooltips.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.legendarytooltips", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "client": [ 8 | "MixinTooltipDecor" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_libnine.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.libnine", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "client": [ 8 | "MixinResourceInjector", 9 | "MixinL9Models" 10 | ] 11 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_mek_top.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.mek_top", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinEnergyAcceptorWrapper", 9 | "MixinIStrictEnergyStorage" 10 | ] 11 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_mekanism.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.mekanism", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinEnergyNetwork", 9 | "MixinFrequency", 10 | "MixinPipeUtils" 11 | ] 12 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_mets.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.mets", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinEnchantmentManager", 9 | "MixinFirstAidLifeSupport", 10 | "MixinForceFieldGenerator", 11 | "MixinItemStackUtils", 12 | "MixinLifeSupportRing", 13 | "MixinNutritionSupply", 14 | "MixinThoriumBattery", 15 | "MixinUniformElectricItem" 16 | ] 17 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_minecraft_advancements.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.advancements", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinCriterionProgress" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_minecraft_bakedmodel.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.bakedmodel", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "client": [ 8 | "MixinSimpleBakedModel" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_minecraft_bakedquad.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.bakedquad", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "client": [ 8 | "MixinBakedQuad" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_minecraft_blockfaceuv.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.blockfaceuv", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "client": [ 8 | "MixinBlockFaceUV" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_minecraft_blockpart.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.blockpart", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "client": [ 8 | "MixinBlockPart" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_minecraft_blockstateimpl.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.blockstateimpl", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinStateImplementation" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_minecraft_chunktecache.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.chunktecache", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinChunk" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_minecraft_chunktemap.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.chunktemap", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinChunk" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_minecraft_chunktequeue.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.chunktequeue", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinChunk" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_minecraft_classmultimap.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.classmultimap", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinClassInheritanceMultiMap" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_minecraft_entitytracker.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.entitytracker", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinEntityTracker", 9 | "MixinEntityTrackerEntry" 10 | ] 11 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_minecraft_entitytracker_y_range.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.entitytracker.y_range", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinEntityTrackerEntry" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_minecraft_itemstack_cap.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.itemstack", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "priority": 999, 8 | "mixins": [ 9 | "MixinItemStack" 10 | ] 11 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_minecraft_longnbtkiller.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.longnbtkiller", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "priority": 10000, 8 | "mixins": [ 9 | "MixinNBTSizeTracker", 10 | "MixinNBTTagCompound", 11 | "MixinNBTTagList" 12 | ] 13 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_minecraft_modelblock.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.modelblock", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "client": [ 8 | "MixinModelBlock" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_minecraft_nbtmaplist.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.nbtmaplist", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinNBTTagCompound", 9 | "MixinNBTTagList" 10 | ] 11 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_minecraft_nbtpool.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.nbtpool", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinNBTTagByte", 9 | "MixinNBTTagCompound", 10 | "MixinNBTTagDouble", 11 | "MixinNBTTagFloat", 12 | "MixinNBTTagInt", 13 | "MixinNBTTagList", 14 | "MixinNBTTagLong", 15 | "MixinNBTTagShort", 16 | "MixinNBTTagString" 17 | ] 18 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_minecraft_nethandlerplayserver.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.nethandlerplayserver", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinNetHandlerPlayServer" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_minecraft_nnlist.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.nnlist", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinNonNullList" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_minecraft_noglerror.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.noglerror", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "client": [ 8 | "MixinGlStateManager" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_minecraft_phys.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.phys", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinAxisAlignedBB" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_minecraft_property.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.property", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinPropertyEnum" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_minecraft_randomtick.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.randomtick", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinWorldServer" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_minecraft_renderglobal.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.renderglobal", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "client": [ 8 | "MixinRenderGlobal" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_minecraft_resourcelocation.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.resourcelocation", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinModelResourceLocation", 9 | "MixinResourceLocation" 10 | ] 11 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_minecraft_resourcelocation_async.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.resourcelocation_async", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinModelResourceLocation", 9 | "MixinResourceLocation" 10 | ] 11 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_minecraft_resourcepack.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.resources", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "client": [ 8 | "MixinAbstractResourcePack", 9 | "MixinDefaultResourcePack", 10 | "MixinMinecraft", 11 | "MixinModelLoader", 12 | "MixinSimpleReloadableResourceManager", 13 | "MixinTextureMap" 14 | ] 15 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_minecraft_statemapperbase.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.statemapperbase", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "client": [ 8 | "MixinStateMapperBase" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_minecraft_stitcher.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.stitcher", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "priority": 999, 8 | "client": [ 9 | "AccessorStitcher", 10 | "MixinModelManager", 11 | "MixinStitcher", 12 | "MixinStitcherHolder", 13 | "MixinStitcherSlot", 14 | "MixinTextureMap" 15 | ] 16 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_minecraft_texture_load.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.texture_load", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "client": [ 8 | "MixinTextureAtlasSprite", 9 | "MixinTextureMap" 10 | ] 11 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_minecraft_texturemap.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.texture", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "client": [ 8 | "MixinTextureMap" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_minecraft_world.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.world", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinWorld" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_minecraft_world_load.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.world_load", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "client": [ 8 | "MixinMinecraft" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_minecraft_world_pos_judgement.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.world_pos_judgement", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinWorld" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_minecraft_worldclient.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.worldclient", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "client": [ 8 | "MixinWorldClient" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_minecraft_worldserver.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.minecraft.worldserver", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinWorldServer" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_modularrouters.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.modularrouters", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinBufferHandler", 9 | "MixinTileEntityItemRouter" 10 | ] 11 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_nco.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.nco", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinBasicRecipeHandler", 9 | "MixinRadiationCapabilityHandler" 10 | ] 11 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_psi.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.psi", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinPieceTrickPlaceBlock" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_rgb_chat.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.rgbchat", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "client": [ 8 | "MixinRGBChat", 9 | "MixinRGBSettings" 10 | ] 11 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_scalingguis.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.scalingguis", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "client": [ 8 | "MixinJsonHelper" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_specialmobs.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.specialmobs", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinSpecialMobReplacer" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_sync.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.sync", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinTileEntityDualVertical" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_sync_techguns.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.sync_techguns", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinTileEntityDualVerticalTechguns" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_tconevo.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.tconevo", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "client": [ 8 | "MixinAvaritiaMaterialModel" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_tconstruct.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.tconstruct", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "client": [ 8 | "MixinCustomTextureCreator" 9 | ], 10 | "mixins": [ 11 | "MixinTileSmeltery", 12 | "MixinTinkerRegistry" 13 | ] 14 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_techguns.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.techguns", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinAmmoSumRecipe", 9 | "MixinBioGunProjectile", 10 | "MixinFlamethrowerProjectile", 11 | "MixinTGDamageSource", 12 | "MixinTGExtendedPlayer", 13 | "MixinTGPermissions" 14 | ] 15 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_theoneprobe.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.theoneprobe", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "client": [ 8 | "MixinRenderHelper" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_thermaldynamics.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.thermaldynamics", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinDuctUnitFluidSuper" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_thermalexpansion.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.thermalexpansion", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinContainerSatchelFilter" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_threng.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.threng", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "mixins": [ 8 | "MixinInventoryRequest" 9 | ] 10 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_touhou_little_maid.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.tlm", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "client": [ 8 | "MixinBonesItem", 9 | "MixinCubesItem", 10 | "MixinCustomResourcesLoader", 11 | "MixinModelBoxFaceFloat", 12 | "MixinTexturedQuadFloat" 13 | ] 14 | } -------------------------------------------------------------------------------- /src/main/resources/mixins.stellar_core_vintagefix.json: -------------------------------------------------------------------------------- 1 | { 2 | "package": "github.kasuminova.stellarcore.mixin.vintagefix", 3 | "refmap": "mixins.stellar_core.refmap.json", 4 | "target": "@env(DEFAULT)", 5 | "minVersion": "0.8", 6 | "compatibilityLevel": "JAVA_8", 7 | "client": [ 8 | "MixinTextureCollector", 9 | "MixinVintageFixClient" 10 | ] 11 | } --------------------------------------------------------------------------------