github.com/df-mc/dragonfly@v0.9.13/server/block/wall_type.go (about) 1 package block 2 3 import "github.com/df-mc/dragonfly/server/world" 4 5 // encodeWallBlock encodes the provided block in to an identifier and meta value that can be used to encode the wall. 6 func encodeWallBlock(block world.Block) (string, int16) { 7 switch block := block.(type) { 8 case Andesite: 9 if !block.Polished { 10 return "andesite", 4 11 } 12 case Blackstone: 13 if block.Type == NormalBlackstone() { 14 return "blackstone", 0 15 } else if block.Type == PolishedBlackstone() { 16 return "polished_blackstone", 0 17 } 18 case Bricks: 19 return "brick", 6 20 case Cobblestone: 21 if block.Mossy { 22 return "mossy_cobblestone", 1 23 } 24 return "cobblestone", 0 25 case Deepslate: 26 if block.Type == CobbledDeepslate() { 27 return "cobbled_deepslate", 0 28 } else if block.Type == PolishedDeepslate() { 29 return "polished_deepslate", 0 30 } 31 case DeepslateBricks: 32 if !block.Cracked { 33 return "deepslate_brick", 0 34 } 35 case DeepslateTiles: 36 if !block.Cracked { 37 return "deepslate_tile", 0 38 } 39 case Diorite: 40 if !block.Polished { 41 return "diorite", 3 42 } 43 case EndBricks: 44 return "end_brick", 10 45 case Granite: 46 if !block.Polished { 47 return "granite", 2 48 } 49 case MudBricks: 50 return "mud_brick", 0 51 case NetherBricks: 52 if block.Type == NormalNetherBricks() { 53 return "nether_brick", 9 54 } else if block.Type == RedNetherBricks() { 55 return "red_nether_brick", 13 56 } 57 case PolishedBlackstoneBrick: 58 if !block.Cracked { 59 return "polished_blackstone_brick", 0 60 } 61 case Prismarine: 62 if block.Type == NormalPrismarine() { 63 return "prismarine", 11 64 } 65 case Sandstone: 66 if block.Type == NormalSandstone() { 67 if block.Red { 68 return "red_sandstone", 12 69 } 70 return "sandstone", 5 71 } 72 case StoneBricks: 73 if block.Type == NormalStoneBricks() { 74 return "stone_brick", 7 75 } else if block.Type == MossyStoneBricks() { 76 return "mossy_stone_brick", 8 77 } 78 } 79 panic("invalid block used for wall") 80 } 81 82 // WallBlocks returns a list of all possible blocks for a wall. 83 func WallBlocks() []world.Block { 84 return []world.Block{ 85 Andesite{}, 86 Blackstone{Type: PolishedBlackstone()}, 87 Blackstone{}, 88 Bricks{}, 89 Cobblestone{Mossy: true}, 90 Cobblestone{}, 91 DeepslateBricks{}, 92 DeepslateTiles{}, 93 Deepslate{Type: CobbledDeepslate()}, 94 Deepslate{Type: PolishedDeepslate()}, 95 Diorite{}, 96 EndBricks{}, 97 Granite{}, 98 MudBricks{}, 99 NetherBricks{Type: RedNetherBricks()}, 100 NetherBricks{}, 101 PolishedBlackstoneBrick{}, 102 Prismarine{}, 103 Sandstone{Red: true}, 104 Sandstone{}, 105 StoneBricks{Type: MossyStoneBricks()}, 106 StoneBricks{}, 107 } 108 }