Skip to content

Commit 8172c47

Browse files
committed
all the missing stairs and slabs
1 parent 7d9b20e commit 8172c47

70 files changed

Lines changed: 993 additions & 164 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/integration-test/kotlin/de/bixilon/minosoft/data/registries/blocks/factory/VerifyIntegratedBlockRegistry.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import de.bixilon.minosoft.data.registries.blocks.state.BlockStateFlags
2626
import de.bixilon.minosoft.data.registries.blocks.state.BlockStateFlags.toFlagSet
2727
import de.bixilon.minosoft.data.registries.blocks.types.Block
2828
import de.bixilon.minosoft.data.registries.blocks.types.building.FenceBlock
29+
import de.bixilon.minosoft.data.registries.blocks.types.building.end.EndStoneBrick
2930
import de.bixilon.minosoft.data.registries.blocks.types.building.nether.SoulSand
3031
import de.bixilon.minosoft.data.registries.blocks.types.building.plants.FernBlock
3132
import de.bixilon.minosoft.data.registries.blocks.types.building.plants.FlowerBlock
@@ -149,6 +150,7 @@ object VerifyIntegratedBlockRegistry {
149150
}
150151

151152
private fun compareHardness(pixlyzer: Block, integrated: Block) {
153+
if (integrated is EndStoneBrick.Stairs) return // TODO: 0.8 vs 3.0
152154
if (pixlyzer.hardness == integrated.hardness || (pixlyzer.hardness < 0.0f && integrated is UnbreakableBlock)) {
153155
return
154156
}
@@ -216,7 +218,7 @@ object VerifyIntegratedBlockRegistry {
216218
continue
217219
}
218220
val identifier = id.toResourceLocation()
219-
val integrated = registries.block[identifier] ?: Broken("Block $id does not exist in the registry?")
221+
val integrated = registries.block[identifier] ?: Broken("Block $id does not exist in the registry? Maybe bad factory?")
220222
if (integrated is PixLyzerBlock) {
221223
compareImplemented(identifier, error)
222224
// useless to compare

src/main/java/de/bixilon/minosoft/data/registries/blocks/factory/BlockFactories.kt

Lines changed: 45 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,14 @@ import de.bixilon.minosoft.data.registries.blocks.types.building.quartz.SmoothQu
4444
import de.bixilon.minosoft.data.registries.blocks.types.building.snow.SnowBlock
4545
import de.bixilon.minosoft.data.registries.blocks.types.building.snow.SnowLayerBlock
4646
import de.bixilon.minosoft.data.registries.blocks.types.building.stone.*
47+
import de.bixilon.minosoft.data.registries.blocks.types.building.stone.blackstone.Blackstone
48+
import de.bixilon.minosoft.data.registries.blocks.types.building.stone.blackstone.PolishedBlackstone
49+
import de.bixilon.minosoft.data.registries.blocks.types.building.stone.blackstone.PolishedBlackstoneBrick
50+
import de.bixilon.minosoft.data.registries.blocks.types.building.stone.deepslate.*
4751
import de.bixilon.minosoft.data.registries.blocks.types.building.stone.sand.*
52+
import de.bixilon.minosoft.data.registries.blocks.types.building.stone.tuff.PolishedTuff
53+
import de.bixilon.minosoft.data.registries.blocks.types.building.stone.tuff.Tuff
54+
import de.bixilon.minosoft.data.registries.blocks.types.building.stone.tuff.TuffBrick
4855
import de.bixilon.minosoft.data.registries.blocks.types.climbing.ScaffoldingBlock
4956
import de.bixilon.minosoft.data.registries.blocks.types.entity.storage.EnderChestBlock
5057
import de.bixilon.minosoft.data.registries.blocks.types.entity.storage.ShulkerBoxBlock
@@ -72,56 +79,66 @@ object BlockFactories : DefaultFactory<BlockFactory<*>>(
7279
SmoothStone.Block, SmoothStone.Slab,
7380
StoneBrick.Block, StoneBrick.Slab, StoneBrick.Stairs,
7481
Cobblestone.Block, Cobblestone.Slab, Cobblestone.Stairs,
82+
MossyCobblestone.Block, MossyCobblestone.Slab, MossyCobblestone.Stairs,
7583
Granite.Block, Granite.Slab, Granite.Stairs,
7684
PolishedGranite.Block, PolishedGranite.Slab, PolishedGranite.Stairs,
7785
Diorite.Block, Diorite.Slab, Diorite.Stairs,
7886
PolishedDiorite.Block, PolishedDiorite.Slab, PolishedDiorite.Stairs,
7987
Andesite.Block, Andesite.Slab, Andesite.Stairs,
8088
PolishedAndesite.Block, PolishedAndesite.Slab, PolishedAndesite.Stairs,
81-
Tuff.Block, Tuff.Slab,
82-
Deepslate.Block, Deepslate.Cobbled, Deepslate.Slab,
89+
Tuff.Block, Tuff.Slab, Tuff.Stairs,
90+
TuffBrick.Block, TuffBrick.Slab, TuffBrick.Stairs,
91+
PolishedTuff.Block, PolishedTuff.Slab, PolishedTuff.Stairs,
92+
Deepslate.Block,
93+
CobbledDeepslate.Block, CobbledDeepslate.Slab, CobbledDeepslate.Stairs,
94+
PolishedDeepslate.Block, PolishedDeepslate.Slab, PolishedDeepslate.Stairs,
95+
DeepslateBricks.Block, DeepslateBricks.Slab, DeepslateBricks.Stairs,
96+
DeepslateTile.Block, DeepslateTile.Slab, DeepslateTile.Stairs,
97+
98+
Blackstone.Block, Blackstone.Slab, Blackstone.Stairs,
99+
PolishedBlackstone.Block, PolishedBlackstone.Slab, PolishedBlackstone.Stairs,
100+
PolishedBlackstoneBrick.Block, PolishedBlackstoneBrick.Slab, PolishedBlackstoneBrick.Stairs,
83101

84102
Dripstone.Block,
85103

86104
Gravel,
87105

88-
Sandstone.Block, Sandstone.Slab,
106+
Sandstone.Block, Sandstone.Slab, Sandstone.Stairs,
89107
CutSandstone.Block, CutSandstone.Slab,
90-
SmoothSandstone.Block, SmoothSandstone.Slab,
91-
RedSandstone.Block, RedSandstone.Slab,
108+
SmoothSandstone.Block, SmoothSandstone.Slab, SmoothSandstone.Stairs,
109+
RedSandstone.Block, RedSandstone.Slab, RedSandstone.Stairs,
92110
CutRedSandstone.Block, CutRedSandstone.Slab,
93-
SmoothRedSandstone.Block, SmoothRedSandstone.Slab,
111+
SmoothRedSandstone.Block, SmoothRedSandstone.Slab, SmoothRedSandstone.Stairs,
94112

95-
QuartzBlock.Block, QuartzBlock.Slab,
96-
SmoothQuartz.Block, SmoothQuartz.Slab,
113+
QuartzBlock.Block, QuartzBlock.Slab, QuartzBlock.Stairs,
114+
SmoothQuartz.Block, SmoothQuartz.Slab, SmoothQuartz.Stairs,
97115

98-
Brick.Block, Brick.Slab,
99-
NetherBrick.Block, NetherBrick.Slab,
100-
MudBrick.Block, MudBrick.Slab,
101-
MossyStoneBrick.Block, MossyStoneBrick.Slab,
102-
MossyCobblestone.Block, MossyCobblestone.Slab,
103-
RedNetherBrick.Block, RedNetherBrick.Slab,
116+
Brick.Block, Brick.Slab, Brick.Stairs,
117+
NetherBrick.Block, NetherBrick.Slab, NetherBrick.Fence, NetherBrick.Stairs,
118+
MudBrick.Block, MudBrick.Slab, MudBrick.Stairs,
119+
MossyStoneBrick.Block, MossyStoneBrick.Slab, MossyStoneBrick.Stairs,
120+
RedNetherBrick.Block, RedNetherBrick.Slab, RedNetherBrick.Stairs,
104121

105122

106-
Prismarine.Block, Prismarine.Slab,
107-
PrismarineBrick.Block, PrismarineBrick.Slab,
108-
DarkPrismarine.Block, DarkPrismarine.Slab,
123+
Prismarine.Block, Prismarine.Slab, Prismarine.Stairs,
124+
PrismarineBrick.Block, PrismarineBrick.Slab, PrismarineBrick.Stairs,
125+
DarkPrismarine.Block, DarkPrismarine.Slab, DarkPrismarine.Stairs,
109126

110-
EndStoneBrick.Block, EndStoneBrick.Slab,
111-
Purpur.Block, Purpur.Slab,
127+
EndStoneBrick.Block, EndStoneBrick.Slab, EndStoneBrick.Stairs,
128+
Purpur.Block, Purpur.Slab, Purpur.Stairs,
112129

113130

114131
OxidizedCopper.Block, OxidizedCopper.Slab,
115-
OxidizedCutCopper.Block, OxidizedCutCopper.Slab,
116-
WaxedOxidizedCutCopper.Block, WaxedOxidizedCutCopper.Slab,
132+
OxidizedCutCopper.Block, OxidizedCutCopper.Slab, OxidizedCutCopper.Stairs,
133+
WaxedOxidizedCutCopper.Block, WaxedOxidizedCutCopper.Slab, WaxedOxidizedCutCopper.Stairs,
117134
WeatheredCopper.Block, WeatheredCopper.Slab,
118-
WeatheredCutCopper.Block, WeatheredCutCopper.Slab,
119-
WaxedWeatheredCutCopper.Block, WaxedWeatheredCutCopper.Slab,
135+
WeatheredCutCopper.Block, WeatheredCutCopper.Slab, WeatheredCutCopper.Stairs,
136+
WaxedWeatheredCutCopper.Block, WaxedWeatheredCutCopper.Slab, WaxedWeatheredCutCopper.Stairs,
120137
ExposedCopper.Block, ExposedCopper.Slab,
121-
ExposedCutCopper.Block, ExposedCutCopper.Slab,
122-
WaxedExposedCutCopper.Block, WaxedExposedCutCopper.Slab,
123-
CutCopper.Block, CutCopper.Slab,
124-
WaxedCutCopper.Block, WaxedCutCopper.Slab,
138+
ExposedCutCopper.Block, ExposedCutCopper.Slab, ExposedCutCopper.Stairs,
139+
WaxedExposedCutCopper.Block, WaxedExposedCutCopper.Slab, WaxedExposedCutCopper.Stairs,
140+
CutCopper.Block, CutCopper.Slab, CutCopper.Stairs,
141+
WaxedCutCopper.Block, WaxedCutCopper.Slab, WaxedCutCopper.Stairs,
125142

126143
Dirt,
127144
GrassBlock,
@@ -141,7 +158,7 @@ object BlockFactories : DefaultFactory<BlockFactory<*>>(
141158

142159
DoorBlock.IronDoor,
143160

144-
Oak.Leaves, Oak.Door, Oak.Slab, Oak.Planks, Oak.Fence, Oak.Stairs,
161+
Oak.Leaves, Oak.Door, Oak.PetrifiedSlab, Oak.Slab, Oak.Planks, Oak.Fence, Oak.Stairs,
145162
Spruce.Leaves, Spruce.Door, Spruce.Slab, Spruce.Planks, Spruce.Fence, Spruce.Stairs,
146163
Birch.Leaves, Birch.Door, Birch.Slab, Birch.Planks, Birch.Fence, Birch.Stairs,
147164
Jungle.Leaves, Jungle.Door, Jungle.Slab, Jungle.Planks, Jungle.Fence, Jungle.Stairs,

src/main/java/de/bixilon/minosoft/data/registries/blocks/types/building/FenceBlock.kt

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@ import de.bixilon.minosoft.data.registries.blocks.types.properties.shape.collisi
2828
import de.bixilon.minosoft.data.registries.blocks.types.properties.shape.outline.OutlinedBlock
2929
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
3030
import de.bixilon.minosoft.data.registries.item.items.Item
31+
import de.bixilon.minosoft.data.registries.item.items.tool.axe.AxeRequirement
32+
import de.bixilon.minosoft.data.registries.item.items.tool.pickaxe.PickaxeRequirement
33+
import de.bixilon.minosoft.data.registries.item.items.tool.properties.requirement.HandBreakable
3134
import de.bixilon.minosoft.data.registries.shapes.aabb.AABB
3235
import de.bixilon.minosoft.data.text.formatting.color.RGBArray
3336
import de.bixilon.minosoft.data.world.positions.BlockPosition
@@ -76,7 +79,7 @@ abstract class FenceBlock(identifier: ResourceLocation, settings: BlockSettings)
7679
}
7780

7881

79-
class FenceRenderer(
82+
private class FenceRenderer(
8083
val none: BlockRender?,
8184
val sides: Array<BlockRender?>,
8285
) : NeighbourBlockRender {
@@ -100,6 +103,14 @@ abstract class FenceBlock(identifier: ResourceLocation, settings: BlockSettings)
100103
}
101104
}
102105

106+
abstract class Wooden(identifier: ResourceLocation, settings: BlockSettings) : FenceBlock(identifier, settings), HandBreakable, AxeRequirement {
107+
override val hardness get() = 2.0f
108+
}
109+
110+
abstract class Stone(identifier: ResourceLocation, settings: BlockSettings) : FenceBlock(identifier, settings), PickaxeRequirement {
111+
override val hardness get() = 1.5f
112+
}
113+
103114

104115
companion object {
105116
val NORTH = BooleanProperty("north")

src/main/java/de/bixilon/minosoft/data/registries/blocks/types/building/SlabBlock.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,11 +115,11 @@ abstract class SlabBlock(identifier: ResourceLocation, settings: BlockSettings)
115115
}
116116
}
117117

118-
abstract class WoodSlab(identifier: ResourceLocation, settings: BlockSettings) : SlabBlock(identifier, settings), AxeRequirement, HandBreakable {
118+
abstract class Wooden(identifier: ResourceLocation, settings: BlockSettings) : SlabBlock(identifier, settings), AxeRequirement, HandBreakable {
119119
override val hardness get() = 2.0f
120120
}
121121

122-
abstract class AbstractStoneSlab(identifier: ResourceLocation, settings: BlockSettings) : SlabBlock(identifier, settings), PickaxeRequirement
122+
abstract class Stone(identifier: ResourceLocation, settings: BlockSettings) : SlabBlock(identifier, settings), PickaxeRequirement
123123

124124

125125
/*

src/main/java/de/bixilon/minosoft/data/registries/blocks/types/building/StairsBlock.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ abstract class StairsBlock(identifier: ResourceLocation, settings: BlockSettings
111111
return shape
112112
}
113113

114-
inner class StairsRenderer(
114+
private inner class StairsRenderer(
115115
val models: Array<BlockRender?>,
116116
) : NeighbourBlockRender {
117117
override val default: BlockRender? get() = models[Shapes.STRAIGHT.ordinal]

src/main/java/de/bixilon/minosoft/data/registries/blocks/types/building/brick/Brick.kt

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*
22
* Minosoft
3-
* Copyright (C) 2020-2023 Moritz Zwerger
3+
* Copyright (C) 2020-2026 Moritz Zwerger
44
*
55
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
66
*
@@ -17,6 +17,7 @@ import de.bixilon.minosoft.data.registries.blocks.factory.BlockFactory
1717
import de.bixilon.minosoft.data.registries.blocks.settings.BlockSettings
1818
import de.bixilon.minosoft.data.registries.blocks.types.building.RockBlock
1919
import de.bixilon.minosoft.data.registries.blocks.types.building.SlabBlock
20+
import de.bixilon.minosoft.data.registries.blocks.types.building.StairsBlock
2021
import de.bixilon.minosoft.data.registries.blocks.types.properties.hardness.HardnessBlock
2122
import de.bixilon.minosoft.data.registries.identified.Namespaces.minecraft
2223
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
@@ -34,12 +35,22 @@ interface Brick : HardnessBlock {
3435
}
3536
}
3637

37-
class Slab(identifier: ResourceLocation = this.identifier, settings: BlockSettings) : SlabBlock.AbstractStoneSlab(identifier, settings), Brick {
38+
class Slab(identifier: ResourceLocation = this.identifier, settings: BlockSettings) : SlabBlock.Stone(identifier, settings), Brick {
3839

3940
companion object : BlockFactory<Slab> {
4041
override val identifier = minecraft("brick_slab")
4142

4243
override fun build(registries: Registries, settings: BlockSettings) = Slab(settings = settings)
4344
}
4445
}
46+
47+
class Stairs(identifier: ResourceLocation = this.identifier, settings: BlockSettings) : StairsBlock.Stone(identifier, settings), Brick {
48+
override val hardness get() = super<Brick>.hardness
49+
50+
companion object : BlockFactory<Stairs> {
51+
override val identifier = minecraft("brick_stairs")
52+
53+
override fun build(registries: Registries, settings: BlockSettings) = Stairs(settings = settings)
54+
}
55+
}
4556
}

src/main/java/de/bixilon/minosoft/data/registries/blocks/types/building/brick/MossyStoneBrick.kt

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*
22
* Minosoft
3-
* Copyright (C) 2020-2023 Moritz Zwerger
3+
* Copyright (C) 2020-2026 Moritz Zwerger
44
*
55
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
66
*
@@ -17,6 +17,7 @@ import de.bixilon.minosoft.data.registries.blocks.factory.BlockFactory
1717
import de.bixilon.minosoft.data.registries.blocks.settings.BlockSettings
1818
import de.bixilon.minosoft.data.registries.blocks.types.building.RockBlock
1919
import de.bixilon.minosoft.data.registries.blocks.types.building.SlabBlock
20+
import de.bixilon.minosoft.data.registries.blocks.types.building.StairsBlock
2021
import de.bixilon.minosoft.data.registries.blocks.types.properties.hardness.HardnessBlock
2122
import de.bixilon.minosoft.data.registries.identified.Namespaces.minecraft
2223
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
@@ -34,12 +35,22 @@ interface MossyStoneBrick : HardnessBlock {
3435
}
3536
}
3637

37-
class Slab(identifier: ResourceLocation = this.identifier, settings: BlockSettings) : SlabBlock.AbstractStoneSlab(identifier, settings), MossyStoneBrick {
38+
class Slab(identifier: ResourceLocation = this.identifier, settings: BlockSettings) : SlabBlock.Stone(identifier, settings), MossyStoneBrick {
3839

3940
companion object : BlockFactory<Slab> {
4041
override val identifier = minecraft("mossy_stone_brick_slab")
4142

4243
override fun build(registries: Registries, settings: BlockSettings) = Slab(settings = settings)
4344
}
4445
}
46+
47+
class Stairs(identifier: ResourceLocation = this.identifier, settings: BlockSettings) : StairsBlock.Stone(identifier, settings), MossyStoneBrick {
48+
override val hardness get() = super<MossyStoneBrick>.hardness
49+
50+
companion object : BlockFactory<Stairs> {
51+
override val identifier = minecraft("mossy_stone_brick_stairs")
52+
53+
override fun build(registries: Registries, settings: BlockSettings) = Stairs(settings = settings)
54+
}
55+
}
4556
}

src/main/java/de/bixilon/minosoft/data/registries/blocks/types/building/brick/MudBrick.kt

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*
22
* Minosoft
3-
* Copyright (C) 2020-2023 Moritz Zwerger
3+
* Copyright (C) 2020-2026 Moritz Zwerger
44
*
55
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
66
*
@@ -17,6 +17,7 @@ import de.bixilon.minosoft.data.registries.blocks.factory.BlockFactory
1717
import de.bixilon.minosoft.data.registries.blocks.settings.BlockSettings
1818
import de.bixilon.minosoft.data.registries.blocks.types.building.RockBlock
1919
import de.bixilon.minosoft.data.registries.blocks.types.building.SlabBlock
20+
import de.bixilon.minosoft.data.registries.blocks.types.building.StairsBlock
2021
import de.bixilon.minosoft.data.registries.blocks.types.properties.hardness.HardnessBlock
2122
import de.bixilon.minosoft.data.registries.identified.Namespaces.minecraft
2223
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
@@ -34,12 +35,22 @@ interface MudBrick : HardnessBlock {
3435
}
3536
}
3637

37-
class Slab(identifier: ResourceLocation = this.identifier, settings: BlockSettings) : SlabBlock.AbstractStoneSlab(identifier, settings), MudBrick {
38+
class Slab(identifier: ResourceLocation = this.identifier, settings: BlockSettings) : SlabBlock.Stone(identifier, settings), MudBrick {
3839

3940
companion object : BlockFactory<Slab> {
4041
override val identifier = minecraft("mud_brick_slab")
4142

4243
override fun build(registries: Registries, settings: BlockSettings) = Slab(settings = settings)
4344
}
4445
}
46+
47+
class Stairs(identifier: ResourceLocation = this.identifier, settings: BlockSettings) : StairsBlock.Stone(identifier, settings), MudBrick {
48+
override val hardness get() = super<MudBrick>.hardness
49+
50+
companion object : BlockFactory<Stairs> {
51+
override val identifier = minecraft("mud_brick_stairs")
52+
53+
override fun build(registries: Registries, settings: BlockSettings) = Stairs(settings = settings)
54+
}
55+
}
4556
}

src/main/java/de/bixilon/minosoft/data/registries/blocks/types/building/brick/NetherBrick.kt

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/*
22
* Minosoft
3-
* Copyright (C) 2020-2023 Moritz Zwerger
3+
* Copyright (C) 2020-2026 Moritz Zwerger
44
*
55
* This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
66
*
@@ -15,8 +15,10 @@ package de.bixilon.minosoft.data.registries.blocks.types.building.brick
1515

1616
import de.bixilon.minosoft.data.registries.blocks.factory.BlockFactory
1717
import de.bixilon.minosoft.data.registries.blocks.settings.BlockSettings
18+
import de.bixilon.minosoft.data.registries.blocks.types.building.FenceBlock
1819
import de.bixilon.minosoft.data.registries.blocks.types.building.RockBlock
1920
import de.bixilon.minosoft.data.registries.blocks.types.building.SlabBlock
21+
import de.bixilon.minosoft.data.registries.blocks.types.building.StairsBlock
2022
import de.bixilon.minosoft.data.registries.blocks.types.properties.hardness.HardnessBlock
2123
import de.bixilon.minosoft.data.registries.identified.Namespaces.minecraft
2224
import de.bixilon.minosoft.data.registries.identified.ResourceLocation
@@ -34,12 +36,32 @@ interface NetherBrick : HardnessBlock {
3436
}
3537
}
3638

37-
class Slab(identifier: ResourceLocation = this.identifier, settings: BlockSettings) : SlabBlock.AbstractStoneSlab(identifier, settings), NetherBrick {
39+
class Slab(identifier: ResourceLocation = this.identifier, settings: BlockSettings) : SlabBlock.Stone(identifier, settings), NetherBrick {
3840

3941
companion object : BlockFactory<Slab> {
4042
override val identifier = minecraft("nether_brick_slab")
4143

4244
override fun build(registries: Registries, settings: BlockSettings) = Slab(settings = settings)
4345
}
4446
}
47+
48+
class Fence(identifier: ResourceLocation = this.identifier, settings: BlockSettings) : FenceBlock.Stone(identifier, settings), NetherBrick {
49+
override val hardness get() = super<NetherBrick>.hardness
50+
51+
companion object : BlockFactory<Fence> {
52+
override val identifier = minecraft("nether_brick_fence")
53+
54+
override fun build(registries: Registries, settings: BlockSettings) = Fence(settings = settings)
55+
}
56+
}
57+
58+
class Stairs(identifier: ResourceLocation = this.identifier, settings: BlockSettings) : StairsBlock.Stone(identifier, settings), NetherBrick {
59+
override val hardness get() = super<NetherBrick>.hardness
60+
61+
companion object : BlockFactory<Stairs> {
62+
override val identifier = minecraft("nether_brick_stairs")
63+
64+
override fun build(registries: Registries, settings: BlockSettings) = Stairs(settings = settings)
65+
}
66+
}
4567
}

0 commit comments

Comments
 (0)