From 1106b54082ab7b0e7532534e6e846d422ca2b146 Mon Sep 17 00:00:00 2001 From: zongor Date: Sat, 16 Nov 2024 15:21:07 -0500 Subject: [PATCH] add runic chisel, add runic block with placeholder --- README.md | 1 + gradle.properties | 3 +- src/main/java/com/futhark/Futhark.java | 10 ++++- .../java/com/futhark/FutharkModClient.java | 2 + .../java/com/futhark/block/ModBlocks.java | 32 +++++++++++++++- .../java/com/futhark/block/RuneBlock.java | 25 +++++++++++++ .../java/com/futhark/item/ModItemGroups.java | 26 +++++++++++++ src/main/java/com/futhark/item/ModItems.java | 35 +++++++++++++++--- .../com/futhark/item/RunicChiselItem.java | 34 +++++++++++++++++ .../futhark/blockstates/jaffa_jam_block.json | 7 ++++ .../futhark/blockstates/rune_block.json | 7 ++++ src/main/resources/assets/futhark/icon.png~ | Bin 4322 -> 0 bytes .../resources/assets/futhark/lang/en_us.json | 12 +++++- .../futhark/models/block/jaffa_jam_block.json | 6 +++ .../futhark/models/block/rune_block.json | 6 +++ .../assets/futhark/models/item/jaffa_jam.json | 2 +- .../futhark/models/item/jaffa_jam_block.json | 5 +-- .../futhark/models/item/rune_block.json | 3 ++ .../futhark/models/item/runic_chisel.json | 6 +++ .../{jaffa_cake.png => jaffa_jam_block.png} | Bin 5777 -> 5702 bytes .../textures/block/jaffa_jam_block_old.png | Bin 0 -> 5717 bytes .../futhark/textures/block/rune_block.png | Bin 0 -> 594 bytes .../futhark/textures/item/jaffa_jam.png | Bin 5777 -> 5543 bytes .../futhark/textures/item/jaffa_jam_block.png | Bin 0 -> 5702 bytes .../futhark/textures/item/runic_chisel.png | Bin 0 -> 259 bytes .../loot_tables/blocks/jaffa_jam_block.json | 20 ++++++++++ .../data/futhark/recipes/jaffa_jam_block.json | 17 +++++++++ .../futhark/recipes/jaffa_jam_bottle.json | 25 +++++++++++++ .../data/futhark/recipes/runic_chisel.json | 24 ++++++++++++ src/main/resources/fabric.mod.json | 4 +- 30 files changed, 293 insertions(+), 19 deletions(-) create mode 100644 src/main/java/com/futhark/block/RuneBlock.java create mode 100644 src/main/java/com/futhark/item/RunicChiselItem.java create mode 100644 src/main/resources/assets/futhark/blockstates/rune_block.json delete mode 100644 src/main/resources/assets/futhark/icon.png~ create mode 100644 src/main/resources/assets/futhark/models/block/rune_block.json create mode 100644 src/main/resources/assets/futhark/models/item/rune_block.json create mode 100644 src/main/resources/assets/futhark/models/item/runic_chisel.json rename src/main/resources/assets/futhark/textures/block/{jaffa_cake.png => jaffa_jam_block.png} (89%) create mode 100644 src/main/resources/assets/futhark/textures/block/jaffa_jam_block_old.png create mode 100644 src/main/resources/assets/futhark/textures/block/rune_block.png create mode 100644 src/main/resources/assets/futhark/textures/item/jaffa_jam_block.png create mode 100644 src/main/resources/assets/futhark/textures/item/runic_chisel.png create mode 100644 src/main/resources/data/futhark/loot_tables/blocks/jaffa_jam_block.json create mode 100644 src/main/resources/data/futhark/recipes/jaffa_jam_block.json create mode 100644 src/main/resources/data/futhark/recipes/jaffa_jam_bottle.json create mode 100644 src/main/resources/data/futhark/recipes/runic_chisel.json diff --git a/README.md b/README.md index 5b336ea..c351486 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,3 @@ # futhark-fabric +A minecraft alpha era inspired mod adding old functionality, nostalgic items, and a magic system inspired by the Bukkit plugin Runecraft diff --git a/gradle.properties b/gradle.properties index 2054769..3fa9dec 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,7 +6,8 @@ org.gradle.parallel=true # check these on https://fabricmc.net/develop minecraft_version=1.20.1 yarn_mappings=1.20.1+build.10 -loader_version=0.16.0 +loader_version=0.15.6 +# change loader version to 0.15.1 for deployment # Mod Properties mod_version=0.0.1-1.20.1 diff --git a/src/main/java/com/futhark/Futhark.java b/src/main/java/com/futhark/Futhark.java index eace8f1..89ec608 100644 --- a/src/main/java/com/futhark/Futhark.java +++ b/src/main/java/com/futhark/Futhark.java @@ -1,9 +1,15 @@ package com.futhark; +import com.futhark.block.ModBlocks; +import com.futhark.item.ModItemGroups; import com.futhark.item.ModItems; import net.fabricmc.api.ModInitializer; +import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap; import net.fabricmc.fabric.api.event.player.UseBlockCallback; +import net.fabricmc.fabric.api.object.builder.v1.entity.FabricDefaultAttributeRegistry; +import net.minecraft.client.render.RenderLayer; +import net.minecraft.registry.Registries; import net.minecraft.util.ActionResult; import org.slf4j.Logger; @@ -17,7 +23,9 @@ public class Futhark implements ModInitializer { @Override public void onInitialize() { LOGGER.info("Hello from Futhark!"); - ModItems.initialize(); + ModItems.init(); + ModBlocks.init(); + ModItemGroups.init(); UseBlockCallback.EVENT.register(((player, world, hand, hitResult) -> { LOGGER.info(hand.toString()); diff --git a/src/main/java/com/futhark/FutharkModClient.java b/src/main/java/com/futhark/FutharkModClient.java index 70d0d82..184ee10 100644 --- a/src/main/java/com/futhark/FutharkModClient.java +++ b/src/main/java/com/futhark/FutharkModClient.java @@ -1,6 +1,8 @@ package com.futhark; import net.fabricmc.api.ClientModInitializer; +import net.fabricmc.fabric.api.client.rendering.v1.EntityRendererRegistry; +import net.minecraft.client.render.entity.MinecartEntityRenderer; public class FutharkModClient implements ClientModInitializer{ @Override diff --git a/src/main/java/com/futhark/block/ModBlocks.java b/src/main/java/com/futhark/block/ModBlocks.java index 015bfe5..f70105b 100644 --- a/src/main/java/com/futhark/block/ModBlocks.java +++ b/src/main/java/com/futhark/block/ModBlocks.java @@ -1,8 +1,36 @@ package com.futhark.block; -import net.minecraft.block.Block; + +import com.futhark.Futhark; +import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap; +import net.fabricmc.fabric.api.item.v1.FabricItemSettings; +import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.minecraft.block.*; +import net.minecraft.client.render.RenderLayer; +import net.minecraft.item.BlockItem; +import net.minecraft.item.Item; +import net.minecraft.registry.Registries; +import net.minecraft.registry.Registry; +import net.minecraft.sound.BlockSoundGroup; +import net.minecraft.util.Identifier; public class ModBlocks extends Block { public ModBlocks(Settings settings) { - super(settings); + super(settings); + } + + public static final Block JAFFA_JAM_BLOCK = register("jaffa_jam_block", + new SlimeBlock(FabricBlockSettings.copyOf(Blocks.SLIME_BLOCK).mapColor(MapColor.ORANGE).nonOpaque())); + + public static final Block RUNE_BLOCK = register("rune_block", + new RuneBlock(FabricBlockSettings.copyOf(Blocks.STONE))); + + public static Block register(String id, Block block) { + Registry.register(Registries.ITEM, new Identifier(Futhark.MOD_ID, id), new BlockItem(block, new FabricItemSettings())); + return Registry.register(Registries.BLOCK, new Identifier(Futhark.MOD_ID, id), block); + } + + public static void init() { + Futhark.LOGGER.info("Registering Blocks"); + BlockRenderLayerMap.INSTANCE.putBlock(ModBlocks.JAFFA_JAM_BLOCK, RenderLayer.getTranslucent()); } } diff --git a/src/main/java/com/futhark/block/RuneBlock.java b/src/main/java/com/futhark/block/RuneBlock.java new file mode 100644 index 0000000..7be1f63 --- /dev/null +++ b/src/main/java/com/futhark/block/RuneBlock.java @@ -0,0 +1,25 @@ +package com.futhark.block; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.sound.SoundCategory; +import net.minecraft.sound.SoundEvents; +import net.minecraft.util.ActionResult; +import net.minecraft.util.Hand; +import net.minecraft.util.hit.BlockHitResult; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; + +public class RuneBlock extends Block { + + public RuneBlock(Settings settings) { + super(settings); + } + + @Override + public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) { + world.playSound(player, pos, SoundEvents.BLOCK_NOTE_BLOCK_IRON_XYLOPHONE.value(), SoundCategory.BLOCKS, 1f, 1f); + return ActionResult.SUCCESS; + } +} diff --git a/src/main/java/com/futhark/item/ModItemGroups.java b/src/main/java/com/futhark/item/ModItemGroups.java index fca3189..9135a56 100644 --- a/src/main/java/com/futhark/item/ModItemGroups.java +++ b/src/main/java/com/futhark/item/ModItemGroups.java @@ -1,4 +1,30 @@ package com.futhark.item; +import com.futhark.Futhark; +import com.futhark.block.ModBlocks; +import net.fabricmc.fabric.api.itemgroup.v1.FabricItemGroup; +import net.minecraft.item.ItemGroup; +import net.minecraft.item.ItemStack; +import net.minecraft.registry.Registries; +import net.minecraft.registry.Registry; +import net.minecraft.text.Text; +import net.minecraft.util.Identifier; + public class ModItemGroups { + public static final ItemGroup FUTHARK_GROUP = Registry.register(Registries.ITEM_GROUP, + new Identifier(Futhark.MOD_ID, "jaffa"), + FabricItemGroup.builder().displayName(Text.translatable("itemgroup.jaffa")) + .icon(() -> new ItemStack(ModItems.JAFFA_CAKE)) + .entries(((displayContext, entries) -> { + entries.add(ModBlocks.JAFFA_JAM_BLOCK); + entries.add(ModBlocks.RUNE_BLOCK); + entries.add(ModItems.JAFFA_SPONGE); + entries.add(ModItems.JAFFA_JAM); + entries.add(ModItems.JAFFA_CAKE); + entries.add(ModItems.RUNIC_CHISEL); + })).build()); + + public static void init() { + Futhark.LOGGER.info("Registering Item Groups"); + } } diff --git a/src/main/java/com/futhark/item/ModItems.java b/src/main/java/com/futhark/item/ModItems.java index 4102cf9..c1c104c 100644 --- a/src/main/java/com/futhark/item/ModItems.java +++ b/src/main/java/com/futhark/item/ModItems.java @@ -22,25 +22,48 @@ public class ModItems extends Item { public static final FoodComponent JAFFA_CAKE_FOOD_COMPONENT = new FoodComponent.Builder() .alwaysEdible() .snack() - .hunger(10) - .saturationModifier(1.5f) + .hunger(6) + .saturationModifier(0.8f) // The duration is in ticks, 20 ticks = 1 second .statusEffect(new StatusEffectInstance(StatusEffects.HASTE, 120 * 20, 2), 1.0f) .build(); + public static final FoodComponent UNFINISHED_JAFFA_FOOD_COMPONENT = new FoodComponent.Builder() + .snack() + .hunger(1) + .build(); + public static final Item JAFFA_CAKE = register( - new Item(new FabricItemSettings().food(JAFFA_CAKE_FOOD_COMPONENT)), - "jaffa_cake" + "jaffa_cake", + new Item(new FabricItemSettings().food(JAFFA_CAKE_FOOD_COMPONENT)) ); - public static Item register(Item item, String id) { + public static final Item JAFFA_JAM = register( + "jaffa_jam", + new Item(new FabricItemSettings().food(UNFINISHED_JAFFA_FOOD_COMPONENT)) + ); + + public static final Item JAFFA_SPONGE = register( + "jaffa_sponge", + new Item(new FabricItemSettings().food(UNFINISHED_JAFFA_FOOD_COMPONENT)) + ); + + public static final Item RUNIC_CHISEL = register( + "runic_chisel", + new RunicChiselItem(new FabricItemSettings().maxDamage(64).fireproof()) + ); + + public static Item register(String id, Item item) { return Registry.register(Registries.ITEM, new Identifier(Futhark.MOD_ID, id), item); } - public static void initialize() { + public static void init() { Futhark.LOGGER.info("Registering Items"); ItemGroupEvents.modifyEntriesEvent(ItemGroups.FOOD_AND_DRINK).register((itemGroup) -> itemGroup.add(ModItems.JAFFA_CAKE)); CompostingChanceRegistry.INSTANCE.add(ModItems.JAFFA_CAKE, 1.0f); FuelRegistry.INSTANCE.add(ModItems.JAFFA_CAKE, 30 * 20); + + ItemGroupEvents.modifyEntriesEvent(ItemGroups.INGREDIENTS).register((itemGroup) -> itemGroup.add(ModItems.JAFFA_JAM)); + ItemGroupEvents.modifyEntriesEvent(ItemGroups.INGREDIENTS).register((itemGroup) -> itemGroup.add(ModItems.JAFFA_SPONGE)); } } diff --git a/src/main/java/com/futhark/item/RunicChiselItem.java b/src/main/java/com/futhark/item/RunicChiselItem.java new file mode 100644 index 0000000..b310eed --- /dev/null +++ b/src/main/java/com/futhark/item/RunicChiselItem.java @@ -0,0 +1,34 @@ +package com.futhark.item; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.item.Item; +import net.minecraft.item.ItemUsageContext; +import net.minecraft.util.ActionResult; +import net.minecraft.util.math.BlockPos; + +import static com.futhark.block.ModBlocks.RUNE_BLOCK; + +public class RunicChiselItem extends Item { + public RunicChiselItem(Settings settings) { + super(settings); + } + + @Override + public ActionResult useOnBlock(ItemUsageContext context) { + if (!context.getWorld().isClient()) { + BlockPos pos = context.getBlockPos(); + PlayerEntity player = context.getPlayer(); + BlockState state = context.getWorld().getBlockState(pos); + if (state.isOf(Blocks.STONE)) { + context.getWorld().setBlockState(pos, RUNE_BLOCK.getDefaultState()); + } else if (state.isOf(RUNE_BLOCK)) { + context.getWorld().setBlockState(pos, Blocks.STONE.getDefaultState()); + } + } + + return ActionResult.SUCCESS; + } +} diff --git a/src/main/resources/assets/futhark/blockstates/jaffa_jam_block.json b/src/main/resources/assets/futhark/blockstates/jaffa_jam_block.json index e69de29..e31a09c 100644 --- a/src/main/resources/assets/futhark/blockstates/jaffa_jam_block.json +++ b/src/main/resources/assets/futhark/blockstates/jaffa_jam_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "futhark:block/jaffa_jam_block" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/futhark/blockstates/rune_block.json b/src/main/resources/assets/futhark/blockstates/rune_block.json new file mode 100644 index 0000000..db84bca --- /dev/null +++ b/src/main/resources/assets/futhark/blockstates/rune_block.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "futhark:block/rune_block" + } + } +} \ No newline at end of file diff --git a/src/main/resources/assets/futhark/icon.png~ b/src/main/resources/assets/futhark/icon.png~ deleted file mode 100644 index 6573f4dadb127f6f9015e3535446a35ecfe6a485..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4322 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 Q%>V!Z07*qoM6N<$f`la>l>h($ diff --git a/src/main/resources/assets/futhark/lang/en_us.json b/src/main/resources/assets/futhark/lang/en_us.json index f19b304..deb99af 100644 --- a/src/main/resources/assets/futhark/lang/en_us.json +++ b/src/main/resources/assets/futhark/lang/en_us.json @@ -1,3 +1,11 @@ { - "item.futhark.jaffa_cake": "Jaffa Cake" -} \ No newline at end of file + "itemgroup.jaffa": "Futhark", + + "item.futhark.jaffa_cake": "Jaffa Cake", + "item.futhark.jaffa_jam": "Jaffa Jam", + "item.futhark.jaffa_sponge": "Jaffa Sponge", + "item.futhark.runic_chisel": "Runic Chisel", + + "block.futhark.jaffa_jam_block": "Block of Jaffa Jam", + "block.futhark.rune_block": "Rune Block" +} diff --git a/src/main/resources/assets/futhark/models/block/jaffa_jam_block.json b/src/main/resources/assets/futhark/models/block/jaffa_jam_block.json index e69de29..c36a42e 100644 --- a/src/main/resources/assets/futhark/models/block/jaffa_jam_block.json +++ b/src/main/resources/assets/futhark/models/block/jaffa_jam_block.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "futhark:block/jaffa_jam_block" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/futhark/models/block/rune_block.json b/src/main/resources/assets/futhark/models/block/rune_block.json new file mode 100644 index 0000000..0e49a0c --- /dev/null +++ b/src/main/resources/assets/futhark/models/block/rune_block.json @@ -0,0 +1,6 @@ +{ + "parent": "block/cube_all", + "textures": { + "all": "futhark:block/rune_block" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/futhark/models/item/jaffa_jam.json b/src/main/resources/assets/futhark/models/item/jaffa_jam.json index d77e653..a6e5346 100644 --- a/src/main/resources/assets/futhark/models/item/jaffa_jam.json +++ b/src/main/resources/assets/futhark/models/item/jaffa_jam.json @@ -1,6 +1,6 @@ { "parent": "item/generated", "textures": { - "layer0": "futhark:item/jaffa_cake" + "layer0": "futhark:item/jaffa_jam" } } \ No newline at end of file diff --git a/src/main/resources/assets/futhark/models/item/jaffa_jam_block.json b/src/main/resources/assets/futhark/models/item/jaffa_jam_block.json index c36a42e..9e8d42a 100644 --- a/src/main/resources/assets/futhark/models/item/jaffa_jam_block.json +++ b/src/main/resources/assets/futhark/models/item/jaffa_jam_block.json @@ -1,6 +1,3 @@ { - "parent": "block/cube_all", - "textures": { - "all": "futhark:block/jaffa_jam_block" - } + "parent": "futhark:block/jaffa_jam_block" } \ No newline at end of file diff --git a/src/main/resources/assets/futhark/models/item/rune_block.json b/src/main/resources/assets/futhark/models/item/rune_block.json new file mode 100644 index 0000000..c1c5fc4 --- /dev/null +++ b/src/main/resources/assets/futhark/models/item/rune_block.json @@ -0,0 +1,3 @@ +{ + "parent": "futhark:block/rune_block" +} \ No newline at end of file diff --git a/src/main/resources/assets/futhark/models/item/runic_chisel.json b/src/main/resources/assets/futhark/models/item/runic_chisel.json new file mode 100644 index 0000000..8515169 --- /dev/null +++ b/src/main/resources/assets/futhark/models/item/runic_chisel.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "futhark:item/runic_chisel" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/futhark/textures/block/jaffa_cake.png b/src/main/resources/assets/futhark/textures/block/jaffa_jam_block.png similarity index 89% rename from src/main/resources/assets/futhark/textures/block/jaffa_cake.png rename to src/main/resources/assets/futhark/textures/block/jaffa_jam_block.png index 737b4fd044d4c6a70ebdf822b70b1318a06f1e9b..16518ce20d2164f0088aef4f67777908fe846526 100644 GIT binary patch delta 555 zcmV+`0@VGHEygUcClr4QNklObN&ezk5(BfO`;AP6 zDhf1uOK-T}KY#qf^YY{PdPO}?^wIF=R*_P|wnTdl7q1$<*srqRv9h4MjPtB$^*}iR z7cydWSW>`)2ecabXUK z!Qo{g*WNjlyIp^R9|c19DD|lh@ICXLOF{^w{nWtVvdOVbYM-^UnHKt~lHA!cq0(Xv zmYt%|+7#Uo*hN7Evo&R5m_P!nM(H7o^)#`AhRimzQCmLgaSVwi>GIh3Vol=esJ^a; z^1th&Xu2QgkO~$~MLD()`vx4FrVay@*}=LY3cd>~TDkG#@l=08 zY_&4?p03&JL+L+?pjAb*i1la;YOFvC8inZ@kNNr|+qK$A`ERij+Clr5GNkl5Lp7==&nXOfxDhtke0Y^~OXErp7ULP1f% zjUX1f@)!66-09MV;#Svgq;BgUa4Qw7AYDiW#f2!0rFEv0PBOW<_xh$Vg>hR0feXnw zdCqzB0w=tJfA!0A(^UlGdg1*Y#jxm^sKTS;ynk=3-Kd1&_S=8YJ7%OiHn@7>4Ei>> z=sg~C&R5gi)SP#Sw1$=nc~SUK>0dkuUKG|od$;ptuQcH!r|DL6i8Jxs0k=sU)hjUs zV`xoILMjE54+HCL%>&D!RCcc2-um9@7&bESp51pI*Q|2{z)+1sNTI+PN3VB)bF*hL zJ2O)fMOvwQTFQSbrS{ms6#jB<3YHFYOf?%ITu4shZWjSX86+vv!vRuTMFC5PW}^Wjfp-?1S|S0_a4;fcLO_+hgnF?w5Tgj85b`k3L2aY6y9Yr+PiH|C zTuLZ1Vb(%QjfmoTTbv#vp!W|-JQgtYl7#L73Zf_rq|ARP$JOoj5XTXyq_W^|V+6HG z{>Yu1&aESSkE|Hd_<@5};b`vOnXlXr-i#U4YiwN$zH*p})kw#@#RdLQ6i>JzeYIY#AWLZqx!;Sq zd0f$cYwT`ETDviy1UCERoSPaNd)^o$BN}BW#nChrqkdfaQ}Oi4sR_6KbmK!-8jS72 zgS#uphe>n4m){&@Zp~QCOCg)F4tAwvn_(zkHR|EVM=v*zcj1J)_#fnd0f;>OD7kD8 Q5!bflBUF=_MT_&*}W7bJ5o~c{hb-T<93bikP|71v=_uT z%JhnTa8j}NF=(k}Nz zttsTojECkCveq;+kBBvY%(PW&ZZEC*&(_w$SL6qg+l*Gy4?!4qlqn-i&C+7gjU?-!A`jqyv!TLoKN$eS50 zS8Ee#vwMqt5;bl{E9X;4JFW4kC4`!5MoZZeMA{6^iKrL9i0FyZy~kG|M2{!blPW<_ zkDl0*@|;Z!)2@4h`IS-P(9t6&X4G(xCtvz{ESefyT|4xX{L&l2F-hMg)r|T%KF_Qx z?3Y^WGSA*-)iGx-*8Elw<==kEeHSE$$x311T_d7mY z(d%^7;uE2f?M@Etw=?&=v~y8?u72AG^PkDyJ6+EV&!2Xx{P4_QR^h}epKj`#AIWZQKOueIzGdsCXIA$~jyiav%fTx+?zFl3l&h+D z?kauHX)=zBja(5HxTJJ#*K->Ncl>*iqt|-jkHlGhFAT_Cu;l2N`Gr@waif>oYQm)( z2Xl62+s}wmadpK-MXn=`;cRK}>aGXgoVq=FVgGA`_y1F!R**O5ki@RPIc<52A-W)- zBKFBUgVwJM-*KuS-o7ey{DyW<1?V`JB4*aSva97aCkhHZmu5wpV-{@}3d)!>j zwI8_hrONb8rRh@=vqN^v;)RomS$mF!ebz5D%wAgO2rj6t{x;!SO0L5`HfK_mJz;I) z+b{g}d6R%}M`@g9bxr`O4$_NXoOq4jh6mvq(@)@}U0&z9?Nbq}nm?4C@H z9r$yxz1-NjKA@`HHRbX#VS8%PmsxwtcFg?Z_9DmBp0$p&h~%=L!Xxd2OFo>{`^f&s cHeA=OdHIQ?tcVpN9MCce@k!<%229TR7xs!4u>b%7 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/futhark/textures/block/rune_block.png b/src/main/resources/assets/futhark/textures/block/rune_block.png new file mode 100644 index 0000000000000000000000000000000000000000..855df6c1bd1f04c7178ec92af81fc5f512f1391a GIT binary patch literal 594 zcmV-Y0?Kzz2%{A`5%U%NhZEZf(eBzj%#q;6pM=w zh@xkVMk`oY=t8Lk98*@|VPUMi*CZeu!~YSa$-S)@^sxDG@F;GR_}3qTt~0> z78@JiFhBoBTZsXQ^^Az5a*`w{mw%$s_=0ZN$KGB8cXt7nmVRJu?OfNMnyye1RjE`= z%Q&M_=ycv;e}9*C@Vvj++B(w$UurRP_6V?$W)4J$G$n)~*4J+|lb#OzrA6&>p!m!T z645S|O56bwl)6wXh6sWq_KTvt888X7byE~9vp{d^LN1r%nUE>9?}-H&-EkLW5@(8g zQP|!Ix+k_|v={%UHije1Bug}zWVM5*#hjR>vKiR)sR1nFYb0PYQ$X{f*XUsu{c(>EZAJ|;PqFAZ!?>~Qtv)|WRRJDnRJhCJo^&tg_zz0U>X-- zBHd_I9T@&P(#*-l8~^(2he>KV|Ns3HU}a-`JY978LPc2zrsjVz1`OArxL{+RAU8vHKSZ9NBKY=WChwij1Pxey;5x%MX2v7G_*t*B z%do!WmScU#BE|j;oF3S|U&LkrMxcP=J@s8k3fB(?)Bpef@$R?W6J>PS&21t7nq5nZ q9Wc~mO`g~i4>rw|rXlL+2LNkGjd!8Du89Bu002ovPDBK*LSTXlJjLt) delta 631 zcmV--0*L*mE0Ha*CKP`HRY^oaR5(wqlTB;XP#A?z?q`yj&WF;@ENrdTg)N1Oi$XzB z!Hpmmy7CwJ1KjD-h2mD%ZlrGOA8;!bs~}xS1;vFZjHPv^lTI?Zx%c{}Fokhj1Az<4 zIeE@`^8zQlf`9ePbJJA>;(Foz9mTNdnW(~}q9Mvl^ z1Y>ATPC_aLlMe&yY|R79p;UIR-QN1%=@>RL@Sfdw9@ngM1i(;@LP(*&8Aq>ofOE5F zF*`F;5=C06ds=_WE2Z|>z!d&+ZVHwTb4)cGAY4dJ;%*lKMHwV1(!&8*5YRK#jzWEF z%z(1DheZKPhi0PzB7t`noLV9Q(Qq&#V?sccy@YzPG!UZ*p%C&g&p~aYv%3dDLQiKw z6kJLuGGW$2N{xu(d0U(wBcS&WN<0=Y^pb?`0Sclh3#5O{D96?9_7KMrsHC#sZ({_t zNdCy3o6fBxe2=Uc()fWS&ET^Pj?AMth9>+XOTF-Bd(2=WVy~^&OR?gWer}ME;CH`| z{lVZUWodM2Vc}@*-kGo558jL!)N5>A3%+ugiPcEQyu}6nP!vzNA$_%8tsqNj3c25l zxp`dCers>+M_Rivp9D7h R59I&=002ovPDHLkV1hgtFv0); diff --git a/src/main/resources/assets/futhark/textures/item/jaffa_jam_block.png b/src/main/resources/assets/futhark/textures/item/jaffa_jam_block.png new file mode 100644 index 0000000000000000000000000000000000000000..16518ce20d2164f0088aef4f67777908fe846526 GIT binary patch literal 5702 zcmdUzdrTBZ9LE=5;98JSs*SM`ZA}b@W|^6r-D|btg;NM36o>_FQ}?*tg3*A2f;1@+ zU!^{(R*BVUTcr=<6NryuRPc|gv0^n=55eMLTZ6T!dRm*JwZGZrdam9DxC-L#?acmW zXTHDB_c!;~lqOG}7|ajhIgSgCkBd!#K9oH{{h%G@dLTpBKQ}HTkK+b}u_xf{r4R1G zpqg(@&rgvHB68>CsM#}>i2V7vN`z9Ft#UkT`3UX8h$kjdqGn13xQLmUkqj>qi{Ofe zAA%O^@9r_JZ)^C=D^6X4j8na4%+Afv_(1zp7)xia8@qIL!;$DSfV`6#HuKX0*$7a+Nen+NT7(Cs0dyaY)42@ zZ8n>V5R98CVIw9Hn}{6?#4ZX1!(6BfPb5(mVWA0&GEq!~LJxu%!y<&RiWNb|nWBVc zC?hPSc9x7n)mTh3sUl+bjb|Bv23#`^EbAZso34>~WI)2EF-gR3g8BfD$}o_?V*;gO zkAUp@=7|)84@Lro%!Fx#QY@PgA%s4{p?_m25-$?C1uP>KsiJlvMFd);Xt_kB;%IDU zH@pduLd6JLyPg1gEJ7_s!qaF`LUv||eb+f2CIJknEmRIsvnYTyGZaAqvNlpE3xbp; zAYz_jOTdVJ8;Zyl!lhMGdYE2It$3=-g9RuUwS%#?Ma+y=GbprM-u(^Bgca8eTMl-> zO&cM$^I#_$fV6F9mO#)@UVZyv^szsHy9~My-figr_D@U5U9-pepBB;MB<_)RiF})J zOXz*OLdNO7qplR{s2L+&R}vXBbu`k5{4--r(NnB>yz~?zPn|kVUN?-!A`jqyv!TLrsY$eS4> zS9cQ`vwMqt618u}DCbkiIIaDtD}*|0#z@%}M8*uAiI^9^h}enJqsLbu#EvKQlPXcv zkDmBub#XPv_2T1W$EQh2iK!WLHpYZs&xn>PPM0nF^%ZmcKh5c3y{pPwS4>(Q$&;dl zoC8hcitinD-MaEuk#%g+?K3y7PFbCDbYJZIA%k}hIpo+~*;G;a`N8F`9a(o`%mIUu zEk8Y_W?|s|)|Yao{hTquwLQ2ppwwEkXW`lrWe&%6=b;PzXZ&_N{>OkX16qULmKGE? z6%0+x8)GSU$OQw=6G?L1-w?R+wNSKw&H2NFx6j>rwBSL>l~Gbr%|z#_iiXgobtRuH zE?D(KnNr)-(7S2Sh`F2N7G0dZbDrza`R~3y_F~cE-wN7RDg`do8557|}tgq$ns5{$2Zj5zpO0Wc#-#=G#x$;ECq#2*>t@?D(-`mzS z)}t@Z+JehAZTaD1_@z*Xb$p*HlOnH=>9u`A%kX7)NX5b>-_xo$r@hfK`?=DQEw>zZ zZHdj-zB#;W>8)DlYWi+apVxnREAmuC_6b*5aNh|H*{?>84oCILE%So2cA_!Y@(ZW+ zU)NxF)-8%$Fy;8psF_JcJAS|Y=Q2zA$IYX&s)t=&#SfZnHSZhP+HdH_uR?mStFNsd z&L18ydg`|~uiQ*4w#?j%?rz@InCxn`Cd?10J9%+^bK`OaSM;gxWl0#9D15Z{kJPwX zYVnp8xv6P+&Id_p^}Az7hPjT!R0m>|mA9vAYtFeD)i(y-TojUCx?~_bDdys>lVf*T HrkDH+jEol! literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/futhark/textures/item/runic_chisel.png b/src/main/resources/assets/futhark/textures/item/runic_chisel.png new file mode 100644 index 0000000000000000000000000000000000000000..b037ab181b7b91c1e7883471e7e2308358bd6827 GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9GGLLkg|>2BR0px{;lh7|>X{ye3?9asuL7?$nJm8Tw|^P7qA(QIR7yYvQ= z)7}L}ds5BQBlcFA#%+~&)?iY;Z1w-^6CSJCKG3-ICa&h+{+9DKi*nsO+5d%J|95{! zd9!0f@PvoQ7O!{tIaBgkY%f`*7szjXXK!rGefV_w zdda-Cd}>j~9{SuJ6~Eu99*$S2&CiwaoYm>qX%fo8uxM(~SzA?B9iRsoJYD@<);T3K F0RYXSXvP2l literal 0 HcmV?d00001 diff --git a/src/main/resources/data/futhark/loot_tables/blocks/jaffa_jam_block.json b/src/main/resources/data/futhark/loot_tables/blocks/jaffa_jam_block.json new file mode 100644 index 0000000..9c25b8d --- /dev/null +++ b/src/main/resources/data/futhark/loot_tables/blocks/jaffa_jam_block.json @@ -0,0 +1,20 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "futhark:jaffa_jam_block" + } + ], + "rolls": 1.0 + } + ] +} \ No newline at end of file diff --git a/src/main/resources/data/futhark/recipes/jaffa_jam_block.json b/src/main/resources/data/futhark/recipes/jaffa_jam_block.json new file mode 100644 index 0000000..64443a7 --- /dev/null +++ b/src/main/resources/data/futhark/recipes/jaffa_jam_block.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": { + "item": "futhark:jaffa_jam" + } + }, + "pattern": [ + "##", + "##" + ], + "result": { + "item": "futhark:jaffa_jam_block" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/main/resources/data/futhark/recipes/jaffa_jam_bottle.json b/src/main/resources/data/futhark/recipes/jaffa_jam_bottle.json new file mode 100644 index 0000000..a54e8c7 --- /dev/null +++ b/src/main/resources/data/futhark/recipes/jaffa_jam_bottle.json @@ -0,0 +1,25 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "misc", + "ingredients": [ + { + "item": "futhark:jaffa_jam_block" + }, + { + "item": "minecraft:glass_bottle" + }, + { + "item": "minecraft:glass_bottle" + }, + { + "item": "minecraft:glass_bottle" + }, + { + "item": "minecraft:glass_bottle" + } + ], + "result": { + "count": 4, + "item": "futhark:jaffa_jam" + } +} \ No newline at end of file diff --git a/src/main/resources/data/futhark/recipes/runic_chisel.json b/src/main/resources/data/futhark/recipes/runic_chisel.json new file mode 100644 index 0000000..d345904 --- /dev/null +++ b/src/main/resources/data/futhark/recipes/runic_chisel.json @@ -0,0 +1,24 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "equipment", + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "item": "minecraft:iron_ingot" + }, + "L": { + "item": "minecraft:lapis_lazuli" + } + }, + "pattern": [ + "X ", + " # ", + " L" + ], + "result": { + "item": "futhark.runic_chisel" + }, + "show_notification": true +} \ No newline at end of file diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 39af29d..4420eb0 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -3,7 +3,7 @@ "id": "futhark", "version": "${version}", "name": "futhark", - "description": "A magic mod inspired by the Bukkit plugin Runecraft", + "description": "A minecraft alpha era inspired mod adding old functionality, nostalgic items, and a magic system inspired by the Bukkit plugin Runecraft", "authors": [ "zongor" ], @@ -26,7 +26,7 @@ "futhark.mixins.json" ], "depends": { - "fabricloader": ">=0.16.0", + "fabricloader": ">=0.15.1", "minecraft": "~1.20.1", "java": ">=17", "fabric-api": "*"