From 3a39f9c9e4d8b24ab5b3be101f9bb06c43ae57d2 Mon Sep 17 00:00:00 2001 From: Sollace Date: Fri, 31 Dec 2021 14:54:51 +0200 Subject: [PATCH] Added frosted obsidian --- .../unicopia/block/FrostedObsidianBlock.java | 29 ++++++++++++++++++ .../unicopia/block/UBlocks.java | 3 ++ .../unicopia/block/state/StateMaps.java | 7 +++-- .../blockstates/frosted_obsidian.json | 16 ++++++++++ .../models/block/frosted_obsidian_0.json | 6 ++++ .../models/block/frosted_obsidian_1.json | 6 ++++ .../models/block/frosted_obsidian_2.json | 6 ++++ .../models/block/frosted_obsidian_3.json | 6 ++++ .../textures/block/frosted_obsidian_0.png | Bin 0 -> 455 bytes .../textures/block/frosted_obsidian_1.png | Bin 0 -> 496 bytes .../textures/block/frosted_obsidian_2.png | Bin 0 -> 477 bytes .../textures/block/frosted_obsidian_3.png | Bin 0 -> 575 bytes .../minecraft/tags/blocks/dragon_immune.json | 6 ++++ .../tags/blocks/mineable/pickaxe.json | 3 +- .../tags/blocks/needs_diamond_tool.json | 6 ++++ 15 files changed, 90 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/minelittlepony/unicopia/block/FrostedObsidianBlock.java create mode 100644 src/main/resources/assets/unicopia/blockstates/frosted_obsidian.json create mode 100644 src/main/resources/assets/unicopia/models/block/frosted_obsidian_0.json create mode 100644 src/main/resources/assets/unicopia/models/block/frosted_obsidian_1.json create mode 100644 src/main/resources/assets/unicopia/models/block/frosted_obsidian_2.json create mode 100644 src/main/resources/assets/unicopia/models/block/frosted_obsidian_3.json create mode 100644 src/main/resources/assets/unicopia/textures/block/frosted_obsidian_0.png create mode 100644 src/main/resources/assets/unicopia/textures/block/frosted_obsidian_1.png create mode 100644 src/main/resources/assets/unicopia/textures/block/frosted_obsidian_2.png create mode 100644 src/main/resources/assets/unicopia/textures/block/frosted_obsidian_3.png create mode 100644 src/main/resources/data/minecraft/tags/blocks/dragon_immune.json create mode 100644 src/main/resources/data/minecraft/tags/blocks/needs_diamond_tool.json diff --git a/src/main/java/com/minelittlepony/unicopia/block/FrostedObsidianBlock.java b/src/main/java/com/minelittlepony/unicopia/block/FrostedObsidianBlock.java new file mode 100644 index 00000000..779df517 --- /dev/null +++ b/src/main/java/com/minelittlepony/unicopia/block/FrostedObsidianBlock.java @@ -0,0 +1,29 @@ +package com.minelittlepony.unicopia.block; + +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.block.FrostedIceBlock; +import net.minecraft.block.piston.PistonBehavior; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; + +public class FrostedObsidianBlock extends FrostedIceBlock { + public FrostedObsidianBlock(Settings settings) { + super(settings); + } + + @Override + protected void melt(BlockState state, World world, BlockPos pos) { + if (world.getDimension().isUltrawarm()) { + world.removeBlock(pos, false); + return; + } + world.setBlockState(pos, Blocks.LAVA.getDefaultState()); + world.updateNeighbor(pos, Blocks.LAVA, pos); + } + + @Override + public PistonBehavior getPistonBehavior(BlockState state) { + return PistonBehavior.BLOCK; + } +} diff --git a/src/main/java/com/minelittlepony/unicopia/block/UBlocks.java b/src/main/java/com/minelittlepony/unicopia/block/UBlocks.java index 790827dc..c0b9853b 100644 --- a/src/main/java/com/minelittlepony/unicopia/block/UBlocks.java +++ b/src/main/java/com/minelittlepony/unicopia/block/UBlocks.java @@ -3,6 +3,7 @@ package com.minelittlepony.unicopia.block; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.object.builder.v1.block.FabricMaterialBuilder; import net.minecraft.block.Block; +import net.minecraft.block.Blocks; import net.minecraft.block.MapColor; import net.minecraft.sound.BlockSoundGroup; import net.minecraft.util.Identifier; @@ -17,6 +18,8 @@ public interface UBlocks { .strength(2) .sounds(BlockSoundGroup.STONE))); + Block FROSTED_OBSIDIAN = register("frosted_obsidian", new FrostedObsidianBlock(FabricBlockSettings.copy(Blocks.OBSIDIAN).ticksRandomly())); + private static T register(String name, T item) { return Registry.register(Registry.BLOCK, new Identifier("unicopia", name), item); } diff --git a/src/main/java/com/minelittlepony/unicopia/block/state/StateMaps.java b/src/main/java/com/minelittlepony/unicopia/block/state/StateMaps.java index 78830b36..db2298a0 100644 --- a/src/main/java/com/minelittlepony/unicopia/block/state/StateMaps.java +++ b/src/main/java/com/minelittlepony/unicopia/block/state/StateMaps.java @@ -2,6 +2,7 @@ package com.minelittlepony.unicopia.block.state; import java.util.function.Predicate; +import com.minelittlepony.unicopia.block.UBlocks; import com.minelittlepony.unicopia.util.Registries; import net.minecraft.block.Block; @@ -25,7 +26,7 @@ public class StateMaps { public static final BlockStateConverter ICE_AFFECTED = register("ice", new BlockStateMap.Builder() .replaceMaterial(Material.WATER, Blocks.FROSTED_ICE) - .replaceMaterial(Material.LAVA, Blocks.OBSIDIAN) + .replaceMaterial(Material.LAVA, UBlocks.FROSTED_OBSIDIAN) .add(StateMapping.cycleProperty(Blocks.SNOW, SnowBlock.LAYERS, 7)) .replaceBlock(Blocks.FIRE, Blocks.AIR) .setProperty(Blocks.REDSTONE_WIRE, RedstoneWireBlock.POWER, 0)); @@ -42,10 +43,10 @@ public class StateMaps { .removeBlock(Blocks.SNOW) .removeBlock(Blocks.SNOW_BLOCK) .removeBlock(StateMaps::isPlant) - .replaceBlock(Blocks.ICE, Blocks.WATER) - .replaceBlock(Blocks.PACKED_ICE, Blocks.WATER) + .replaceBlock(BlockTags.ICE, Blocks.WATER) .replaceBlock(Blocks.CLAY, Blocks.BROWN_CONCRETE) .replaceBlock(Blocks.OBSIDIAN, Blocks.LAVA) + .replaceBlock(UBlocks.FROSTED_OBSIDIAN, Blocks.LAVA) .replaceBlock(Blocks.GRASS_BLOCK, Blocks.DIRT) .replaceBlock(Blocks.MOSSY_COBBLESTONE, Blocks.COBBLESTONE) .replaceBlock(Blocks.MOSSY_COBBLESTONE_WALL, Blocks.COBBLESTONE_WALL) diff --git a/src/main/resources/assets/unicopia/blockstates/frosted_obsidian.json b/src/main/resources/assets/unicopia/blockstates/frosted_obsidian.json new file mode 100644 index 00000000..394f2d3e --- /dev/null +++ b/src/main/resources/assets/unicopia/blockstates/frosted_obsidian.json @@ -0,0 +1,16 @@ +{ + "variants": { + "age=0": { + "model": "unicopia:block/frosted_obsidian_0" + }, + "age=1": { + "model": "unicopia:block/frosted_obsidian_1" + }, + "age=2": { + "model": "unicopia:block/frosted_obsidian_2" + }, + "age=3": { + "model": "unicopia:block/frosted_obsidian_3" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/block/frosted_obsidian_0.json b/src/main/resources/assets/unicopia/models/block/frosted_obsidian_0.json new file mode 100644 index 00000000..f20d67f3 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/frosted_obsidian_0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "unicopia:block/frosted_obsidian_0" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/block/frosted_obsidian_1.json b/src/main/resources/assets/unicopia/models/block/frosted_obsidian_1.json new file mode 100644 index 00000000..c25d9961 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/frosted_obsidian_1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "unicopia:block/frosted_obsidian_1" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/block/frosted_obsidian_2.json b/src/main/resources/assets/unicopia/models/block/frosted_obsidian_2.json new file mode 100644 index 00000000..42de1afc --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/frosted_obsidian_2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "unicopia:block/frosted_obsidian_2" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/block/frosted_obsidian_3.json b/src/main/resources/assets/unicopia/models/block/frosted_obsidian_3.json new file mode 100644 index 00000000..ad70b710 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/frosted_obsidian_3.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/cube_all", + "textures": { + "all": "unicopia:block/frosted_obsidian_3" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/textures/block/frosted_obsidian_0.png b/src/main/resources/assets/unicopia/textures/block/frosted_obsidian_0.png new file mode 100644 index 0000000000000000000000000000000000000000..b6cc955d007dbff9fb6349638abbf37ee6b49b3f GIT binary patch literal 455 zcmV;&0XY7NP)CWM5QZOBL14v$6AB(242FV+ZiPZ2$q(q<{^SmwvUTWWD0nc0Btx*lVDt^0P;>`4&?B`Qa6SW8d=q^MTP8SMH`NfK66ht_|&}hBaKS4Mtnk zRAp+hJ=Fl@>x#NL1R0Y2KY0q2cjYc510ndh|8W#0hl1lLdc56fzp8-GK?Lr+)ZPQsmsjcdB>M5 zZXaM_wB@mQ0pP3oeWC002ovPDHLkV1i!e*f;$ z85~ayM#re3%FtrFuK~E9Rn*Of^W_glCn5PYdJ2@daut$+Yp`H#LDMu7ZM>Z?-QZ_w zA^w008UTSeAWQcou3QJ)$A$;Ih(k~=kc%tVVss+b4i5rSmGh8nbRuC2Sy}{j7w+>Y zNeLj<7FSG-x>2I80o)1+@bF>9_aEP=$~pD+HvqSK;mY-Y{QbOdIghCZeJ0M8mp@}M zZwn05TMrbn)YA2b$-)epK~>Iq7kvy%HfbNYGdgBr9|8E){N#9Q$Wn{77J$FK33pw8 zAdYet_A&VC%9D0qhc5i0WT_4Q?VT%E)Xj!BFWcuyKpf>k?XEve@bRzpc`8c_@q3-6 mHhhve%DJCawEH?>uh~Bmnj@FBKOg)600009c2gLKPE7IsLHb^x3mAKY1TIw)PJIRq=!G(SrA(gHR;` zfrKiNEG-2B$ePy0}9;!r)Zf7+h@Qo|;Bu2L~);PxqFuUCKges9>1dk(jA6ozx zHx(y3wr_u_bWI%PtT(@}(gOl9x|J*~{pThqic9QXJdZ8F7+(X9F*Cr09#ZN0a=8Ov zL_{DL$i?VZLY17G@nEN0s1ga>8nd+EaQsJOY5)#Li?ur-0ED6_0kGEkwQk;C@LPaf z9v_}(T0A~He|hzbUasIcIXXtSp0o4Bl&aTfmYjJx&{Rw}!PI0%x1$fTw4fjM0K`$w z;kfg*u5`_9bO$i=iaXyz71I>=0IcmRhvSaMEPcaz^NU+^$J)Nq4}0P$rz!4zj^pY^ zt8_i%+?eIe6Vvhizu=OoK+{@dmfmPnJwla8kfo(KUyoj}-tUW>itc0UYuCJ%=P)|NnFT<0#jYYQ19nDYrwX9kMECRO=N3^OE~=%DA`! zAc>CYwGX*3r=VO(OVx0fZ=uDT-p#8dzZ!*R7FIVPuZFM1=)7SSMVooq;@u&J z0-+e4i*mh(pEt!;PNGw3won&`l9|3_roUBGv)Yaa=3>Lf5o|XIWq5Ykun7EEhG&<1 zsEEZL~zEVszeUwk+#yu;UACU{UP)_KjtkW~SdXG&-->82AyZat1)B9Wq}` z8e1ni<>cs`cOTvYGXg)}vAwHY@6GbhKTgvZ%*!9l7ZWnm=b#sJ(2KeG_LV?A<4Nxk zzUT3~{7V*{a`$UegBqPT!?OCfH)D10--umt@ME!O8~734Q@Hy+qtgyK>?X9@71yIL_Hc-zXk+jC{Ra+RC2VLblYjsK N002ovPDHLkV1gIJ5G?=z literal 0 HcmV?d00001 diff --git a/src/main/resources/data/minecraft/tags/blocks/dragon_immune.json b/src/main/resources/data/minecraft/tags/blocks/dragon_immune.json new file mode 100644 index 00000000..2daf1e1f --- /dev/null +++ b/src/main/resources/data/minecraft/tags/blocks/dragon_immune.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "unicopia:frosted_obsidian" + ] +} \ No newline at end of file diff --git a/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json b/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json index f34c0495..4985a15e 100644 --- a/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json +++ b/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json @@ -1,6 +1,7 @@ { "replace": false, "values": [ - "unicopia:rocks" + "unicopia:rocks", + "unicopia:frosted_obsidian" ] } diff --git a/src/main/resources/data/minecraft/tags/blocks/needs_diamond_tool.json b/src/main/resources/data/minecraft/tags/blocks/needs_diamond_tool.json new file mode 100644 index 00000000..2daf1e1f --- /dev/null +++ b/src/main/resources/data/minecraft/tags/blocks/needs_diamond_tool.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "unicopia:frosted_obsidian" + ] +} \ No newline at end of file