very poorly half-implement some decorations

This commit is contained in:
gamma-delta 2022-03-24 01:46:22 -05:00
parent e52f1e9b41
commit d944186fac
42 changed files with 310 additions and 43 deletions

View file

@ -1,7 +1,18 @@
6467be85f85137aa17be8b03ee96c224839a9e25 assets/hexcasting/blockstates/amethyst_dust_block.json
1d17548d44b3169d43663d1cbc7699d75ccc8a54 assets/hexcasting/blockstates/amethyst_sconce.json
aed50918bad8a7b00cd26e45d67eb509a04c9f6c assets/hexcasting/blockstates/amethyst_tiles.json
27cedb7c1bb8fe4bc1c9b0ecb69678999ca08377 assets/hexcasting/blockstates/ancient_scroll_paper.json
080fce1ae9fb8eeb7fc0cb7ad0a2db05b2ca3dc5 assets/hexcasting/blockstates/ancient_scroll_paper_lantern.json
4d62b41c90cb0c5b94697e151c4aad964fb56727 assets/hexcasting/blockstates/empty_impetus.json 4d62b41c90cb0c5b94697e151c4aad964fb56727 assets/hexcasting/blockstates/empty_impetus.json
8d7c7bfdca1def0205714465422d327dbcc00539 assets/hexcasting/blockstates/impetus_rightclick.json 8d7c7bfdca1def0205714465422d327dbcc00539 assets/hexcasting/blockstates/impetus_rightclick.json
1c138caef4d5964cba77dc2b5dc3febe28ab65b7 assets/hexcasting/blockstates/scroll_paper.json
77e723163f415795437b810fe87c348c96a989be assets/hexcasting/blockstates/scroll_paper_lantern.json
5cb63493ae07f5ab5d8f686e3553c97a85105931 assets/hexcasting/blockstates/slate.json 5cb63493ae07f5ab5d8f686e3553c97a85105931 assets/hexcasting/blockstates/slate.json
043abd5bbfd1186415049d24d185d4e4395320f9 assets/hexcasting/blockstates/slate_block.json 043abd5bbfd1186415049d24d185d4e4395320f9 assets/hexcasting/blockstates/slate_block.json
de50477d8d34bbd69db98249cc6c878be8bc80f3 assets/hexcasting/models/block/amethyst_dust_block.json
df994438c20d9dec9009c9c56de74860a847681b assets/hexcasting/models/block/amethyst_tiles.json
4e65ad75eeee22fa1d2c899fc86ac8b7b9a43701 assets/hexcasting/models/block/ancient_scroll_paper.json
2a03847eb4ce6679219784cd1e29408e9cdb2c0b assets/hexcasting/models/block/ancient_scroll_paper_lantern.json
880e730e120c4f427b0839e754b2369a9b3b4482 assets/hexcasting/models/block/empty_impetus_dim_down.json 880e730e120c4f427b0839e754b2369a9b3b4482 assets/hexcasting/models/block/empty_impetus_dim_down.json
6bd0ed320b8f5c411c36cf0fce2e88f4881327c1 assets/hexcasting/models/block/empty_impetus_dim_east.json 6bd0ed320b8f5c411c36cf0fce2e88f4881327c1 assets/hexcasting/models/block/empty_impetus_dim_east.json
9f46c1d18dbb34b1f643f9385308c35493437503 assets/hexcasting/models/block/empty_impetus_dim_north.json 9f46c1d18dbb34b1f643f9385308c35493437503 assets/hexcasting/models/block/empty_impetus_dim_north.json
@ -26,9 +37,16 @@ bd394ea4742625276b3640abef34c7fa39f3880a assets/hexcasting/models/block/impetus_
159204f86618a2981500a127f627dfffc6624e4e assets/hexcasting/models/block/impetus_rightclick_lit_south.json 159204f86618a2981500a127f627dfffc6624e4e assets/hexcasting/models/block/impetus_rightclick_lit_south.json
fe7e16c7178aa1ac3ecfa8750d095cbd3838189b assets/hexcasting/models/block/impetus_rightclick_lit_up.json fe7e16c7178aa1ac3ecfa8750d095cbd3838189b assets/hexcasting/models/block/impetus_rightclick_lit_up.json
eca0d28d0c44af31e28baff46061ac72463bbc28 assets/hexcasting/models/block/impetus_rightclick_lit_west.json eca0d28d0c44af31e28baff46061ac72463bbc28 assets/hexcasting/models/block/impetus_rightclick_lit_west.json
649a5d560534d6f9502ed4f2d0fd88e3afecfa24 assets/hexcasting/models/block/scroll_paper.json
9327633bd23735970a1ffe9811593a668e05947d assets/hexcasting/models/block/scroll_paper_lantern.json
d51541b464840530f4e734db1f67ed20e811ad14 assets/hexcasting/models/block/slate_block.json d51541b464840530f4e734db1f67ed20e811ad14 assets/hexcasting/models/block/slate_block.json
60c0f39882d22c2634cf738b0fe4e956eaa2adbe assets/hexcasting/models/item/abacus.json 60c0f39882d22c2634cf738b0fe4e956eaa2adbe assets/hexcasting/models/item/abacus.json
eb78f6a2b68dd772a5016fc5a3db10488a65abfa assets/hexcasting/models/item/amethyst_dust.json eb78f6a2b68dd772a5016fc5a3db10488a65abfa assets/hexcasting/models/item/amethyst_dust.json
6a60e6e92414f63e7e045f2893e5cd7b503d08dd assets/hexcasting/models/item/amethyst_dust_block.json
0d0695c9a96cadec55d905a42d0ba966f8697c41 assets/hexcasting/models/item/amethyst_sconce.json
bf5723194c8880e48789b6e258382be841d59b36 assets/hexcasting/models/item/amethyst_tiles.json
e25ece4006bb922294a5fdfd596c211ad822f8e4 assets/hexcasting/models/item/ancient_scroll_paper.json
11a30eb238c6391cc6a2f912be8777c35e69b1d6 assets/hexcasting/models/item/ancient_scroll_paper_lantern.json
df940dd798240fac6fde700c57f8ae6aa43d1c9e assets/hexcasting/models/item/artifact.json df940dd798240fac6fde700c57f8ae6aa43d1c9e assets/hexcasting/models/item/artifact.json
1a66f279c030ebd5ed6a596f63205094b2529819 assets/hexcasting/models/item/artifact_filled.json 1a66f279c030ebd5ed6a596f63205094b2529819 assets/hexcasting/models/item/artifact_filled.json
1b3a4bd9dd3c2af2894e0acc1d9d3c74d16c7625 assets/hexcasting/models/item/battery.json 1b3a4bd9dd3c2af2894e0acc1d9d3c74d16c7625 assets/hexcasting/models/item/battery.json
@ -101,6 +119,8 @@ e7b88cde507911c0ad1bf60976dcc43a319d498d assets/hexcasting/models/item/pride_col
352169689d1b82d670142478b67a1515bd71d93d assets/hexcasting/models/item/pride_colorizer_9.json 352169689d1b82d670142478b67a1515bd71d93d assets/hexcasting/models/item/pride_colorizer_9.json
9ef07e2885063ed1ffe1cb8f7728f26cb7c9881e assets/hexcasting/models/item/scroll.json 9ef07e2885063ed1ffe1cb8f7728f26cb7c9881e assets/hexcasting/models/item/scroll.json
297b05008b9ab37b5881820a0f5c99f7441a9dfe assets/hexcasting/models/item/scroll_ancient.json 297b05008b9ab37b5881820a0f5c99f7441a9dfe assets/hexcasting/models/item/scroll_ancient.json
7bc2499b363ab4bef749393f2984fae9e76ea982 assets/hexcasting/models/item/scroll_paper.json
0035d989e895429c71363acfebb987625b3ecaf5 assets/hexcasting/models/item/scroll_paper_lantern.json
91765bdc3a764f3a3f10131e452a0030b207b03d assets/hexcasting/models/item/scroll_pristine.json 91765bdc3a764f3a3f10131e452a0030b207b03d assets/hexcasting/models/item/scroll_pristine.json
d06214a759ea5db686cdc5982baa74e1bd678815 assets/hexcasting/models/item/slate.json d06214a759ea5db686cdc5982baa74e1bd678815 assets/hexcasting/models/item/slate.json
e7aa1f9b9eaf20cbeb19eaf9cb96f3276eca6dfd assets/hexcasting/models/item/slate_blank.json e7aa1f9b9eaf20cbeb19eaf9cb96f3276eca6dfd assets/hexcasting/models/item/slate_blank.json
@ -225,4 +245,6 @@ d14cf2f8f0895a5b6dc09b7582c0abf1c2514adf data/hexcasting/recipes/sub_sandwich.js
33b9d3a5e65343fc0e442e17d55a1eaa08943c8f data/hexcasting/recipes/trinket.json 33b9d3a5e65343fc0e442e17d55a1eaa08943c8f data/hexcasting/recipes/trinket.json
14d6be5d47b54676a349564ea32c045c76c39b45 data/hexcasting/recipes/uuid_colorizer.json 14d6be5d47b54676a349564ea32c045c76c39b45 data/hexcasting/recipes/uuid_colorizer.json
0521d57838cb3e9795fc02ce47aa58db3b0188f9 data/hexcasting/recipes/wand.json 0521d57838cb3e9795fc02ce47aa58db3b0188f9 data/hexcasting/recipes/wand.json
1d891cd7bbbd24f4fe36eff375cdbc3e3e34fc8f data/minecraft/tags/blocks/mineable/pickaxe.json f930dbc5b41d42150d388e39b29b940229658809 data/minecraft/tags/blocks/crystal_sound_blocks.json
6ac1852c49b696a3f31bbd83a686b348da86b003 data/minecraft/tags/blocks/mineable/pickaxe.json
f55afc2c05d93b5a44bc9fd73c5e81e71b183965 data/minecraft/tags/blocks/mineable/shovel.json

View file

@ -0,0 +1,7 @@
{
"variants": {
"": {
"model": "hexcasting:block/amethyst_dust_block"
}
}
}

View file

@ -0,0 +1,7 @@
{
"variants": {
"": {
"model": "hexcasting:block/amethyst_sconce"
}
}
}

View file

@ -0,0 +1,7 @@
{
"variants": {
"": {
"model": "hexcasting:block/amethyst_tiles"
}
}
}

View file

@ -0,0 +1,7 @@
{
"variants": {
"": {
"model": "hexcasting:block/ancient_scroll_paper"
}
}
}

View file

@ -0,0 +1,7 @@
{
"variants": {
"": {
"model": "hexcasting:block/ancient_scroll_paper_lantern"
}
}
}

View file

@ -0,0 +1,7 @@
{
"variants": {
"": {
"model": "hexcasting:block/scroll_paper"
}
}
}

View file

@ -0,0 +1,7 @@
{
"variants": {
"": {
"model": "hexcasting:block/scroll_paper_lantern"
}
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:block/cube_all",
"textures": {
"all": "hexcasting:block/amethyst_dust_block"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:block/cube_all",
"textures": {
"all": "hexcasting:block/amethyst_tiles"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:block/cube_all",
"textures": {
"all": "hexcasting:block/ancient_scroll_paper"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:block/cube_all",
"textures": {
"all": "hexcasting:block/ancient_scroll_paper_lantern"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:block/cube_all",
"textures": {
"all": "hexcasting:block/scroll_paper"
}
}

View file

@ -0,0 +1,6 @@
{
"parent": "minecraft:block/cube_all",
"textures": {
"all": "hexcasting:block/scroll_paper_lantern"
}
}

View file

@ -0,0 +1,3 @@
{
"parent": "hexcasting:block/amethyst_dust_block"
}

View file

@ -0,0 +1,3 @@
{
"parent": "hexcasting:block/amethyst_sconce"
}

View file

@ -0,0 +1,3 @@
{
"parent": "hexcasting:block/amethyst_tiles"
}

View file

@ -0,0 +1,3 @@
{
"parent": "hexcasting:block/ancient_scroll_paper"
}

View file

@ -0,0 +1,3 @@
{
"parent": "hexcasting:block/ancient_scroll_paper_lantern"
}

View file

@ -0,0 +1,3 @@
{
"parent": "hexcasting:block/scroll_paper"
}

View file

@ -0,0 +1,3 @@
{
"parent": "hexcasting:block/scroll_paper_lantern"
}

View file

@ -0,0 +1,8 @@
{
"replace": false,
"values": [
"hexcasting:conjured",
"hexcasting:amethyst_tiles",
"hexcasting:amethyst_sconce"
]
}

View file

@ -4,6 +4,8 @@
"hexcasting:slate_block", "hexcasting:slate_block",
"hexcasting:slate", "hexcasting:slate",
"hexcasting:empty_impetus", "hexcasting:empty_impetus",
"hexcasting:impetus_rightclick" "hexcasting:impetus_rightclick",
"hexcasting:amethyst_tiles",
"hexcasting:amethyst_sconce"
] ]
} }

View file

@ -0,0 +1,6 @@
{
"replace": false,
"values": [
"hexcasting:amethyst_dust_block"
]
}

View file

@ -42,7 +42,7 @@ public class HexTooltips {
tag.contains(ItemScroll.TAG_OP_ID) tag.contains(ItemScroll.TAG_OP_ID)
? PatternTooltipGreeble.ANCIENT_BG : PatternTooltipGreeble.PRISTINE_BG))); ? PatternTooltipGreeble.ANCIENT_BG : PatternTooltipGreeble.PRISTINE_BG)));
} }
} else if (stack.is(HexItems.Blocks.SLATE.get()) && ItemSlate.hasPattern(stack)) { } else if (stack.is(HexItems.SLATE.get()) && ItemSlate.hasPattern(stack)) {
var tag = stack.getOrCreateTag() var tag = stack.getOrCreateTag()
.getCompound("BlockEntityTag") .getCompound("BlockEntityTag")
.getCompound(BlockEntitySlate.TAG_PATTERN); .getCompound(BlockEntitySlate.TAG_PATTERN);

View file

@ -33,6 +33,7 @@ import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.state.properties.BlockStateProperties; import net.minecraft.world.level.block.state.properties.BlockStateProperties;
import net.minecraftforge.client.event.EntityRenderersEvent; import net.minecraftforge.client.event.EntityRenderersEvent;
import net.minecraftforge.client.event.ModelRegistryEvent;
import net.minecraftforge.client.event.ParticleFactoryRegisterEvent; import net.minecraftforge.client.event.ParticleFactoryRegisterEvent;
import net.minecraftforge.eventbus.api.EventPriority; import net.minecraftforge.eventbus.api.EventPriority;
import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.eventbus.api.SubscribeEvent;
@ -94,7 +95,7 @@ public class RegisterClientStuff {
ItemProperties.register(HexItems.SCROLL.get(), ItemScroll.ANCIENT_PREDICATE, ItemProperties.register(HexItems.SCROLL.get(), ItemScroll.ANCIENT_PREDICATE,
(stack, level, holder, holderID) -> stack.getOrCreateTag().contains(ItemScroll.TAG_OP_ID) ? 1f : 0f); (stack, level, holder, holderID) -> stack.getOrCreateTag().contains(ItemScroll.TAG_OP_ID) ? 1f : 0f);
ItemProperties.register(HexItems.Blocks.SLATE.get(), ItemSlate.WRITTEN_PRED, ItemProperties.register(HexItems.SLATE.get(), ItemSlate.WRITTEN_PRED,
(stack, level, holder, holderID) -> ItemSlate.hasPattern(stack) ? 1f : 0f); (stack, level, holder, holderID) -> ItemSlate.hasPattern(stack) ? 1f : 0f);
HexTooltips.init(); HexTooltips.init();
@ -145,4 +146,9 @@ public class RegisterClientStuff {
public static void registerRenderers(EntityRenderersEvent.RegisterRenderers evt) { public static void registerRenderers(EntityRenderersEvent.RegisterRenderers evt) {
evt.registerBlockEntityRenderer(HexBlocks.SLATE_TILE.get(), BlockEntitySlate.Renderer::new); evt.registerBlockEntityRenderer(HexBlocks.SLATE_TILE.get(), BlockEntitySlate.Renderer::new);
} }
@SubscribeEvent
public static void onModelRegister(ModelRegistryEvent evt) {
ItemBlockRenderTypes.setRenderLayer(HexBlocks.SCONCE.get(), RenderType.cutout());
}
} }

View file

@ -7,8 +7,10 @@ import at.petrak.hexcasting.common.blocks.circles.BlockSlate;
import at.petrak.hexcasting.common.blocks.circles.impetuses.BlockAbstractImpetus; import at.petrak.hexcasting.common.blocks.circles.impetuses.BlockAbstractImpetus;
import at.petrak.hexcasting.common.blocks.circles.impetuses.BlockEntityRightClickImpetus; import at.petrak.hexcasting.common.blocks.circles.impetuses.BlockEntityRightClickImpetus;
import at.petrak.hexcasting.common.blocks.circles.impetuses.BlockRightClickImpetus; import at.petrak.hexcasting.common.blocks.circles.impetuses.BlockRightClickImpetus;
import net.minecraft.world.level.block.Block; import at.petrak.hexcasting.common.blocks.decoration.BlockSconce;
import net.minecraft.world.level.block.SoundType; import at.petrak.hexcasting.common.items.HexItems;
import net.minecraft.world.item.BlockItem;
import net.minecraft.world.level.block.*;
import net.minecraft.world.level.block.entity.BlockEntityType; import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockBehaviour; import net.minecraft.world.level.block.state.BlockBehaviour;
import net.minecraft.world.level.material.Material; import net.minecraft.world.level.material.Material;
@ -17,6 +19,8 @@ import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries; import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject; import net.minecraftforge.registries.RegistryObject;
import java.util.function.Supplier;
public class HexBlocks { public class HexBlocks {
public static final DeferredRegister<Block> BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, HexMod.MOD_ID); public static final DeferredRegister<Block> BLOCKS = DeferredRegister.create(ForgeRegistries.BLOCKS, HexMod.MOD_ID);
public static final DeferredRegister<BlockEntityType<?>> BLOCK_ENTITIES = DeferredRegister.create( public static final DeferredRegister<BlockEntityType<?>> BLOCK_ENTITIES = DeferredRegister.create(
@ -39,19 +43,45 @@ public class HexBlocks {
.strength(4f, 4f); .strength(4f, 4f);
} }
private static BlockBehaviour.Properties papery() {
return BlockBehaviour.Properties
.of(Material.PLANT, MaterialColor.TERRACOTTA_WHITE)
.sound(SoundType.GRASS)
.instabreak();
}
public static final RegistryObject<BlockSlate> SLATE = BLOCKS.register("slate", public static final RegistryObject<BlockSlate> SLATE = BLOCKS.register("slate",
() -> new BlockSlate(slateish())); () -> new BlockSlate(slateish()));
public static final RegistryObject<BlockEmptyImpetus> EMPTY_IMPETUS = BLOCKS.register("empty_impetus", public static final RegistryObject<BlockEmptyImpetus> EMPTY_IMPETUS = blockItem("empty_impetus",
() -> new BlockEmptyImpetus(slateish())); () -> new BlockEmptyImpetus(slateish()));
public static final RegistryObject<BlockRightClickImpetus> IMPETUS_RIGHTCLICK = BLOCKS.register( public static final RegistryObject<BlockRightClickImpetus> IMPETUS_RIGHTCLICK = blockItem(
"impetus_rightclick", "impetus_rightclick",
() -> new BlockRightClickImpetus(slateish() () -> new BlockRightClickImpetus(slateish()
.lightLevel(bs -> bs.getValue(BlockAbstractImpetus.ENERGIZED) ? 15 : 0))); .lightLevel(bs -> bs.getValue(BlockAbstractImpetus.ENERGIZED) ? 15 : 0)));
// Decoration?! // Decoration?!
public static final RegistryObject<Block> SLATE_BLOCK = BLOCKS.register("slate_block", public static final RegistryObject<Block> SLATE_BLOCK = blockItem("slate_block",
() -> new Block(slateish().strength(2f, 4f))); () -> new Block(slateish().strength(2f, 4f)));
public static final RegistryObject<SandBlock> AMETHYST_DUST_BLOCK = blockItem("amethyst_dust_block",
() -> new SandBlock(0xff_b38ef3, BlockBehaviour.Properties.of(Material.SAND, MaterialColor.COLOR_PURPLE)
.strength(0.5f).sound(SoundType.SAND)));
public static final RegistryObject<AmethystBlock> AMETHYST_TILES = blockItem("amethyst_tiles",
() -> new AmethystBlock(BlockBehaviour.Properties.copy(Blocks.AMETHYST_BLOCK)));
public static final RegistryObject<Block> SCROLL_PAPER = blockItem("scroll_paper",
() -> new Block(papery()));
public static final RegistryObject<Block> ANCIENT_SCROLL_PAPER = blockItem("ancient_scroll_paper",
() -> new Block(papery()));
public static final RegistryObject<Block> SCROLL_PAPER_LANTERN = blockItem("scroll_paper_lantern",
() -> new Block(papery().lightLevel($ -> 15)));
public static final RegistryObject<Block> ANCIENT_SCROLL_PAPER_LANTERN = blockItem(
"ancient_scroll_paper_lantern",
() -> new Block(papery().lightLevel($ -> 12)));
public static final RegistryObject<BlockSconce> SCONCE = blockItem("amethyst_sconce",
() -> new BlockSconce(BlockBehaviour.Properties.of(Material.AMETHYST, MaterialColor.COLOR_PURPLE)
.sound(SoundType.AMETHYST)
.strength(1f)
.lightLevel($ -> 15)));
public static final RegistryObject<BlockEntityType<BlockEntityConjured>> CONJURED_TILE = BLOCK_ENTITIES.register( public static final RegistryObject<BlockEntityType<BlockEntityConjured>> CONJURED_TILE = BLOCK_ENTITIES.register(
"conjured_tile", "conjured_tile",
@ -67,4 +97,11 @@ public class HexBlocks {
private static boolean never(Object... args) { private static boolean never(Object... args) {
return false; return false;
} }
private static <T extends Block> RegistryObject<T> blockItem(String name, Supplier<T> block) {
var out = BLOCKS.register(name, block);
HexItems.ITEMS.register(name, () -> new BlockItem(out.get(), HexItems.props()));
return out;
}
} }

View file

@ -0,0 +1,35 @@
package at.petrak.hexcasting.common.blocks.decoration;
import net.minecraft.core.BlockPos;
import net.minecraft.sounds.SoundEvents;
import net.minecraft.sounds.SoundSource;
import net.minecraft.world.level.BlockGetter;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.AmethystBlock;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.phys.shapes.CollisionContext;
import net.minecraft.world.phys.shapes.VoxelShape;
import java.util.Random;
public class BlockSconce extends AmethystBlock {
protected static VoxelShape AABB = Block.box(4, 0, 4, 12, 1, 12);
public BlockSconce(Properties p_49795_) {
super(p_49795_);
}
@Override
public VoxelShape getShape(BlockState pState, BlockGetter pLevel, BlockPos pPos, CollisionContext pContext) {
return AABB;
}
@Override
public void animateTick(BlockState pState, Level pLevel, BlockPos pPos, Random pRandom) {
if (pRandom.nextFloat() < 0.8f) {
pLevel.playSound(null, pPos, SoundEvents.AMETHYST_BLOCK_CHIME, SoundSource.BLOCKS, 1.0F,
0.5F + pRandom.nextFloat() * 1.2F);
}
}
}

View file

@ -29,7 +29,7 @@ object OpWrite : SpellOperator {
} else if (datum.payload is HexPattern) { } else if (datum.payload is HexPattern) {
if (handStack.`is`(HexItems.SCROLL.get()) && !tag.contains(ItemScroll.TAG_PATTERN)) { if (handStack.`is`(HexItems.SCROLL.get()) && !tag.contains(ItemScroll.TAG_PATTERN)) {
true true
} else if (handStack.`is`(HexItems.Blocks.SLATE.get())) { } else if (handStack.`is`(HexItems.SLATE.get())) {
val hasBET = tag.contains("BlockEntityTag") val hasBET = tag.contains("BlockEntityTag")
if (hasBET) { if (hasBET) {
tag.getCompound("BlockEntityTag").contains(BlockEntitySlate.TAG_PATTERN) tag.getCompound("BlockEntityTag").contains(BlockEntitySlate.TAG_PATTERN)
@ -61,7 +61,7 @@ object OpWrite : SpellOperator {
handItem.writeDatum(tag, datum) handItem.writeDatum(tag, datum)
} else if (handItem == HexItems.SCROLL.get() && !tag.contains(ItemScroll.TAG_PATTERN) && datum.payload is HexPattern) { } else if (handItem == HexItems.SCROLL.get() && !tag.contains(ItemScroll.TAG_PATTERN) && datum.payload is HexPattern) {
tag.put(ItemScroll.TAG_PATTERN, datum.payload.serializeToNBT()) tag.put(ItemScroll.TAG_PATTERN, datum.payload.serializeToNBT())
} else if (handItem == HexItems.Blocks.SLATE.get() && datum.payload is HexPattern) { } else if (handItem == HexItems.SLATE.get() && datum.payload is HexPattern) {
val bet = tag.getCompound("BlockEntityTag") val bet = tag.getCompound("BlockEntityTag")
bet.put(BlockEntitySlate.TAG_PATTERN, datum.payload.serializeToNBT()) bet.put(BlockEntitySlate.TAG_PATTERN, datum.payload.serializeToNBT())
// Just in case it's brand new // Just in case it's brand new

View file

@ -10,7 +10,10 @@ import at.petrak.hexcasting.common.items.magic.ItemManaBattery;
import at.petrak.hexcasting.common.items.magic.ItemTrinket; import at.petrak.hexcasting.common.items.magic.ItemTrinket;
import net.minecraft.core.NonNullList; import net.minecraft.core.NonNullList;
import net.minecraft.world.food.FoodProperties; import net.minecraft.world.food.FoodProperties;
import net.minecraft.world.item.*; import net.minecraft.world.item.CreativeModeTab;
import net.minecraft.world.item.DyeColor;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries; import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject; import net.minecraftforge.registries.RegistryObject;
@ -98,27 +101,9 @@ public class HexItems {
public static final RegistryObject<Item> SUBMARINE_SANDWICH = ITEMS.register("sub_sandwich", public static final RegistryObject<Item> SUBMARINE_SANDWICH = ITEMS.register("sub_sandwich",
() -> new Item(props().food(new FoodProperties.Builder().nutrition(14).saturationMod(1.2f).build()))); () -> new Item(props().food(new FoodProperties.Builder().nutrition(14).saturationMod(1.2f).build())));
static {
// Force it to reify all the statics inside
new Blocks();
}
public static class Blocks {
public static final RegistryObject<BlockItem> CONJURED = ITEMS.register("conjured",
() -> new BlockItem(HexBlocks.CONJURED.get(), new Item.Properties()));
public static final RegistryObject<ItemSlate> SLATE = ITEMS.register("slate", public static final RegistryObject<ItemSlate> SLATE = ITEMS.register("slate",
() -> new ItemSlate(HexBlocks.SLATE.get(), props())); () -> new ItemSlate(HexBlocks.SLATE.get(), props()));
public static final RegistryObject<BlockItem> EMPTY_IMPETUS = ITEMS.register("empty_impetus",
() -> new BlockItem(HexBlocks.EMPTY_IMPETUS.get(), props()));
public static final RegistryObject<BlockItem> IMPETUS_RIGHTCLICK = ITEMS.register("impetus_rightclick",
() -> new BlockItem(HexBlocks.IMPETUS_RIGHTCLICK.get(), props()));
public static final RegistryObject<BlockItem> SLATE_BLOCK = ITEMS.register("slate_block",
() -> new BlockItem(HexBlocks.SLATE_BLOCK.get(), props()));
}
public static Item.Properties props() { public static Item.Properties props() {
return new Item.Properties().tab(TAB); return new Item.Properties().tab(TAB);
} }

View file

@ -46,6 +46,16 @@ public class HexBlockStatesAndModels extends BlockStateProvider {
slateTex); slateTex);
blockAndItem(HexBlocks.SLATE_BLOCK.get(), models().cubeAll("slate_block", modLoc("block/slate"))); blockAndItem(HexBlocks.SLATE_BLOCK.get(), models().cubeAll("slate_block", modLoc("block/slate")));
reallySimpleBlockAndItem(HexBlocks.AMETHYST_DUST_BLOCK.get(), "amethyst_dust_block");
reallySimpleBlockAndItem(HexBlocks.AMETHYST_TILES.get(), "amethyst_tiles");
reallySimpleBlockAndItem(HexBlocks.SCROLL_PAPER.get(), "scroll_paper");
reallySimpleBlockAndItem(HexBlocks.ANCIENT_SCROLL_PAPER.get(), "ancient_scroll_paper");
reallySimpleBlockAndItem(HexBlocks.SCROLL_PAPER_LANTERN.get(), "scroll_paper_lantern");
reallySimpleBlockAndItem(HexBlocks.ANCIENT_SCROLL_PAPER_LANTERN.get(), "ancient_scroll_paper_lantern");
var sconceModel = models().getExistingFile(modLoc("amethyst_sconce"));
simpleBlock(HexBlocks.SCONCE.get(), sconceModel);
simpleBlockItem(HexBlocks.SCONCE.get(), sconceModel);
} }
private void blockAndItem(Block block, BlockModelBuilder model) { private void blockAndItem(Block block, BlockModelBuilder model) {
@ -53,6 +63,10 @@ public class HexBlockStatesAndModels extends BlockStateProvider {
simpleBlockItem(block, model); simpleBlockItem(block, model);
} }
private void reallySimpleBlockAndItem(Block block, String name) {
blockAndItem(block, models().cubeAll(name, modLoc("block/" + name)));
}
private void arrowCircleBlock(Block block, String name, String stub, ResourceLocation particle) { private void arrowCircleBlock(Block block, String name, String stub, ResourceLocation particle) {
getVariantBuilder(block).forAllStates(bs -> { getVariantBuilder(block).forAllStates(bs -> {
var isLit = bs.getValue(BlockCircleComponent.ENERGIZED); var isLit = bs.getValue(BlockCircleComponent.ENERGIZED);

View file

@ -17,9 +17,14 @@ public class HexBlockTags extends BlockTagsProvider {
@Override @Override
protected void addTags() { protected void addTags() {
tag(BlockTags.MINEABLE_WITH_PICKAXE) tag(BlockTags.MINEABLE_WITH_PICKAXE)
.add(HexBlocks.SLATE_BLOCK.get()) .add(HexBlocks.SLATE_BLOCK.get(), HexBlocks.SLATE.get(), HexBlocks.EMPTY_IMPETUS.get(),
.add(HexBlocks.SLATE.get()) HexBlocks.IMPETUS_RIGHTCLICK.get(),
.add(HexBlocks.EMPTY_IMPETUS.get()) HexBlocks.AMETHYST_TILES.get(), HexBlocks.SCONCE.get());
.add(HexBlocks.IMPETUS_RIGHTCLICK.get());
tag(BlockTags.MINEABLE_WITH_SHOVEL)
.add(HexBlocks.AMETHYST_DUST_BLOCK.get());
tag(BlockTags.CRYSTAL_SOUND_BLOCKS)
.add(HexBlocks.CONJURED.get(), HexBlocks.AMETHYST_TILES.get(), HexBlocks.SCONCE.get());
} }
} }

View file

@ -117,7 +117,7 @@ public class HexItemModels extends ItemModelProvider {
simpleItem(modLoc("slate_blank")); simpleItem(modLoc("slate_blank"));
simpleItem(modLoc("slate_written")); simpleItem(modLoc("slate_written"));
getBuilder(HexItems.Blocks.SLATE.getId().getPath()).override() getBuilder(HexItems.SLATE.getId().getPath()).override()
.predicate(ItemSlate.WRITTEN_PRED, 0) .predicate(ItemSlate.WRITTEN_PRED, 0)
.model(new ModelFile.UncheckedModelFile(modLoc("item/slate_blank"))) .model(new ModelFile.UncheckedModelFile(modLoc("item/slate_blank")))
.end() .end()

View file

@ -182,7 +182,7 @@ public class HexRecipes extends RecipeProvider {
.pattern("PP ") .pattern("PP ")
.unlockedBy("has_item", has(Items.AMETHYST_SHARD)).save(recipes); .unlockedBy("has_item", has(Items.AMETHYST_SHARD)).save(recipes);
ShapedRecipeBuilder.shaped(HexItems.Blocks.SLATE.get(), 6) ShapedRecipeBuilder.shaped(HexItems.SLATE.get(), 6)
.define('S', Items.DEEPSLATE) .define('S', Items.DEEPSLATE)
.define('A', HexItems.AMETHYST_DUST.get()) .define('A', HexItems.AMETHYST_DUST.get())
.pattern(" A ") .pattern(" A ")
@ -190,10 +190,10 @@ public class HexRecipes extends RecipeProvider {
.unlockedBy("has_item", has(HexItems.AMETHYST_DUST.get())).save(recipes); .unlockedBy("has_item", has(HexItems.AMETHYST_DUST.get())).save(recipes);
ShapedRecipeBuilder.shaped(HexBlocks.SLATE_BLOCK.get()) ShapedRecipeBuilder.shaped(HexBlocks.SLATE_BLOCK.get())
.define('S', HexItems.Blocks.SLATE.get()) .define('S', HexItems.SLATE.get())
.pattern("S") .pattern("S")
.pattern("S") .pattern("S")
.unlockedBy("has_item", has(HexItems.Blocks.SLATE.get())) .unlockedBy("has_item", has(HexItems.SLATE.get()))
.save(recipes, modLoc("slate_block_from_slates")); .save(recipes, modLoc("slate_block_from_slates"));
ShapedRecipeBuilder.shaped(HexBlocks.SLATE_BLOCK.get(), 8) ShapedRecipeBuilder.shaped(HexBlocks.SLATE_BLOCK.get(), 8)
@ -202,7 +202,7 @@ public class HexRecipes extends RecipeProvider {
.pattern("SSS") .pattern("SSS")
.pattern("SAS") .pattern("SAS")
.pattern("SSS") .pattern("SSS")
.unlockedBy("has_item", has(HexItems.Blocks.SLATE.get())).save(recipes); .unlockedBy("has_item", has(HexItems.SLATE.get())).save(recipes);
var enlightenment = new OvercastTrigger.Instance(EntityPredicate.Composite.ANY, var enlightenment = new OvercastTrigger.Instance(EntityPredicate.Composite.ANY,
MinMaxBounds.Ints.ANY, MinMaxBounds.Ints.ANY,

View file

@ -394,6 +394,10 @@
"hexcasting.page.pigments.3": "Pigments all the colors of the rainbow.", "hexcasting.page.pigments.3": "Pigments all the colors of the rainbow.",
"hexcasting.page.pigments.4": "And finally, a pigment with a color wholly unique to me.$(br2)$(italic)And all the colors I am inside have not been invented yet./$", "hexcasting.page.pigments.4": "And finally, a pigment with a color wholly unique to me.$(br2)$(italic)And all the colors I am inside have not been invented yet./$",
"hexcasting.entry.decoration": "Decorative Blocks",
"hexcasting.page.decoration.1": "In the course of my studies I have discovered some building blocks and trifles that I may find aesthetically pleasing. I've compiled the methods of making them here.",
"hexcasting.page.decoration.3": "",
"_comment": "The Work", "_comment": "The Work",

View file

@ -71,5 +71,42 @@
"down": {"uv": [0, 0, 2, 3], "texture": "#missing"} "down": {"uv": [0, 0, 2, 3], "texture": "#missing"}
} }
} }
] ],
"display": {
"thirdperson_righthand": {
"rotation": [75, 45, 0],
"translation": [0, 2.5, 2.75],
"scale": [0.375, 0.375, 0.375]
},
"thirdperson_lefthand": {
"rotation": [75, 45, 0],
"translation": [0, 2.5, 2.75],
"scale": [0.375, 0.375, 0.375]
},
"firstperson_righthand": {
"rotation": [0, 45, 0],
"translation": [0, 2.5, 0],
"scale": [0.4, 0.4, 0.4]
},
"firstperson_lefthand": {
"rotation": [0, 225, 0],
"translation": [0, 2.5, 0],
"scale": [0.4, 0.4, 0.4]
},
"ground": {
"translation": [0, 3, 0],
"scale": [0.25, 0.25, 0.25]
},
"gui": {
"rotation": [30, 225, 0],
"scale": [0.625, 0.625, 0.625]
},
"head": {
"rotation": [0, 180, 0],
"translation": [0, 13, 7]
},
"fixed": {
"scale": [0.5, 0.5, 0.5]
}
}
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 298 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 239 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 283 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 881 B

After

Width:  |  Height:  |  Size: 831 B

View file

@ -10,7 +10,7 @@
"text": "hexcasting.page.decoration.1" "text": "hexcasting.page.decoration.1"
}, },
{ {
"type": "patchouli:recipe", "type": "patchouli:crafting",
"recipe": "hexcasting:slate_block", "recipe": "hexcasting:slate_block",
"recipe2": "hexcasting:slate_block_from_slates" "recipe2": "hexcasting:slate_block_from_slates"
} }