From f06ceb345c4d85d5f4dab5456965eecf95828de4 Mon Sep 17 00:00:00 2001 From: CosmoOrSth <79050675+CosmoOrSth@users.noreply.github.com> Date: Fri, 31 May 2024 20:44:23 +0530 Subject: [PATCH] partial implementation of cotton crop - all functionality except loot table for the cotton crop block has been added - textures should be considered placeholders and are subject to change --- settings.gradle | 2 +- .../arcteam/terraoriginum/TerraOriginum.java | 6 ++ .../terraoriginum/blocks/cottonCropBlock.java | 49 +++++++++++++ .../terraoriginum/client/layerRenderer.java | 4 ++ .../terraoriginum/items/cottonItems.java | 19 +++++ .../blockstates/cotton_crop_block.json | 29 ++++++++ .../assets/terraoriginum/lang/en_us.json | 3 + .../models/block/cotton_crop_stage0.json | 7 ++ .../models/block/cotton_crop_stage1.json | 7 ++ .../models/block/cotton_crop_stage2.json | 7 ++ .../models/block/cotton_crop_stage3.json | 7 ++ .../models/item/cotton_ball.json | 6 ++ .../models/item/cotton_seeds.json | 6 ++ .../block/cotton_crop_block_stage0.png | Bin 0 -> 228 bytes .../block/cotton_crop_block_stage1.png | Bin 0 -> 316 bytes .../block/cotton_crop_block_stage2.png | Bin 0 -> 430 bytes .../block/cotton_crop_block_stage3.png | Bin 0 -> 294 bytes .../textures/item/cotton_ball.png | Bin 0 -> 248 bytes .../textures/item/cotton_seeds.png | Bin 0 -> 200 bytes .../loot_tables/cotton_crop_block.json | 68 ++++++++++++++++++ 20 files changed, 219 insertions(+), 1 deletion(-) create mode 100644 src/main/java/net/arcmods/arcteam/terraoriginum/blocks/cottonCropBlock.java create mode 100644 src/main/java/net/arcmods/arcteam/terraoriginum/items/cottonItems.java create mode 100644 src/main/resources/assets/terraoriginum/blockstates/cotton_crop_block.json create mode 100644 src/main/resources/assets/terraoriginum/models/block/cotton_crop_stage0.json create mode 100644 src/main/resources/assets/terraoriginum/models/block/cotton_crop_stage1.json create mode 100644 src/main/resources/assets/terraoriginum/models/block/cotton_crop_stage2.json create mode 100644 src/main/resources/assets/terraoriginum/models/block/cotton_crop_stage3.json create mode 100644 src/main/resources/assets/terraoriginum/models/item/cotton_ball.json create mode 100644 src/main/resources/assets/terraoriginum/models/item/cotton_seeds.json create mode 100644 src/main/resources/assets/terraoriginum/textures/block/cotton_crop_block_stage0.png create mode 100644 src/main/resources/assets/terraoriginum/textures/block/cotton_crop_block_stage1.png create mode 100644 src/main/resources/assets/terraoriginum/textures/block/cotton_crop_block_stage2.png create mode 100644 src/main/resources/assets/terraoriginum/textures/block/cotton_crop_block_stage3.png create mode 100644 src/main/resources/assets/terraoriginum/textures/item/cotton_ball.png create mode 100644 src/main/resources/assets/terraoriginum/textures/item/cotton_seeds.png create mode 100644 src/main/resources/data/terraoriginum/loot_tables/cotton_crop_block.json diff --git a/settings.gradle b/settings.gradle index 5b60df3..27e3d10 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,6 +1,6 @@ pluginManagement { repositories { - jcenter() + mavenCentral() maven { name = 'Fabric' url = 'https://maven.fabricmc.net/' diff --git a/src/main/java/net/arcmods/arcteam/terraoriginum/TerraOriginum.java b/src/main/java/net/arcmods/arcteam/terraoriginum/TerraOriginum.java index 5184bd1..43f5cd5 100644 --- a/src/main/java/net/arcmods/arcteam/terraoriginum/TerraOriginum.java +++ b/src/main/java/net/arcmods/arcteam/terraoriginum/TerraOriginum.java @@ -1,6 +1,8 @@ package net.arcmods.arcteam.terraoriginum; +import net.arcmods.arcteam.terraoriginum.blocks.cottonCropBlock; import net.arcmods.arcteam.terraoriginum.blocks.crucifix; +import net.arcmods.arcteam.terraoriginum.items.cottonItems; import net.arcmods.arcteam.terraoriginum.items.mync_eye; import net.arcmods.arcteam.terraoriginum.items.umbrella; import net.arcmods.arcteam.terraoriginum.registry.modEnchantments; @@ -22,9 +24,13 @@ public class TerraOriginum implements ModInitializer { mync_eye.register(); modEnchantments.register(); crucifix.register(); + cottonCropBlock.register(); + cottonItems.register(); ItemGroupEvents.modifyEntriesEvent(ItemGroups.TOOLS).register((content) -> content.add(umbrella.UMBRELLA)); ItemGroupEvents.modifyEntriesEvent(ItemGroups.FUNCTIONAL).register((content) -> content.add(crucifix.CRUCIFIX)); + ItemGroupEvents.modifyEntriesEvent(ItemGroups.NATURAL).register((content) -> content.add(cottonItems.COTTON_SEEDS)); + ItemGroupEvents.modifyEntriesEvent(ItemGroups.INGREDIENTS).register((content) -> content.add(cottonItems.COTTON_BALL)); LOGGER.info("man this Origins is " + MOD_ID); } } diff --git a/src/main/java/net/arcmods/arcteam/terraoriginum/blocks/cottonCropBlock.java b/src/main/java/net/arcmods/arcteam/terraoriginum/blocks/cottonCropBlock.java new file mode 100644 index 0000000..f854681 --- /dev/null +++ b/src/main/java/net/arcmods/arcteam/terraoriginum/blocks/cottonCropBlock.java @@ -0,0 +1,49 @@ +package net.arcmods.arcteam.terraoriginum.blocks; + +import net.arcmods.arcteam.terraoriginum.items.cottonItems; +import net.minecraft.block.AbstractBlock; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.block.CropBlock; +import net.minecraft.block.ShapeContext; +import net.minecraft.item.ItemConvertible; +import net.minecraft.registry.Registries; +import net.minecraft.registry.Registry; +import net.minecraft.sound.BlockSoundGroup; +import net.minecraft.util.Identifier; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.shape.VoxelShape; +import net.minecraft.world.BlockView; + +public class cottonCropBlock extends CropBlock{ + + private static final VoxelShape[] AGE_TO_SHAPE = new VoxelShape[]{Block.createCuboidShape(0.0D, 0.0D, 0.0D, 16.0D, 2.0D, 16.0D), + Block.createCuboidShape(0.0D, 0.0D, 0.0D, 16.0D, 3.0D, 16.0D), + Block.createCuboidShape(0.0D, 0.0D, 0.0D, 16.0D, 4.0D, 16.0D), + Block.createCuboidShape(0.0D, 0.0D, 0.0D, 16.0D, 5.0D, 16.0D), + Block.createCuboidShape(0.0D, 0.0D, 0.0D, 16.0D, 6.0D, 16.0D), + Block.createCuboidShape(0.0D, 0.0D, 0.0D, 16.0D, 7.0D, 16.0D), + Block.createCuboidShape(0.0D, 0.0D, 0.0D, 16.0D, 8.0D, 16.0D), + Block.createCuboidShape(0.0D, 0.0D, 0.0D, 16.0D, 9.0D, 16.0D) + }; + + public cottonCropBlock(AbstractBlock.Settings settings) { + super(settings); + } + + public ItemConvertible getSeedsItem() { + return cottonItems.COTTON_SEEDS; + } + + public VoxelShape getOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context) { + return AGE_TO_SHAPE[(Integer)state.get(this.getAgeProperty())]; + } + + public static final CropBlock COTTON_CROP_BLOCK = new CropBlock(AbstractBlock.Settings.create().nonOpaque().noCollision().ticksRandomly().breakInstantly().sounds(BlockSoundGroup.CROP)); + + public static void register() { + Registry.register(Registries.BLOCK, new Identifier("terraoriginum", "cotton_crop_block"), COTTON_CROP_BLOCK); + } + + +} diff --git a/src/main/java/net/arcmods/arcteam/terraoriginum/client/layerRenderer.java b/src/main/java/net/arcmods/arcteam/terraoriginum/client/layerRenderer.java index 0eab116..25d4ec1 100644 --- a/src/main/java/net/arcmods/arcteam/terraoriginum/client/layerRenderer.java +++ b/src/main/java/net/arcmods/arcteam/terraoriginum/client/layerRenderer.java @@ -1,13 +1,17 @@ package net.arcmods.arcteam.terraoriginum.client; +import net.arcmods.arcteam.terraoriginum.blocks.cottonCropBlock; import net.arcmods.arcteam.terraoriginum.items.umbrella; import net.fabricmc.api.ClientModInitializer; +import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap; +import net.minecraft.client.render.RenderLayer; public class layerRenderer implements ClientModInitializer { @Override public void onInitializeClient() { umbrella.registerRenderLayers(); + BlockRenderLayerMap.INSTANCE.putBlocks(RenderLayer.getCutout(), cottonCropBlock.COTTON_CROP_BLOCK); } } diff --git a/src/main/java/net/arcmods/arcteam/terraoriginum/items/cottonItems.java b/src/main/java/net/arcmods/arcteam/terraoriginum/items/cottonItems.java new file mode 100644 index 0000000..598fec0 --- /dev/null +++ b/src/main/java/net/arcmods/arcteam/terraoriginum/items/cottonItems.java @@ -0,0 +1,19 @@ +package net.arcmods.arcteam.terraoriginum.items; + +import net.arcmods.arcteam.terraoriginum.blocks.cottonCropBlock; +import net.minecraft.item.AliasedBlockItem; +import net.minecraft.item.Item; +import net.minecraft.registry.Registries; +import net.minecraft.registry.Registry; +import net.minecraft.util.Identifier; + +public class cottonItems { + + public static final Item COTTON_SEEDS = new AliasedBlockItem(cottonCropBlock.COTTON_CROP_BLOCK, new Item.Settings()); + public static final Item COTTON_BALL = new Item(new Item.Settings()); + + public static void register() { + Registry.register(Registries.ITEM, new Identifier("terraoriginum", "cotton_seeds"), COTTON_SEEDS); + Registry.register(Registries.ITEM, new Identifier("terraoriginum", "cotton_ball"), COTTON_BALL); + } +} diff --git a/src/main/resources/assets/terraoriginum/blockstates/cotton_crop_block.json b/src/main/resources/assets/terraoriginum/blockstates/cotton_crop_block.json new file mode 100644 index 0000000..54811bb --- /dev/null +++ b/src/main/resources/assets/terraoriginum/blockstates/cotton_crop_block.json @@ -0,0 +1,29 @@ +{ + "variants": { + "age=0": { + "model": "terraoriginum:block/cotton_crop_stage0" + }, + "age=1": { + "model": "terraoriginum:block/cotton_crop_stage0" + }, + "age=2": { + "model": "terraoriginum:block/cotton_crop_stage1" + }, + "age=3": { + "model": "terraoriginum:block/cotton_crop_stage1" + }, + "age=4": { + "model": "terraoriginum:block/cotton_crop_stage2" + }, + "age=5": { + "model": "terraoriginum:block/cotton_crop_stage2" + }, + "age=6": { + "model": "terraoriginum:block/cotton_crop_stage2" + }, + "age=7": { + "model": "terraoriginum:block/cotton_crop_stage3" + } + } + } + diff --git a/src/main/resources/assets/terraoriginum/lang/en_us.json b/src/main/resources/assets/terraoriginum/lang/en_us.json index b9ccec7..3cfa645 100644 --- a/src/main/resources/assets/terraoriginum/lang/en_us.json +++ b/src/main/resources/assets/terraoriginum/lang/en_us.json @@ -3,6 +3,9 @@ "item.terraoriginum.mync_eye": "you shouldnt have this", "item.terraoriginum.umbrella": "Umbrella", + "item.terraoriginum.cotton_seeds": "Cotton Seeds", + "item.terraoriginum.cotton_ball": "Cotton ball", + "death.attack.lack_of_ectoplasm": "%1$s faded away", "death.attack.lack_of_ectoplasm.player": "%1$s faded away whilst trying to escape %2$s", diff --git a/src/main/resources/assets/terraoriginum/models/block/cotton_crop_stage0.json b/src/main/resources/assets/terraoriginum/models/block/cotton_crop_stage0.json new file mode 100644 index 0000000..d30efc5 --- /dev/null +++ b/src/main/resources/assets/terraoriginum/models/block/cotton_crop_stage0.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "terraoriginum:block/cotton_crop_block_stage0" + } + } + diff --git a/src/main/resources/assets/terraoriginum/models/block/cotton_crop_stage1.json b/src/main/resources/assets/terraoriginum/models/block/cotton_crop_stage1.json new file mode 100644 index 0000000..56163a7 --- /dev/null +++ b/src/main/resources/assets/terraoriginum/models/block/cotton_crop_stage1.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "terraoriginum:block/cotton_crop_block_stage1" + } + } + diff --git a/src/main/resources/assets/terraoriginum/models/block/cotton_crop_stage2.json b/src/main/resources/assets/terraoriginum/models/block/cotton_crop_stage2.json new file mode 100644 index 0000000..e9eaf81 --- /dev/null +++ b/src/main/resources/assets/terraoriginum/models/block/cotton_crop_stage2.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "terraoriginum:block/cotton_crop_block_stage2" + } + } + diff --git a/src/main/resources/assets/terraoriginum/models/block/cotton_crop_stage3.json b/src/main/resources/assets/terraoriginum/models/block/cotton_crop_stage3.json new file mode 100644 index 0000000..744385d --- /dev/null +++ b/src/main/resources/assets/terraoriginum/models/block/cotton_crop_stage3.json @@ -0,0 +1,7 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "terraoriginum:block/cotton_crop_block_stage3" + } + } + diff --git a/src/main/resources/assets/terraoriginum/models/item/cotton_ball.json b/src/main/resources/assets/terraoriginum/models/item/cotton_ball.json new file mode 100644 index 0000000..608bf74 --- /dev/null +++ b/src/main/resources/assets/terraoriginum/models/item/cotton_ball.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "terraoriginum:item/cotton_ball" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/terraoriginum/models/item/cotton_seeds.json b/src/main/resources/assets/terraoriginum/models/item/cotton_seeds.json new file mode 100644 index 0000000..efc5834 --- /dev/null +++ b/src/main/resources/assets/terraoriginum/models/item/cotton_seeds.json @@ -0,0 +1,6 @@ +{ + "parent": "item/generated", + "textures": { + "layer0": "terraoriginum:item/cotton_seeds" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/terraoriginum/textures/block/cotton_crop_block_stage0.png b/src/main/resources/assets/terraoriginum/textures/block/cotton_crop_block_stage0.png new file mode 100644 index 0000000000000000000000000000000000000000..4f65c1460650b2f12ab48bc2acf9a48129ddc4b6 GIT binary patch literal 228 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G|^0G|+7drl@(1_lRFh6E!9N02B3i`MQWAjMV^R=Jk$+22-;|X2^&}CYcBNS%G}50G|-o1S19?H3nZXh8$;Jpk$&kV~i<_FF%950Z+CCW3n+ro)u%F5l}UQ zS+TDqkm4%|@(cct3>aJw+&KZ1;VkfoECwn#48n}Z^H-z*1sgqG978mMZTmTeoE15o zBQNdU`M>n{fpg_DM?Wx0+&eloJZ1Xgxq;IUoXo!8GV`inal@fob3?n{$UTnITC`|I zqnT65RUDA(+JdFAIB#g3N;w$*Qc&90HYS5h137zR&QKbLh*2~7a|y>e~< literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/terraoriginum/textures/block/cotton_crop_block_stage2.png b/src/main/resources/assets/terraoriginum/textures/block/cotton_crop_block_stage2.png new file mode 100644 index 0000000000000000000000000000000000000000..6b3bb542dd9c0c52f5472bb02af71e9677e01dd2 GIT binary patch literal 430 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%LhV0G|+7e`N*-Q3gj=h7d)D1S5w3|NjRoFgUO<1j{pc2{9NlFjz1!#2Yd^ zdi2PKfkBCZL7#ykPM;w_hQUsV!CsWXiig3Rfx&=*!Cr&`XtpT>L$o$aup)z{9Frp( zgTI5Iixz_u8-uqh$U;%h=W0Mor6kBN7-$h8z!0Is%L`P`S>O>_%)r2R7=#&*=dVZs z3eNU)aSYK2w!IK8bjW~*C1A@WC*Hj(i#C7Xue?e4L%*s2*~gr(PkR3o@Nim^ literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/terraoriginum/textures/block/cotton_crop_block_stage3.png b/src/main/resources/assets/terraoriginum/textures/block/cotton_crop_block_stage3.png new file mode 100644 index 0000000000000000000000000000000000000000..ce1b0e7ee922479818f53f7258aa4ba1d96d70b2 GIT binary patch literal 294 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G|s0G|-o1S5tVXI>vQ2469TM~@!;|NkGT1PIPw$#@E+I7)*2f`Nh{z;Lg5 zZzNERv%n*=n1O-sFbFdq&tH)O6m0f%aSYK2w(VyWVm9Pp;&l7-zkm0=t))I{N*Wh! z78?KCXA#P{S_Psa|TNZlPPW>;#nF*_`R~3hCvb}lII_z>T3!Bcf zN>yKn@R`T>-b!CP@TBL+u9n~5-X1@0wf7{8CTBzU%CD0iq)2`cS+H`CP*%V3|MP+o dGtSQBceulnvQ1;(U7&LqJYD@<);T3K0RWyQZn*#e literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/terraoriginum/textures/item/cotton_ball.png b/src/main/resources/assets/terraoriginum/textures/item/cotton_ball.png new file mode 100644 index 0000000000000000000000000000000000000000..1df0fbec9d3b0c96ed9f96ba7ec43c6b1d80ae4b GIT binary patch literal 248 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9F5M?jcysy3fAP;i2$ zi(`nz>Er~7Ef4;#o%i3sXWFy>_5Od_87J{DX0tJ>Fz4y_u_Zssbvvw3IDt`Ji|61B zi`x@Tl%;u+9-FYtc8bwEcwx_tNC6$j&4NeVzYBR7`-wN0q;wb^%w_m^G51)eHBSRi z1FOiU`-wSCvmCb_+QamjY17+^#R6#z9>yKK#k^;-SuQj92yaR%`S*Z@;e3JSOi;grABzB`T8z8=oFJv3 zbK=MUx4-{OtUIjMca{6n9-aU5>;5%|^4%3!({&_5^56bny|y(DZOu$_X^f8PO(uW- z{_THww7))KtHNPNlQT?n*fbbS?HH<6PW)%#Rd`b0#3nG=pUqC6f#J>jP(gJwIc1>J7(8A5T-G@yGywp~&q%cZ literal 0 HcmV?d00001 diff --git a/src/main/resources/data/terraoriginum/loot_tables/cotton_crop_block.json b/src/main/resources/data/terraoriginum/loot_tables/cotton_crop_block.json new file mode 100644 index 0000000..406ce96 --- /dev/null +++ b/src/main/resources/data/terraoriginum/loot_tables/cotton_crop_block.json @@ -0,0 +1,68 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:alternatives", + "children": [ + { + "type": "minecraft:item", + "name": "terraoriginum:cotton_ball", + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "terraoriginum:cotton_crop_block", + "properties": { + "age": "7" + } + } + ] + }, + { + "type": "minecraft:item", + "name": "terraoriginum:cotton_seeds" + } + ] + } + ] + }, + { + "rolls": 1, + "bonus_rolls": 0, + "entries": [ + { + "type": "minecraft:item", + "name": "terraoriginum:cotton_seeds", + "functions": [ + { + "function": "minecraft:apply_bonus", + "enchantment": "minecraft:fortune", + "formula": "minecraft:binomial_with_bonus_count", + "parameters": { + "extra": 3, + "probability": 0.5714286 + } + } + ] + } + ], + "conditions": [ + { + "condition": "minecraft:block_state_property", + "block": "terraoriginum:cotton_crop_block", + "properties": { + "age": "7" + } + } + ] + } + ], + "functions": [ + { + "function": "minecraft:explosion_decay" + } + ] +} \ No newline at end of file