# Comment each AT with where it needed to be used and why

# Sets Custom Display Component for container UI
public net.minecraft.world.level.block.entity.BaseContainerBlockEntity name

# Bighorn (gets color of baby bighorn based on parent colors)
protected net.minecraft.world.entity.animal.Sheep getOffspringColor(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/world/entity/animal/Sheep;Lnet/minecraft/world/entity/animal/Sheep;)Lnet/minecraft/world/item/DyeColor;

# BiomeGrassColors and FoliageColorHandler (gets biome noise values for blending colors together)
public net.minecraft.world.level.biome.Biome TEMPERATURE_NOISE

# CarminiteGhastguard (adds the goal to ghastguards)
public net.minecraft.world.entity.monster.Ghast$GhastLookGoal

# ChunkBlanketProcessors (injects a custom chunk status)
public-f net.minecraft.world.level.chunk.status.ChunkStatus index
public-f net.minecraft.world.level.chunk.status.ChunkStatus parent

# CinderFurnaceBlockEntity (allows control of cooking related fields for burning logic)
protected net.minecraft.world.level.block.entity.AbstractFurnaceBlockEntity litTime
protected net.minecraft.world.level.block.entity.AbstractFurnaceBlockEntity litDuration
protected net.minecraft.world.level.block.entity.AbstractFurnaceBlockEntity cookingProgress
protected net.minecraft.world.level.block.entity.AbstractFurnaceBlockEntity cookingTotalTime

# CloudEvents and TFWeatherRenderer (plays rain sounds in various scenarios)
public net.minecraft.client.renderer.LevelRenderer weatherEffectRenderer
public net.minecraft.client.renderer.WeatherEffectRenderer rainSoundTime

# Codecs (for creation of a MapColor codec)
public net.minecraft.world.level.material.MapColor <init>(II)V # <init>

# DarkTowerMainComponent (sets ghastling spawers to spawn less enemies overall)
public net.minecraft.world.level.BaseSpawner maxNearbyEntities
public net.minecraft.world.level.BaseSpawner spawnCount
public net.minecraft.world.level.BaseSpawner spawnRange

# DarkTowerMainComponent (collects possible key towers)
# FinalCastleDungeonRoom31Component (checks if any pieces intersect this one)
# FinalCastleMainComponent (builds the tower maze and checks if its a full maze)
# FinalCastleMazeTower13Component (checks that the tower is within range of the middle area)
# IceTowerMainComponent (adds each piece to the overall bounding bos of the structure)
# IceTowerWingComponent (ensures a tower is within range of the main tower)
# KnightStrongholdComponent (adds new rooms to overall structure)
# LankmarkStructure (Loads template pieces)
# StrongholdEntranceComponent (sets up floors and determining if the boss room was placed)
# TrollCaveConnectComponent (locates nearby TrollCaveGardenComponents)
public net.minecraft.world.level.levelgen.structure.pieces.StructurePiecesBuilder pieces

# EntityEvents (reduces frosted effect amplifier if entity is on fire)
public net.minecraft.world.effect.MobEffectInstance amplifier

# FinalCastleBossGazeboComponent (adds final boss WIP text)
public net.minecraft.world.entity.Display setBillboardConstraints(Lnet/minecraft/world/entity/Display$BillboardConstraints;)V
public net.minecraft.world.entity.Display$TextDisplay setText(Lnet/minecraft/network/chat/Component;)V
public net.minecraft.world.entity.Interaction setHeight(F)V
public net.minecraft.world.entity.Interaction setWidth(F)V

# FixedHumanoidModel (allows for arm posing like in HumanoidModel)
public net.minecraft.client.model.HumanoidModel poseRightArm(Lnet/minecraft/client/renderer/entity/state/HumanoidRenderState;Lnet/minecraft/client/model/HumanoidModel$ArmPose;)V
public net.minecraft.client.model.HumanoidModel poseLeftArm(Lnet/minecraft/client/renderer/entity/state/HumanoidRenderState;Lnet/minecraft/client/model/HumanoidModel$ArmPose;)V

# FoilagePlacerType registration
public net.minecraft.world.level.levelgen.feature.foliageplacers.FoliagePlacerType <init>(Lcom/mojang/serialization/MapCodec;)V

# Goblin Knights (adds breaking armor effects when goblin knight armor layers are broken)
public net.minecraft.world.entity.LivingEntity breakItem(Lnet/minecraft/world/item/ItemStack;)V

# GroundAttackGoal and NoClipMoveControl (sets the move operation for pathing)
public net.minecraft.world.entity.ai.control.MoveControl operation
public net.minecraft.world.entity.ai.control.MoveControl$Operation

# HedgeSpider, SwarmSpider, and UrGhast (removes goals the mobs dont need)
public net.minecraft.world.entity.ai.goal.GoalSelector availableGoals

# IBossLootBuffer (shuffles and makes boss chests look natural)
public net.minecraft.world.level.storage.loot.LootTable shuffleAndSplitItems(Lit/unimi/dsi/fastutil/objects/ObjectArrayList;ILnet/minecraft/util/RandomSource;)V

# ItemModelGenerator (builds armor sets with armor trims)
public net.minecraft.data.models.ItemModelGenerators GENERATED_TRIM_MODELS
public net.minecraft.data.models.ItemModelGenerators$TrimModelData
public net.minecraft.data.models.ItemModelGenerators$TrimModelData <init>(Ljava/lang/String;FLjava/util/Map;)V

# JigsawUtil
public net.minecraft.world.level.levelgen.structure.pools.SinglePoolElement sortBySelectionPriority(Ljava/util/List;)V

# MazeMapItem (renders a dot instead of an arrow if the player's y level is too far)
public net.minecraft.world.level.saveddata.maps.MapItemSavedData decorations

# PinchBeetle, ProtectionBox, TFPart + child classes (allows easily setting hitbox sizes)
public net.minecraft.world.entity.Entity dimensions

# PlayerHelper (checks if a player has the advancements provided)
public net.minecraft.client.multiplayer.ClientAdvancements progress

# ProgressionWrappedStructure (allows us to use the generation point from the wrapped structure)
public net.minecraft.world.level.levelgen.structure.Structure findGenerationPoint(Lnet/minecraft/world/level/levelgen/structure/Structure$GenerationContext;)Ljava/util/Optional;

# ProtectionParticle (allows the particle to have a proper constructor)
public net.minecraft.client.particle.SuspendedTownParticle <init>(Lnet/minecraft/client/multiplayer/ClientLevel;DDDDDD)V

# SpecialFlowerPotBlock (sets pot to empty without dropping an item if pot has contents)
public net.minecraft.world.level.block.FlowerPotBlock isEmpty()Z

# StructureTreeGrower (unfinalizes the class so I can extend it)
public-f net.minecraft.world.level.block.grower.TreeGrower

# TFCavesCarver
public net.minecraft.world.level.levelgen.carver.CaveCarverConfiguration floorLevel
public net.minecraft.world.level.levelgen.carver.WorldCarver isDebugEnabled(Lnet/minecraft/world/level/levelgen/carver/CarverConfiguration;)Z
public net.minecraft.world.level.levelgen.carver.WorldCarver getCarveState(Lnet/minecraft/world/level/levelgen/carver/CarvingContext;Lnet/minecraft/world/level/levelgen/carver/CarverConfiguration;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/levelgen/Aquifer;)Lnet/minecraft/world/level/block/state/BlockState;

# TFClientEvents (fetches the biome seed for the aurora shader)
public net.minecraft.world.level.biome.BiomeManager biomeZoomSeed

# TFClientSetup (creates custom birthday splash)
public-f net.minecraft.client.gui.components.SplashRenderer splash
public net.minecraft.client.gui.screens.TitleScreen splash

# TFDispenserBehaviors (fetches original dispenser behaviors for flint and steel and fire charges)
public net.minecraft.world.level.block.DispenserBlock DISPENSER_REGISTRY

# TFMagicMapData (sets decorations dirty after being loaded from nbt)
public net.minecraft.world.level.saveddata.maps.MapItemSavedData setDecorationsDirty()V

# TFMazeMapData (snaps the map display to the labyrinth)
public-f net.minecraft.world.level.saveddata.maps.MapItemSavedData centerX
public-f net.minecraft.world.level.saveddata.maps.MapItemSavedData centerZ

# TFMazeMapData and TFMagicMapData (sets our map data to inherit the vanilla ones)
public net.minecraft.world.level.saveddata.maps.MapItemSavedData <init>(IIBZZZLnet/minecraft/resources/ResourceKey;)V # ctor
public-f net.minecraft.world.level.saveddata.maps.MapItemSavedData bannerMarkers
public-f net.minecraft.world.level.saveddata.maps.MapItemSavedData frameMarkers
public-f net.minecraft.world.level.saveddata.maps.MapItemSavedData trackedDecorationCount

# TFOverlays (partially determines if the quest ram indicator should render below the crosshair, and allows the food bar to be rendered when riding hostile mounts)
public net.minecraft.client.gui.Gui canRenderCrosshairForSpectator(Lnet/minecraft/world/phys/HitResult;)Z
public net.minecraft.client.gui.Gui renderFood(Lnet/minecraft/client/gui/GuiGraphics;Lnet/minecraft/world/entity/player/Player;II)V

# TFSkyRenderer (allows for rendering the sky)
public net.minecraft.client.renderer.LevelRenderer skyRenderer

# TFStructureComponent (adds an override for setOrientation that removed mirroring)
protected net.minecraft.world.level.levelgen.structure.StructurePiece rotation
protected net.minecraft.world.level.levelgen.structure.StructurePiece mirror
protected net.minecraft.world.level.levelgen.structure.StructurePiece orientation

# TFStructureComponentOld (sets up text on a sign without sending an update)
public net.minecraft.world.level.block.entity.SignBlockEntity frontText

# TFStructureStart (unfinalized so TFStructureStart can extend it)
public-f net.minecraft.world.level.levelgen.structure.StructureStart

# TFTreeFeature (updates leaves when generating trees)
public net.minecraft.world.level.levelgen.feature.TreeFeature updateLeaves(Lnet/minecraft/world/level/LevelAccessor;Lnet/minecraft/world/level/levelgen/structure/BoundingBox;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;)Lnet/minecraft/world/phys/shapes/DiscreteVoxelShape;

# TargetedRotProcessor (value used in codec)
protected net.minecraft.world.level.levelgen.structure.templatesystem.BlockRotProcessor integrity

# TreeDecoratorType registration
public net.minecraft.world.level.levelgen.feature.treedecorators.TreeDecoratorType <init>(Lcom/mojang/serialization/MapCodec;)V

# TreeRootsDecorator (allows FeaturePlacers methods to get the root state and position)
public net.minecraft.world.level.levelgen.feature.treedecorators.TreeDecorator$Context decorationSetter

# TrunkRiser (allows for grabbing values from the TrunkPlacer provided)
public net.minecraft.world.level.levelgen.feature.trunkplacers.TrunkPlacer baseHeight
public net.minecraft.world.level.levelgen.feature.trunkplacers.TrunkPlacer heightRandA
public net.minecraft.world.level.levelgen.feature.trunkplacers.TrunkPlacer heightRandB
public net.minecraft.world.level.levelgen.feature.trunkplacers.TrunkPlacerType <init>(Lcom/mojang/serialization/MapCodec;)V

# TwilightForestMod (adds blocks for stripping and burning repsectively)
public-f net.minecraft.world.item.AxeItem STRIPPABLES
public net.minecraft.world.level.block.FireBlock setFlammable(Lnet/minecraft/world/level/block/Block;II)V

# Ur-Ghast (properly adds lightning strikes to the world when a tantrum starts)
public net.minecraft.server.level.ServerLevel findLightningTargetAround(Lnet/minecraft/core/BlockPos;)Lnet/minecraft/core/BlockPos;

# WorldUtil (gets sea level for dimension)
public net.minecraft.server.level.ChunkMap generator()Lnet/minecraft/world/level/chunk/ChunkGenerator;

# MapLocatorCommand
public net.minecraft.server.commands.LocateCommand getHolders(Lnet/minecraft/commands/arguments/ResourceOrTagKeyArgument$Result;Lnet/minecraft/core/Registry;)Ljava/util/Optional;

# NbtHasher
public net.minecraft.nbt.CompoundTag tags

# TFMagicMapData (used to render X on conquered structures)
public net.minecraft.client.resources.TextureAtlasHolder getSprite(Lnet/minecraft/resources/ResourceLocation;)Lnet/minecraft/client/renderer/texture/TextureAtlasSprite;

# Bosses such as the Naga override this for custom particles
public net.minecraft.world.entity.LivingEntity makePoofParticles()V

# Needed for custom boss bar rendering logic in BaseTFBoss
public net.minecraft.client.gui.components.BossHealthOverlay OVERLAY_BACKGROUND_SPRITES
public net.minecraft.client.gui.components.BossHealthOverlay OVERLAY_PROGRESS_SPRITES
public net.minecraft.client.gui.components.BossHealthOverlay events
public net.minecraft.network.protocol.game.ClientboundBossEventPacket encodeProperties(ZZZ)I # encodeProperties
public net.minecraft.server.level.ServerBossEvent players
public net.minecraft.server.level.ServerBossEvent visible

# TFBlocks
public net.minecraft.world.level.block.TransparentBlock <init>(Lnet/minecraft/world/level/block/state/BlockBehaviour$Properties;)V

# KnightStrongholdStructure
public net.minecraft.world.level.levelgen.structure.StructureStart cachedBoundingBox

# BiomeMaker
public net.minecraft.core.Holder$Reference bindKey(Lnet/minecraft/resources/ResourceKey;)V

public net.minecraft.server.packs.resources.ReloadableResourceManager listeners

# JarRenderer
public net.minecraft.client.renderer.block.BlockRenderDispatcher blockColors

# TowerRoom (For setting book items / setting spawner)
public net.minecraft.world.level.block.entity.ChiseledBookShelfBlockEntity items
public net.minecraft.world.level.BaseSpawner setNextSpawnData(Lnet/minecraft/world/level/Level;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/SpawnData;)V
public net.minecraft.world.level.block.entity.BrewingStandBlockEntity fuel

# For CursedSpawnerLogic (extending BaseSpawner)
public net.minecraft.world.level.BaseSpawner delay(Lnet/minecraft/world/level/Level;Lnet/minecraft/core/BlockPos;)V
public net.minecraft.world.level.BaseSpawner getOrCreateNextSpawnData(Lnet/minecraft/world/level/Level;Lnet/minecraft/util/RandomSource;Lnet/minecraft/core/BlockPos;)Lnet/minecraft/world/level/SpawnData;
public net.minecraft.world.level.BaseSpawner isNearPlayer(Lnet/minecraft/world/level/Level;Lnet/minecraft/core/BlockPos;)Z
public net.minecraft.world.level.BaseSpawner displayEntity
public net.minecraft.world.level.BaseSpawner spin
public net.minecraft.world.level.BaseSpawner oSpin
public net.minecraft.world.level.BaseSpawner spawnDelay

# TFBeanContext
public net.minecraft.client.renderer.entity.EntityRenderDispatcher renderers
public net.minecraft.client.renderer.blockentity.BlockEntityRenderDispatcher renderers

public net.minecraft.core.cauldron.CauldronInteraction dyedItemIteration(Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/world/level/Level;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/entity/player/Player;Lnet/minecraft/world/InteractionHand;Lnet/minecraft/world/item/ItemStack;)Lnet/minecraft/world/InteractionResult;

# UncraftingMenu
public net.minecraft.world.item.crafting.ShapedRecipe result
public net.minecraft.world.item.crafting.ShapelessRecipe result

# QuestRam, FieryArmor and RisingZombie need to extend
public-f net.minecraft.client.model.Model renderToBuffer(Lcom/mojang/blaze3d/vertex/PoseStack;Lcom/mojang/blaze3d/vertex/VertexConsumer;III)V