Added some farming bonuses for Earth Ponies
|
@ -5,10 +5,12 @@ import java.util.Optional;
|
|||
import com.minelittlepony.unicopia.Race;
|
||||
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.util.TraceHelper;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.block.Blocks;
|
||||
import net.minecraft.item.BoneMealItem;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.Items;
|
||||
|
@ -71,8 +73,21 @@ public class EarthPonyGrowAbility implements Ability<Pos> {
|
|||
|
||||
ItemStack stack = new ItemStack(Items.BONE_MEAL);
|
||||
|
||||
if (BoneMealItem.useOnFertilizable(stack, w, pos)
|
||||
|| BoneMealItem.useOnGround(stack, w, pos, Direction.UP)) {
|
||||
if (state.getBlock() instanceof Growable growable) {
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -92,4 +107,8 @@ public class EarthPonyGrowAbility implements Ability<Pos> {
|
|||
public void coolDown(Pony player, AbilitySlot slot) {
|
||||
|
||||
}
|
||||
|
||||
public interface Growable {
|
||||
boolean grow(World world, BlockState state, BlockPos pos);
|
||||
}
|
||||
}
|
||||
|
|
151
src/main/java/com/minelittlepony/unicopia/block/ThornBlock.java
Normal 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();
|
||||
}
|
||||
}
|
|
@ -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);
|
||||
}
|
||||
}
|
|
@ -133,6 +133,9 @@ public interface UBlocks {
|
|||
SegmentedCropBlock OATS_STEM = register("oats_stem", OATS.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 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);
|
||||
|
@ -218,7 +221,7 @@ public interface UBlocks {
|
|||
StrippableBlockRegistry.register(PALM_LOG, STRIPPED_PALM_LOG);
|
||||
StrippableBlockRegistry.register(ZAP_WOOD, STRIPPED_ZAP_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);
|
||||
|
||||
FlammableBlockRegistry.getDefaultInstance().add(GREEN_APPLE_LEAVES, 30, 60);
|
||||
|
|
|
@ -92,6 +92,7 @@ public interface URenderers {
|
|||
EntityRendererRegistry.register(UEntities.STORM_CLOUD, StormCloudEntityRenderer::new);
|
||||
EntityRendererRegistry.register(UEntities.AIR_BALLOON, AirBalloonEntityRenderer::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.FANCY_BED, CloudBedBlockEntityRenderer::new);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
|
@ -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
|
||||
);
|
||||
}
|
||||
}
|
|
@ -46,7 +46,7 @@ public interface UEntities {
|
|||
.trackRangeBlocks(200)
|
||||
.dimensions(EntityDimensions.fixed(0.1F, 0.1F)));
|
||||
EntityType<FriendlyCreeperEntity> FRIENDLY_CREEPER = register("friendly_creeper", FabricEntityTypeBuilder.create(SpawnGroup.MISC, FriendlyCreeperEntity::new)
|
||||
.trackRangeBlocks(8)
|
||||
.trackRangeChunks(8)
|
||||
.dimensions(EntityDimensions.fixed(0.6f, 1.7f))
|
||||
);
|
||||
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)
|
||||
.trackRangeBlocks(1000)
|
||||
.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) {
|
||||
EntityType<T> type = builder.build();
|
||||
|
@ -77,6 +80,7 @@ public interface UEntities {
|
|||
FabricDefaultAttributeRegistry.register(AIR_BALLOON, FlyingEntity.createMobAttributes());
|
||||
FabricDefaultAttributeRegistry.register(SOMBRA, SombraEntity.createMobAttributes());
|
||||
FabricDefaultAttributeRegistry.register(FRIENDLY_CREEPER, FriendlyCreeperEntity.createCreeperAttributes());
|
||||
FabricDefaultAttributeRegistry.register(LOOT_BUG, LootBugEntity.createSilverfishAttributes());
|
||||
|
||||
if (!Unicopia.getConfig().disableButterflySpawning.get()) {
|
||||
final Predicate<BiomeSelectionContext> butterflySpawnable = BiomeSelectors.foundInOverworld()
|
||||
|
|
|
@ -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 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 PALM_BOAT = ItemGroupRegistry.register(TerraformBoatItemHelper.registerBoatItem(Unicopia.id("palm_boat"), UWoodTypes.PALM_BOAT_TYPE, false), ItemGroups.FUNCTIONAL);
|
||||
|
|
128
src/main/resources/assets/unicopia/blockstates/plunder_vine.json
Normal 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 }
|
||||
}
|
||||
]
|
||||
}
|
|
@ -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 }
|
||||
}
|
||||
}
|
|
@ -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"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -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"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -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"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -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"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -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"}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"parent": "minecraft:item/template_spawn_egg"
|
||||
}
|
After Width: | Height: | Size: 7.1 KiB |
After Width: | Height: | Size: 222 B |
After Width: | Height: | Size: 5.7 KiB |
After Width: | Height: | Size: 5.8 KiB |
After Width: | Height: | Size: 6.1 KiB |
After Width: | Height: | Size: 5.4 KiB |
BIN
src/main/resources/assets/unicopia/textures/entity/loot_bug.png
Normal file
After Width: | Height: | Size: 5.5 KiB |
|
@ -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
|
||||
}
|
||||
]
|
||||
}
|
|
@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
|
@ -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 }
|
||||
]
|
||||
}
|