Quark Oddities

Quark Oddities

22M Downloads

Zeta tracking issue

quat1024 opened this issue ยท 5 comments

commented

Tracking issue for the implementation of Project Zeta, currently taking place here. Mainly i just wanted a little notepad though

commented

All of Quark's mixins. I'm thinking about sorting these into folders based off the module that uses them, splitting them if necessary. Too much work for not much payoff, and many modules only need like 1 mixin so it just makes the mixins harder to browse. But it's still good to know which mixins have a more general purpose.

The main takeaway from this investigation is that a large majority of Quark's mixins exist to support only one module.

mixin usage general?
accessor.AccessorAbstractArrow Shiba FetchArrowGoal
accessor.AccessorAbstractChestedHorse VariantChestsModule
accessor.AccessorLivingEntity MonsterBoxModule
accessor.AccessorLootTable ZLootTableLoad yes
accessor.AccessorMerchantOffer VillagerRerollingReworkModule
accessor.AccessorPistonStructureResolver QuarkPistonStructureResolver yes
accessor.AccessorPotionBrewing ForgeBrewingRegistry yes
accessor.AccessorServerGamePacketListenerImpl ItemSharingModule
client.accessor.AccessorBlockColors block color registration yes, needed on Forge
client.accessor.AccessorItemColors item color registration yes, needed on Forge
client.accessor.AccessorLocalPlayer ItemSharingModule
client.accessor.AccessorModelManager TinyPotatoRenderer
client.accessor.AccessorMultiPlayerGameMode ClientProxy, used in SimpleHarvestModule sure, why not
client.variants.BeeRendererMixin
client.variants.ChickenRendererMixin
client.variants.CowRendererMixin
client.variants.DolphinRendererMixin
client.variants.LlamaRendererMixin
client.variants.PigRendererMixin
client.variants.RabbitRendererMixin
client.variants.SlimeRendererMixin
VariantAnimalTexturesModule
client.AbstractCandleBlockMixin SoulCandlesModule
client.ArmorStandModelMixin UsesForCursesModule, maybe the armor stand tweak
client.BannerItemMixin MoreBannerLayersModule
client.BeaconTileEntityRendererMixin BeaconRedirectionModule maybe?
client.BIomeMixin GreenerGrassModule
client.ChatComponentMixin ItemSharingModule
client.ContainerScreenMixin EasyTransferringModule
client.ElytraLayerMixin ColorRunesModule
client.ForgeGuiMixin ElytraIndicatorModule
client.GuiMixin UsesForCursesModule
client.HumanoidArmorLayerMixin ColorRunesModule
client.HumanoidModelMixin EmoteHandler
client.ItemBlockRenderTypesMixin ItemSharingModule
client.ItemInHandRendererMixin VariantSelectorModule
client.ItemRendererMixin ColorRunesModule, ItemSharingModule
client.JukeboxBlockEntityMixin AmbientDiscsModule
client.LevelRendererMixin AmbientDiscsModule
client.LoomScreenMixin MoreBannerLayersModule
client.MinecartSoundInstanceMixin WoolShutsUpMinecartsModule
client.MinecraftMixin LongRangePickBlockModule
client.ParrotRendererMixin ParrotEggsModule
client.PistonTileEntityRendererMixin PistonsMoveTileEntitiesModule
client.RenderBuffersMixin GlintRenderTypes (for ColorRunesModule)
client.ScreenMixin EasyTransferingModule
client.ThrownTridentRendererMixin ColorRunesModule
zeta_forge.IngredientMixin IZetaIngredientSeializer stuff yes
AbstractVillagerMixin VillagerRerollingReworkModule, maybe others
AnimalMixin PigLittersModule
AnvilMenuMixin DiamondRepairModule, EnchantmentsBegoneModule
ArrowPiercingEnchantmentMixin no module?
BannerDuplicateRecipeMixin MoreBannerLayersModule
BaseCoralPlantTypeBlockMixin CoralOnCactusModule
BeaconBlockEntityMixin BeaconRedirectionModule maybe?
BeehiveBlockEntityMixin no module? (bee variants?)
BlockItemMixin VariantSelectorModule, LockRotationModule
BoatMixin GameNerfsModule
ClimateParameterPointMixin ClimateControlRemovalModule
CrossbowMultishotMixin TorchArrowModule
DamageEnchantmentMixin PickarangItem
DamageSourceMixin PickarangModule
DebugConfigHackeryMixin Unused, for Forge debugging
DiggerItemMixin GoldToolsHaveFortuneModule
ElytraItemMixin GameNerfsModule
EnchantBookForEmeraldsMixin EnchantmentsBegoneModule
EnchantedBookItemMixin EnchantmentsBegoneModule
EnchantmentHelperMixin EnchantmentsBegoneModule, AncientTomesModule
EnchantmentMixin EnchantmentsBegoneModule, PickarangItem
EnchantRandomlyFunctionMixin EnchantmentsBegoneModule
EntityMixin PickarangModule
ExperienceOrbMixin GameNerfsModule
FallingBlockEntityMixin GameNerfsModule
HalfTransparentBlockMixin PipesModule
HarvestFarmlandMixin SimpleHarvestModule
HugeBrownMushroomFeatureMixin GameNerfsModule
HugeRedMushroomFeatureMixin GameNerfsModule
IForgeItemMixin GoldToolsHaveFortuneModule extremely hacky
IronBarsBlockMixin VerticalSlabsModule
ItemMixin ExpandedItemInteractionsModule
ItemsMixin Makes Bundle appear in creative, not associated with any module
ItemStackMixin ItemSharingModule
AncientTomesModule
GoldToolsHaveFortuneModule
ImprovedTooltipsModule
LadderBlockMixin EnhancedLaddersModule
LanternBlockMixin WoodenPostsModule
LoomMenuMixin MoreBannerLayersModule
MerchantMenuMixin AncientTomesModule
MerchantOfferMixin VillagerRerollingReworkModule, AncientTomesModule
MerchantOffersMixin VillagerRerollingReworkModule through the pseudo accessor thing
OverworldBiomeBuilderMixin UndergroundBiomeHandler
PigMixin PigLittersModule
PistonBaseBlockMixin PistonsMoveTileEntitiesModule, GameNerfsModule, QuarkPistonStructureResolver the QPSR parts
PistonMovingBlockEntityMixin PistonsMoveTileEntitiesModule, GameNerfsModule
PlayerAdvancementsMixin General config Quark feature
PotionUtilsMixin ImprovedTooltipsModule
ServerAdvancementManagerMixin AutomaticRecipeUnlockModule
ServerEntityMixin ColorRunesModule
SlimeMixin SlimesToMagmaCubesModule
SpawnerBlockEntityMixin SpawnerReplacerModule
SpongeBlockMixin SpongesBetterModule
SpringFeatureMixin NoMoreLavaPocketsModule
StructurePieceMixin
StructureStartMixin
StructureTemplateMixin
StructureBlockReplacementHandler (GoldBarsModule, VariantChestsModule) maybe
TemptGoalMixin FeedingTroughModule
TrapDoorBlockMixin VariantLaddersModule
TripWireHookBlockMixin GameNerfsModule
VillagerMixin VillagerRerollingReworkModule
WallBlockMixin VerticalSlabsModule
WeatheringCopperMixin CustomWeatheringCopper stuff, very hacky, for VerticalSlabsModule yes
commented

The last commit both branches share is fec6624. The differences between zeta and mainline quark are here. I've checked off the changelog.txt commits since the changelog file doesn't contain history.

commented

Evaluation of IForgeBlock overrides:

getLightEmission: Grates, for lighting up when lavalogged
isLadder: HollowFrameBlock, HollowPillarBlock, RopeBlock
~~isValidSpawn: GrateBlock - just returns 'false'~~ Settable through blockstate
canSustainPlant: QuarkBlockWrapper (just returns 'false'), HedgeBlock
isConduitFrame: ElderPrismarineBlock, VerticalSlabBlock
rotate: (migrated to vanilla method)
getEnchantPowerBonus: VariantBookshelfBlock
 - anecdotally, i hear enchant power blocks are shit on fabric
getSoundType: FeedingTroughBlock
getBeaconColorMultiplier: (A lot of blocks)
getFlammability: All blocks (via IQuarkBlock)
getFireSpreadSpeed: All blocks (via IQuarkBlock), also some other blocks (to return a constant value)
collisionExtendsVertically: GrateBlock
shouldDisplayFluidOverlay: EncasedPipeBlock, QuarkGlassBlock
getToolModifiedState: HollowWoodBlock (called "temporary")

Evaluation of IForgeBlock calls:

getLightEmission: FindPlaceToSleepGoal, FoxhoundModule
isLadder: Hollow stuff (delegation), TrapDoorBlockMixin
isStickyBlock: MagnetizedBlockBlockEntity
canStickTo: ZetaPistonStructureResolver
getFlammability: QuarkSLab/Stair/VerticalSlabBlock (delegation)
isFlammable: QuarkSLab/Stair/VerticalSlabBlock (delegation)
getToolModifiedState: SimpleHarvestModule, HollowWoodBlock (delegation)
isScaffolding: EnhancedLaddersModule

Evaluation of IForgeItem overrides:

onItemUseFirst: LootrVariantChestBlock's item (I am not sure exactly why)
isRepairable: PickarangItem
onEntityItemUpdate: BackpackItem, TinyPotatoBlockItem (possibly removable?)
doesSneakBypassUse: RopeBlock
canEquip: TinyPotatoBlockItem (for Patreon)
isBookEnchantable: BackpackItem (returns 'false')
getArmorTexture: BackpackItem, ForgottenHatItem
getMaxDamage: PickarangItem, TrowelItem (probably removable, if it's ok for max durability config settings to require a restart)
getEnchantmentValue: BackpackItem, PickarangItem, ForgeItemDelegate
getAllEnchantments: ForgeItemDelegate
canApplyAtEnchantingTable: AncientTomeItem, BackpackItem, PickarangItem
shouldCauseReequipAnimation: PathfindersQuillItem
initCapabilities: BackpackItem, RuneItem
damageItem: BackpackItem (always returns 0)
getDefaultTooltipHideFlags: BackpackItem

Evaluation of IForgeItem calls:

onItemUseFirst: LootrVariantChestBlock's item (delegation)
onEntityItemUpdate: TinyPotatoBlockItem (delegation)
canEquip: TinyPotatoBlockItem (delegation)
getMaxDamage: QuarkJeiPlugin
canPerformAction: AutomaticToolRestockModule (very Forge-heavy stuff), Toretoise, HoeHarvestingModule
getEchantmentValue: MatrixEnchantingTableBlockEntity, PickarangItem
canApplyAtEnchantingTable: PickarangItem (delegation)
canElytraFly: GameNerfsModule mixin
commented

NeoForge is removing level capabilities for... some reason, in favor of SavedData, so we'll have to examine how MagnetTracker interacts with that stuff

commented

Some things to reexamine in 1.20: