Added some farming bonuses for Earth Ponies

This commit is contained in:
Sollace 2023-11-07 18:20:41 +00:00
parent ca8cf8371a
commit a5c7a5e3a6
No known key found for this signature in database
GPG key ID: E52FACE7B5C773DB
27 changed files with 1093 additions and 5 deletions

View file

@ -5,10 +5,12 @@ import java.util.Optional;
import com.minelittlepony.unicopia.Race; import com.minelittlepony.unicopia.Race;
import com.minelittlepony.unicopia.ability.data.Hit; import com.minelittlepony.unicopia.ability.data.Hit;
import com.minelittlepony.unicopia.ability.data.Pos; import com.minelittlepony.unicopia.ability.data.Pos;
import com.minelittlepony.unicopia.block.UBlocks;
import com.minelittlepony.unicopia.entity.player.Pony; import com.minelittlepony.unicopia.entity.player.Pony;
import com.minelittlepony.unicopia.particle.MagicParticleEffect; import com.minelittlepony.unicopia.particle.MagicParticleEffect;
import com.minelittlepony.unicopia.util.TraceHelper; import com.minelittlepony.unicopia.util.TraceHelper;
import net.minecraft.block.BlockState; import net.minecraft.block.BlockState;
import net.minecraft.block.Blocks;
import net.minecraft.item.BoneMealItem; import net.minecraft.item.BoneMealItem;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.item.Items; import net.minecraft.item.Items;
@ -71,8 +73,21 @@ public class EarthPonyGrowAbility implements Ability<Pos> {
ItemStack stack = new ItemStack(Items.BONE_MEAL); ItemStack stack = new ItemStack(Items.BONE_MEAL);
if (BoneMealItem.useOnFertilizable(stack, w, pos) if (state.getBlock() instanceof Growable growable) {
|| BoneMealItem.useOnGround(stack, w, pos, Direction.UP)) { return growable.grow(w, state, pos) ? 1 : 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());
}
w.setBlockState(pos, UBlocks.PLUNDER_VINE_BUD.getDefaultState());
}
return 1;
}
if (BoneMealItem.useOnGround(stack, w, pos, Direction.UP)) {
return 1; return 1;
} }
@ -92,4 +107,8 @@ public class EarthPonyGrowAbility implements Ability<Pos> {
public void coolDown(Pony player, AbilitySlot slot) { public void coolDown(Pony player, AbilitySlot slot) {
} }
public interface Growable {
boolean grow(World world, BlockState state, BlockPos pos);
}
} }

View file

@ -0,0 +1,151 @@
package com.minelittlepony.unicopia.block;
import java.util.Collection;
import java.util.function.Supplier;
import com.minelittlepony.unicopia.ability.EarthPonyGrowAbility;
import com.minelittlepony.unicopia.entity.mob.UEntities;
import com.minelittlepony.unicopia.util.VecHelper;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.block.ConnectingBlock;
import net.minecraft.block.Fertilizable;
import net.minecraft.entity.SpawnReason;
import net.minecraft.particle.ParticleTypes;
import net.minecraft.registry.tag.BlockTags;
import net.minecraft.server.world.ServerWorld;
import net.minecraft.state.StateManager;
import net.minecraft.state.property.BooleanProperty;
import net.minecraft.state.property.DirectionProperty;
import net.minecraft.state.property.IntProperty;
import net.minecraft.state.property.Properties;
import net.minecraft.state.property.Property;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Direction;
import net.minecraft.util.math.Vec3d;
import net.minecraft.util.math.random.Random;
import net.minecraft.world.World;
import net.minecraft.world.WorldAccess;
import net.minecraft.world.WorldView;
public class ThornBlock extends ConnectingBlock implements EarthPonyGrowAbility.Growable, Fertilizable {
static final Collection<BooleanProperty> PROPERTIES = FACING_PROPERTIES.values();
static final DirectionProperty FACING = Properties.FACING;
static final int MAX_DISTANCE = 25;
static final int MAX_AGE = 4;
static final IntProperty DISTANCE = IntProperty.of("distance", 0, MAX_DISTANCE);
static final IntProperty AGE = IntProperty.of("age", 0, MAX_AGE);
private final Supplier<Block> bud;
public ThornBlock(Settings settings, Supplier<Block> bud) {
super(0.125F, settings);
this.bud = bud;
PROPERTIES.forEach(property -> setDefaultState(getDefaultState().with(property, false)));
setDefaultState(getDefaultState()
.with(FACING, Direction.DOWN)
.with(DISTANCE, 0)
.with(AGE, 0)
.with(DOWN, true)
);
}
@Override
protected void appendProperties(StateManager.Builder<Block, BlockState> builder) {
builder.add(PROPERTIES.toArray(Property[]::new));
builder.add(FACING, DISTANCE, AGE);
}
@Override
@Deprecated
public void randomTick(BlockState state, ServerWorld world, BlockPos pos, Random random) {
if (state.get(AGE) == MAX_AGE
&& random.nextInt(1200) == 0
&& world.isPlayerInRange(pos.getX(), pos.getY(), pos.getZ(), 3)) {
UEntities.LOOT_BUG.spawn(world, pos, SpawnReason.NATURAL);
}
}
@Override
public void scheduledTick(BlockState state, ServerWorld world, BlockPos pos, Random random) {
if (!state.canPlaceAt(world, pos)) {
world.breakBlock(pos, true);
}
}
@Override
public void randomDisplayTick(BlockState state, World world, BlockPos pos, Random random) {
if (state.get(AGE) == MAX_AGE && world.isPlayerInRange(pos.getX(), pos.getY(), pos.getZ(), 3)) {
Vec3d particlePos = pos.toCenterPos().add(VecHelper.supply(() -> random.nextTriangular(0, 0.5)));
world.addImportantParticle(ParticleTypes.ASH, particlePos.x, particlePos.y, particlePos.z, 0, 0, 0);
}
}
@Override
public BlockState getStateForNeighborUpdate(BlockState state, Direction direction, BlockState neighborState, WorldAccess world, BlockPos pos, BlockPos neighborPos) {
if (direction == state.get(FACING) && !state.canPlaceAt(world, pos)) {
world.scheduleBlockTick(pos, this, 1);
}
return state;
}
@Override
public boolean canPlaceAt(BlockState state, WorldView world, BlockPos pos) {
Direction facing = state.get(FACING);
BlockState neighborState = world.getBlockState(pos.offset(facing));
return (facing == Direction.DOWN && state.get(DISTANCE) == 0 && neighborState.isIn(BlockTags.DIRT))
|| neighborState.isOf(this)
|| neighborState.isOf(bud.get());
}
@Override
public boolean grow(World world, BlockState state, BlockPos pos) {
if (state.get(DISTANCE) >= MAX_DISTANCE) {
return false;
}
world.setBlockState(pos, state.with(AGE, Math.min(state.get(AGE) + 1, MAX_AGE)));
return FACING_PROPERTIES.keySet().stream()
.filter(direction -> isConnected(state, world.getBlockState(pos.offset(direction)), direction))
.map(direction -> {
BlockPos p = pos.offset(direction);
BlockState s = world.getBlockState(p);
if (s.isAir()) {
// sprout a new branch for cut off nodes
world.setBlockState(p, bud.get().getDefaultState()
.with(FACING, direction.getOpposite())
.with(DISTANCE, state.get(DISTANCE) + 1)
);
return true;
}
return ((EarthPonyGrowAbility.Growable)s.getBlock()).grow(world, s, p);
}).reduce(false, Boolean::logicalOr);
}
@Override
public boolean isFertilizable(WorldView world, BlockPos pos, BlockState state, boolean client) {
return true;
}
@Override
public boolean canGrow(World world, Random random, BlockPos pos, BlockState state) {
return true;
}
@Override
public void grow(ServerWorld world, Random random, BlockPos pos, BlockState state) {
grow(world, state, pos);
}
private boolean isConnected(BlockState state, BlockState neighborState, Direction direction) {
if (!state.get(FACING_PROPERTIES.get(direction))) {
return false;
}
if (neighborState.isAir()) {
return true;
}
return neighborState.getBlock() instanceof EarthPonyGrowAbility.Growable
&& (neighborState.isOf(this) || neighborState.isOf(bud.get()))
&& neighborState.get(FACING) == direction.getOpposite();
}
}

View file

@ -0,0 +1,116 @@
package com.minelittlepony.unicopia.block;
import java.util.Optional;
import java.util.stream.Stream;
import com.minelittlepony.unicopia.USounds;
import com.minelittlepony.unicopia.ability.EarthPonyGrowAbility;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.block.Blocks;
import net.minecraft.block.Fertilizable;
import net.minecraft.server.world.ServerWorld;
import net.minecraft.sound.SoundCategory;
import net.minecraft.state.StateManager;
import net.minecraft.state.property.DirectionProperty;
import net.minecraft.state.property.IntProperty;
import net.minecraft.state.property.Properties;
import net.minecraft.util.Util;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Direction;
import net.minecraft.util.math.random.Random;
import net.minecraft.world.World;
import net.minecraft.world.WorldAccess;
import net.minecraft.world.WorldView;
public class ThornBudBlock extends Block implements EarthPonyGrowAbility.Growable, Fertilizable {
static final DirectionProperty FACING = Properties.FACING;
static final int MAX_DISTANCE = 25;
static final IntProperty DISTANCE = IntProperty.of("distance", 0, MAX_DISTANCE);
private final BlockState branchState;
public ThornBudBlock(Settings settings, BlockState branchState) {
super(settings);
setDefaultState(getDefaultState().with(FACING, Direction.DOWN).with(DISTANCE, 0));
this.branchState = branchState;
}
@Override
protected void appendProperties(StateManager.Builder<Block, BlockState> builder) {
builder.add(FACING, DISTANCE);
}
@Override
public void scheduledTick(BlockState state, ServerWorld world, BlockPos pos, Random random) {
if (random.nextInt(50) == 0) {
grow(world, state, pos);
}
}
@Override
public BlockState getStateForNeighborUpdate(BlockState state, Direction direction, BlockState neighborState, WorldAccess world, BlockPos pos, BlockPos neighborPos) {
if (direction == state.get(FACING) && !(neighborState.isOf(this) || neighborState.isOf(branchState.getBlock()))) {
return Blocks.AIR.getDefaultState();
}
return state;
}
@Override
public boolean grow(World world, BlockState state, BlockPos pos) {
if (state.get(DISTANCE) >= MAX_DISTANCE) {
return false;
}
return pickGrowthDirection(world, state, pos).map(randomDirection -> {
BlockPos p = pos.offset(randomDirection);
if (!canReplace(world.getBlockState(p))) {
return false;
}
world.playSound(null, pos, USounds.Vanilla.ITEM_BONE_MEAL_USE, SoundCategory.BLOCKS);
world.setBlockState(pos, branchState
.with(FACING, state.get(FACING))
.with(ThornBlock.FACING_PROPERTIES.get(state.get(FACING)), true)
.with(ThornBlock.FACING_PROPERTIES.get(randomDirection), true));
world.setBlockState(p, getDefaultState()
.with(FACING, randomDirection.getOpposite())
.with(DISTANCE, state.get(DISTANCE) + 1)
);
return true;
}).orElse(false);
}
protected boolean canReplace(BlockState state) {
return state.isReplaceable();
}
private static Optional<Direction> pickGrowthDirection(World world, BlockState state, BlockPos pos) {
Direction excluded = state.get(FACING);
return Util.getRandomOrEmpty(ThornBlock.FACING_PROPERTIES.keySet().stream()
.filter(direction -> direction != excluded)
.flatMap(direction -> getByWeight(direction, excluded))
.toList(), world.getRandom());
}
private static Stream<Direction> getByWeight(Direction input, Direction excluded) {
return Stream.generate(() -> input)
.limit(input.getAxis() == excluded.getAxis() ? 6L : input.getAxis() == Direction.Axis.Y ? 1L : 3L);
}
@Override
public boolean isFertilizable(WorldView world, BlockPos pos, BlockState state, boolean client) {
return true;
}
@Override
public boolean canGrow(World world, Random random, BlockPos pos, BlockState state) {
return true;
}
@Override
public void grow(ServerWorld world, Random random, BlockPos pos, BlockState state) {
grow(world, state, pos);
}
}

View file

@ -133,6 +133,9 @@ public interface UBlocks {
SegmentedCropBlock OATS_STEM = register("oats_stem", OATS.createNext(5)); SegmentedCropBlock OATS_STEM = register("oats_stem", OATS.createNext(5));
SegmentedCropBlock OATS_CROWN = register("oats_crown", OATS_STEM.createNext(5)); SegmentedCropBlock OATS_CROWN = register("oats_crown", OATS_STEM.createNext(5));
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()));
Block CHITIN = register("chitin", new SnowyBlock(Settings.create().mapColor(MapColor.PALE_PURPLE).hardness(5).requiresTool().ticksRandomly().sounds(BlockSoundGroup.CORAL)), ItemGroups.NATURAL); 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); Block SURFACE_CHITIN = register("surface_chitin", new GrowableBlock(Settings.copy(CHITIN), () -> CHITIN), ItemGroups.NATURAL);
Block CHISELLED_CHITIN = register("chiselled_chitin", new Block(Settings.create().mapColor(MapColor.PALE_PURPLE).hardness(5).requiresTool()), ItemGroups.BUILDING_BLOCKS); Block CHISELLED_CHITIN = register("chiselled_chitin", new Block(Settings.create().mapColor(MapColor.PALE_PURPLE).hardness(5).requiresTool()), ItemGroups.BUILDING_BLOCKS);
@ -218,7 +221,7 @@ public interface UBlocks {
StrippableBlockRegistry.register(PALM_LOG, STRIPPED_PALM_LOG); StrippableBlockRegistry.register(PALM_LOG, STRIPPED_PALM_LOG);
StrippableBlockRegistry.register(ZAP_WOOD, STRIPPED_ZAP_WOOD); StrippableBlockRegistry.register(ZAP_WOOD, STRIPPED_ZAP_WOOD);
StrippableBlockRegistry.register(PALM_WOOD, STRIPPED_PALM_WOOD); StrippableBlockRegistry.register(PALM_WOOD, STRIPPED_PALM_WOOD);
Collections.addAll(TRANSLUCENT_BLOCKS, WEATHER_VANE, CHITIN_SPIKES); Collections.addAll(TRANSLUCENT_BLOCKS, WEATHER_VANE, CHITIN_SPIKES, PLUNDER_VINE, PLUNDER_VINE_BUD);
TintedBlock.REGISTRY.add(PALM_LEAVES); TintedBlock.REGISTRY.add(PALM_LEAVES);
FlammableBlockRegistry.getDefaultInstance().add(GREEN_APPLE_LEAVES, 30, 60); FlammableBlockRegistry.getDefaultInstance().add(GREEN_APPLE_LEAVES, 30, 60);

View file

@ -92,6 +92,7 @@ public interface URenderers {
EntityRendererRegistry.register(UEntities.STORM_CLOUD, StormCloudEntityRenderer::new); EntityRendererRegistry.register(UEntities.STORM_CLOUD, StormCloudEntityRenderer::new);
EntityRendererRegistry.register(UEntities.AIR_BALLOON, AirBalloonEntityRenderer::new); EntityRendererRegistry.register(UEntities.AIR_BALLOON, AirBalloonEntityRenderer::new);
EntityRendererRegistry.register(UEntities.FRIENDLY_CREEPER, FriendlyCreeperEntityRenderer::new); EntityRendererRegistry.register(UEntities.FRIENDLY_CREEPER, FriendlyCreeperEntityRenderer::new);
EntityRendererRegistry.register(UEntities.LOOT_BUG, LootBugEntityRenderer::new);
BlockEntityRendererFactories.register(UBlockEntities.WEATHER_VANE, WeatherVaneBlockEntityRenderer::new); BlockEntityRendererFactories.register(UBlockEntities.WEATHER_VANE, WeatherVaneBlockEntityRenderer::new);
BlockEntityRendererFactories.register(UBlockEntities.FANCY_BED, CloudBedBlockEntityRenderer::new); BlockEntityRendererFactories.register(UBlockEntities.FANCY_BED, CloudBedBlockEntityRenderer::new);

View file

@ -0,0 +1,28 @@
package com.minelittlepony.unicopia.client.render.entity;
import com.minelittlepony.unicopia.Unicopia;
import net.minecraft.client.render.entity.EntityRendererFactory.Context;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.entity.mob.SilverfishEntity;
import net.minecraft.util.Identifier;
import net.minecraft.client.render.entity.SilverfishEntityRenderer;
public class LootBugEntityRenderer extends SilverfishEntityRenderer {
private static final Identifier TEXTURE = Unicopia.id("textures/entity/loot_bug.png");
public LootBugEntityRenderer(Context context) {
super(context);
}
@Override
public Identifier getTexture(SilverfishEntity entity) {
return TEXTURE;
}
@Override
protected void scale(SilverfishEntity entity, MatrixStack matrices, float tickDelta) {
float scale = 2;
matrices.scale(scale, scale, scale);
}
}

View file

@ -0,0 +1,22 @@
package com.minelittlepony.unicopia.entity.mob;
import net.minecraft.entity.EntityType;
import net.minecraft.entity.mob.SilverfishEntity;
import net.minecraft.particle.ParticleTypes;
import net.minecraft.world.World;
public class LootBugEntity extends SilverfishEntity {
public LootBugEntity(EntityType<? extends SilverfishEntity> entityType, World world) {
super(entityType, world);
}
@Override
public void tick() {
super.tick();
getWorld().addParticle(ParticleTypes.ELECTRIC_SPARK,
getParticleX(1), this.getEyeY(), getParticleZ(1),
random.nextFloat() - 0.5F, random.nextFloat(), random.nextFloat() - 0.5F
);
}
}

View file

@ -46,7 +46,7 @@ public interface UEntities {
.trackRangeBlocks(200) .trackRangeBlocks(200)
.dimensions(EntityDimensions.fixed(0.1F, 0.1F))); .dimensions(EntityDimensions.fixed(0.1F, 0.1F)));
EntityType<FriendlyCreeperEntity> FRIENDLY_CREEPER = register("friendly_creeper", FabricEntityTypeBuilder.create(SpawnGroup.MISC, FriendlyCreeperEntity::new) EntityType<FriendlyCreeperEntity> FRIENDLY_CREEPER = register("friendly_creeper", FabricEntityTypeBuilder.create(SpawnGroup.MISC, FriendlyCreeperEntity::new)
.trackRangeBlocks(8) .trackRangeChunks(8)
.dimensions(EntityDimensions.fixed(0.6f, 1.7f)) .dimensions(EntityDimensions.fixed(0.6f, 1.7f))
); );
EntityType<SpellbookEntity> SPELLBOOK = register("spellbook", FabricEntityTypeBuilder.create(SpawnGroup.MISC, SpellbookEntity::new) EntityType<SpellbookEntity> SPELLBOOK = register("spellbook", FabricEntityTypeBuilder.create(SpawnGroup.MISC, SpellbookEntity::new)
@ -64,6 +64,9 @@ public interface UEntities {
EntityType<AirBalloonEntity> AIR_BALLOON = register("air_balloon", FabricEntityTypeBuilder.create(SpawnGroup.MISC, AirBalloonEntity::new) EntityType<AirBalloonEntity> AIR_BALLOON = register("air_balloon", FabricEntityTypeBuilder.create(SpawnGroup.MISC, AirBalloonEntity::new)
.trackRangeBlocks(1000) .trackRangeBlocks(1000)
.dimensions(EntityDimensions.changing(2.5F, 0.1F))); .dimensions(EntityDimensions.changing(2.5F, 0.1F)));
EntityType<LootBugEntity> LOOT_BUG = register("loot_bug", FabricEntityTypeBuilder.create(SpawnGroup.MONSTER, LootBugEntity::new)
.trackRangeChunks(8)
.dimensions(EntityDimensions.fixed(0.8F, 0.6F)));
static <T extends Entity> EntityType<T> register(String name, FabricEntityTypeBuilder<T> builder) { static <T extends Entity> EntityType<T> register(String name, FabricEntityTypeBuilder<T> builder) {
EntityType<T> type = builder.build(); EntityType<T> type = builder.build();
@ -77,6 +80,7 @@ public interface UEntities {
FabricDefaultAttributeRegistry.register(AIR_BALLOON, FlyingEntity.createMobAttributes()); FabricDefaultAttributeRegistry.register(AIR_BALLOON, FlyingEntity.createMobAttributes());
FabricDefaultAttributeRegistry.register(SOMBRA, SombraEntity.createMobAttributes()); FabricDefaultAttributeRegistry.register(SOMBRA, SombraEntity.createMobAttributes());
FabricDefaultAttributeRegistry.register(FRIENDLY_CREEPER, FriendlyCreeperEntity.createCreeperAttributes()); FabricDefaultAttributeRegistry.register(FRIENDLY_CREEPER, FriendlyCreeperEntity.createCreeperAttributes());
FabricDefaultAttributeRegistry.register(LOOT_BUG, LootBugEntity.createSilverfishAttributes());
if (!Unicopia.getConfig().disableButterflySpawning.get()) { if (!Unicopia.getConfig().disableButterflySpawning.get()) {
final Predicate<BiomeSelectionContext> butterflySpawnable = BiomeSelectors.foundInOverworld() final Predicate<BiomeSelectionContext> butterflySpawnable = BiomeSelectors.foundInOverworld()

View file

@ -141,7 +141,8 @@ public interface UItems {
Item DIAMOND_POLEARM = register("diamond_polearm", new PolearmItem(ToolMaterials.DIAMOND, 2, -3.6F, 5, new Item.Settings()), ItemGroups.COMBAT); Item DIAMOND_POLEARM = register("diamond_polearm", new PolearmItem(ToolMaterials.DIAMOND, 2, -3.6F, 5, new Item.Settings()), ItemGroups.COMBAT);
Item NETHERITE_POLEARM = register("netherite_polearm", new PolearmItem(ToolMaterials.NETHERITE, 2, -3.6F, 5, new Item.Settings().fireproof()), ItemGroups.COMBAT); Item NETHERITE_POLEARM = register("netherite_polearm", new PolearmItem(ToolMaterials.NETHERITE, 2, -3.6F, 5, new Item.Settings().fireproof()), ItemGroups.COMBAT);
Item BUTTERFLY_SPAWN_EGG = register("butterfly_spawn_egg", new SpawnEggItem(UEntities.BUTTERFLY, 0x222200, 0xaaeeff, new Item.Settings()), ItemGroups.SPAWN_EGGS); Item LOOT_BUG_SPAWN_EGG = register("loot_bug_spawn_egg", new SpawnEggItem(UEntities.LOOT_BUG, 0x3C9D14, 0xE66F16, new Item.Settings()), ItemGroups.SPAWN_EGGS);
Item BUTTERFLY_SPAWN_EGG = register("butterfly_spawn_egg", new SpawnEggItem(UEntities.BUTTERFLY, 0x222200, 0xAAEEFF, new Item.Settings()), ItemGroups.SPAWN_EGGS);
Item BUTTERFLY = register("butterfly", new Item(new Item.Settings().food(UFoodComponents.INSECTS)), ItemGroups.FOOD_AND_DRINK); Item BUTTERFLY = register("butterfly", new Item(new Item.Settings().food(UFoodComponents.INSECTS)), ItemGroups.FOOD_AND_DRINK);
Item PALM_BOAT = ItemGroupRegistry.register(TerraformBoatItemHelper.registerBoatItem(Unicopia.id("palm_boat"), UWoodTypes.PALM_BOAT_TYPE, false), ItemGroups.FUNCTIONAL); Item PALM_BOAT = ItemGroupRegistry.register(TerraformBoatItemHelper.registerBoatItem(Unicopia.id("palm_boat"), UWoodTypes.PALM_BOAT_TYPE, false), ItemGroups.FUNCTIONAL);

View file

@ -0,0 +1,128 @@
{
"multipart": [
{
"apply": { "model": "unicopia:block/plunder_vine_branch" },
"when": { "age": 0, "down": true }
},
{
"apply": { "model": "unicopia:block/plunder_vine_branch", "x": 180 },
"when": { "age": 0, "up": true }
},
{
"apply": { "model": "unicopia:block/plunder_vine_branch", "x": 90 },
"when": { "age": 0, "south": true }
},
{
"apply": { "model": "unicopia:block/plunder_vine_branch", "x": 90, "y": 90 },
"when": { "age": 0, "west": true }
},
{
"apply": { "model": "unicopia:block/plunder_vine_branch", "x": 90, "y": 180 },
"when": { "age": 0, "north": true }
},
{
"apply": { "model": "unicopia:block/plunder_vine_branch", "x": 90, "y": 270 },
"when": { "age": 0, "east": true }
},
{
"apply": { "model": "unicopia:block/plunder_vine_branch_2" },
"when": { "age": 1, "down": true }
},
{
"apply": { "model": "unicopia:block/plunder_vine_branch_2", "x": 180 },
"when": { "age": 1, "up": true }
},
{
"apply": { "model": "unicopia:block/plunder_vine_branch_2", "x": 90 },
"when": { "age": 1, "south": true }
},
{
"apply": { "model": "unicopia:block/plunder_vine_branch_2", "x": 90, "y": 90 },
"when": { "age": 1, "west": true }
},
{
"apply": { "model": "unicopia:block/plunder_vine_branch_2", "x": 90, "y": 180 },
"when": { "age": 1, "north": true }
},
{
"apply": { "model": "unicopia:block/plunder_vine_branch_2", "x": 90, "y": 270 },
"when": { "age": 1, "east": true }
},
{
"apply": { "model": "unicopia:block/plunder_vine_branch_3" },
"when": { "age": 2, "down": true }
},
{
"apply": { "model": "unicopia:block/plunder_vine_branch_3", "x": 180 },
"when": { "age": 2, "up": true }
},
{
"apply": { "model": "unicopia:block/plunder_vine_branch_3", "x": 90 },
"when": { "age": 2, "south": true }
},
{
"apply": { "model": "unicopia:block/plunder_vine_branch_3", "x": 90, "y": 90 },
"when": { "age": 2, "west": true }
},
{
"apply": { "model": "unicopia:block/plunder_vine_branch_3", "x": 90, "y": 180 },
"when": { "age": 2, "north": true }
},
{
"apply": { "model": "unicopia:block/plunder_vine_branch_3", "x": 90, "y": 270 },
"when": { "age": 2, "east": true }
},
{
"apply": { "model": "unicopia:block/plunder_vine_branch_4" },
"when": { "age": 3, "down": true }
},
{
"apply": { "model": "unicopia:block/plunder_vine_branch_4", "x": 180 },
"when": { "age": 3, "up": true }
},
{
"apply": { "model": "unicopia:block/plunder_vine_branch_4", "x": 90 },
"when": { "age": 3, "south": true }
},
{
"apply": { "model": "unicopia:block/plunder_vine_branch_4", "x": 90, "y": 90 },
"when": { "age": 3, "west": true }
},
{
"apply": { "model": "unicopia:block/plunder_vine_branch_4", "x": 90, "y": 180 },
"when": { "age": 3, "north": true }
},
{
"apply": { "model": "unicopia:block/plunder_vine_branch_4", "x": 90, "y": 270 },
"when": { "age": 3, "east": true }
},
{
"apply": { "model": "unicopia:block/plunder_vine_branch_4" },
"when": { "age": 4, "down": true }
},
{
"apply": { "model": "unicopia:block/plunder_vine_branch_4", "x": 180 },
"when": { "age": 4, "up": true }
},
{
"apply": { "model": "unicopia:block/plunder_vine_branch_4", "x": 90 },
"when": { "age": 4, "south": true }
},
{
"apply": { "model": "unicopia:block/plunder_vine_branch_4", "x": 90, "y": 90 },
"when": { "age": 4, "west": true }
},
{
"apply": { "model": "unicopia:block/plunder_vine_branch_4", "x": 90, "y": 180 },
"when": { "age": 4, "north": true }
},
{
"apply": { "model": "unicopia:block/plunder_vine_branch_4", "x": 90, "y": 270 },
"when": { "age": 4, "east": true }
}
]
}

View file

@ -0,0 +1,10 @@
{
"variants": {
"facing=down": { "model": "unicopia:block/plunder_vine_bud" },
"facing=up": { "model": "unicopia:block/plunder_vine_bud", "x": 180 },
"facing=south": { "model": "unicopia:block/plunder_vine_bud", "x": 90 },
"facing=west": { "model": "unicopia:block/plunder_vine_bud", "x": 90, "y": 90 },
"facing=north": { "model": "unicopia:block/plunder_vine_bud", "x": 90, "y": 180 },
"facing=east": { "model": "unicopia:block/plunder_vine_bud", "x": 90, "y": 270 }
}
}

View file

@ -0,0 +1,75 @@
{
"textures": {
"particle": "unicopia:block/plunder_vine",
"stem": "unicopia:block/plunder_vine",
"leaf": "unicopia:block/plunder_leaf"
},
"elements": [
{
"from": [7.3, 0, 7.3],
"to": [8.7, 9, 8.7],
"faces": {
"north": {"uv": [0, 2, 2, 11], "texture": "#stem"},
"east": {"uv": [0, 2, 2, 11], "texture": "#stem"},
"south": {"uv": [0, 2, 2, 11], "texture": "#stem"},
"west": {"uv": [0, 2, 2, 11], "texture": "#stem"},
"up": {"uv": [2, 2, 0, 0], "texture": "#stem"},
"down": {"uv": [2, 0, 0, 2], "texture": "#stem"}
}
},
{
"from": [4, 0, 8],
"to": [12, 8, 8],
"rotation": {"angle": 45, "axis": "y", "origin": [8, 11, 8]},
"faces": {
"north": {"uv": [0, 0, 16, 16], "texture": "#leaf"},
"south": {"uv": [0, 0, 16, 16], "texture": "#leaf"}
}
},
{
"from": [4, 5, 8],
"to": [12, 13, 8],
"rotation": {"angle": -45, "axis": "y", "origin": [8, 11, 8]},
"faces": {
"north": {"uv": [0, 0, 16, 16], "texture": "#leaf"},
"south": {"uv": [0, 0, 16, 16], "texture": "#leaf"}
}
},
{
"from": [6, 3.95, 8.1],
"to": [7, 4.95, 8.1],
"rotation": {"angle": -45, "axis": "z", "origin": [7, 4, 8]},
"faces": {
"north": {"uv": [2, 0, 3, 1], "texture": "#stem"},
"south": {"uv": [2, 0, 3, 1], "texture": "#stem"}
}
},
{
"from": [6, 6.95, 8.1],
"to": [7, 7.95, 8.1],
"rotation": {"angle": -45, "axis": "z", "origin": [7, 4, 8]},
"faces": {
"north": {"uv": [2, 0, 3, 1], "texture": "#stem"},
"south": {"uv": [2, 0, 3, 1], "texture": "#stem"}
}
},
{
"from": [8, 2.35, 10.1],
"to": [8, 3.35, 11.1],
"rotation": {"angle": 45, "axis": "x", "origin": [7, 4, 8]},
"faces": {
"east": {"uv": [2, 0, 3, 1], "texture": "#stem"},
"west": {"uv": [2, 0, 3, 1], "texture": "#stem"}
}
},
{
"from": [8, 5.35, 4.1],
"to": [8, 6.35, 5.1],
"rotation": {"angle": 45, "axis": "x", "origin": [7, 4, 8]},
"faces": {
"east": {"uv": [2, 0, 3, 1], "texture": "#stem"},
"west": {"uv": [2, 0, 3, 1], "texture": "#stem"}
}
}
]
}

View file

@ -0,0 +1,75 @@
{
"textures": {
"particle": "unicopia:block/plunder_vine",
"stem": "unicopia:block/plunder_vine",
"leaf": "unicopia:block/plunder_leaf"
},
"elements": [
{
"from": [7, 0, 7],
"to": [9, 9, 9],
"faces": {
"north": {"uv": [0, 2, 2, 11], "texture": "#stem"},
"east": {"uv": [0, 2, 2, 11], "texture": "#stem"},
"south": {"uv": [0, 2, 2, 11], "texture": "#stem"},
"west": {"uv": [0, 2, 2, 11], "texture": "#stem"},
"up": {"uv": [2, 2, 0, 0], "texture": "#stem"},
"down": {"uv": [2, 0, 0, 2], "texture": "#stem"}
}
},
{
"from": [4, 0, 8],
"to": [12, 8, 8],
"rotation": {"angle": 45, "axis": "y", "origin": [8, 11, 8]},
"faces": {
"north": {"uv": [0, 0, 16, 16], "texture": "#leaf"},
"south": {"uv": [0, 0, 16, 16], "texture": "#leaf"}
}
},
{
"from": [4, 5, 8],
"to": [12, 13, 8],
"rotation": {"angle": -45, "axis": "y", "origin": [8, 11, 8]},
"faces": {
"north": {"uv": [0, 0, 16, 16], "texture": "#leaf"},
"south": {"uv": [0, 0, 16, 16], "texture": "#leaf"}
}
},
{
"from": [6, 3.95, 8.1],
"to": [7, 4.95, 8.1],
"rotation": {"angle": -45, "axis": "z", "origin": [7, 4, 8]},
"faces": {
"north": {"uv": [2, 0, 3, 1], "texture": "#stem"},
"south": {"uv": [2, 0, 3, 1], "texture": "#stem"}
}
},
{
"from": [6, 6.95, 8.1],
"to": [7, 7.95, 8.1],
"rotation": {"angle": -45, "axis": "z", "origin": [7, 4, 8]},
"faces": {
"north": {"uv": [2, 0, 3, 1], "texture": "#stem"},
"south": {"uv": [2, 0, 3, 1], "texture": "#stem"}
}
},
{
"from": [8, 2.35, 10.1],
"to": [8, 3.35, 11.1],
"rotation": {"angle": 45, "axis": "x", "origin": [7, 4, 8]},
"faces": {
"east": {"uv": [2, 0, 3, 1], "texture": "#stem"},
"west": {"uv": [2, 0, 3, 1], "texture": "#stem"}
}
},
{
"from": [8, 5.35, 4.1],
"to": [8, 6.35, 5.1],
"rotation": {"angle": 45, "axis": "x", "origin": [7, 4, 8]},
"faces": {
"east": {"uv": [2, 0, 3, 1], "texture": "#stem"},
"west": {"uv": [2, 0, 3, 1], "texture": "#stem"}
}
}
]
}

View file

@ -0,0 +1,75 @@
{
"textures": {
"particle": "unicopia:block/plunder_vine",
"stem": "unicopia:block/plunder_vine",
"leaf": "unicopia:block/plunder_leaf"
},
"elements": [
{
"from": [6.5, 0, 6.5],
"to": [9.5, 9, 9.5],
"faces": {
"north": {"uv": [0, 2, 4, 11], "texture": "#stem"},
"east": {"uv": [0, 2, 4, 11], "texture": "#stem"},
"south": {"uv": [0, 2, 4, 11], "texture": "#stem"},
"west": {"uv": [0, 2, 4, 11], "texture": "#stem"},
"up": {"uv": [2, 2, 0, 0], "texture": "#stem"},
"down": {"uv": [2, 0, 0, 2], "texture": "#stem"}
}
},
{
"from": [3, 0, 8],
"to": [13, 8, 8],
"rotation": {"angle": 45, "axis": "y", "origin": [8, 11, 8]},
"faces": {
"north": {"uv": [0, 0, 16, 16], "texture": "#leaf"},
"south": {"uv": [0, 0, 16, 16], "texture": "#leaf"}
}
},
{
"from": [3, 5, 8],
"to": [13, 13, 8],
"rotation": {"angle": -45, "axis": "y", "origin": [8, 11, 8]},
"faces": {
"north": {"uv": [0, 0, 16, 16], "texture": "#leaf"},
"south": {"uv": [0, 0, 16, 16], "texture": "#leaf"}
}
},
{
"from": [5.6, 3.95, 8.1],
"to": [6.6, 4.95, 8.1],
"rotation": {"angle": -45, "axis": "z", "origin": [6.6, 4, 8]},
"faces": {
"north": {"uv": [2, 0, 3, 1], "texture": "#stem"},
"south": {"uv": [2, 0, 3, 1], "texture": "#stem"}
}
},
{
"from": [6.4, 6.95, 8.1],
"to": [7.4, 7.95, 8.1],
"rotation": {"angle": -45, "axis": "z", "origin": [7.4, 4, 8]},
"faces": {
"north": {"uv": [2, 0, 3, 1], "texture": "#stem"},
"south": {"uv": [2, 0, 3, 1], "texture": "#stem"}
}
},
{
"from": [8, 2.35, 10.6],
"to": [8, 3.35, 11.6],
"rotation": {"angle": 45, "axis": "x", "origin": [7, 4, 8.5]},
"faces": {
"east": {"uv": [2, 0, 3, 1], "texture": "#stem"},
"west": {"uv": [2, 0, 3, 1], "texture": "#stem"}
}
},
{
"from": [8, 5.35, 3.8],
"to": [8, 6.35, 4.8],
"rotation": {"angle": 45, "axis": "x", "origin": [7, 4, 7.7]},
"faces": {
"east": {"uv": [2, 0, 3, 1], "texture": "#stem"},
"west": {"uv": [2, 0, 3, 1], "texture": "#stem"}
}
}
]
}

View file

@ -0,0 +1,75 @@
{
"textures": {
"particle": "unicopia:block/plunder_vine",
"stem": "unicopia:block/plunder_vine",
"leaf": "unicopia:block/plunder_leaf"
},
"elements": [
{
"from": [6, 0, 6],
"to": [10, 9, 10],
"faces": {
"north": {"uv": [0, 2, 4, 11], "texture": "#stem"},
"east": {"uv": [0, 2, 4, 11], "texture": "#stem"},
"south": {"uv": [0, 2, 4, 11], "texture": "#stem"},
"west": {"uv": [0, 2, 4, 11], "texture": "#stem"},
"up": {"uv": [2, 2, 0, 0], "texture": "#stem"},
"down": {"uv": [2, 0, 0, 2], "texture": "#stem"}
}
},
{
"from": [3, 0, 8],
"to": [13, 8, 8],
"rotation": {"angle": 45, "axis": "y", "origin": [8, 11, 8]},
"faces": {
"north": {"uv": [0, 0, 16, 16], "texture": "#leaf"},
"south": {"uv": [0, 0, 16, 16], "texture": "#leaf"}
}
},
{
"from": [3, 5, 8],
"to": [13, 13, 8],
"rotation": {"angle": -45, "axis": "y", "origin": [8, 11, 8]},
"faces": {
"north": {"uv": [0, 0, 16, 16], "texture": "#leaf"},
"south": {"uv": [0, 0, 16, 16], "texture": "#leaf"}
}
},
{
"from": [4.8, 3.95, 8.1],
"to": [5.8, 4.95, 8.1],
"rotation": {"angle": -45, "axis": "z", "origin": [5.8, 4, 8]},
"faces": {
"north": {"uv": [2, 0, 3, 1], "texture": "#stem"},
"south": {"uv": [2, 0, 3, 1], "texture": "#stem"}
}
},
{
"from": [7.8, 6.95, 8.1],
"to": [8.8, 7.95, 8.1],
"rotation": {"angle": -45, "axis": "z", "origin": [8.8, 4, 8]},
"faces": {
"north": {"uv": [2, 0, 3, 1], "texture": "#stem"},
"south": {"uv": [2, 0, 3, 1], "texture": "#stem"}
}
},
{
"from": [8, 2.35, 11.4],
"to": [8, 3.35, 12.4],
"rotation": {"angle": 45, "axis": "x", "origin": [7, 4, 9.3]},
"faces": {
"east": {"uv": [2, 0, 3, 1], "texture": "#stem"},
"west": {"uv": [2, 0, 3, 1], "texture": "#stem"}
}
},
{
"from": [8, 5.35, 2.9],
"to": [8, 6.35, 3.9],
"rotation": {"angle": 45, "axis": "x", "origin": [7, 4, 6.8]},
"faces": {
"east": {"uv": [2, 0, 3, 1], "texture": "#stem"},
"west": {"uv": [2, 0, 3, 1], "texture": "#stem"}
}
}
]
}

View file

@ -0,0 +1,145 @@
{
"textures": {
"particle": "unicopia:block/plunder_vine",
"stem": "unicopia:block/plunder_vine",
"leaf": "unicopia:block/plunder_leaf"
},
"elements": [
{
"from": [7.3, 0, 7.3],
"to": [8.7, 5, 8.7],
"faces": {
"north": {"uv": [0, 6, 2, 11], "texture": "#stem"},
"east": {"uv": [0, 6, 2, 11], "texture": "#stem"},
"south": {"uv": [0, 6, 2, 11], "texture": "#stem"},
"west": {"uv": [0, 6, 2, 11], "texture": "#stem"},
"up": {"uv": [2, 2, 0, 0], "texture": "#stem"},
"down": {"uv": [2, 0, 0, 2], "texture": "#stem"}
}
},
{
"from": [7.3, 5, 7.3],
"to": [8.7, 13, 8.7],
"rotation": {"angle": 22.5, "axis": "z", "origin": [8, 5.5, 8]},
"faces": {
"north": {"uv": [0, 3, 2, 11], "texture": "#stem"},
"east": {"uv": [0, 3, 2, 11], "texture": "#stem"},
"south": {"uv": [0, 3, 2, 11], "texture": "#stem"},
"west": {"uv": [0, 3, 2, 11], "texture": "#stem"},
"up": {"uv": [2, 2, 0, 0], "texture": "#stem"},
"down": {"uv": [2, 0, 0, 2], "texture": "#stem"}
}
},
{
"from": [7.3, 5, 7.3],
"to": [8.7, 13, 8.7],
"rotation": {"angle": -22.5, "axis": "z", "origin": [8, 5.5, 8]},
"faces": {
"north": {"uv": [0, 3, 2, 11], "texture": "#stem"},
"east": {"uv": [0, 3, 2, 11], "texture": "#stem"},
"south": {"uv": [0, 3, 2, 11], "texture": "#stem"},
"west": {"uv": [0, 3, 2, 11], "texture": "#stem"},
"up": {"uv": [2, 2, 0, 0], "texture": "#stem"},
"down": {"uv": [2, 0, 0, 2], "texture": "#stem"}
}
},
{
"from": [7.3, 5, 7.3],
"to": [8.7, 13, 8.7],
"rotation": {"angle": 22.5, "axis": "x", "origin": [8, 5.5, 8]},
"faces": {
"north": {"uv": [0, 3, 2, 11], "texture": "#stem"},
"east": {"uv": [0, 3, 2, 11], "texture": "#stem"},
"south": {"uv": [0, 3, 2, 11], "texture": "#stem"},
"west": {"uv": [0, 3, 2, 11], "texture": "#stem"},
"up": {"uv": [2, 2, 0, 0], "texture": "#stem"},
"down": {"uv": [2, 0, 0, 2], "texture": "#stem"}
}
},
{
"from": [7.3, 5, 7.3],
"to": [8.7, 13, 8.7],
"rotation": {"angle": -22.5, "axis": "x", "origin": [8, 5.5, 8]},
"faces": {
"north": {"uv": [0, 3, 2, 11], "texture": "#stem"},
"east": {"uv": [0, 3, 2, 11], "texture": "#stem"},
"south": {"uv": [0, 3, 2, 11], "texture": "#stem"},
"west": {"uv": [0, 3, 2, 11], "texture": "#stem"},
"up": {"uv": [2, 2, 0, 0], "texture": "#stem"},
"down": {"uv": [2, 0, 0, 2], "texture": "#stem"}
}
},
{
"from": [0, 5, 8],
"to": [16, 19, 8],
"rotation": {"angle": 45, "axis": "y", "origin": [8, 11, 8]},
"faces": {
"north": {"uv": [0, 0, 16, 16], "texture": "#leaf"},
"south": {"uv": [0, 0, 16, 16], "texture": "#leaf"}
}
},
{
"from": [8, -0.7, 2],
"to": [8, 10.3, 14],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 11, 8]},
"faces": {
"east": {"uv": [0, 0, 16, 16], "texture": "#leaf"},
"west": {"uv": [0, 0, 16, 16], "texture": "#leaf"}
}
},
{
"from": [0, 3, 8],
"to": [16, 19, 8],
"rotation": {"angle": -45, "axis": "y", "origin": [8, 11, 8]},
"faces": {
"north": {"uv": [0, 0, 16, 16], "texture": "#leaf"},
"south": {"uv": [0, 0, 16, 16], "texture": "#leaf"}
}
},
{
"from": [2.3, -0.8, 8],
"to": [14.3, 13.2, 8],
"rotation": {"angle": 0, "axis": "y", "origin": [8, 11, 8]},
"faces": {
"north": {"uv": [0, 0, 16, 16], "texture": "#leaf"},
"south": {"uv": [0, 0, 16, 16], "texture": "#leaf"}
}
},
{
"from": [6, 3.95, 8.1],
"to": [7, 4.95, 8.1],
"rotation": {"angle": -45, "axis": "z", "origin": [7, 4, 8]},
"faces": {
"north": {"uv": [2, 0, 3, 1], "texture": "#stem"},
"south": {"uv": [2, 0, 3, 1], "texture": "#stem"}
}
},
{
"from": [6, 6.95, 8.1],
"to": [7, 7.95, 8.1],
"rotation": {"angle": -45, "axis": "z", "origin": [7, 4, 8]},
"faces": {
"north": {"uv": [2, 0, 3, 1], "texture": "#stem"},
"south": {"uv": [2, 0, 3, 1], "texture": "#stem"}
}
},
{
"from": [8, 2.35, 10.1],
"to": [8, 3.35, 11.1],
"rotation": {"angle": 45, "axis": "x", "origin": [7, 4, 8]},
"faces": {
"east": {"uv": [2, 0, 3, 1], "texture": "#stem"},
"west": {"uv": [2, 0, 3, 1], "texture": "#stem"}
}
},
{
"from": [8, 5.35, 4.1],
"to": [8, 6.35, 5.1],
"rotation": {"angle": 45, "axis": "x", "origin": [7, 4, 8]},
"faces": {
"east": {"uv": [2, 0, 3, 1], "texture": "#stem"},
"west": {"uv": [2, 0, 3, 1], "texture": "#stem"}
}
}
]
}

View file

@ -0,0 +1,3 @@
{
"parent": "minecraft:item/template_spawn_egg"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

View file

@ -0,0 +1,42 @@
{
"type": "minecraft:block",
"functions": [
{
"function": "minecraft:explosion_decay"
}
],
"pools": [
{
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:stick"
},
{
"type": "minecraft:item",
"name": "minecraft:dead_bush"
}
],
"rolls": 4.0
},
{
"bonus_rolls": 0.0,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:stick"
},
{
"type": "minecraft:item",
"name": "minecraft:dead_bush"
},
{
"type": "minecraft:item",
"name": "unicopia:gryphon_feather"
}
],
"rolls": 1.0
}
]
}

View file

@ -0,0 +1,87 @@
{
"type": "minecraft:entity",
"pools": [
{
"rolls": 11,
"bonus_rolls": 0,
"entries": [
{
"type": "minecraft:item",
"functions": [
{
"add": false,
"count": {
"type": "minecraft:uniform",
"max": 12.0,
"min": 6.0
},
"function": "minecraft:set_count"
},
{
"function": "minecraft:looting_enchant",
"count": {
"type": "minecraft:uniform",
"min": 0.0,
"max": 3.0
}
}
],
"name": "minecraft:gold_nugget"
},
{
"type": "minecraft:item",
"functions": [
{
"add": false,
"count": {
"type": "minecraft:uniform",
"max": 12.0,
"min": 6.0
},
"function": "minecraft:set_count"
},
{
"function": "minecraft:looting_enchant",
"count": {
"type": "minecraft:uniform",
"min": 0.0,
"max": 3.0
}
}
],
"name": "minecraft:iron_nugget"
}
]
},
{
"rolls": 1,
"bonus_rolls": 0,
"entries": [
{
"type": "minecraft:tag",
"functions": [
{
"add": false,
"count": {
"type": "minecraft:uniform",
"max": 3.0,
"min": 1.0
},
"function": "minecraft:set_count"
},
{
"function": "minecraft:looting_enchant",
"count": {
"type": "minecraft:uniform",
"min": 0.0,
"max": 6.0
}
}
],
"name": "unicopia:loot_bug_high_value_drops",
"expand": true
}
]
}
]
}

View file

@ -0,0 +1,28 @@
{
"replace": false,
"values": [
"minecraft:diamond",
"minecraft:gold_nugget",
"minecraft:iron_nugget",
"#c:gold_ingots",
"#c:raw_gold_ores",
"#c:raw_gold_blocks",
"minecraft:golden_apple",
"minecraft:golden_carrot",
"minecraft:golden_boots",
"minecraft:golden_leggings",
"minecraft:golden_chestplate",
"minecraft:golden_helmet",
"minecraft:golden_horse_armor",
"unicopia:golden_horse_shoe",
"minecraft:golden_pickaxe",
"minecraft:golden_axe",
"minecraft:golden_shovel",
"minecraft:golden_sword",
"minecraft:golden_hoe",
"unicopia:golden_polearm",
"unicopia:golden_feather",
"unicopia:golden_wing",
{ "id": "farmersdelight:golden_knife", "required": false }
]
}