CLASS net/minecraft/class_3499 net/minecraft/structure/StructureTemplate
	FIELD field_15586 blockInfoLists Ljava/util/List;
	FIELD field_15587 size Lnet/minecraft/class_2382;
	FIELD field_15588 author Ljava/lang/String;
	FIELD field_15589 entities Ljava/util/List;
	FIELD field_31687 PALETTE_KEY Ljava/lang/String;
	FIELD field_31688 PALETTES_KEY Ljava/lang/String;
	FIELD field_31689 ENTITIES_KEY Ljava/lang/String;
	FIELD field_31690 BLOCKS_KEY Ljava/lang/String;
	FIELD field_31691 BLOCKS_POS_KEY Ljava/lang/String;
	FIELD field_31692 BLOCKS_STATE_KEY Ljava/lang/String;
	FIELD field_31693 BLOCKS_NBT_KEY Ljava/lang/String;
	FIELD field_31694 ENTITIES_POS_KEY Ljava/lang/String;
	FIELD field_31695 ENTITIES_BLOCK_POS_KEY Ljava/lang/String;
	FIELD field_31696 ENTITIES_NBT_KEY Ljava/lang/String;
	FIELD field_31697 SIZE_KEY Ljava/lang/String;
	METHOD method_15160 getSize ()Lnet/minecraft/class_2382;
	METHOD method_15161 setAuthor (Ljava/lang/String;)V
		ARG 1 author
	METHOD method_15162 applyTransformedOffset (Lnet/minecraft/class_2338;Lnet/minecraft/class_2415;Lnet/minecraft/class_2470;II)Lnet/minecraft/class_2338;
		ARG 0 pos
		ARG 1 mirror
		ARG 2 rotation
		ARG 3 offsetX
		ARG 4 offsetZ
	METHOD method_15163 (Lnet/minecraft/class_1297;)Z
		ARG 0 entity
	METHOD method_15164 addEntitiesFromWorld (Lnet/minecraft/class_1937;Lnet/minecraft/class_2338;Lnet/minecraft/class_2338;)V
		ARG 1 world
		ARG 2 firstCorner
		ARG 3 secondCorner
	METHOD method_15165 getInfosForBlock (Lnet/minecraft/class_2338;Lnet/minecraft/class_3492;Lnet/minecraft/class_2248;Z)Lit/unimi/dsi/fastutil/objects/ObjectArrayList;
		ARG 1 pos
		ARG 2 placementData
		ARG 3 block
		ARG 4 transformed
	METHOD method_15166 getRotatedSize (Lnet/minecraft/class_2470;)Lnet/minecraft/class_2382;
		ARG 1 rotation
	METHOD method_15167 offsetByTransformedSize (Lnet/minecraft/class_2338;Lnet/minecraft/class_2415;Lnet/minecraft/class_2470;)Lnet/minecraft/class_2338;
		ARG 1 pos
		ARG 2 mirror
		ARG 3 rotation
	METHOD method_15168 transformAround (Lnet/minecraft/class_2338;Lnet/minecraft/class_2415;Lnet/minecraft/class_2470;Lnet/minecraft/class_2338;)Lnet/minecraft/class_2338;
		ARG 0 pos
		ARG 1 mirror
		ARG 2 rotation
		ARG 3 pivot
	METHOD method_15169 createNbtIntList ([I)Lnet/minecraft/class_2499;
		ARG 1 ints
	METHOD method_15171 transform (Lnet/minecraft/class_3492;Lnet/minecraft/class_2338;)Lnet/minecraft/class_2338;
		ARG 0 placementData
		ARG 1 pos
	METHOD method_15172 place (Lnet/minecraft/class_5425;Lnet/minecraft/class_2338;Lnet/minecraft/class_2338;Lnet/minecraft/class_3492;Lnet/minecraft/class_5819;I)Z
		ARG 1 world
		ARG 2 pos
		ARG 3 pivot
		ARG 4 placementData
		ARG 5 random
		ARG 6 flags
	METHOD method_15173 (IIILnet/minecraft/class_1936;ILnet/minecraft/class_2350;III)V
		ARG 5 direction
		ARG 6 x
		ARG 7 y
		ARG 8 z
	METHOD method_15174 saveFromWorld (Lnet/minecraft/class_1937;Lnet/minecraft/class_2338;Lnet/minecraft/class_2382;ZLnet/minecraft/class_2248;)V
		ARG 1 world
		ARG 2 start
		ARG 3 dimensions
		ARG 4 includeEntities
		ARG 5 ignoredBlock
	METHOD method_15175 writeNbt (Lnet/minecraft/class_2487;)Lnet/minecraft/class_2487;
		ARG 1 nbt
	METHOD method_15176 transformAround (Lnet/minecraft/class_243;Lnet/minecraft/class_2415;Lnet/minecraft/class_2470;Lnet/minecraft/class_2338;)Lnet/minecraft/class_243;
		ARG 0 point
		ARG 1 mirror
		ARG 2 rotation
		ARG 3 pivot
	METHOD method_15177 loadPalettedBlockInfo (Lnet/minecraft/class_7871;Lnet/minecraft/class_2499;Lnet/minecraft/class_2499;)V
		ARG 1 blockLookup
		ARG 2 palette
		ARG 3 blocks
	METHOD method_15179 spawnEntities (Lnet/minecraft/class_5425;Lnet/minecraft/class_2338;Lnet/minecraft/class_2415;Lnet/minecraft/class_2470;Lnet/minecraft/class_2338;Lnet/minecraft/class_3341;Z)V
		ARG 1 world
		ARG 2 pos
		ARG 3 mirror
		ARG 4 rotation
		ARG 5 pivot
		ARG 6 area
		ARG 7 initializeMobs
	METHOD method_15180 transformBox (Lnet/minecraft/class_3492;Lnet/minecraft/class_2338;Lnet/minecraft/class_3492;Lnet/minecraft/class_2338;)Lnet/minecraft/class_2338;
		ARG 1 placementData1
		ARG 2 pos1
		ARG 3 placementData2
		ARG 4 pos2
	METHOD method_15181 getAuthor ()Ljava/lang/String;
	METHOD method_15183 readNbt (Lnet/minecraft/class_7871;Lnet/minecraft/class_2487;)V
		ARG 1 blockLookup
		ARG 2 nbt
	METHOD method_15184 createNbtDoubleList ([D)Lnet/minecraft/class_2499;
		ARG 1 doubles
	METHOD method_16185 (Lnet/minecraft/class_3499$class_3501;)I
		ARG 0 blockInfo
	METHOD method_16187 calculateBoundingBox (Lnet/minecraft/class_3492;Lnet/minecraft/class_2338;)Lnet/minecraft/class_3341;
		ARG 1 placementData
		ARG 2 pos
	METHOD method_16445 getInfosForBlock (Lnet/minecraft/class_2338;Lnet/minecraft/class_3492;Lnet/minecraft/class_2248;)Ljava/util/List;
		ARG 1 pos
		ARG 2 placementData
		ARG 3 block
	METHOD method_16446 process (Lnet/minecraft/class_1936;Lnet/minecraft/class_2338;Lnet/minecraft/class_2338;Lnet/minecraft/class_3492;Ljava/util/List;)Ljava/util/List;
		ARG 0 world
		ARG 1 pos
		ARG 2 pivot
		ARG 3 placementData
		ARG 4 infos
	METHOD method_17916 getEntity (Lnet/minecraft/class_5425;Lnet/minecraft/class_2487;)Ljava/util/Optional;
		ARG 0 world
		ARG 1 nbt
	METHOD method_17917 (Lnet/minecraft/class_2470;Lnet/minecraft/class_2415;Lnet/minecraft/class_243;ZLnet/minecraft/class_5425;Lnet/minecraft/class_2487;Lnet/minecraft/class_1297;)V
		ARG 6 entity
	METHOD method_20532 updateCorner (Lnet/minecraft/class_1936;ILnet/minecraft/class_251;III)V
		ARG 0 world
		ARG 1 flags
		ARG 2 set
		ARG 3 startX
		ARG 4 startY
		ARG 5 startZ
	METHOD method_27267 calculateBoundingBox (Lnet/minecraft/class_2338;Lnet/minecraft/class_2470;Lnet/minecraft/class_2338;Lnet/minecraft/class_2415;)Lnet/minecraft/class_3341;
		ARG 1 pos
		ARG 2 rotation
		ARG 3 pivot
		ARG 4 mirror
	METHOD method_28053 (Lnet/minecraft/class_3499$class_3501;)I
		ARG 0 blockInfo
	METHOD method_28054 categorize (Lnet/minecraft/class_3499$class_3501;Ljava/util/List;Ljava/util/List;Ljava/util/List;)V
		COMMENT Categorizes {@code blockInfo} based on its properties, modifying
		COMMENT the passed lists in-place.
		COMMENT
		COMMENT <p>If the block has an NBT associated with it, then it will be
		COMMENT put in {@code blocksWithNbt}. If the block does not have an NBT
		COMMENT associated with it, but is always a full cube, then it will be
		COMMENT put in {@code fullBlocks}. Otherwise, it will be put in
		COMMENT {@code otherBlocks}.
		COMMENT
		COMMENT @apiNote After all blocks are categorized, {@link #combineSorted}
		COMMENT should be called with the same parameters to get the final list.
		ARG 0 blockInfo
		ARG 1 fullBlocks
		ARG 2 blocksWithNbt
		ARG 3 otherBlocks
	METHOD method_28055 combineSorted (Ljava/util/List;Ljava/util/List;Ljava/util/List;)Ljava/util/List;
		COMMENT {@return the list that sorts and combines the passed block lists}
		COMMENT
		COMMENT @apiNote The parameters passed should be the same one that was passed
		COMMENT to previous calls to {@link #categorize}. The returned value is meant to
		COMMENT be passed to {@link PalettedBlockInfoList}.
		COMMENT
		COMMENT @implNote Each list passed will be sorted in-place using the items'
		COMMENT Y, X, and Z coordinates. The returned list contains all items of
		COMMENT {@code fullBlocks}, {@code otherBlocks}, and {@code blocksWithNbt}
		COMMENT in this order.
		ARG 0 fullBlocks
		ARG 1 blocksWithNbt
		ARG 2 otherBlocks
	METHOD method_28056 (Lnet/minecraft/class_3499$class_3501;)I
		ARG 0 blockInfo
	METHOD method_34400 createBox (Lnet/minecraft/class_2338;Lnet/minecraft/class_2470;Lnet/minecraft/class_2338;Lnet/minecraft/class_2415;Lnet/minecraft/class_2382;)Lnet/minecraft/class_3341;
		ARG 0 pos
		ARG 1 rotation
		ARG 2 pivot
		ARG 3 mirror
		ARG 4 dimensions
	CLASS class_3500 Palette
		FIELD field_15590 AIR Lnet/minecraft/class_2680;
		FIELD field_15591 ids Lnet/minecraft/class_2361;
		FIELD field_15592 currentIndex I
		METHOD method_15185 getState (I)Lnet/minecraft/class_2680;
			ARG 1 id
		METHOD method_15186 set (Lnet/minecraft/class_2680;I)V
			ARG 1 state
			ARG 2 id
		METHOD method_15187 getId (Lnet/minecraft/class_2680;)I
			ARG 1 state
	CLASS class_3501 StructureBlockInfo
		FIELD field_15595 nbt Lnet/minecraft/class_2487;
		FIELD field_15596 state Lnet/minecraft/class_2680;
		FIELD field_15597 pos Lnet/minecraft/class_2338;
		METHOD <init> (Lnet/minecraft/class_2338;Lnet/minecraft/class_2680;Lnet/minecraft/class_2487;)V
			ARG 1 pos
			ARG 2 state
			ARG 3 nbt
	CLASS class_3502 StructureEntityInfo
		FIELD field_15598 nbt Lnet/minecraft/class_2487;
		FIELD field_15599 pos Lnet/minecraft/class_243;
		FIELD field_15600 blockPos Lnet/minecraft/class_2338;
		METHOD <init> (Lnet/minecraft/class_243;Lnet/minecraft/class_2338;Lnet/minecraft/class_2487;)V
			ARG 1 pos
			ARG 2 blockPos
			ARG 3 nbt
	CLASS class_5162 PalettedBlockInfoList
		FIELD field_23913 infos Ljava/util/List;
		FIELD field_23914 blockToInfos Ljava/util/Map;
		METHOD <init> (Ljava/util/List;)V
			ARG 1 infos
		METHOD method_27125 getAll ()Ljava/util/List;
		METHOD method_27126 getAllOf (Lnet/minecraft/class_2248;)Ljava/util/List;
			ARG 1 block
		METHOD method_27127 (Lnet/minecraft/class_2248;Lnet/minecraft/class_3499$class_3501;)Z
			ARG 1 info
		METHOD method_27128 (Lnet/minecraft/class_2248;)Ljava/util/List;
			ARG 1 block2
