Skip to content

Commit 728867b

Browse files
committed
Make painted planks flammable, add #adorn:painted_planks
1 parent 275ddc8 commit 728867b

File tree

13 files changed

+147
-1
lines changed

13 files changed

+147
-1
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"values": [
3+
"adorn:white_planks",
4+
"adorn:orange_planks",
5+
"adorn:magenta_planks",
6+
"adorn:light_blue_planks",
7+
"adorn:yellow_planks",
8+
"adorn:lime_planks",
9+
"adorn:pink_planks",
10+
"adorn:gray_planks",
11+
"adorn:light_gray_planks",
12+
"adorn:cyan_planks",
13+
"adorn:purple_planks",
14+
"adorn:blue_planks",
15+
"adorn:brown_planks",
16+
"adorn:green_planks",
17+
"adorn:red_planks",
18+
"adorn:black_planks"
19+
]
20+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
{
2+
"values": [
3+
"adorn:white_planks",
4+
"adorn:orange_planks",
5+
"adorn:magenta_planks",
6+
"adorn:light_blue_planks",
7+
"adorn:yellow_planks",
8+
"adorn:lime_planks",
9+
"adorn:pink_planks",
10+
"adorn:gray_planks",
11+
"adorn:light_gray_planks",
12+
"adorn:cyan_planks",
13+
"adorn:purple_planks",
14+
"adorn:blue_planks",
15+
"adorn:brown_planks",
16+
"adorn:green_planks",
17+
"adorn:red_planks",
18+
"adorn:black_planks"
19+
]
20+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"values": [
3+
"#adorn:painted_planks"
4+
]
5+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"values": [
3+
"#adorn:painted_planks"
4+
]
5+
}

common/src/main/java/juuxel/adorn/block/AdornBlocks.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public final class AdornBlocks {
4141
DyeColor.values(),
4242
color -> HELPER.registerBlock(
4343
color.asString() + "_planks",
44-
() -> new Block(BlockVariant.OAK.createSettings().mapColor(color))
44+
() -> PlatformBridges.get().getBlockFactory().createPaintedPlanks(BlockVariant.OAK.createSettings().mapColor(color))
4545
)
4646
);
4747

common/src/main/java/juuxel/adorn/lib/AdornTags.java

+1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ public final class AdornTags {
3333
public static final TagPair TABLE_LAMPS = blockAndItem("table_lamps");
3434
public static final TagPair CANDLELIT_LANTERNS = blockAndItem("candlelit_lanterns");
3535
public static final TagPair COPPER_PIPES = blockAndItem("copper_pipes");
36+
public static final TagPair PAINTED_PLANKS = blockAndItem("painted_planks");
3637
public static final TagKey<Block> COPPER_PIPES_CONNECT_TO = block("copper_pipes_connect_to");
3738
public static final TagKey<Item> WATERING_CAN_FERTILIZERS = item("watering_can_fertilizers");
3839

common/src/main/java/juuxel/adorn/platform/BlockFactory.java

+6
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,17 @@
22

33
import juuxel.adorn.block.SofaBlock;
44
import juuxel.adorn.block.variant.BlockVariant;
5+
import net.minecraft.block.AbstractBlock;
6+
import net.minecraft.block.Block;
57

68
public interface BlockFactory {
79
BlockFactory DEFAULT = new BlockFactory() {};
810

911
default SofaBlock createSofa(BlockVariant variant) {
1012
return new SofaBlock(variant);
1113
}
14+
15+
default Block createPaintedPlanks(AbstractBlock.Settings settings) {
16+
return new Block(settings);
17+
}
1218
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package juuxel.adorn.data;
2+
3+
import juuxel.adorn.block.AdornBlocks;
4+
import juuxel.adorn.lib.AdornTags;
5+
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
6+
import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagProvider;
7+
import net.minecraft.block.Block;
8+
import net.minecraft.registry.RegistryWrapper;
9+
import net.minecraft.registry.tag.BlockTags;
10+
11+
import java.util.concurrent.CompletableFuture;
12+
13+
public final class AdornBlockTagGenerator extends FabricTagProvider.BlockTagProvider {
14+
public AdornBlockTagGenerator(FabricDataOutput output, CompletableFuture<RegistryWrapper.WrapperLookup> registriesFuture) {
15+
super(output, registriesFuture);
16+
}
17+
18+
@Override
19+
protected void configure(RegistryWrapper.WrapperLookup wrapperLookup) {
20+
getOrCreateTagBuilder(AdornTags.PAINTED_PLANKS.block())
21+
.add(AdornBlocks.PLANKS.get().values().toArray(Block[]::new));
22+
getOrCreateTagBuilder(BlockTags.PLANKS).addTag(AdornTags.PAINTED_PLANKS.block());
23+
}
24+
}

fabric/src/commonData/java/juuxel/adorn/data/AdornDataGenerator.java

+2
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ public void onInitializeDataGenerator(FabricDataGenerator fabricDataGenerator) {
1313
pack.addProvider(AdornBlockLootTableGenerator::new);
1414
pack.addProvider(AdornModelGenerator::new);
1515
pack.addProvider(AdornRecipeGenerator::new);
16+
var blockTags = pack.addProvider(AdornBlockTagGenerator::new);
17+
pack.addProvider((output, registriesFuture) -> new AdornItemTagGenerator(output, registriesFuture, blockTags));
1618
}
1719

1820
@Override
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package juuxel.adorn.data;
2+
3+
import juuxel.adorn.lib.AdornTags;
4+
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
5+
import net.fabricmc.fabric.api.datagen.v1.provider.FabricTagProvider;
6+
import net.minecraft.registry.RegistryWrapper;
7+
import net.minecraft.registry.tag.BlockTags;
8+
import net.minecraft.registry.tag.ItemTags;
9+
10+
import java.util.concurrent.CompletableFuture;
11+
12+
public final class AdornItemTagGenerator extends FabricTagProvider.ItemTagProvider {
13+
public AdornItemTagGenerator(FabricDataOutput output, CompletableFuture<RegistryWrapper.WrapperLookup> registriesFuture, FabricTagProvider.BlockTagProvider blockTagProvider) {
14+
super(output, registriesFuture, blockTagProvider);
15+
}
16+
17+
@Override
18+
protected void configure(RegistryWrapper.WrapperLookup wrapperLookup) {
19+
copy(AdornTags.PAINTED_PLANKS);
20+
copy(BlockTags.PLANKS, ItemTags.PLANKS);
21+
}
22+
23+
private void copy(AdornTags.TagPair tagPair) {
24+
copy(tagPair.block(), tagPair.item());
25+
}
26+
}

fabric/src/main/java/juuxel/adorn/lib/AdornBlocksFabric.java

+3
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import net.fabricmc.api.Environment;
1616
import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap;
1717
import net.fabricmc.fabric.api.event.player.UseBlockCallback;
18+
import net.fabricmc.fabric.api.registry.FlammableBlockRegistry;
1819
import net.fabricmc.fabric.api.registry.OxidizableBlocksRegistry;
1920
import net.fabricmc.fabric.api.transfer.v1.fluid.FluidStorage;
2021
import net.minecraft.block.entity.BlockEntity;
@@ -51,6 +52,8 @@ public static void init() {
5152
OxidizableBlocksRegistry.registerWaxableBlockPair(AdornBlocks.EXPOSED_COPPER_PIPE.get(), AdornBlocks.WAXED_EXPOSED_COPPER_PIPE.get());
5253
OxidizableBlocksRegistry.registerWaxableBlockPair(AdornBlocks.WEATHERED_COPPER_PIPE.get(), AdornBlocks.WAXED_WEATHERED_COPPER_PIPE.get());
5354
OxidizableBlocksRegistry.registerWaxableBlockPair(AdornBlocks.OXIDIZED_COPPER_PIPE.get(), AdornBlocks.WAXED_OXIDIZED_COPPER_PIPE.get());
55+
56+
FlammableBlockRegistry.getDefaultInstance().add(AdornTags.PAINTED_PLANKS.block(), 5, 20);
5457
}
5558

5659
public static void afterRegister() {

forge/src/main/java/juuxel/adorn/platform/forge/BlockFactoryImpl.java

+8
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@
33
import juuxel.adorn.block.SofaBlock;
44
import juuxel.adorn.block.variant.BlockVariant;
55
import juuxel.adorn.platform.BlockFactory;
6+
import juuxel.adorn.platform.forge.block.PaintedPlanksBlockNeo;
67
import juuxel.adorn.platform.forge.block.SofaBlockForge;
8+
import net.minecraft.block.AbstractBlock;
9+
import net.minecraft.block.Block;
710

811
public final class BlockFactoryImpl implements BlockFactory {
912
public static final BlockFactoryImpl INSTANCE = new BlockFactoryImpl();
@@ -12,4 +15,9 @@ public final class BlockFactoryImpl implements BlockFactory {
1215
public SofaBlock createSofa(BlockVariant variant) {
1316
return new SofaBlockForge(variant);
1417
}
18+
19+
@Override
20+
public Block createPaintedPlanks(AbstractBlock.Settings settings) {
21+
return new PaintedPlanksBlockNeo(settings);
22+
}
1523
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package juuxel.adorn.platform.forge.block;
2+
3+
import net.minecraft.block.Block;
4+
import net.minecraft.block.BlockState;
5+
import net.minecraft.util.math.BlockPos;
6+
import net.minecraft.util.math.Direction;
7+
import net.minecraft.world.BlockView;
8+
9+
public final class PaintedPlanksBlockNeo extends Block {
10+
public PaintedPlanksBlockNeo(Settings arg) {
11+
super(arg);
12+
}
13+
14+
// getFireSpreadSpeed = burnChance
15+
// getFlammability = spreadChance
16+
17+
@Override
18+
public int getFireSpreadSpeed(BlockState state, BlockView level, BlockPos pos, Direction direction) {
19+
return 5;
20+
}
21+
22+
@Override
23+
public int getFlammability(BlockState state, BlockView level, BlockPos pos, Direction direction) {
24+
return 20;
25+
}
26+
}

0 commit comments

Comments
 (0)