Skip to content

Commit e7285ff

Browse files
committed
fixed bugs
1 parent 04e14e7 commit e7285ff

File tree

28 files changed

+285
-90
lines changed

28 files changed

+285
-90
lines changed

src/main/java/cursedbread/morefeatures/FeatureModel.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package cursedbread.morefeatures;
22

33
import cursedbread.morefeatures.blocks.FeaturesBlocks;
4+
import cursedbread.morefeatures.blocks.colored.ladder.BlockModelColoredLadder;
45
import cursedbread.morefeatures.blocks.colored.workbench.BlockModelColoredWorkbench;
56
import cursedbread.morefeatures.blocks.flux.BlockModelCropsFlux;
67
import cursedbread.morefeatures.blocks.colored.glass.BlockModelColoredGlass;
@@ -305,12 +306,12 @@ public void initBlockModels(BlockModelDispatcher dispatcher) {
305306
);
306307
}
307308

308-
// if (FeaturesBlocks.coloredLadderEnabled == 1){
309-
// ModelHelper.setBlockModel(
310-
// FeaturesBlocks.vanilla_Colored_Ladder,
311-
// () -> new BlockModelColoredLadder<>(FeaturesBlocks.vanilla_Colored_Ladder, false)
312-
// );
313-
// }
309+
if (FeaturesBlocks.coloredLadderEnabled == 1){
310+
ModelHelper.setBlockModel(
311+
FeaturesBlocks.vanilla_Colored_Ladder,
312+
() -> new BlockModelColoredLadder<>(FeaturesBlocks.vanilla_Colored_Ladder, false)
313+
);
314+
}
314315

315316
if (FeaturesBlocks.coloredWorkbenchEnabled == 1){
316317
ModelHelper.setBlockModel(

src/main/java/cursedbread/morefeatures/FeaturesCraft.java

Lines changed: 48 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,6 +286,27 @@ public void initNamespaces() {
286286
new ItemStack(FeaturesBlocks.vanilla_Colored_Workbench, 1, 14),
287287
new ItemStack(FeaturesBlocks.vanilla_Colored_Workbench, 1, 15)));
288288
}
289+
290+
if (FeaturesBlocks.coloredLadderEnabled == 1){
291+
Registries.ITEM_GROUPS.register("morefeatures:ladders", Registries.stackListOf(
292+
Blocks.LADDER_OAK,
293+
new ItemStack(FeaturesBlocks.vanilla_Colored_Ladder, 1, 0),
294+
new ItemStack(FeaturesBlocks.vanilla_Colored_Ladder, 1, 16),
295+
new ItemStack(FeaturesBlocks.vanilla_Colored_Ladder, 1, 32),
296+
new ItemStack(FeaturesBlocks.vanilla_Colored_Ladder, 1, 48),
297+
new ItemStack(FeaturesBlocks.vanilla_Colored_Ladder, 1, 64),
298+
new ItemStack(FeaturesBlocks.vanilla_Colored_Ladder, 1, 80),
299+
new ItemStack(FeaturesBlocks.vanilla_Colored_Ladder, 1, 96),
300+
new ItemStack(FeaturesBlocks.vanilla_Colored_Ladder, 1, 112),
301+
new ItemStack(FeaturesBlocks.vanilla_Colored_Ladder, 1, 128),
302+
new ItemStack(FeaturesBlocks.vanilla_Colored_Ladder, 1, 144),
303+
new ItemStack(FeaturesBlocks.vanilla_Colored_Ladder, 1, 160),
304+
new ItemStack(FeaturesBlocks.vanilla_Colored_Ladder, 1, 176),
305+
new ItemStack(FeaturesBlocks.vanilla_Colored_Ladder, 1, 192),
306+
new ItemStack(FeaturesBlocks.vanilla_Colored_Ladder, 1, 208),
307+
new ItemStack(FeaturesBlocks.vanilla_Colored_Ladder, 1, 224),
308+
new ItemStack(FeaturesBlocks.vanilla_Colored_Ladder, 1, 240)));
309+
}
289310
} else {
290311
if (FeaturesBlocks.coloredGlowstoneEnabled == 1){
291312
Registries.ITEM_GROUPS.register("morefeatures:glowstones", Registries.stackListOf(
@@ -387,6 +408,27 @@ public void initNamespaces() {
387408
new ItemStack(FeaturesBlocks.vanilla_Colored_Workbench, 1, 14),
388409
new ItemStack(FeaturesBlocks.vanilla_Colored_Workbench, 1, 15)));
389410
}
411+
412+
if (FeaturesBlocks.coloredLadderEnabled == 1){
413+
Registries.ITEM_GROUPS.register("morefeatures:ladders", Registries.stackListOf(
414+
Blocks.LADDER_OAK,
415+
new ItemStack(FeaturesBlocks.vanilla_Colored_Ladder, 1, 0),
416+
new ItemStack(FeaturesBlocks.vanilla_Colored_Ladder, 1, 16),
417+
new ItemStack(FeaturesBlocks.vanilla_Colored_Ladder, 1, 32),
418+
new ItemStack(FeaturesBlocks.vanilla_Colored_Ladder, 1, 48),
419+
new ItemStack(FeaturesBlocks.vanilla_Colored_Ladder, 1, 64),
420+
new ItemStack(FeaturesBlocks.vanilla_Colored_Ladder, 1, 80),
421+
new ItemStack(FeaturesBlocks.vanilla_Colored_Ladder, 1, 96),
422+
new ItemStack(FeaturesBlocks.vanilla_Colored_Ladder, 1, 112),
423+
new ItemStack(FeaturesBlocks.vanilla_Colored_Ladder, 1, 128),
424+
new ItemStack(FeaturesBlocks.vanilla_Colored_Ladder, 1, 144),
425+
new ItemStack(FeaturesBlocks.vanilla_Colored_Ladder, 1, 160),
426+
new ItemStack(FeaturesBlocks.vanilla_Colored_Ladder, 1, 176),
427+
new ItemStack(FeaturesBlocks.vanilla_Colored_Ladder, 1, 192),
428+
new ItemStack(FeaturesBlocks.vanilla_Colored_Ladder, 1, 208),
429+
new ItemStack(FeaturesBlocks.vanilla_Colored_Ladder, 1, 224),
430+
new ItemStack(FeaturesBlocks.vanilla_Colored_Ladder, 1, 240)));
431+
}
390432
}
391433
}
392434
@Override
@@ -432,7 +474,7 @@ public void onRecipesReady() {
432474

433475
workbenchGroup.register("glassdyeing", new RecipeEntryDyeing(new RecipeSymbol("morefeatures:glasses") , new ItemStack(FeaturesBlocks.vanilla_Colored_Glass), false, false));
434476
workbenchGroup.register("glassundyeing", new RecipeEntryUndyeing(new RecipeSymbol("morefeatures:glasses") , new ItemStack(Blocks.GLASS)));
435-
workbenchGroup.register("glasstrapdoordyeing", new RecipeEntryDyeing(new RecipeSymbol("morefeatures:glassetrapdoor") , new ItemStack(FeaturesBlocks.vanilla_Colored_Glass_Trapdoor), true, false));
477+
workbenchGroup.register("glasstrapdoordyeing", new RecipeEntryDyeing(new RecipeSymbol("morefeatures:glassetrapdoors") , new ItemStack(FeaturesBlocks.vanilla_Colored_Glass_Trapdoor), true, false));
436478
workbenchGroup.register("glasstrapdoorundyeing", new RecipeEntryUndyeing(new RecipeSymbol("morefeatures:glassetrapdoors") , new ItemStack(Blocks.TRAPDOOR_GLASS)));
437479
// if (FeaturesMain.nonamedyesOn) {
438480
// for (int i = 0; i <=13; i++) {
@@ -777,5 +819,10 @@ public void onRecipesReady() {
777819
workbenchGroup.register("workbenchdyeing", new RecipeEntryDyeing(new RecipeSymbol("morefeatures:workbenches") , new ItemStack(FeaturesBlocks.vanilla_Colored_Workbench), false, false));
778820
workbenchGroup.register("workbenchundyeing", new RecipeEntryUndyeing(new RecipeSymbol("morefeatures:workbenches") , new ItemStack(Blocks.WORKBENCH)));
779821
}
822+
823+
if (FeaturesBlocks.coloredLadderEnabled == 1){
824+
workbenchGroup.register("ladderdyeing", new RecipeEntryDyeing(new RecipeSymbol("morefeatures:ladders") , new ItemStack(FeaturesBlocks.vanilla_Colored_Ladder), true, false));
825+
workbenchGroup.register("ladderundyeing", new RecipeEntryUndyeing(new RecipeSymbol("morefeatures:ladders") , new ItemStack(Blocks.LADDER_OAK)));
826+
}
780827
}
781828
}

src/main/java/cursedbread/morefeatures/FeaturesMain.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@ public class FeaturesMain implements ModInitializer, GameStartEntrypoint, Client
5050
.addEntry("Flux_crops", 1)
5151
.addEntry("Super_ores", 1)
5252
.addEntry("Nether_gravel", 1)
53-
.addEntry("Colored_workbench", 1);
53+
.addEntry("Colored_workbench", 1)
54+
.addEntry("Colored_ladder", 0);
5455

5556
TOML.addCategory("Items")
5657
.addEntry("Flower_crowns", 1)
@@ -95,6 +96,7 @@ public class FeaturesMain implements ModInitializer, GameStartEntrypoint, Client
9596
FeaturesBlocks.superoresEnabled = CFG.getInt("Blocks.Super_ores");
9697
FeaturesBlocks.netherGravelEnabled = CFG.getInt("Blocks.Nether_gravel");
9798
FeaturesBlocks.coloredWorkbenchEnabled = CFG.getInt("Blocks.Colored_workbench");
99+
FeaturesBlocks.coloredLadderEnabled = CFG.getInt("Blocks.Colored_ladder");
98100

99101
FeaturesItems.flowercrownsEnabled = CFG.getInt("Items.Flower_crowns");
100102
FeaturesItems.normalCrownsEnabled = CFG.getInt("Items.Crowns");

src/main/java/cursedbread/morefeatures/blocks/FeaturesBlocks.java

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package cursedbread.morefeatures.blocks;
22

3+
import cursedbread.morefeatures.blocks.colored.ladder.BlockLogicColoredLadder;
4+
import cursedbread.morefeatures.blocks.colored.ladder.ItemBlockPaintedLadder;
35
import cursedbread.morefeatures.blocks.colored.workbench.BlockLogicColoredWorkbench;
46
import cursedbread.morefeatures.blocks.flux.BlockLogicCropsFlux;
57
import cursedbread.morefeatures.blocks.colored.glass.BlockLogicColoredGlass;
@@ -13,8 +15,10 @@
1315
import cursedbread.morefeatures.item.FeaturesItems;
1416
import net.minecraft.core.block.*;
1517
import net.minecraft.core.block.material.Material;
18+
import net.minecraft.core.block.material.MaterialColor;
1619
import net.minecraft.core.block.tag.BlockTags;
1720
import net.minecraft.core.data.tag.Tag;
21+
import net.minecraft.core.item.block.ItemBlockLadder;
1822
import net.minecraft.core.item.block.ItemBlockPainted;
1923
import net.minecraft.core.sound.BlockSound;
2024
import net.minecraft.core.sound.BlockSounds;
@@ -277,44 +281,44 @@ public void initilizeBlocks() {
277281
super_Redstone_Stone_Ore = fullBlock
278282
.setTags(BlockTags.MINEABLE_BY_PICKAXE)
279283
.setHardness(3f)
280-
.build("superore.redstone.stone", blockId++, b -> new BlockLogicSuperOreRedstone(b, Blocks.STONE, Material.stone, false, FeaturesBlocks.super_Redstone_Stone_Ore, FeaturesBlocks.super_Redstone_Glowing_Stone_Ore)).withBlastResistance(2.0F);
284+
.build("superore.redstone.stone", blockId++, b -> new BlockLogicSuperOreRedstone(b, Blocks.STONE, Material.stone, false, FeaturesBlocks.super_Redstone_Stone_Ore, FeaturesBlocks.super_Redstone_Glowing_Stone_Ore)).withBlastResistance(2.0F).withOverrideColor(MaterialColor.redstone);
281285
super_Redstone_Basalt_Ore = fullBlock
282286
.setTags(BlockTags.MINEABLE_BY_PICKAXE)
283287
.setHardness(3f)
284-
.build("superore.redstone.basalt", blockId++, b -> new BlockLogicSuperOreRedstone(b, Blocks.BASALT, Material.stone, false, FeaturesBlocks.super_Redstone_Basalt_Ore, FeaturesBlocks.super_Redstone_Glowing_Basalt_Ore)).withBlastResistance(2.0F);
288+
.build("superore.redstone.basalt", blockId++, b -> new BlockLogicSuperOreRedstone(b, Blocks.BASALT, Material.stone, false, FeaturesBlocks.super_Redstone_Basalt_Ore, FeaturesBlocks.super_Redstone_Glowing_Basalt_Ore)).withBlastResistance(2.0F).withOverrideColor(MaterialColor.redstone);
285289
super_Redstone_Limestone_Ore = fullBlock
286290
.setTags(BlockTags.MINEABLE_BY_PICKAXE)
287291
.setHardness(3f)
288-
.build("superore.redstone.limestone", blockId++, b -> new BlockLogicSuperOreRedstone(b, Blocks.LIMESTONE, Material.stone, false, FeaturesBlocks.super_Redstone_Limestone_Ore, FeaturesBlocks.super_Redstone_Glowing_Limestone_Ore)).withBlastResistance(2.0F);
292+
.build("superore.redstone.limestone", blockId++, b -> new BlockLogicSuperOreRedstone(b, Blocks.LIMESTONE, Material.stone, false, FeaturesBlocks.super_Redstone_Limestone_Ore, FeaturesBlocks.super_Redstone_Glowing_Limestone_Ore)).withBlastResistance(2.0F).withOverrideColor(MaterialColor.redstone);
289293
super_Redstone_Granite_Ore = fullBlock
290294
.setTags(BlockTags.MINEABLE_BY_PICKAXE)
291295
.setHardness(3f)
292-
.build("superore.redstone.granite", blockId++, b -> new BlockLogicSuperOreRedstone(b, Blocks.GRANITE, Material.stone, false, FeaturesBlocks.super_Redstone_Granite_Ore, FeaturesBlocks.super_Redstone_Glowing_Granite_Ore)).withBlastResistance(2.0F);
296+
.build("superore.redstone.granite", blockId++, b -> new BlockLogicSuperOreRedstone(b, Blocks.GRANITE, Material.stone, false, FeaturesBlocks.super_Redstone_Granite_Ore, FeaturesBlocks.super_Redstone_Glowing_Granite_Ore)).withBlastResistance(2.0F).withOverrideColor(MaterialColor.redstone);
293297
super_Redstone_Permafrost_Ore = fullBlock
294298
.setTags(BlockTags.MINEABLE_BY_PICKAXE)
295299
.setHardness(3f)
296-
.build("superore.redstone.permafrost", blockId++, b -> new BlockLogicSuperOreRedstone(b, Blocks.PERMAFROST, Material.stone, false, FeaturesBlocks.super_Redstone_Permafrost_Ore, FeaturesBlocks.super_Redstone_Glowing_Permafrost_Ore)).withBlastResistance(2.0F);
300+
.build("superore.redstone.permafrost", blockId++, b -> new BlockLogicSuperOreRedstone(b, Blocks.PERMAFROST, Material.stone, false, FeaturesBlocks.super_Redstone_Permafrost_Ore, FeaturesBlocks.super_Redstone_Glowing_Permafrost_Ore)).withBlastResistance(2.0F).withOverrideColor(MaterialColor.redstone);
297301

298302
super_Redstone_Glowing_Stone_Ore = fullBlock
299303
.setTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.NOT_IN_CREATIVE_MENU)
300304
.setHardness(3f)
301-
.build("superore.redstone.glowing.stone", blockId++, b -> new BlockLogicSuperOreRedstone(b, Blocks.STONE, Material.stone, true, FeaturesBlocks.super_Redstone_Stone_Ore, FeaturesBlocks.super_Redstone_Glowing_Stone_Ore)).withBlastResistance(2.0F).withLightEmission(0.4F).withDisabledNeighborNotifyOnMetadataChange();
305+
.build("superore.redstone.glowing.stone", blockId++, b -> new BlockLogicSuperOreRedstone(b, Blocks.STONE, Material.stone, true, FeaturesBlocks.super_Redstone_Stone_Ore, FeaturesBlocks.super_Redstone_Glowing_Stone_Ore)).withBlastResistance(2.0F).withOverrideColor(MaterialColor.redstone).withLightEmission(0.4F).withDisabledNeighborNotifyOnMetadataChange();
302306
super_Redstone_Glowing_Basalt_Ore = fullBlock
303307
.setTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.NOT_IN_CREATIVE_MENU)
304308
.setHardness(3f)
305-
.build("superore.redstone.glowing.basalt", blockId++, b -> new BlockLogicSuperOreRedstone(b, Blocks.BASALT, Material.stone, true, FeaturesBlocks.super_Redstone_Basalt_Ore, FeaturesBlocks.super_Redstone_Glowing_Basalt_Ore)).withBlastResistance(2.0F).withLightEmission(0.4F).withDisabledNeighborNotifyOnMetadataChange();
309+
.build("superore.redstone.glowing.basalt", blockId++, b -> new BlockLogicSuperOreRedstone(b, Blocks.BASALT, Material.stone, true, FeaturesBlocks.super_Redstone_Basalt_Ore, FeaturesBlocks.super_Redstone_Glowing_Basalt_Ore)).withBlastResistance(2.0F).withOverrideColor(MaterialColor.redstone).withLightEmission(0.4F).withDisabledNeighborNotifyOnMetadataChange();
306310
super_Redstone_Glowing_Limestone_Ore = fullBlock
307311
.setTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.NOT_IN_CREATIVE_MENU)
308312
.setHardness(3f)
309-
.build("superore.redstone.glowing.limestone", blockId++, b -> new BlockLogicSuperOreRedstone(b, Blocks.LIMESTONE, Material.stone, true, FeaturesBlocks.super_Redstone_Limestone_Ore, FeaturesBlocks.super_Redstone_Glowing_Limestone_Ore)).withBlastResistance(2.0F).withLightEmission(0.4F).withDisabledNeighborNotifyOnMetadataChange();
313+
.build("superore.redstone.glowing.limestone", blockId++, b -> new BlockLogicSuperOreRedstone(b, Blocks.LIMESTONE, Material.stone, true, FeaturesBlocks.super_Redstone_Limestone_Ore, FeaturesBlocks.super_Redstone_Glowing_Limestone_Ore)).withBlastResistance(2.0F).withOverrideColor(MaterialColor.redstone).withLightEmission(0.4F).withDisabledNeighborNotifyOnMetadataChange();
310314
super_Redstone_Glowing_Granite_Ore = fullBlock
311315
.setTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.NOT_IN_CREATIVE_MENU)
312316
.setHardness(3f)
313-
.build("superore.redstone.glowing.granite", blockId++, b -> new BlockLogicSuperOreRedstone(b, Blocks.GRANITE, Material.stone, true, FeaturesBlocks.super_Redstone_Granite_Ore, FeaturesBlocks.super_Redstone_Glowing_Granite_Ore)).withBlastResistance(2.0F).withLightEmission(0.4F).withDisabledNeighborNotifyOnMetadataChange();
317+
.build("superore.redstone.glowing.granite", blockId++, b -> new BlockLogicSuperOreRedstone(b, Blocks.GRANITE, Material.stone, true, FeaturesBlocks.super_Redstone_Granite_Ore, FeaturesBlocks.super_Redstone_Glowing_Granite_Ore)).withBlastResistance(2.0F).withOverrideColor(MaterialColor.redstone).withLightEmission(0.4F).withDisabledNeighborNotifyOnMetadataChange();
314318
super_Redstone_Glowing_Permafrost_Ore = fullBlock
315319
.setTags(BlockTags.MINEABLE_BY_PICKAXE, BlockTags.NOT_IN_CREATIVE_MENU)
316320
.setHardness(3f)
317-
.build("superore.redstone.glowing.permafrost", blockId++, b -> new BlockLogicSuperOreRedstone(b, Blocks.PERMAFROST, Material.stone, true, FeaturesBlocks.super_Redstone_Permafrost_Ore, FeaturesBlocks.super_Redstone_Glowing_Permafrost_Ore)).withBlastResistance(2.0F).withLightEmission(0.4F).withDisabledNeighborNotifyOnMetadataChange();
321+
.build("superore.redstone.glowing.permafrost", blockId++, b -> new BlockLogicSuperOreRedstone(b, Blocks.PERMAFROST, Material.stone, true, FeaturesBlocks.super_Redstone_Permafrost_Ore, FeaturesBlocks.super_Redstone_Glowing_Permafrost_Ore)).withBlastResistance(2.0F).withOverrideColor(MaterialColor.redstone).withLightEmission(0.4F).withDisabledNeighborNotifyOnMetadataChange();
318322

319323
super_Diamond_Stone_Ore = fullBlock
320324
.setTags(BlockTags.MINEABLE_BY_PICKAXE)
@@ -372,23 +376,23 @@ public void initilizeBlocks() {
372376
.withTags(BlockTags.MINEABLE_BY_SHOVEL);
373377
}
374378

375-
// if (coloredLadderEnabled == 1){
376-
// vanilla_Colored_Ladder = new BlockBuilder(MOD_ID)
377-
// .build("vanilla.colored.ladder", blockId++, b -> new BlockLogicColoredLadder(b))
378-
// .withSound(BlockSounds.WOOD)
379-
// .withHardness(0.4F)
380-
// .withDisabledNeighborNotifyOnMetadataChange()
381-
// .setBlockItem(ItemBlockLadder::new)
382-
// .withTags(new Tag[]{BlockTags.MINEABLE_BY_AXE});
383-
// }
379+
if (coloredLadderEnabled == 1){
380+
vanilla_Colored_Ladder = new BlockBuilder(MOD_ID)
381+
.setBlockSound(BlockSounds.WOOD)
382+
.setHardness(0.4F)
383+
.setTags(BlockTags.MINEABLE_BY_AXE)
384+
.build("vanilla.colored.ladder", blockId++, b -> new BlockLogicColoredLadder(b))
385+
.withDisabledNeighborNotifyOnMetadataChange()
386+
.setBlockItem(b -> new ItemBlockPaintedLadder<>(b, true));
387+
}
384388

385389
if (coloredWorkbenchEnabled == 1){
386390
vanilla_Colored_Workbench = new BlockBuilder(MOD_ID)
387391
.setBlockSound(BlockSounds.WOOD)
388392
.setHardness(2.5F)
389393
.setTags(BlockTags.FENCES_CONNECT, BlockTags.MINEABLE_BY_AXE)
390394
.build("vanilla.colored.workbench", blockId++, b -> new BlockLogicColoredWorkbench(b))
391-
.setBlockItem((b) -> {return new ItemBlockPainted<>(b, false);});
395+
.setBlockItem(b -> new ItemBlockPainted<>(b, false));
392396
}
393397
initializeBlockDetails();
394398
}

src/main/java/cursedbread/morefeatures/blocks/colored/ladder/BlockLogicColoredLadder.java

Lines changed: 51 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,40 +2,86 @@
22

33
import net.minecraft.core.block.Block;
44
import net.minecraft.core.block.BlockLogicLadder;
5+
import net.minecraft.core.block.Blocks;
56
import net.minecraft.core.block.IPainted;
7+
import net.minecraft.core.block.entity.TileEntity;
68
import net.minecraft.core.entity.player.Player;
9+
import net.minecraft.core.enums.EnumDropCause;
710
import net.minecraft.core.item.ItemStack;
811
import net.minecraft.core.util.helper.DyeColor;
912
import net.minecraft.core.util.helper.Side;
1013
import net.minecraft.core.world.World;
1114
import org.jetbrains.annotations.Nullable;
1215

16+
import java.util.Objects;
17+
1318
public class BlockLogicColoredLadder extends BlockLogicLadder implements IPainted {
19+
public static final int MASK_COLOR = 240;
20+
1421
public BlockLogicColoredLadder(Block<?> block) {
1522
super(block);
1623
}
1724

25+
public ItemStack[] getBreakResult(World world, EnumDropCause dropCause, int meta, TileEntity tileEntity) {
26+
return new ItemStack[]{new ItemStack(this.block, 1, meta & 240)};
27+
}
28+
29+
public boolean canBePainted() {
30+
return true;
31+
}
32+
1833
public int getPlacedBlockMetadata(@Nullable Player player, ItemStack stack, World world, int x, int y, int z, Side side, double xPlaced, double yPlaced) {
19-
return stack.getMetadata() & 15;
34+
return stack.getMetadata() & 240;
2035
}
2136

2237
@Override
2338
public DyeColor fromMetadata(int i) {
24-
return DyeColor.colorFromBlockMeta(i);
39+
return DyeColor.colorFromBlockMeta(i >> 4);
2540
}
2641

2742
@Override
2843
public int toMetadata(DyeColor dyeColor) {
29-
return dyeColor.blockMeta;
44+
return dyeColor.blockMeta << 4;
3045
}
3146

3247
@Override
3348
public int stripColorFromMetadata(int i) {
34-
return 0;
49+
return i & -241;
3550
}
3651

3752
@Override
3853
public void removeDye(World world, int i, int j, int k) {
39-
world.setBlockMetadataWithNotify(i, j, k, 0);
54+
world.setBlockMetadataWithNotify(i, j, k, Blocks.LADDER_OAK.id());
55+
}
56+
57+
public void setColor(World world, int x, int y, int z, DyeColor color) {
58+
int meta = world.getBlockMetadata(x, y, z);
59+
world.setBlockMetadataWithNotify(x, y, z, this.stripColorFromMetadata(meta) | this.toMetadata(color));
60+
}
61+
62+
@Override
63+
public Side getSideFromMeta(int meta) {
64+
if (meta == 2) {
65+
return Side.NORTH;
66+
} else if (meta == 3) {
67+
return Side.SOUTH;
68+
} else if (meta == 4) {
69+
return Side.WEST;
70+
} else {
71+
return meta == 5 ? Side.EAST : Side.NONE;
72+
}
73+
}
74+
75+
@Override
76+
public int getMetaForSide(Side side) {
77+
if (side == Side.NORTH) {
78+
return 2;
79+
} else if (side == Side.SOUTH) {
80+
return 3;
81+
} else if (side == Side.WEST) {
82+
return 4;
83+
} else {
84+
return side == Side.EAST ? 5 : 0;
85+
}
4086
}
4187
}

0 commit comments

Comments
 (0)