github.com/df-mc/dragonfly@v0.9.13/server/block/hash.go (about)

     1  // Code generated by cmd/blockhash; DO NOT EDIT.
     2  
     3  package block
     4  
     5  const (
     6  	hashAir = iota
     7  	hashAmethyst
     8  	hashAncientDebris
     9  	hashAndesite
    10  	hashAnvil
    11  	hashBanner
    12  	hashBarrel
    13  	hashBarrier
    14  	hashBasalt
    15  	hashBeacon
    16  	hashBedrock
    17  	hashBeetrootSeeds
    18  	hashBlackstone
    19  	hashBlastFurnace
    20  	hashBlueIce
    21  	hashBone
    22  	hashBookshelf
    23  	hashBricks
    24  	hashCactus
    25  	hashCake
    26  	hashCalcite
    27  	hashCarpet
    28  	hashCarrot
    29  	hashChain
    30  	hashChest
    31  	hashChiseledQuartz
    32  	hashClay
    33  	hashCoal
    34  	hashCoalOre
    35  	hashCobblestone
    36  	hashCocoaBean
    37  	hashComposter
    38  	hashConcrete
    39  	hashConcretePowder
    40  	hashCopperOre
    41  	hashCoral
    42  	hashCoralBlock
    43  	hashCraftingTable
    44  	hashDeadBush
    45  	hashDecoratedPot
    46  	hashDeepslate
    47  	hashDeepslateBricks
    48  	hashDeepslateTiles
    49  	hashDiamond
    50  	hashDiamondOre
    51  	hashDiorite
    52  	hashDirt
    53  	hashDirtPath
    54  	hashDoubleFlower
    55  	hashDoubleTallGrass
    56  	hashDragonEgg
    57  	hashDriedKelp
    58  	hashDripstone
    59  	hashDropper
    60  	hashEmerald
    61  	hashEmeraldOre
    62  	hashEnchantingTable
    63  	hashEndBricks
    64  	hashEndStone
    65  	hashEnderChest
    66  	hashFarmland
    67  	hashFire
    68  	hashFletchingTable
    69  	hashFlower
    70  	hashFroglight
    71  	hashFurnace
    72  	hashGlass
    73  	hashGlassPane
    74  	hashGlazedTerracotta
    75  	hashGlowstone
    76  	hashGold
    77  	hashGoldOre
    78  	hashGranite
    79  	hashGrass
    80  	hashGravel
    81  	hashGrindstone
    82  	hashHayBale
    83  	hashHoneycomb
    84  	hashInvisibleBedrock
    85  	hashIron
    86  	hashIronBars
    87  	hashIronOre
    88  	hashItemFrame
    89  	hashJukebox
    90  	hashKelp
    91  	hashLadder
    92  	hashLantern
    93  	hashLapis
    94  	hashLapisOre
    95  	hashLava
    96  	hashLeaves
    97  	hashLectern
    98  	hashLight
    99  	hashLitPumpkin
   100  	hashLog
   101  	hashLoom
   102  	hashMelon
   103  	hashMelonSeeds
   104  	hashMossCarpet
   105  	hashMud
   106  	hashMudBricks
   107  	hashMuddyMangroveRoots
   108  	hashNetherBrickFence
   109  	hashNetherBricks
   110  	hashNetherGoldOre
   111  	hashNetherQuartzOre
   112  	hashNetherSprouts
   113  	hashNetherWart
   114  	hashNetherWartBlock
   115  	hashNetherite
   116  	hashNetherrack
   117  	hashNote
   118  	hashObsidian
   119  	hashPackedIce
   120  	hashPackedMud
   121  	hashPlanks
   122  	hashPodzol
   123  	hashPolishedBlackstoneBrick
   124  	hashPotato
   125  	hashPrismarine
   126  	hashPumpkin
   127  	hashPumpkinSeeds
   128  	hashPurpur
   129  	hashPurpurPillar
   130  	hashQuartz
   131  	hashQuartzBricks
   132  	hashQuartzPillar
   133  	hashRawCopper
   134  	hashRawGold
   135  	hashRawIron
   136  	hashReinforcedDeepslate
   137  	hashSand
   138  	hashSandstone
   139  	hashSeaLantern
   140  	hashSeaPickle
   141  	hashShroomlight
   142  	hashSign
   143  	hashSkull
   144  	hashSlab
   145  	hashSmithingTable
   146  	hashSmoker
   147  	hashSnow
   148  	hashSoulSand
   149  	hashSoulSoil
   150  	hashSponge
   151  	hashSporeBlossom
   152  	hashStainedGlass
   153  	hashStainedGlassPane
   154  	hashStainedTerracotta
   155  	hashStairs
   156  	hashStone
   157  	hashStoneBricks
   158  	hashStonecutter
   159  	hashSugarCane
   160  	hashTNT
   161  	hashTallGrass
   162  	hashTerracotta
   163  	hashTorch
   164  	hashTuff
   165  	hashWall
   166  	hashWater
   167  	hashWheatSeeds
   168  	hashWood
   169  	hashWoodDoor
   170  	hashWoodFence
   171  	hashWoodFenceGate
   172  	hashWoodTrapdoor
   173  	hashWool
   174  	hashCustomBlockBase
   175  )
   176  
   177  // customBlockBase represents the base hash for all custom blocks.
   178  var customBlockBase = uint64(hashCustomBlockBase - 1)
   179  
   180  // NextHash returns the next free hash for custom blocks.
   181  func NextHash() uint64 {
   182  	customBlockBase++
   183  	return customBlockBase
   184  }
   185  
   186  // Hash ...
   187  func (Air) Hash() uint64 {
   188  	return hashAir
   189  }
   190  
   191  // Hash ...
   192  func (Amethyst) Hash() uint64 {
   193  	return hashAmethyst
   194  }
   195  
   196  // Hash ...
   197  func (AncientDebris) Hash() uint64 {
   198  	return hashAncientDebris
   199  }
   200  
   201  // Hash ...
   202  func (a Andesite) Hash() uint64 {
   203  	return hashAndesite | uint64(boolByte(a.Polished))<<8
   204  }
   205  
   206  // Hash ...
   207  func (a Anvil) Hash() uint64 {
   208  	return hashAnvil | uint64(a.Type.Uint8())<<8 | uint64(a.Facing)<<10
   209  }
   210  
   211  // Hash ...
   212  func (b Banner) Hash() uint64 {
   213  	return hashBanner | uint64(b.Attach.Uint8())<<8
   214  }
   215  
   216  // Hash ...
   217  func (b Barrel) Hash() uint64 {
   218  	return hashBarrel | uint64(b.Facing)<<8 | uint64(boolByte(b.Open))<<11
   219  }
   220  
   221  // Hash ...
   222  func (Barrier) Hash() uint64 {
   223  	return hashBarrier
   224  }
   225  
   226  // Hash ...
   227  func (b Basalt) Hash() uint64 {
   228  	return hashBasalt | uint64(boolByte(b.Polished))<<8 | uint64(b.Axis)<<9
   229  }
   230  
   231  // Hash ...
   232  func (Beacon) Hash() uint64 {
   233  	return hashBeacon
   234  }
   235  
   236  // Hash ...
   237  func (b Bedrock) Hash() uint64 {
   238  	return hashBedrock | uint64(boolByte(b.InfiniteBurning))<<8
   239  }
   240  
   241  // Hash ...
   242  func (b BeetrootSeeds) Hash() uint64 {
   243  	return hashBeetrootSeeds | uint64(b.Growth)<<8
   244  }
   245  
   246  // Hash ...
   247  func (b Blackstone) Hash() uint64 {
   248  	return hashBlackstone | uint64(b.Type.Uint8())<<8
   249  }
   250  
   251  // Hash ...
   252  func (b BlastFurnace) Hash() uint64 {
   253  	return hashBlastFurnace | uint64(b.Facing)<<8 | uint64(boolByte(b.Lit))<<11
   254  }
   255  
   256  // Hash ...
   257  func (BlueIce) Hash() uint64 {
   258  	return hashBlueIce
   259  }
   260  
   261  // Hash ...
   262  func (b Bone) Hash() uint64 {
   263  	return hashBone | uint64(b.Axis)<<8
   264  }
   265  
   266  // Hash ...
   267  func (Bookshelf) Hash() uint64 {
   268  	return hashBookshelf
   269  }
   270  
   271  // Hash ...
   272  func (Bricks) Hash() uint64 {
   273  	return hashBricks
   274  }
   275  
   276  // Hash ...
   277  func (c Cactus) Hash() uint64 {
   278  	return hashCactus | uint64(c.Age)<<8
   279  }
   280  
   281  // Hash ...
   282  func (c Cake) Hash() uint64 {
   283  	return hashCake | uint64(c.Bites)<<8
   284  }
   285  
   286  // Hash ...
   287  func (Calcite) Hash() uint64 {
   288  	return hashCalcite
   289  }
   290  
   291  // Hash ...
   292  func (c Carpet) Hash() uint64 {
   293  	return hashCarpet | uint64(c.Colour.Uint8())<<8
   294  }
   295  
   296  // Hash ...
   297  func (c Carrot) Hash() uint64 {
   298  	return hashCarrot | uint64(c.Growth)<<8
   299  }
   300  
   301  // Hash ...
   302  func (c Chain) Hash() uint64 {
   303  	return hashChain | uint64(c.Axis)<<8
   304  }
   305  
   306  // Hash ...
   307  func (c Chest) Hash() uint64 {
   308  	return hashChest | uint64(c.Facing)<<8
   309  }
   310  
   311  // Hash ...
   312  func (ChiseledQuartz) Hash() uint64 {
   313  	return hashChiseledQuartz
   314  }
   315  
   316  // Hash ...
   317  func (Clay) Hash() uint64 {
   318  	return hashClay
   319  }
   320  
   321  // Hash ...
   322  func (Coal) Hash() uint64 {
   323  	return hashCoal
   324  }
   325  
   326  // Hash ...
   327  func (c CoalOre) Hash() uint64 {
   328  	return hashCoalOre | uint64(c.Type.Uint8())<<8
   329  }
   330  
   331  // Hash ...
   332  func (c Cobblestone) Hash() uint64 {
   333  	return hashCobblestone | uint64(boolByte(c.Mossy))<<8
   334  }
   335  
   336  // Hash ...
   337  func (c CocoaBean) Hash() uint64 {
   338  	return hashCocoaBean | uint64(c.Facing)<<8 | uint64(c.Age)<<10
   339  }
   340  
   341  // Hash ...
   342  func (c Composter) Hash() uint64 {
   343  	return hashComposter | uint64(c.Level)<<8
   344  }
   345  
   346  // Hash ...
   347  func (c Concrete) Hash() uint64 {
   348  	return hashConcrete | uint64(c.Colour.Uint8())<<8
   349  }
   350  
   351  // Hash ...
   352  func (c ConcretePowder) Hash() uint64 {
   353  	return hashConcretePowder | uint64(c.Colour.Uint8())<<8
   354  }
   355  
   356  // Hash ...
   357  func (c CopperOre) Hash() uint64 {
   358  	return hashCopperOre | uint64(c.Type.Uint8())<<8
   359  }
   360  
   361  // Hash ...
   362  func (c Coral) Hash() uint64 {
   363  	return hashCoral | uint64(c.Type.Uint8())<<8 | uint64(boolByte(c.Dead))<<11
   364  }
   365  
   366  // Hash ...
   367  func (c CoralBlock) Hash() uint64 {
   368  	return hashCoralBlock | uint64(c.Type.Uint8())<<8 | uint64(boolByte(c.Dead))<<11
   369  }
   370  
   371  // Hash ...
   372  func (CraftingTable) Hash() uint64 {
   373  	return hashCraftingTable
   374  }
   375  
   376  // Hash ...
   377  func (DeadBush) Hash() uint64 {
   378  	return hashDeadBush
   379  }
   380  
   381  // Hash ...
   382  func (p DecoratedPot) Hash() uint64 {
   383  	return hashDecoratedPot | uint64(p.Facing)<<8
   384  }
   385  
   386  // Hash ...
   387  func (d Deepslate) Hash() uint64 {
   388  	return hashDeepslate | uint64(d.Type.Uint8())<<8 | uint64(d.Axis)<<10
   389  }
   390  
   391  // Hash ...
   392  func (d DeepslateBricks) Hash() uint64 {
   393  	return hashDeepslateBricks | uint64(boolByte(d.Cracked))<<8
   394  }
   395  
   396  // Hash ...
   397  func (d DeepslateTiles) Hash() uint64 {
   398  	return hashDeepslateTiles | uint64(boolByte(d.Cracked))<<8
   399  }
   400  
   401  // Hash ...
   402  func (Diamond) Hash() uint64 {
   403  	return hashDiamond
   404  }
   405  
   406  // Hash ...
   407  func (d DiamondOre) Hash() uint64 {
   408  	return hashDiamondOre | uint64(d.Type.Uint8())<<8
   409  }
   410  
   411  // Hash ...
   412  func (d Diorite) Hash() uint64 {
   413  	return hashDiorite | uint64(boolByte(d.Polished))<<8
   414  }
   415  
   416  // Hash ...
   417  func (d Dirt) Hash() uint64 {
   418  	return hashDirt | uint64(boolByte(d.Coarse))<<8
   419  }
   420  
   421  // Hash ...
   422  func (DirtPath) Hash() uint64 {
   423  	return hashDirtPath
   424  }
   425  
   426  // Hash ...
   427  func (d DoubleFlower) Hash() uint64 {
   428  	return hashDoubleFlower | uint64(boolByte(d.UpperPart))<<8 | uint64(d.Type.Uint8())<<9
   429  }
   430  
   431  // Hash ...
   432  func (d DoubleTallGrass) Hash() uint64 {
   433  	return hashDoubleTallGrass | uint64(boolByte(d.UpperPart))<<8 | uint64(d.Type.Uint8())<<9
   434  }
   435  
   436  // Hash ...
   437  func (DragonEgg) Hash() uint64 {
   438  	return hashDragonEgg
   439  }
   440  
   441  // Hash ...
   442  func (DriedKelp) Hash() uint64 {
   443  	return hashDriedKelp
   444  }
   445  
   446  // Hash ...
   447  func (Dripstone) Hash() uint64 {
   448  	return hashDripstone
   449  }
   450  
   451  // Hash ...
   452  func (Emerald) Hash() uint64 {
   453  	return hashEmerald
   454  }
   455  
   456  // Hash ...
   457  func (e EmeraldOre) Hash() uint64 {
   458  	return hashEmeraldOre | uint64(e.Type.Uint8())<<8
   459  }
   460  
   461  // Hash ...
   462  func (EnchantingTable) Hash() uint64 {
   463  	return hashEnchantingTable
   464  }
   465  
   466  // Hash ...
   467  func (EndBricks) Hash() uint64 {
   468  	return hashEndBricks
   469  }
   470  
   471  // Hash ...
   472  func (EndStone) Hash() uint64 {
   473  	return hashEndStone
   474  }
   475  
   476  // Hash ...
   477  func (c EnderChest) Hash() uint64 {
   478  	return hashEnderChest | uint64(c.Facing)<<8
   479  }
   480  
   481  // Hash ...
   482  func (f Farmland) Hash() uint64 {
   483  	return hashFarmland | uint64(f.Hydration)<<8
   484  }
   485  
   486  // Hash ...
   487  func (f Fire) Hash() uint64 {
   488  	return hashFire | uint64(f.Type.Uint8())<<8 | uint64(f.Age)<<9
   489  }
   490  
   491  // Hash ...
   492  func (FletchingTable) Hash() uint64 {
   493  	return hashFletchingTable
   494  }
   495  
   496  // Hash ...
   497  func (f Flower) Hash() uint64 {
   498  	return hashFlower | uint64(f.Type.Uint8())<<8
   499  }
   500  
   501  // Hash ...
   502  func (f Froglight) Hash() uint64 {
   503  	return hashFroglight | uint64(f.Type.Uint8())<<8 | uint64(f.Axis)<<10
   504  }
   505  
   506  // Hash ...
   507  func (f Furnace) Hash() uint64 {
   508  	return hashFurnace | uint64(f.Facing)<<8 | uint64(boolByte(f.Lit))<<11
   509  }
   510  
   511  // Hash ...
   512  func (Glass) Hash() uint64 {
   513  	return hashGlass
   514  }
   515  
   516  // Hash ...
   517  func (GlassPane) Hash() uint64 {
   518  	return hashGlassPane
   519  }
   520  
   521  // Hash ...
   522  func (t GlazedTerracotta) Hash() uint64 {
   523  	return hashGlazedTerracotta | uint64(t.Colour.Uint8())<<8 | uint64(t.Facing)<<12
   524  }
   525  
   526  // Hash ...
   527  func (Glowstone) Hash() uint64 {
   528  	return hashGlowstone
   529  }
   530  
   531  // Hash ...
   532  func (Gold) Hash() uint64 {
   533  	return hashGold
   534  }
   535  
   536  // Hash ...
   537  func (g GoldOre) Hash() uint64 {
   538  	return hashGoldOre | uint64(g.Type.Uint8())<<8
   539  }
   540  
   541  // Hash ...
   542  func (g Granite) Hash() uint64 {
   543  	return hashGranite | uint64(boolByte(g.Polished))<<8
   544  }
   545  
   546  // Hash ...
   547  func (Grass) Hash() uint64 {
   548  	return hashGrass
   549  }
   550  
   551  // Hash ...
   552  func (Gravel) Hash() uint64 {
   553  	return hashGravel
   554  }
   555  
   556  // Hash ...
   557  func (g Grindstone) Hash() uint64 {
   558  	return hashGrindstone | uint64(g.Attach.Uint8())<<8 | uint64(g.Facing)<<10
   559  }
   560  
   561  // Hash ...
   562  func (h HayBale) Hash() uint64 {
   563  	return hashHayBale | uint64(h.Axis)<<8
   564  }
   565  
   566  // Hash ...
   567  func (Honeycomb) Hash() uint64 {
   568  	return hashHoneycomb
   569  }
   570  
   571  // Hash ...
   572  func (InvisibleBedrock) Hash() uint64 {
   573  	return hashInvisibleBedrock
   574  }
   575  
   576  // Hash ...
   577  func (Iron) Hash() uint64 {
   578  	return hashIron
   579  }
   580  
   581  // Hash ...
   582  func (IronBars) Hash() uint64 {
   583  	return hashIronBars
   584  }
   585  
   586  // Hash ...
   587  func (i IronOre) Hash() uint64 {
   588  	return hashIronOre | uint64(i.Type.Uint8())<<8
   589  }
   590  
   591  // Hash ...
   592  func (i ItemFrame) Hash() uint64 {
   593  	return hashItemFrame | uint64(i.Facing)<<8 | uint64(boolByte(i.Glowing))<<11
   594  }
   595  
   596  // Hash ...
   597  func (Jukebox) Hash() uint64 {
   598  	return hashJukebox
   599  }
   600  
   601  // Hash ...
   602  func (k Kelp) Hash() uint64 {
   603  	return hashKelp | uint64(k.Age)<<8
   604  }
   605  
   606  // Hash ...
   607  func (l Ladder) Hash() uint64 {
   608  	return hashLadder | uint64(l.Facing)<<8
   609  }
   610  
   611  // Hash ...
   612  func (l Lantern) Hash() uint64 {
   613  	return hashLantern | uint64(boolByte(l.Hanging))<<8 | uint64(l.Type.Uint8())<<9
   614  }
   615  
   616  // Hash ...
   617  func (Lapis) Hash() uint64 {
   618  	return hashLapis
   619  }
   620  
   621  // Hash ...
   622  func (l LapisOre) Hash() uint64 {
   623  	return hashLapisOre | uint64(l.Type.Uint8())<<8
   624  }
   625  
   626  // Hash ...
   627  func (l Lava) Hash() uint64 {
   628  	return hashLava | uint64(boolByte(l.Still))<<8 | uint64(l.Depth)<<9 | uint64(boolByte(l.Falling))<<17
   629  }
   630  
   631  // Hash ...
   632  func (l Leaves) Hash() uint64 {
   633  	return hashLeaves | uint64(l.Wood.Uint8())<<8 | uint64(boolByte(l.Persistent))<<12 | uint64(boolByte(l.ShouldUpdate))<<13
   634  }
   635  
   636  // Hash ...
   637  func (l Lectern) Hash() uint64 {
   638  	return hashLectern | uint64(l.Facing)<<8
   639  }
   640  
   641  // Hash ...
   642  func (l Light) Hash() uint64 {
   643  	return hashLight | uint64(l.Level)<<8
   644  }
   645  
   646  // Hash ...
   647  func (l LitPumpkin) Hash() uint64 {
   648  	return hashLitPumpkin | uint64(l.Facing)<<8
   649  }
   650  
   651  // Hash ...
   652  func (l Log) Hash() uint64 {
   653  	return hashLog | uint64(l.Wood.Uint8())<<8 | uint64(boolByte(l.Stripped))<<12 | uint64(l.Axis)<<13
   654  }
   655  
   656  // Hash ...
   657  func (l Loom) Hash() uint64 {
   658  	return hashLoom | uint64(l.Facing)<<8
   659  }
   660  
   661  // Hash ...
   662  func (Melon) Hash() uint64 {
   663  	return hashMelon
   664  }
   665  
   666  // Hash ...
   667  func (m MelonSeeds) Hash() uint64 {
   668  	return hashMelonSeeds | uint64(m.Growth)<<8 | uint64(m.Direction)<<16
   669  }
   670  
   671  // Hash ...
   672  func (MossCarpet) Hash() uint64 {
   673  	return hashMossCarpet
   674  }
   675  
   676  // Hash ...
   677  func (Mud) Hash() uint64 {
   678  	return hashMud
   679  }
   680  
   681  // Hash ...
   682  func (MudBricks) Hash() uint64 {
   683  	return hashMudBricks
   684  }
   685  
   686  // Hash ...
   687  func (m MuddyMangroveRoots) Hash() uint64 {
   688  	return hashMuddyMangroveRoots | uint64(m.Axis)<<8
   689  }
   690  
   691  // Hash ...
   692  func (NetherBrickFence) Hash() uint64 {
   693  	return hashNetherBrickFence
   694  }
   695  
   696  // Hash ...
   697  func (n NetherBricks) Hash() uint64 {
   698  	return hashNetherBricks | uint64(n.Type.Uint8())<<8
   699  }
   700  
   701  // Hash ...
   702  func (NetherGoldOre) Hash() uint64 {
   703  	return hashNetherGoldOre
   704  }
   705  
   706  // Hash ...
   707  func (NetherQuartzOre) Hash() uint64 {
   708  	return hashNetherQuartzOre
   709  }
   710  
   711  // Hash ...
   712  func (NetherSprouts) Hash() uint64 {
   713  	return hashNetherSprouts
   714  }
   715  
   716  // Hash ...
   717  func (n NetherWart) Hash() uint64 {
   718  	return hashNetherWart | uint64(n.Age)<<8
   719  }
   720  
   721  // Hash ...
   722  func (n NetherWartBlock) Hash() uint64 {
   723  	return hashNetherWartBlock | uint64(boolByte(n.Warped))<<8
   724  }
   725  
   726  // Hash ...
   727  func (Netherite) Hash() uint64 {
   728  	return hashNetherite
   729  }
   730  
   731  // Hash ...
   732  func (Netherrack) Hash() uint64 {
   733  	return hashNetherrack
   734  }
   735  
   736  // Hash ...
   737  func (Note) Hash() uint64 {
   738  	return hashNote
   739  }
   740  
   741  // Hash ...
   742  func (o Obsidian) Hash() uint64 {
   743  	return hashObsidian | uint64(boolByte(o.Crying))<<8
   744  }
   745  
   746  // Hash ...
   747  func (PackedIce) Hash() uint64 {
   748  	return hashPackedIce
   749  }
   750  
   751  // Hash ...
   752  func (PackedMud) Hash() uint64 {
   753  	return hashPackedMud
   754  }
   755  
   756  // Hash ...
   757  func (p Planks) Hash() uint64 {
   758  	return hashPlanks | uint64(p.Wood.Uint8())<<8
   759  }
   760  
   761  // Hash ...
   762  func (Podzol) Hash() uint64 {
   763  	return hashPodzol
   764  }
   765  
   766  // Hash ...
   767  func (b PolishedBlackstoneBrick) Hash() uint64 {
   768  	return hashPolishedBlackstoneBrick | uint64(boolByte(b.Cracked))<<8
   769  }
   770  
   771  // Hash ...
   772  func (p Potato) Hash() uint64 {
   773  	return hashPotato | uint64(p.Growth)<<8
   774  }
   775  
   776  // Hash ...
   777  func (p Prismarine) Hash() uint64 {
   778  	return hashPrismarine | uint64(p.Type.Uint8())<<8
   779  }
   780  
   781  // Hash ...
   782  func (p Pumpkin) Hash() uint64 {
   783  	return hashPumpkin | uint64(boolByte(p.Carved))<<8 | uint64(p.Facing)<<9
   784  }
   785  
   786  // Hash ...
   787  func (p PumpkinSeeds) Hash() uint64 {
   788  	return hashPumpkinSeeds | uint64(p.Growth)<<8 | uint64(p.Direction)<<16
   789  }
   790  
   791  // Hash ...
   792  func (Purpur) Hash() uint64 {
   793  	return hashPurpur
   794  }
   795  
   796  // Hash ...
   797  func (p PurpurPillar) Hash() uint64 {
   798  	return hashPurpurPillar | uint64(p.Axis)<<8
   799  }
   800  
   801  // Hash ...
   802  func (q Quartz) Hash() uint64 {
   803  	return hashQuartz | uint64(boolByte(q.Smooth))<<8
   804  }
   805  
   806  // Hash ...
   807  func (QuartzBricks) Hash() uint64 {
   808  	return hashQuartzBricks
   809  }
   810  
   811  // Hash ...
   812  func (q QuartzPillar) Hash() uint64 {
   813  	return hashQuartzPillar | uint64(q.Axis)<<8
   814  }
   815  
   816  // Hash ...
   817  func (RawCopper) Hash() uint64 {
   818  	return hashRawCopper
   819  }
   820  
   821  // Hash ...
   822  func (RawGold) Hash() uint64 {
   823  	return hashRawGold
   824  }
   825  
   826  // Hash ...
   827  func (RawIron) Hash() uint64 {
   828  	return hashRawIron
   829  }
   830  
   831  // Hash ...
   832  func (ReinforcedDeepslate) Hash() uint64 {
   833  	return hashReinforcedDeepslate
   834  }
   835  
   836  // Hash ...
   837  func (s Sand) Hash() uint64 {
   838  	return hashSand | uint64(boolByte(s.Red))<<8
   839  }
   840  
   841  // Hash ...
   842  func (s Sandstone) Hash() uint64 {
   843  	return hashSandstone | uint64(s.Type.Uint8())<<8 | uint64(boolByte(s.Red))<<10
   844  }
   845  
   846  // Hash ...
   847  func (SeaLantern) Hash() uint64 {
   848  	return hashSeaLantern
   849  }
   850  
   851  // Hash ...
   852  func (s SeaPickle) Hash() uint64 {
   853  	return hashSeaPickle | uint64(s.AdditionalCount)<<8 | uint64(boolByte(s.Dead))<<16
   854  }
   855  
   856  // Hash ...
   857  func (Shroomlight) Hash() uint64 {
   858  	return hashShroomlight
   859  }
   860  
   861  // Hash ...
   862  func (s Sign) Hash() uint64 {
   863  	return hashSign | uint64(s.Wood.Uint8())<<8 | uint64(s.Attach.Uint8())<<12
   864  }
   865  
   866  // Hash ...
   867  func (s Skull) Hash() uint64 {
   868  	return hashSkull | uint64(s.Attach.FaceUint8())<<8
   869  }
   870  
   871  // Hash ...
   872  func (s Slab) Hash() uint64 {
   873  	return hashSlab | s.Block.Hash()<<8 | uint64(boolByte(s.Top))<<24 | uint64(boolByte(s.Double))<<25
   874  }
   875  
   876  // Hash ...
   877  func (SmithingTable) Hash() uint64 {
   878  	return hashSmithingTable
   879  }
   880  
   881  // Hash ...
   882  func (s Smoker) Hash() uint64 {
   883  	return hashSmoker | uint64(s.Facing)<<8 | uint64(boolByte(s.Lit))<<11
   884  }
   885  
   886  // Hash ...
   887  func (Snow) Hash() uint64 {
   888  	return hashSnow
   889  }
   890  
   891  // Hash ...
   892  func (SoulSand) Hash() uint64 {
   893  	return hashSoulSand
   894  }
   895  
   896  // Hash ...
   897  func (SoulSoil) Hash() uint64 {
   898  	return hashSoulSoil
   899  }
   900  
   901  // Hash ...
   902  func (s Sponge) Hash() uint64 {
   903  	return hashSponge | uint64(boolByte(s.Wet))<<8
   904  }
   905  
   906  // Hash ...
   907  func (SporeBlossom) Hash() uint64 {
   908  	return hashSporeBlossom
   909  }
   910  
   911  // Hash ...
   912  func (g StainedGlass) Hash() uint64 {
   913  	return hashStainedGlass | uint64(g.Colour.Uint8())<<8
   914  }
   915  
   916  // Hash ...
   917  func (p StainedGlassPane) Hash() uint64 {
   918  	return hashStainedGlassPane | uint64(p.Colour.Uint8())<<8
   919  }
   920  
   921  // Hash ...
   922  func (t StainedTerracotta) Hash() uint64 {
   923  	return hashStainedTerracotta | uint64(t.Colour.Uint8())<<8
   924  }
   925  
   926  // Hash ...
   927  func (s Stairs) Hash() uint64 {
   928  	return hashStairs | s.Block.Hash()<<8 | uint64(boolByte(s.UpsideDown))<<24 | uint64(s.Facing)<<25
   929  }
   930  
   931  // Hash ...
   932  func (s Stone) Hash() uint64 {
   933  	return hashStone | uint64(boolByte(s.Smooth))<<8
   934  }
   935  
   936  // Hash ...
   937  func (s StoneBricks) Hash() uint64 {
   938  	return hashStoneBricks | uint64(s.Type.Uint8())<<8
   939  }
   940  
   941  // Hash ...
   942  func (s Stonecutter) Hash() uint64 {
   943  	return hashStonecutter | uint64(s.Facing)<<8
   944  }
   945  
   946  // Hash ...
   947  func (c SugarCane) Hash() uint64 {
   948  	return hashSugarCane | uint64(c.Age)<<8
   949  }
   950  
   951  // Hash ...
   952  func (TNT) Hash() uint64 {
   953  	return hashTNT
   954  }
   955  
   956  // Hash ...
   957  func (g TallGrass) Hash() uint64 {
   958  	return hashTallGrass | uint64(g.Type.Uint8())<<8
   959  }
   960  
   961  // Hash ...
   962  func (Terracotta) Hash() uint64 {
   963  	return hashTerracotta
   964  }
   965  
   966  // Hash ...
   967  func (t Torch) Hash() uint64 {
   968  	return hashTorch | uint64(t.Facing)<<8 | uint64(t.Type.Uint8())<<11
   969  }
   970  
   971  // Hash ...
   972  func (Tuff) Hash() uint64 {
   973  	return hashTuff
   974  }
   975  
   976  // Hash ...
   977  func (w Wall) Hash() uint64 {
   978  	return hashWall | w.Block.Hash()<<8 | uint64(w.NorthConnection.Uint8())<<24 | uint64(w.EastConnection.Uint8())<<26 | uint64(w.SouthConnection.Uint8())<<28 | uint64(w.WestConnection.Uint8())<<30 | uint64(boolByte(w.Post))<<32
   979  }
   980  
   981  // Hash ...
   982  func (w Water) Hash() uint64 {
   983  	return hashWater | uint64(boolByte(w.Still))<<8 | uint64(w.Depth)<<9 | uint64(boolByte(w.Falling))<<17
   984  }
   985  
   986  // Hash ...
   987  func (s WheatSeeds) Hash() uint64 {
   988  	return hashWheatSeeds | uint64(s.Growth)<<8
   989  }
   990  
   991  // Hash ...
   992  func (w Wood) Hash() uint64 {
   993  	return hashWood | uint64(w.Wood.Uint8())<<8 | uint64(boolByte(w.Stripped))<<12 | uint64(w.Axis)<<13
   994  }
   995  
   996  // Hash ...
   997  func (d WoodDoor) Hash() uint64 {
   998  	return hashWoodDoor | uint64(d.Wood.Uint8())<<8 | uint64(d.Facing)<<12 | uint64(boolByte(d.Open))<<14 | uint64(boolByte(d.Top))<<15 | uint64(boolByte(d.Right))<<16
   999  }
  1000  
  1001  // Hash ...
  1002  func (w WoodFence) Hash() uint64 {
  1003  	return hashWoodFence | uint64(w.Wood.Uint8())<<8
  1004  }
  1005  
  1006  // Hash ...
  1007  func (f WoodFenceGate) Hash() uint64 {
  1008  	return hashWoodFenceGate | uint64(f.Wood.Uint8())<<8 | uint64(f.Facing)<<12 | uint64(boolByte(f.Open))<<14 | uint64(boolByte(f.Lowered))<<15
  1009  }
  1010  
  1011  // Hash ...
  1012  func (t WoodTrapdoor) Hash() uint64 {
  1013  	return hashWoodTrapdoor | uint64(t.Wood.Uint8())<<8 | uint64(t.Facing)<<12 | uint64(boolByte(t.Open))<<14 | uint64(boolByte(t.Top))<<15
  1014  }
  1015  
  1016  // Hash ...
  1017  func (w Wool) Hash() uint64 {
  1018  	return hashWool | uint64(w.Colour.Uint8())<<8
  1019  }