From e572c2c1ea8e6108f023b1accf10988f6a3378bc Mon Sep 17 00:00:00 2001 From: Sollace Date: Thu, 4 Jan 2024 22:41:27 +0100 Subject: [PATCH] Added gold root --- .../com/minelittlepony/unicopia/UTags.java | 1 + .../ability/EarthPonyGrowAbility.java | 38 +++++++++++-- .../unicopia/block/UBlocks.java | 6 +++ .../enchantment/ConsumptionEnchantment.java | 3 +- .../unicopia/blockstates/gold_root.json | 12 +++++ .../resources/assets/unicopia/lang/en_us.json | 1 + .../models/block/gold_root_stage0.json | 6 +++ .../models/block/gold_root_stage1.json | 6 +++ .../models/block/gold_root_stage2.json | 6 +++ .../models/block/gold_root_stage3.json | 6 +++ .../textures/block/gold_root_stage0.png | Bin 0 -> 4282 bytes .../textures/block/gold_root_stage1.png | Bin 0 -> 4375 bytes .../textures/block/gold_root_stage2.png | Bin 0 -> 4452 bytes .../textures/block/gold_root_stage3.png | Bin 0 -> 4522 bytes .../tags/blocks/maintains_farmland.json | 3 +- .../loot_tables/blocks/gold_root.json | 51 ++++++++++++++++++ .../blocks/unaffected_by_grow_ability.json | 6 +++ 17 files changed, 138 insertions(+), 7 deletions(-) create mode 100644 src/main/resources/assets/unicopia/blockstates/gold_root.json create mode 100644 src/main/resources/assets/unicopia/models/block/gold_root_stage0.json create mode 100644 src/main/resources/assets/unicopia/models/block/gold_root_stage1.json create mode 100644 src/main/resources/assets/unicopia/models/block/gold_root_stage2.json create mode 100644 src/main/resources/assets/unicopia/models/block/gold_root_stage3.json create mode 100644 src/main/resources/assets/unicopia/textures/block/gold_root_stage0.png create mode 100644 src/main/resources/assets/unicopia/textures/block/gold_root_stage1.png create mode 100644 src/main/resources/assets/unicopia/textures/block/gold_root_stage2.png create mode 100644 src/main/resources/assets/unicopia/textures/block/gold_root_stage3.png create mode 100644 src/main/resources/data/unicopia/loot_tables/blocks/gold_root.json create mode 100644 src/main/resources/data/unicopia/tags/blocks/unaffected_by_grow_ability.json diff --git a/src/main/java/com/minelittlepony/unicopia/UTags.java b/src/main/java/com/minelittlepony/unicopia/UTags.java index 91b4fcae..9d4a460b 100644 --- a/src/main/java/com/minelittlepony/unicopia/UTags.java +++ b/src/main/java/com/minelittlepony/unicopia/UTags.java @@ -42,6 +42,7 @@ public interface UTags { TagKey CRYSTAL_HEART_BASE = block("crystal_heart_base"); TagKey CRYSTAL_HEART_ORNAMENT = block("crystal_heart_ornament"); + TagKey UNAFFECTED_BY_GROW_ABILITY = block("unaffected_by_grow_ability"); TagKey POLEARM_MINEABLE = block("mineable/polearm"); diff --git a/src/main/java/com/minelittlepony/unicopia/ability/EarthPonyGrowAbility.java b/src/main/java/com/minelittlepony/unicopia/ability/EarthPonyGrowAbility.java index c7e6493b..b69ebae4 100644 --- a/src/main/java/com/minelittlepony/unicopia/ability/EarthPonyGrowAbility.java +++ b/src/main/java/com/minelittlepony/unicopia/ability/EarthPonyGrowAbility.java @@ -1,22 +1,31 @@ package com.minelittlepony.unicopia.ability; import java.util.Optional; +import java.util.function.DoubleSupplier; +import java.util.function.Supplier; import com.minelittlepony.unicopia.Race; +import com.minelittlepony.unicopia.UTags; import com.minelittlepony.unicopia.ability.data.Hit; import com.minelittlepony.unicopia.ability.data.Pos; import com.minelittlepony.unicopia.block.UBlocks; import com.minelittlepony.unicopia.entity.player.Pony; import com.minelittlepony.unicopia.particle.MagicParticleEffect; +import com.minelittlepony.unicopia.particle.ParticleUtils; import com.minelittlepony.unicopia.util.TraceHelper; +import com.minelittlepony.unicopia.util.VecHelper; + import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; +import net.minecraft.block.CarrotsBlock; import net.minecraft.block.FarmlandBlock; import net.minecraft.item.BoneMealItem; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; +import net.minecraft.particle.ParticleTypes; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; +import net.minecraft.util.math.Vec3d; import net.minecraft.world.World; /** @@ -61,7 +70,7 @@ public class EarthPonyGrowAbility implements Ability { for (BlockPos pos : BlockPos.iterate( data.pos().add(-2, -2, -2), data.pos().add( 2, 2, 2))) { - count += applySingle(player.asWorld(), player.asWorld().getBlockState(pos), pos); + count += applySingle(player, player.asWorld(), player.asWorld().getBlockState(pos), pos); } if (count > 0) { @@ -70,7 +79,7 @@ public class EarthPonyGrowAbility implements Ability { return true; } - protected int applySingle(World w, BlockState state, BlockPos pos) { + protected int applySingle(Pony player, World w, BlockState state, BlockPos pos) { ItemStack stack = new ItemStack(Items.BONE_MEAL); @@ -78,14 +87,35 @@ public class EarthPonyGrowAbility implements Ability { return growable.grow(w, state, pos) ? 1 : 0; } - if (w.getBlockState(pos).isOf(Blocks.GRASS_BLOCK)) { + if (state.isOf(Blocks.CARROTS)) { + if (state.get(CarrotsBlock.AGE) == CarrotsBlock.MAX_AGE) { + boolean transform = w.random.nextInt(3) == 0; + DoubleSupplier vecComponentFactory = () -> w.random.nextTriangular(0, 0.5); + Supplier posSupplier = () -> pos.toCenterPos().add(VecHelper.supply(vecComponentFactory)); + + for (int i = 0; i < 25; i++) { + ParticleUtils.spawnParticle(w, new MagicParticleEffect(0xFFFF00), posSupplier.get(), Vec3d.ZERO); + if (transform) { + ParticleUtils.spawnParticle(w, ParticleTypes.CLOUD, posSupplier.get(), Vec3d.ZERO); + } + } + + if (transform) { + w.setBlockState(pos, UBlocks.GOLD_ROOT.getDefaultState().with(CarrotsBlock.AGE, CarrotsBlock.MAX_AGE)); + } + + return 5; + } + } + + if (w.getBlockState(pos).isIn(UTags.UNAFFECTED_BY_GROW_ABILITY)) { return 0; } if (BoneMealItem.useOnFertilizable(stack, w, pos)) { if (w.random.nextInt(350) == 0) { if (w.getBlockState(pos.down()).isOf(Blocks.FARMLAND)) { - w.setBlockState(pos.down(), Blocks.DIRT.getDefaultState()); + FarmlandBlock.setToDirt(null, state, w, pos.down()); } w.setBlockState(pos, UBlocks.PLUNDER_VINE_BUD.getDefaultState()); } else if (w.random.nextInt(5000) == 0) { diff --git a/src/main/java/com/minelittlepony/unicopia/block/UBlocks.java b/src/main/java/com/minelittlepony/unicopia/block/UBlocks.java index cd8284da..ca6726e9 100644 --- a/src/main/java/com/minelittlepony/unicopia/block/UBlocks.java +++ b/src/main/java/com/minelittlepony/unicopia/block/UBlocks.java @@ -140,6 +140,12 @@ public interface UBlocks { Block PLUNDER_VINE = register("plunder_vine", new ThornBlock(Settings.create().mapColor(MapColor.DARK_CRIMSON).hardness(1).ticksRandomly().sounds(BlockSoundGroup.WOOD).pistonBehavior(PistonBehavior.DESTROY), () -> UBlocks.PLUNDER_VINE_BUD)); Block PLUNDER_VINE_BUD = register("plunder_vine_bud", new ThornBudBlock(Settings.create().mapColor(MapColor.DARK_CRIMSON).hardness(1).nonOpaque().ticksRandomly().sounds(BlockSoundGroup.GRASS).pistonBehavior(PistonBehavior.DESTROY), PLUNDER_VINE.getDefaultState())); CuringJokeBlock CURING_JOKE = register("curing_joke", new CuringJokeBlock(UEffects.BUTTER_FINGERS, 7, AbstractBlock.Settings.create().mapColor(MapColor.PALE_PURPLE).noCollision().breakInstantly().sounds(BlockSoundGroup.GRASS).offset(AbstractBlock.OffsetType.XZ).pistonBehavior(PistonBehavior.DESTROY))); + Block GOLD_ROOT = register("gold_root", new CarrotsBlock(AbstractBlock.Settings.create().mapColor(MapColor.GOLD).noCollision().ticksRandomly().breakInstantly().sounds(BlockSoundGroup.CROP).pistonBehavior(PistonBehavior.DESTROY)) { + @Override + protected ItemConvertible getSeedsItem() { + return Items.GOLDEN_CARROT; + } + }); Block CHITIN = register("chitin", new SnowyBlock(Settings.create().mapColor(MapColor.PALE_PURPLE).hardness(5).requiresTool().ticksRandomly().sounds(BlockSoundGroup.CORAL)), ItemGroups.NATURAL); Block SURFACE_CHITIN = register("surface_chitin", new GrowableBlock(Settings.copy(CHITIN), () -> CHITIN), ItemGroups.NATURAL); diff --git a/src/main/java/com/minelittlepony/unicopia/item/enchantment/ConsumptionEnchantment.java b/src/main/java/com/minelittlepony/unicopia/item/enchantment/ConsumptionEnchantment.java index 547710c0..9976f03b 100644 --- a/src/main/java/com/minelittlepony/unicopia/item/enchantment/ConsumptionEnchantment.java +++ b/src/main/java/com/minelittlepony/unicopia/item/enchantment/ConsumptionEnchantment.java @@ -19,7 +19,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.server.world.ServerWorld; import net.minecraft.sound.SoundCategory; import net.minecraft.util.math.BlockPos; -import net.minecraft.util.math.Vec3d; import net.minecraft.world.World; public class ConsumptionEnchantment extends SimpleEnchantment { @@ -44,7 +43,7 @@ public class ConsumptionEnchantment extends SimpleEnchantment { Block.getDroppedStacks(state, world, pos, blockEntity, entity, tool).forEach(s -> { world.playSound(null, pos, USounds.ENCHANTMENT_CONSUMPTION_CONSUME, SoundCategory.BLOCKS, 0.05F, (float)world.random.nextTriangular(0.6F, 0.2F)); - ExperienceOrbEntity.spawn(world, Vec3d.ofCenter(pos).add(VecHelper.supply(vecComponentFactory)), s.getCount()); + ExperienceOrbEntity.spawn(world, pos.toCenterPos().add(VecHelper.supply(vecComponentFactory)), s.getCount()); UCriteria.USE_CONSUMPTION.trigger(entity); }); state.onStacksDropped(world, pos, tool, true); diff --git a/src/main/resources/assets/unicopia/blockstates/gold_root.json b/src/main/resources/assets/unicopia/blockstates/gold_root.json new file mode 100644 index 00000000..6791a03a --- /dev/null +++ b/src/main/resources/assets/unicopia/blockstates/gold_root.json @@ -0,0 +1,12 @@ +{ + "variants": { + "age=0": { "model": "unicopia:block/gold_root_stage0" }, + "age=1": { "model": "unicopia:block/gold_root_stage0" }, + "age=2": { "model": "unicopia:block/gold_root_stage1" }, + "age=3": { "model": "unicopia:block/gold_root_stage1" }, + "age=4": { "model": "unicopia:block/gold_root_stage2" }, + "age=5": { "model": "unicopia:block/gold_root_stage2" }, + "age=6": { "model": "unicopia:block/gold_root_stage2" }, + "age=7": { "model": "unicopia:block/gold_root_stage3" } + } +} diff --git a/src/main/resources/assets/unicopia/lang/en_us.json b/src/main/resources/assets/unicopia/lang/en_us.json index fe458ff4..3dc63351 100644 --- a/src/main/resources/assets/unicopia/lang/en_us.json +++ b/src/main/resources/assets/unicopia/lang/en_us.json @@ -247,6 +247,7 @@ "block.unicopia.apple_pie": "Apple Pie", "block.unicopia.weather_vane": "Weather Vane", "block.unicopia.curing_joke": "Curing Joke", + "block.unicopia.gold_root": "Gold Root", "block.unicopia.mango": "Mango", "block.unicopia.mango_leaves": "Mango Leaves", "block.unicopia.mango_sapling": "Mango Sapling", diff --git a/src/main/resources/assets/unicopia/models/block/gold_root_stage0.json b/src/main/resources/assets/unicopia/models/block/gold_root_stage0.json new file mode 100644 index 00000000..8f0b22cd --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/gold_root_stage0.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "unicopia:block/gold_root_stage0" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/block/gold_root_stage1.json b/src/main/resources/assets/unicopia/models/block/gold_root_stage1.json new file mode 100644 index 00000000..5315c2b8 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/gold_root_stage1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "unicopia:block/gold_root_stage1" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/block/gold_root_stage2.json b/src/main/resources/assets/unicopia/models/block/gold_root_stage2.json new file mode 100644 index 00000000..cf262db5 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/gold_root_stage2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "unicopia:block/gold_root_stage2" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/models/block/gold_root_stage3.json b/src/main/resources/assets/unicopia/models/block/gold_root_stage3.json new file mode 100644 index 00000000..790fd135 --- /dev/null +++ b/src/main/resources/assets/unicopia/models/block/gold_root_stage3.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:block/crop", + "textures": { + "crop": "unicopia:block/gold_root_stage3" + } +} \ No newline at end of file diff --git a/src/main/resources/assets/unicopia/textures/block/gold_root_stage0.png b/src/main/resources/assets/unicopia/textures/block/gold_root_stage0.png new file mode 100644 index 0000000000000000000000000000000000000000..54ec7e1cc8401d49115084fbf5a2d787c9863620 GIT binary patch literal 4282 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/unicopia/textures/block/gold_root_stage2.png b/src/main/resources/assets/unicopia/textures/block/gold_root_stage2.png new file mode 100644 index 0000000000000000000000000000000000000000..af5f7f914d60e393c3bf1bad1ac7b0507b594d23 GIT binary patch literal 4452 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 literal 0 HcmV?d00001 diff --git a/src/main/resources/data/minecraft/tags/blocks/maintains_farmland.json b/src/main/resources/data/minecraft/tags/blocks/maintains_farmland.json index b8408162..0e142e00 100644 --- a/src/main/resources/data/minecraft/tags/blocks/maintains_farmland.json +++ b/src/main/resources/data/minecraft/tags/blocks/maintains_farmland.json @@ -7,6 +7,7 @@ "unicopia:oats_stem", "unicopia:green_apple_sprout", "unicopia:sweet_apple_sprout", - "unicopia:sour_apple_sprout" + "unicopia:sour_apple_sprout", + "unicopia:gold_root" ] } \ No newline at end of file diff --git a/src/main/resources/data/unicopia/loot_tables/blocks/gold_root.json b/src/main/resources/data/unicopia/loot_tables/blocks/gold_root.json new file mode 100644 index 00000000..6bfe9e77 --- /dev/null +++ b/src/main/resources/data/unicopia/loot_tables/blocks/gold_root.json @@ -0,0 +1,51 @@ +{ + "type": "minecraft:block", + "functions": [ + { + "function": "minecraft:explosion_decay" + } + ], + "pools": [ + { + "bonus_rolls": 0.0, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:golden_carrot" + } + ], + "rolls": 1.0 + }, + { + "bonus_rolls": 0.0, + "conditions": [ + { + "block": "unicopia:gold_root", + "condition": "minecraft:block_state_property", + "properties": { + "age": "7" + } + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "enchantment": "minecraft:fortune", + "formula": "minecraft:binomial_with_bonus_count", + "function": "minecraft:apply_bonus", + "parameters": { + "extra": 3, + "probability": 0.5714286 + } + } + ], + "name": "minecraft:golden_carrot" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/carrots" +} diff --git a/src/main/resources/data/unicopia/tags/blocks/unaffected_by_grow_ability.json b/src/main/resources/data/unicopia/tags/blocks/unaffected_by_grow_ability.json new file mode 100644 index 00000000..06c918c6 --- /dev/null +++ b/src/main/resources/data/unicopia/tags/blocks/unaffected_by_grow_ability.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "minecraft:grass_block" + ] +}