surprise beta 9 update!
No files matched your search
@@ -141,8 +141,8 @@ public final class AntarchySettings {
|
|||||||
private static double gravityGunBlastStrength = 1.4D;
|
private static double gravityGunBlastStrength = 1.4D;
|
||||||
private static double gravityGunCooldownSeconds = 0.35D;
|
private static double gravityGunCooldownSeconds = 0.35D;
|
||||||
private static double gravityGunMaxHoldDistance = 10.0D;
|
private static double gravityGunMaxHoldDistance = 10.0D;
|
||||||
private static double critterCageMaxCapturableWidth = 1.15D;
|
private static double critterCageMaxCapturableWidth = 1.65D;
|
||||||
private static double critterCageMaxCapturableHeight = 1.15D;
|
private static double critterCageMaxCapturableHeight = 1.65D;
|
||||||
private static boolean minersDreamEnabled = true;
|
private static boolean minersDreamEnabled = true;
|
||||||
private static int minersDreamMinimumRange = 48;
|
private static int minersDreamMinimumRange = 48;
|
||||||
private static int minersDreamMaximumRange = 96;
|
private static int minersDreamMaximumRange = 96;
|
||||||
|
|||||||
@@ -67,10 +67,9 @@ public final class CreativeTabOrder {
|
|||||||
case "dream_torch", "dream_lantern", "dream_campfire", "dream_fire", "dream_fire_ceiling",
|
case "dream_torch", "dream_lantern", "dream_campfire", "dream_fire", "dream_fire_ceiling",
|
||||||
"lumen_froglight", "roseate_froglight" -> 12;
|
"lumen_froglight", "roseate_froglight" -> 12;
|
||||||
case "antimetal_scaffolding" -> 13;
|
case "antimetal_scaffolding" -> 13;
|
||||||
case "infested_rooted_dirt", "infested_coarse_dirt", "bed_bug_egg",
|
case "infested_rooted_dirt", "infested_coarse_dirt", "bed_bug_egg" -> 14;
|
||||||
"creeping_horror_egg", "lurking_terror_egg" -> 14;
|
|
||||||
case "ultimate_pickaxe", "ultimate_axe", "ultimate_shovel", "ultimate_hoe",
|
case "ultimate_pickaxe", "ultimate_axe", "ultimate_shovel", "ultimate_hoe",
|
||||||
"duct_tape", "diamond_minecart", "gravity_sculk_sensor", "miners_dream" -> 15;
|
"duct_tape", "diamond_minecart", "critter_cage", "gravity_sculk_sensor", "miners_dream" -> 15;
|
||||||
case "bile_bucket", "ichor_bucket", "antiwater_bucket", "cloud_bucket", "lumen_bucket" -> 16;
|
case "bile_bucket", "ichor_bucket", "antiwater_bucket", "cloud_bucket", "lumen_bucket" -> 16;
|
||||||
case "moggles", "brutalfly_elytra", "fallen_king_crown", "jumpy_boots" -> 17;
|
case "moggles", "brutalfly_elytra", "fallen_king_crown", "jumpy_boots" -> 17;
|
||||||
case "battle_axe", "basilisk_dagger", "squidzooka", "rpo_launcher", "shrink_ray", "growth_ray",
|
case "battle_axe", "basilisk_dagger", "squidzooka", "rpo_launcher", "shrink_ray", "growth_ray",
|
||||||
@@ -230,16 +229,15 @@ public final class CreativeTabOrder {
|
|||||||
case "infested_rooted_dirt" -> 0;
|
case "infested_rooted_dirt" -> 0;
|
||||||
case "infested_coarse_dirt" -> 1;
|
case "infested_coarse_dirt" -> 1;
|
||||||
case "bed_bug_egg" -> 2;
|
case "bed_bug_egg" -> 2;
|
||||||
case "creeping_horror_egg" -> 3;
|
|
||||||
case "lurking_terror_egg" -> 4;
|
|
||||||
case "ultimate_pickaxe" -> 0;
|
case "ultimate_pickaxe" -> 0;
|
||||||
case "ultimate_axe" -> 1;
|
case "ultimate_axe" -> 1;
|
||||||
case "ultimate_shovel" -> 2;
|
case "ultimate_shovel" -> 2;
|
||||||
case "ultimate_hoe" -> 3;
|
case "ultimate_hoe" -> 3;
|
||||||
case "duct_tape" -> 4;
|
case "duct_tape" -> 4;
|
||||||
case "diamond_minecart" -> 5;
|
case "diamond_minecart" -> 5;
|
||||||
case "gravity_sculk_sensor" -> 6;
|
case "critter_cage" -> 6;
|
||||||
case "miners_dream" -> 7;
|
case "gravity_sculk_sensor" -> 7;
|
||||||
|
case "miners_dream" -> 8;
|
||||||
case "bile_bucket" -> 0;
|
case "bile_bucket" -> 0;
|
||||||
case "ichor_bucket" -> 1;
|
case "ichor_bucket" -> 1;
|
||||||
case "antiwater_bucket" -> 2;
|
case "antiwater_bucket" -> 2;
|
||||||
|
|||||||
@@ -15,8 +15,13 @@ import net.minecraft.world.level.block.entity.BlockEntity;
|
|||||||
import net.minecraft.world.level.block.state.BlockBehaviour;
|
import net.minecraft.world.level.block.state.BlockBehaviour;
|
||||||
import net.minecraft.world.level.block.state.BlockState;
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
import net.minecraft.world.level.block.state.StateDefinition;
|
import net.minecraft.world.level.block.state.StateDefinition;
|
||||||
|
import net.minecraft.world.level.BlockGetter;
|
||||||
|
import net.minecraft.world.phys.shapes.CollisionContext;
|
||||||
|
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||||
|
|
||||||
public class CritterCageBlock extends BaseEntityBlock {
|
public class CritterCageBlock extends BaseEntityBlock {
|
||||||
|
private static final VoxelShape SHAPE = Block.box(1.0D, 1.0D, 1.0D, 15.0D, 15.0D, 15.0D);
|
||||||
|
|
||||||
private final MapCodec<CritterCageBlock> codec;
|
private final MapCodec<CritterCageBlock> codec;
|
||||||
|
|
||||||
public CritterCageBlock(BlockBehaviour.Properties properties) {
|
public CritterCageBlock(BlockBehaviour.Properties properties) {
|
||||||
@@ -34,6 +39,11 @@ public class CritterCageBlock extends BaseEntityBlock {
|
|||||||
return RenderShape.MODEL;
|
return RenderShape.MODEL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected VoxelShape getShape(BlockState state, BlockGetter level, BlockPos pos, CollisionContext context) {
|
||||||
|
return SHAPE;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public BlockEntity newBlockEntity(BlockPos pos, BlockState state) {
|
public BlockEntity newBlockEntity(BlockPos pos, BlockState state) {
|
||||||
return new CritterCageBlockEntity(pos, state);
|
return new CritterCageBlockEntity(pos, state);
|
||||||
|
|||||||
@@ -269,7 +269,7 @@ public class PotentNyxiteBlock extends BaseEntityBlock {
|
|||||||
BlockPos.MutableBlockPos cursor = pos.relative(direction).mutable();
|
BlockPos.MutableBlockPos cursor = pos.relative(direction).mutable();
|
||||||
while (true) {
|
while (true) {
|
||||||
FluidState fluidState = level.getFluidState(cursor);
|
FluidState fluidState = level.getFluidState(cursor);
|
||||||
if (!fluidState.isSource() || !isAntiwater(fluidState)) {
|
if (!isAntiwater(fluidState)) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,9 @@ import net.minecraft.core.registries.BuiltInRegistries;
|
|||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.nbt.Tag;
|
import net.minecraft.nbt.Tag;
|
||||||
import net.minecraft.network.chat.Component;
|
import net.minecraft.network.chat.Component;
|
||||||
|
import net.minecraft.network.protocol.Packet;
|
||||||
|
import net.minecraft.network.protocol.game.ClientGamePacketListener;
|
||||||
|
import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.world.entity.Entity;
|
import net.minecraft.world.entity.Entity;
|
||||||
import net.minecraft.world.entity.EntityType;
|
import net.minecraft.world.entity.EntityType;
|
||||||
@@ -18,6 +21,7 @@ import net.minecraft.world.item.ItemStack;
|
|||||||
import net.minecraft.world.item.component.CustomData;
|
import net.minecraft.world.item.component.CustomData;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||||
import net.minecraft.world.level.block.state.BlockState;
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
|
|
||||||
@@ -53,6 +57,10 @@ public class CritterCageBlockEntity extends BlockEntity {
|
|||||||
this.dataVersion++;
|
this.dataVersion++;
|
||||||
this.clientDisplayEntity = null;
|
this.clientDisplayEntity = null;
|
||||||
this.setChanged();
|
this.setChanged();
|
||||||
|
if (this.level != null) {
|
||||||
|
BlockState state = this.getBlockState();
|
||||||
|
this.level.sendBlockUpdated(this.worldPosition, state, state, Block.UPDATE_CLIENTS);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public ItemStack toItemStack() {
|
public ItemStack toItemStack() {
|
||||||
@@ -150,6 +158,16 @@ public class CritterCageBlockEntity extends BlockEntity {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CompoundTag getUpdateTag(HolderLookup.Provider registries) {
|
||||||
|
return this.saveCustomOnly(registries);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Packet<ClientGamePacketListener> getUpdatePacket() {
|
||||||
|
return ClientboundBlockEntityDataPacket.create(this);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void loadAdditional(CompoundTag tag, HolderLookup.Provider registries) {
|
protected void loadAdditional(CompoundTag tag, HolderLookup.Provider registries) {
|
||||||
super.loadAdditional(tag, registries);
|
super.loadAdditional(tag, registries);
|
||||||
|
|||||||
@@ -380,7 +380,7 @@ public class PotentNyxiteBlockEntity extends BlockEntity {
|
|||||||
FluidState fluidState = level.getFluidState(cursor);
|
FluidState fluidState = level.getFluidState(cursor);
|
||||||
BlockState blockState = level.getBlockState(cursor);
|
BlockState blockState = level.getBlockState(cursor);
|
||||||
|
|
||||||
if (fluidState.isSource() && isHypnoticGasFluid(fluidState) && isGeyserPassableBlock(level, cursor)) {
|
if (isHypnoticGasFluid(fluidState) && isGeyserPassableBlock(level, cursor)) {
|
||||||
cursor.move(direction);
|
cursor.move(direction);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -113,6 +113,7 @@ public final class SeashellBlockEntity extends RandomizableContainerBlockEntity
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasAnyContents() {
|
public boolean hasAnyContents() {
|
||||||
|
this.generateLootIfNeeded(null);
|
||||||
return this.items.stream().anyMatch(stack -> !stack.isEmpty());
|
return this.items.stream().anyMatch(stack -> !stack.isEmpty());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -128,6 +129,9 @@ public final class SeashellBlockEntity extends RandomizableContainerBlockEntity
|
|||||||
this.redstonePowered = powered;
|
this.redstonePowered = powered;
|
||||||
boolean isOpen = this.isEffectivelyOpen();
|
boolean isOpen = this.isEffectivelyOpen();
|
||||||
if (wasOpen != isOpen) {
|
if (wasOpen != isOpen) {
|
||||||
|
if (isOpen) {
|
||||||
|
this.generateLootIfNeeded(null);
|
||||||
|
}
|
||||||
this.beginTransition(isOpen);
|
this.beginTransition(isOpen);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -141,6 +145,7 @@ public final class SeashellBlockEntity extends RandomizableContainerBlockEntity
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.manuallyOpened = true;
|
this.manuallyOpened = true;
|
||||||
|
this.generateLootIfNeeded(null);
|
||||||
this.beginTransition(true);
|
this.beginTransition(true);
|
||||||
this.setChangedAndSync();
|
this.setChangedAndSync();
|
||||||
return true;
|
return true;
|
||||||
@@ -249,7 +254,9 @@ public final class SeashellBlockEntity extends RandomizableContainerBlockEntity
|
|||||||
@Override
|
@Override
|
||||||
protected void saveAdditional(CompoundTag tag, HolderLookup.Provider registries) {
|
protected void saveAdditional(CompoundTag tag, HolderLookup.Provider registries) {
|
||||||
super.saveAdditional(tag, registries);
|
super.saveAdditional(tag, registries);
|
||||||
|
if (!this.trySaveLootTable(tag)) {
|
||||||
net.minecraft.world.ContainerHelper.saveAllItems(tag, this.items, registries);
|
net.minecraft.world.ContainerHelper.saveAllItems(tag, this.items, registries);
|
||||||
|
}
|
||||||
tag.putBoolean("VisualOpen", this.visualOpen);
|
tag.putBoolean("VisualOpen", this.visualOpen);
|
||||||
tag.putBoolean("VisualInitialized", this.initializedVisualState);
|
tag.putBoolean("VisualInitialized", this.initializedVisualState);
|
||||||
tag.putBoolean("ManuallyOpened", this.manuallyOpened);
|
tag.putBoolean("ManuallyOpened", this.manuallyOpened);
|
||||||
@@ -270,7 +277,8 @@ public final class SeashellBlockEntity extends RandomizableContainerBlockEntity
|
|||||||
@Override
|
@Override
|
||||||
protected void loadAdditional(CompoundTag tag, HolderLookup.Provider registries) {
|
protected void loadAdditional(CompoundTag tag, HolderLookup.Provider registries) {
|
||||||
super.loadAdditional(tag, registries);
|
super.loadAdditional(tag, registries);
|
||||||
if (tag.contains("Items")) {
|
this.items = NonNullList.withSize(this.getContainerSize(), ItemStack.EMPTY);
|
||||||
|
if (!this.tryLoadLootTable(tag) && tag.contains("Items")) {
|
||||||
net.minecraft.world.ContainerHelper.loadAllItems(tag, this.items, registries);
|
net.minecraft.world.ContainerHelper.loadAllItems(tag, this.items, registries);
|
||||||
}
|
}
|
||||||
this.visualOpen = tag.getBoolean("VisualOpen");
|
this.visualOpen = tag.getBoolean("VisualOpen");
|
||||||
@@ -288,6 +296,12 @@ public final class SeashellBlockEntity extends RandomizableContainerBlockEntity
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void generateLootIfNeeded(@Nullable Player player) {
|
||||||
|
if (this.level instanceof ServerLevel) {
|
||||||
|
this.unpackLootTable(player);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private int getFirstEmptySlot() {
|
private int getFirstEmptySlot() {
|
||||||
for (int i = 0; i < this.items.size(); i++) {
|
for (int i = 0; i < this.items.size(); i++) {
|
||||||
if (this.items.get(i).isEmpty()) {
|
if (this.items.get(i).isEmpty()) {
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ public class CritterCageRenderer implements BlockEntityRenderer<CritterCageBlock
|
|||||||
}
|
}
|
||||||
|
|
||||||
displayEntity.tickCount = (int) (level.getGameTime() & Integer.MAX_VALUE);
|
displayEntity.tickCount = (int) (level.getGameTime() & Integer.MAX_VALUE);
|
||||||
float scale = 0.72F / Math.max(Math.max(displayEntity.getBbWidth(), displayEntity.getBbHeight()), 0.5F);
|
float scale = 0.36F / Math.max(Math.max(displayEntity.getBbWidth(), displayEntity.getBbHeight()), 0.5F);
|
||||||
float rotation = ((level.getGameTime() + partialTick) * 4.0F) % 360.0F;
|
float rotation = ((level.getGameTime() + partialTick) * 4.0F) % 360.0F;
|
||||||
|
|
||||||
poseStack.pushPose();
|
poseStack.pushPose();
|
||||||
|
|||||||
@@ -116,6 +116,8 @@ public class BedBugEntity extends Animal implements GeoEntity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return level.getDifficulty() != Difficulty.PEACEFUL
|
return level.getDifficulty() != Difficulty.PEACEFUL
|
||||||
|
&& level.getFluidState(pos).isEmpty()
|
||||||
|
&& level.getFluidState(pos.above()).isEmpty()
|
||||||
&& Animal.checkAnimalSpawnRules(entityType, level, spawnReason, pos, random);
|
&& Animal.checkAnimalSpawnRules(entityType, level, spawnReason, pos, random);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ public class DorrieEntity extends Animal implements GeoEntity {
|
|||||||
private static final EntityDataAccessor<Integer> QUIRK_TICKS =
|
private static final EntityDataAccessor<Integer> QUIRK_TICKS =
|
||||||
SynchedEntityData.defineId(DorrieEntity.class, EntityDataSerializers.INT);
|
SynchedEntityData.defineId(DorrieEntity.class, EntityDataSerializers.INT);
|
||||||
|
|
||||||
private static final int MAX_CHARGE_TICKS = 90;
|
private static final int MAX_CHARGE_TICKS = 22;
|
||||||
private static final float WATER_RIDE_SPEED = 0.42F;
|
private static final float WATER_RIDE_SPEED = 0.42F;
|
||||||
private static final float LAND_BEACH_SPEED = 0.07F;
|
private static final float LAND_BEACH_SPEED = 0.07F;
|
||||||
private static final double ASCEND_SPEED = 0.06D;
|
private static final double ASCEND_SPEED = 0.06D;
|
||||||
@@ -365,6 +365,9 @@ public class DorrieEntity extends Animal implements GeoEntity {
|
|||||||
if (wasInAir && !inAirNow && isLeaping) {
|
if (wasInAir && !inAirNow && isLeaping) {
|
||||||
isLeaping = false;
|
isLeaping = false;
|
||||||
landAnimTicks = 12;
|
landAnimTicks = 12;
|
||||||
|
if (this.isInWater()) {
|
||||||
|
this.playSound(SoundEvents.DOLPHIN_SPLASH, 1.0F, 0.8F + this.random.nextFloat() * 0.4F);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
wasInAir = inAirNow;
|
wasInAir = inAirNow;
|
||||||
}
|
}
|
||||||
@@ -398,8 +401,10 @@ public class DorrieEntity extends Animal implements GeoEntity {
|
|||||||
Vec3 riddenInput = this.getRiddenInput(rider, travelVector);
|
Vec3 riddenInput = this.getRiddenInput(rider, travelVector);
|
||||||
this.setSpeed(this.getRiddenSpeed(rider));
|
this.setSpeed(this.getRiddenSpeed(rider));
|
||||||
|
|
||||||
if (this.isLeaping) {
|
if (!this.isInWater() && !this.isInLava() && !this.onGround()) {
|
||||||
super.travel(travelVector);
|
Vec3 mov = this.getDeltaMovement();
|
||||||
|
this.setDeltaMovement(mov.x * 0.91D, mov.y - 0.08D, mov.z * 0.91D);
|
||||||
|
this.move(net.minecraft.world.entity.MoverType.SELF, this.getDeltaMovement());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -428,18 +433,35 @@ public class DorrieEntity extends Animal implements GeoEntity {
|
|||||||
super.travel(travelVector);
|
super.travel(travelVector);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void applyJumpImpulseClient() {
|
||||||
|
float power = this.getJumpCharge() / 100f;
|
||||||
|
if (power > 0.05f) {
|
||||||
|
Vec3 look = this.getLookAngle();
|
||||||
|
Vec3 flatLook = new Vec3(look.x, 0.0D, look.z).normalize();
|
||||||
|
Vec3 current = this.getDeltaMovement();
|
||||||
|
double forwardAdd = 0.15D + power * 0.45D;
|
||||||
|
double vertical = 0.55D + power * 0.80D;
|
||||||
|
this.setDeltaMovement(
|
||||||
|
current.x + flatLook.x * forwardAdd,
|
||||||
|
vertical,
|
||||||
|
current.z + flatLook.z * forwardAdd
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void releaseJump() {
|
public void releaseJump() {
|
||||||
if (!this.level().isClientSide && isCharging) {
|
if (!this.level().isClientSide && isCharging) {
|
||||||
float power = chargeTicks / (float) MAX_CHARGE_TICKS;
|
float power = chargeTicks / (float) MAX_CHARGE_TICKS;
|
||||||
if (power > 0.05F) {
|
if (power > 0.05F) {
|
||||||
Vec3 look = this.getLookAngle();
|
Vec3 look = this.getLookAngle();
|
||||||
|
Vec3 flatLook = new Vec3(look.x, 0.0D, look.z).normalize();
|
||||||
Vec3 current = this.getDeltaMovement();
|
Vec3 current = this.getDeltaMovement();
|
||||||
double forwardAdd = 0.18D + power * 0.42D;
|
double forwardAdd = 0.15D + power * 0.45D;
|
||||||
double vertical = 0.85D + power * 1.35D;
|
double vertical = 0.55D + power * 0.80D;
|
||||||
this.setDeltaMovement(
|
this.setDeltaMovement(
|
||||||
current.x + look.x * forwardAdd,
|
current.x + flatLook.x * forwardAdd,
|
||||||
current.y + vertical,
|
vertical,
|
||||||
current.z + look.z * forwardAdd
|
current.z + flatLook.z * forwardAdd
|
||||||
);
|
);
|
||||||
this.hasImpulse = true;
|
this.hasImpulse = true;
|
||||||
isLeaping = true;
|
isLeaping = true;
|
||||||
|
|||||||
@@ -297,6 +297,19 @@ public class NightmareEntity extends Monster implements GeoEntity {
|
|||||||
public void lavaHurt() {
|
public void lavaHurt() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isInvulnerableTo(DamageSource source) {
|
||||||
|
return source.is(net.minecraft.world.damagesource.DamageTypes.DROWN) || super.isInvulnerableTo(source);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canBeAffected(MobEffectInstance effectInstance) {
|
||||||
|
if (effectInstance.getEffect() == MobEffects.WITHER) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return super.canBeAffected(effectInstance);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void checkFallDamage(double y, boolean onGround, net.minecraft.world.level.block.state.BlockState state, BlockPos pos) {
|
protected void checkFallDamage(double y, boolean onGround, net.minecraft.world.level.block.state.BlockState state, BlockPos pos) {
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -321,6 +321,7 @@ public class BigBerthaItem extends SwordItem implements GeoItem {
|
|||||||
target.addEffect(new MobEffectInstance(MobEffects.MOVEMENT_SLOWDOWN, AntarchySettings.bigBerthaKrakenSlowTicks(), 1));
|
target.addEffect(new MobEffectInstance(MobEffects.MOVEMENT_SLOWDOWN, AntarchySettings.bigBerthaKrakenSlowTicks(), 1));
|
||||||
level.sendParticles(ParticleTypes.SPLASH, target.getX(), target.getY(0.7D), target.getZ(), 16, 0.35D, 0.3D, 0.35D, 0.08D);
|
level.sendParticles(ParticleTypes.SPLASH, target.getX(), target.getY(0.7D), target.getZ(), 16, 0.35D, 0.3D, 0.35D, 0.08D);
|
||||||
level.sendParticles(ParticleTypes.ELECTRIC_SPARK, target.getX(), target.getY(0.7D), target.getZ(), 10, 0.25D, 0.25D, 0.25D, 0.02D);
|
level.sendParticles(ParticleTypes.ELECTRIC_SPARK, target.getX(), target.getY(0.7D), target.getZ(), 10, 0.25D, 0.25D, 0.25D, 0.02D);
|
||||||
|
com.craisinlord.antarchy.content.entity.kraken.TentacleEntity.spawnAt(level, target.position(), attacker);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void cycleMode(Level level, Player player, ItemStack stack) {
|
private void cycleMode(Level level, Player player, ItemStack stack) {
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
package com.craisinlord.antarchy.content.worldgen.elythia;
|
package com.craisinlord.antarchy.content.worldgen.elythia;
|
||||||
|
|
||||||
import com.craisinlord.antarchy.content.AntarchyObjects;
|
import com.craisinlord.antarchy.content.AntarchyObjects;
|
||||||
|
import com.craisinlord.antarchy.content.AntarchyTags;
|
||||||
import com.craisinlord.antarchy.content.block.GiantLilyPadBlock;
|
import com.craisinlord.antarchy.content.block.GiantLilyPadBlock;
|
||||||
import com.mojang.serialization.Codec;
|
import com.mojang.serialization.Codec;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.tags.FluidTags;
|
|
||||||
import net.minecraft.util.RandomSource;
|
import net.minecraft.util.RandomSource;
|
||||||
import net.minecraft.world.level.WorldGenLevel;
|
import net.minecraft.world.level.WorldGenLevel;
|
||||||
import net.minecraft.world.level.block.Block;
|
import net.minecraft.world.level.block.Block;
|
||||||
@@ -31,7 +31,7 @@ public final class GiantLilyPadPatchFeature extends Feature<NoneFeatureConfigura
|
|||||||
int z = origin.getZ() + random.nextInt(17) - 8;
|
int z = origin.getZ() + random.nextInt(17) - 8;
|
||||||
int surfaceY = level.getHeight(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, x, z) - 1;
|
int surfaceY = level.getHeight(Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, x, z) - 1;
|
||||||
BlockPos fluidPos = new BlockPos(x, surfaceY, z);
|
BlockPos fluidPos = new BlockPos(x, surfaceY, z);
|
||||||
if (!level.getFluidState(fluidPos).is(FluidTags.WATER) || !level.getFluidState(fluidPos).isSource()) {
|
if (!level.getFluidState(fluidPos).is(AntarchyTags.Fluids.GIANT_LILY_PAD_SUPPORTING_FLUIDS) || !level.getFluidState(fluidPos).isSource()) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -11,10 +11,12 @@ import java.util.List;
|
|||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.server.level.ServerLevel;
|
import net.minecraft.server.level.ServerLevel;
|
||||||
|
import net.minecraft.server.level.WorldGenRegion;
|
||||||
import net.minecraft.tags.BlockTags;
|
import net.minecraft.tags.BlockTags;
|
||||||
import net.minecraft.util.Mth;
|
import net.minecraft.util.Mth;
|
||||||
import net.minecraft.util.RandomSource;
|
import net.minecraft.util.RandomSource;
|
||||||
import net.minecraft.world.level.WorldGenLevel;
|
import net.minecraft.world.level.WorldGenLevel;
|
||||||
|
import net.minecraft.world.level.LevelWriter;
|
||||||
import net.minecraft.world.level.block.Blocks;
|
import net.minecraft.world.level.block.Blocks;
|
||||||
import net.minecraft.world.level.block.CaveVines;
|
import net.minecraft.world.level.block.CaveVines;
|
||||||
import net.minecraft.world.level.block.LeavesBlock;
|
import net.minecraft.world.level.block.LeavesBlock;
|
||||||
@@ -1478,6 +1480,16 @@ public class OuranwoodTreeFeature extends Feature<OuranwoodTreeConfiguration> {
|
|||||||
return state.isFaceSturdy(level, pos, Direction.UP);
|
return state.isFaceSturdy(level, pos, Direction.UP);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void setBlock(WorldGenLevel level, BlockPos pos, BlockState state) {
|
||||||
|
if (canWriteAt(level, pos)) {
|
||||||
|
setBlock((LevelWriter) level, pos, state);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected static boolean canWriteAt(WorldGenLevel level, BlockPos pos) {
|
||||||
|
return !(level instanceof WorldGenRegion region) || region.ensureCanWrite(pos);
|
||||||
|
}
|
||||||
|
|
||||||
protected static boolean canReplace(WorldGenLevel level, BlockPos pos) {
|
protected static boolean canReplace(WorldGenLevel level, BlockPos pos) {
|
||||||
BlockState state = level.getBlockState(pos);
|
BlockState state = level.getBlockState(pos);
|
||||||
return state.isAir() || state.canBeReplaced() || state.getBlock() instanceof LeavesBlock;
|
return state.isAir() || state.canBeReplaced() || state.getBlock() instanceof LeavesBlock;
|
||||||
|
|||||||
@@ -56,6 +56,7 @@ public final class SeashellFeature extends Feature<NoneFeatureConfiguration> {
|
|||||||
level.setBlock(shellPos, state, 2);
|
level.setBlock(shellPos, state, 2);
|
||||||
if (level.getBlockEntity(shellPos) instanceof SeashellBlockEntity seashell) {
|
if (level.getBlockEntity(shellPos) instanceof SeashellBlockEntity seashell) {
|
||||||
seashell.setLootTable(LOOT_TABLE, random.nextLong());
|
seashell.setLootTable(LOOT_TABLE, random.nextLong());
|
||||||
|
seashell.setChanged();
|
||||||
}
|
}
|
||||||
placedAny = true;
|
placedAny = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,11 @@ package com.craisinlord.antarchy.content.worldgen.ocean;
|
|||||||
|
|
||||||
import com.craisinlord.antarchy.content.AntarchyObjects;
|
import com.craisinlord.antarchy.content.AntarchyObjects;
|
||||||
import com.mojang.serialization.Codec;
|
import com.mojang.serialization.Codec;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
|
import net.minecraft.core.Direction;
|
||||||
import net.minecraft.tags.FluidTags;
|
import net.minecraft.tags.FluidTags;
|
||||||
import net.minecraft.util.RandomSource;
|
import net.minecraft.util.RandomSource;
|
||||||
import net.minecraft.world.level.WorldGenLevel;
|
import net.minecraft.world.level.WorldGenLevel;
|
||||||
@@ -34,41 +38,81 @@ public final class StarCoralPatchFeature extends Feature<NoneFeatureConfiguratio
|
|||||||
}
|
}
|
||||||
|
|
||||||
int radius = 3 + random.nextInt(3);
|
int radius = 3 + random.nextInt(3);
|
||||||
int targetPlacements = 8 + random.nextInt(9);
|
int targetStructures = 3 + random.nextInt(4);
|
||||||
int attempts = targetPlacements * 4;
|
int attempts = targetStructures * 4;
|
||||||
int placed = 0;
|
int placed = 0;
|
||||||
|
|
||||||
for (int i = 0; i < attempts && placed < targetPlacements; i++) {
|
for (int i = 0; i < attempts && placed < targetStructures; i++) {
|
||||||
int x = origin.getX() + random.nextInt(radius * 2 + 1) - radius;
|
int x = origin.getX() + random.nextInt(radius * 2 + 1) - radius;
|
||||||
int z = origin.getZ() + random.nextInt(radius * 2 + 1) - radius;
|
int z = origin.getZ() + random.nextInt(radius * 2 + 1) - radius;
|
||||||
int y = level.getHeight(Heightmap.Types.OCEAN_FLOOR_WG, x, z);
|
int y = level.getHeight(Heightmap.Types.OCEAN_FLOOR_WG, x, z);
|
||||||
BlockPos supportPos = new BlockPos(x, y - 1, z);
|
BlockPos supportPos = new BlockPos(x, y - 1, z);
|
||||||
BlockPos placePos = supportPos.above();
|
BlockPos basePos = supportPos.above();
|
||||||
|
|
||||||
if (!level.getBlockState(supportPos).isSolid()) {
|
if (!level.getBlockState(supportPos).isSolid()) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (!level.getFluidState(placePos).is(FluidTags.WATER)) {
|
if (!level.getFluidState(basePos).is(FluidTags.WATER)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (!level.getBlockState(placePos).canBeReplaced()) {
|
if (!level.getBlockState(basePos).canBeReplaced()) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
int roll = random.nextInt(10);
|
growCoralStructure(level, random, basePos, starCoralBlock, starCoral, starCoralFan);
|
||||||
BlockState toPlace;
|
|
||||||
if (roll < 5) {
|
|
||||||
toPlace = starCoralBlock.defaultBlockState();
|
|
||||||
} else if (roll < 8) {
|
|
||||||
toPlace = starCoral.defaultBlockState();
|
|
||||||
} else {
|
|
||||||
toPlace = starCoralFan.defaultBlockState();
|
|
||||||
}
|
|
||||||
|
|
||||||
level.setBlock(placePos, toPlace, 2);
|
|
||||||
placed++;
|
placed++;
|
||||||
}
|
}
|
||||||
|
|
||||||
return placed > 0;
|
return placed > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void growCoralStructure(WorldGenLevel level, RandomSource random, BlockPos basePos, Block solidBlock, Block plantBlock, Block fanBlock) {
|
||||||
|
BlockPos pos = basePos;
|
||||||
|
int trunkHeight = 1 + random.nextInt(3);
|
||||||
|
for (int i = 0; i < trunkHeight; i++) {
|
||||||
|
if (!tryPlaceSolid(level, pos, solidBlock)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
pos = pos.above();
|
||||||
|
}
|
||||||
|
|
||||||
|
List<Direction> directions = new ArrayList<>(List.of(Direction.NORTH, Direction.SOUTH, Direction.EAST, Direction.WEST));
|
||||||
|
Collections.shuffle(directions, new java.util.Random(random.nextLong()));
|
||||||
|
|
||||||
|
int branchCount = Math.min(directions.size(), 2 + random.nextInt(3));
|
||||||
|
for (int b = 0; b < branchCount; b++) {
|
||||||
|
Direction direction = directions.get(b);
|
||||||
|
BlockPos branchPos = pos;
|
||||||
|
int branchLength = 2 + random.nextInt(4);
|
||||||
|
boolean grew = false;
|
||||||
|
for (int step = 0; step < branchLength; step++) {
|
||||||
|
branchPos = branchPos.relative(direction);
|
||||||
|
if (step > 0 && random.nextInt(3) == 0) {
|
||||||
|
branchPos = branchPos.above();
|
||||||
|
}
|
||||||
|
if (!tryPlaceSolid(level, branchPos, solidBlock)) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
grew = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (grew) {
|
||||||
|
BlockState tip = random.nextBoolean() ? plantBlock.defaultBlockState() : fanBlock.defaultBlockState();
|
||||||
|
tryPlaceState(level, branchPos.above(), tip);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean tryPlaceSolid(WorldGenLevel level, BlockPos pos, Block block) {
|
||||||
|
return tryPlaceState(level, pos, block.defaultBlockState());
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean tryPlaceState(WorldGenLevel level, BlockPos pos, BlockState state) {
|
||||||
|
if (!level.getFluidState(pos).is(FluidTags.WATER) || !level.getBlockState(pos).canBeReplaced()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
level.setBlock(pos, state, 2);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -185,7 +185,9 @@ public final class BedBugNestFeature extends Feature<NoneFeatureConfiguration> {
|
|||||||
BlockState headState = level.getBlockState(mutable.above());
|
BlockState headState = level.getBlockState(mutable.above());
|
||||||
BlockState floorState = level.getBlockState(mutable.below());
|
BlockState floorState = level.getBlockState(mutable.below());
|
||||||
if (feetState.canBeReplaced()
|
if (feetState.canBeReplaced()
|
||||||
|
&& feetState.getFluidState().isEmpty()
|
||||||
&& headState.canBeReplaced()
|
&& headState.canBeReplaced()
|
||||||
|
&& headState.getFluidState().isEmpty()
|
||||||
&& floorState.blocksMotion()
|
&& floorState.blocksMotion()
|
||||||
&& floorState.isFaceSturdy(level, mutable.below(), Direction.UP)
|
&& floorState.isFaceSturdy(level, mutable.below(), Direction.UP)
|
||||||
&& floorState.getFluidState().isEmpty()) {
|
&& floorState.getFluidState().isEmpty()) {
|
||||||
@@ -205,6 +207,6 @@ public final class BedBugNestFeature extends Feature<NoneFeatureConfiguration> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static boolean isOpen(BlockState state) {
|
private static boolean isOpen(BlockState state) {
|
||||||
return state.isAir() || state.canBeReplaced() || !state.blocksMotion();
|
return state.getFluidState().isEmpty() && (state.isAir() || state.canBeReplaced() || !state.blocksMotion());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -72,7 +72,9 @@ public final class BedBugSurfaceClusterFeature extends Feature<NoneFeatureConfig
|
|||||||
&& floorState.blocksMotion()
|
&& floorState.blocksMotion()
|
||||||
&& floorState.isFaceSturdy(level, mutable, Direction.UP)
|
&& floorState.isFaceSturdy(level, mutable, Direction.UP)
|
||||||
&& airState.canBeReplaced()
|
&& airState.canBeReplaced()
|
||||||
&& aboveAirState.canBeReplaced()) {
|
&& airState.getFluidState().isEmpty()
|
||||||
|
&& aboveAirState.canBeReplaced()
|
||||||
|
&& aboveAirState.getFluidState().isEmpty()) {
|
||||||
return mutable.immutable();
|
return mutable.immutable();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -87,7 +89,8 @@ public final class BedBugSurfaceClusterFeature extends Feature<NoneFeatureConfig
|
|||||||
|
|
||||||
for (int i = 0; i < spotCount; i++) {
|
for (int i = 0; i < spotCount; i++) {
|
||||||
BlockPos eggPos = originEggPos.offset(random.nextInt(3) - 1, 0, random.nextInt(3) - 1);
|
BlockPos eggPos = originEggPos.offset(random.nextInt(3) - 1, 0, random.nextInt(3) - 1);
|
||||||
if (!level.getBlockState(eggPos).canBeReplaced()) {
|
BlockState eggPosState = level.getBlockState(eggPos);
|
||||||
|
if (!eggPosState.canBeReplaced() || !eggPosState.getFluidState().isEmpty()) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -176,7 +179,9 @@ public final class BedBugSurfaceClusterFeature extends Feature<NoneFeatureConfig
|
|||||||
BlockState headState = level.getBlockState(headPos);
|
BlockState headState = level.getBlockState(headPos);
|
||||||
BlockState floorState = level.getBlockState(floorPos);
|
BlockState floorState = level.getBlockState(floorPos);
|
||||||
if (!feetState.canBeReplaced()
|
if (!feetState.canBeReplaced()
|
||||||
|
|| !feetState.getFluidState().isEmpty()
|
||||||
|| !headState.canBeReplaced()
|
|| !headState.canBeReplaced()
|
||||||
|
|| !headState.getFluidState().isEmpty()
|
||||||
|| !floorState.blocksMotion()
|
|| !floorState.blocksMotion()
|
||||||
|| !floorState.isFaceSturdy(level, floorPos, Direction.UP)
|
|| !floorState.isFaceSturdy(level, floorPos, Direction.UP)
|
||||||
|| !floorState.getFluidState().isEmpty()) {
|
|| !floorState.getFluidState().isEmpty()) {
|
||||||
|
|||||||
@@ -24,7 +24,20 @@ public final class AntarchyMixinPlugin implements IMixinConfigPlugin {
|
|||||||
@Override
|
@Override
|
||||||
public boolean shouldApplyMixin(String targetClassName, String mixinClassName) {
|
public boolean shouldApplyMixin(String targetClassName, String mixinClassName) {
|
||||||
String resourcePath = targetClassName.replace('.', '/') + ".class";
|
String resourcePath = targetClassName.replace('.', '/') + ".class";
|
||||||
return this.getClass().getClassLoader().getResource(resourcePath) != null;
|
if (this.getClass().getClassLoader().getResource(resourcePath) == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (mixinClassName.endsWith(".VillagerTradesMixin") && isNeoForge()) {
|
||||||
|
// NeoForge fires VillagerTradesEvent/WandererTradesEvent after registries are fully
|
||||||
|
// populated, mods loaded early via Sinytra can force to class-load before Antarchy's own
|
||||||
|
// registration. Registering these trades through the NeoForge events instead stops this
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isNeoForge() {
|
||||||
|
return this.getClass().getClassLoader().getResource("net/neoforged/neoforge/common/NeoForge.class") != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ public class KrakensGraspChargePoseMixin {
|
|||||||
PoseStack poseStack, MultiBufferSource buffer, int light, CallbackInfo ci) {
|
PoseStack poseStack, MultiBufferSource buffer, int light, CallbackInfo ci) {
|
||||||
if (isChargingKrakensGraspWithArm(entity, arm)) {
|
if (isChargingKrakensGraspWithArm(entity, arm)) {
|
||||||
poseStack.mulPose(Axis.XP.rotationDegrees(162.0F));
|
poseStack.mulPose(Axis.XP.rotationDegrees(162.0F));
|
||||||
|
poseStack.translate(0.0D, -1.0D, 0.0D);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -40,10 +40,10 @@ public abstract class MountedVehicleCameraMixin {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (vehicle instanceof DorrieEntity) {
|
// if (vehicle instanceof DorrieEntity) {
|
||||||
args.set(0, (Float) args.get(0) * 0.25F);
|
// args.set(0, (Float) args.get(0) * 0.25F);
|
||||||
args.set(1, (Float) args.get(1) + 0.1F);
|
// args.set(1, (Float) args.get(1) + 0.1F);
|
||||||
args.set(2, (Float) args.get(2) + 0.55F);
|
// args.set(2, (Float) args.get(2) + 0.55F);
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"": {
|
||||||
|
"model": "antarchy:block/potted_lotus"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"": {
|
||||||
|
"model": "antarchy:block/potted_ouranwood_acorn"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"": {
|
||||||
|
"model": "antarchy:block/potted_peach_sapling"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"": {
|
||||||
|
"model": "antarchy:block/potted_spider_lily"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -7,8 +7,8 @@
|
|||||||
},
|
},
|
||||||
"elements": [
|
"elements": [
|
||||||
{
|
{
|
||||||
"from": [1, 0, 1],
|
"from": [1, 1, 1],
|
||||||
"to": [15, 16, 15],
|
"to": [15, 15, 15],
|
||||||
"faces": {
|
"faces": {
|
||||||
"down": { "texture": "#cage", "cullface": "down" },
|
"down": { "texture": "#cage", "cullface": "down" },
|
||||||
"up": { "texture": "#cage", "cullface": "up" },
|
"up": { "texture": "#cage", "cullface": "up" },
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"parent": "minecraft:block/flower_pot_cross",
|
||||||
|
"textures": {
|
||||||
|
"plant": "antarchy:block/lotus"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"parent": "minecraft:block/flower_pot_cross",
|
||||||
|
"textures": {
|
||||||
|
"plant": "antarchy:block/ouranwood/ouranwood_sapling_2"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"parent": "minecraft:block/flower_pot_cross",
|
||||||
|
"textures": {
|
||||||
|
"plant": "antarchy:block/peach/peach_sapling"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,104 @@
|
|||||||
|
{
|
||||||
|
"ambientocclusion": false,
|
||||||
|
"textures": {
|
||||||
|
"particle": "minecraft:block/flower_pot",
|
||||||
|
"flowerpot": "minecraft:block/flower_pot",
|
||||||
|
"dirt": "minecraft:block/dirt",
|
||||||
|
"stem": "antarchy:block/spider_lily_stem",
|
||||||
|
"flower": "antarchy:block/spider_lily_top"
|
||||||
|
},
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"from": [5, 0, 5],
|
||||||
|
"to": [6, 6, 11],
|
||||||
|
"faces": {
|
||||||
|
"down": { "uv": [5, 5, 6, 11], "texture": "#flowerpot", "cullface": "down" },
|
||||||
|
"up": { "uv": [5, 5, 6, 11], "texture": "#flowerpot" },
|
||||||
|
"north": { "uv": [10, 10, 11, 16], "texture": "#flowerpot" },
|
||||||
|
"south": { "uv": [5, 10, 6, 16], "texture": "#flowerpot" },
|
||||||
|
"west": { "uv": [5, 10, 11, 16], "texture": "#flowerpot" },
|
||||||
|
"east": { "uv": [5, 10, 11, 16], "texture": "#flowerpot" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [10, 0, 5],
|
||||||
|
"to": [11, 6, 11],
|
||||||
|
"faces": {
|
||||||
|
"down": { "uv": [10, 5, 11, 11], "texture": "#flowerpot", "cullface": "down" },
|
||||||
|
"up": { "uv": [10, 5, 11, 11], "texture": "#flowerpot" },
|
||||||
|
"north": { "uv": [5, 10, 6, 16], "texture": "#flowerpot" },
|
||||||
|
"south": { "uv": [10, 10, 11, 16], "texture": "#flowerpot" },
|
||||||
|
"west": { "uv": [5, 10, 11, 16], "texture": "#flowerpot" },
|
||||||
|
"east": { "uv": [5, 10, 11, 16], "texture": "#flowerpot" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6, 0, 5],
|
||||||
|
"to": [10, 6, 6],
|
||||||
|
"faces": {
|
||||||
|
"down": { "uv": [6, 10, 10, 11], "texture": "#flowerpot", "cullface": "down" },
|
||||||
|
"up": { "uv": [6, 5, 10, 6], "texture": "#flowerpot" },
|
||||||
|
"north": { "uv": [6, 10, 10, 16], "texture": "#flowerpot" },
|
||||||
|
"south": { "uv": [6, 10, 10, 16], "texture": "#flowerpot" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6, 0, 10],
|
||||||
|
"to": [10, 6, 11],
|
||||||
|
"faces": {
|
||||||
|
"down": { "uv": [6, 5, 10, 6], "texture": "#flowerpot", "cullface": "down" },
|
||||||
|
"up": { "uv": [6, 10, 10, 11], "texture": "#flowerpot" },
|
||||||
|
"north": { "uv": [6, 10, 10, 16], "texture": "#flowerpot" },
|
||||||
|
"south": { "uv": [6, 10, 10, 16], "texture": "#flowerpot" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6, 0, 6],
|
||||||
|
"to": [10, 4, 10],
|
||||||
|
"faces": {
|
||||||
|
"down": { "uv": [6, 12, 10, 16], "texture": "#flowerpot", "cullface": "down" },
|
||||||
|
"up": { "uv": [6, 6, 10, 10], "texture": "#dirt" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [2.6, 4, 8],
|
||||||
|
"to": [13.4, 16, 8],
|
||||||
|
"rotation": { "origin": [8, 8, 8], "axis": "y", "angle": 45, "rescale": true },
|
||||||
|
"shade": false,
|
||||||
|
"faces": {
|
||||||
|
"north": { "uv": [0, 0, 16, 16], "texture": "#stem", "tintindex": 0 },
|
||||||
|
"south": { "uv": [0, 0, 16, 16], "texture": "#stem", "tintindex": 0 }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [8, 4, 2.6],
|
||||||
|
"to": [8, 16, 13.4],
|
||||||
|
"rotation": { "origin": [8, 8, 8], "axis": "y", "angle": 45, "rescale": true },
|
||||||
|
"shade": false,
|
||||||
|
"faces": {
|
||||||
|
"west": { "uv": [0, 0, 16, 16], "texture": "#stem", "tintindex": 0 },
|
||||||
|
"east": { "uv": [0, 0, 16, 16], "texture": "#stem", "tintindex": 0 }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [2.6, 4, 8],
|
||||||
|
"to": [13.4, 16, 8],
|
||||||
|
"rotation": { "origin": [8, 8, 8], "axis": "y", "angle": 45, "rescale": true },
|
||||||
|
"shade": false,
|
||||||
|
"faces": {
|
||||||
|
"north": { "uv": [0, 0, 16, 16], "texture": "#flower" },
|
||||||
|
"south": { "uv": [0, 0, 16, 16], "texture": "#flower" }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [8, 4, 2.6],
|
||||||
|
"to": [8, 16, 13.4],
|
||||||
|
"rotation": { "origin": [8, 8, 8], "axis": "y", "angle": 45, "rescale": true },
|
||||||
|
"shade": false,
|
||||||
|
"faces": {
|
||||||
|
"west": { "uv": [0, 0, 16, 16], "texture": "#flower" },
|
||||||
|
"east": { "uv": [0, 0, 16, 16], "texture": "#flower" }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
Before Width: | Height: | Size: 524 B After Width: | Height: | Size: 525 B |
|
Before Width: | Height: | Size: 432 B After Width: | Height: | Size: 423 B |
|
Before Width: | Height: | Size: 465 B After Width: | Height: | Size: 464 B |
|
Before Width: | Height: | Size: 354 B After Width: | Height: | Size: 356 B |
|
Before Width: | Height: | Size: 382 B After Width: | Height: | Size: 385 B |
|
Before Width: | Height: | Size: 471 B After Width: | Height: | Size: 469 B |
|
Before Width: | Height: | Size: 423 B After Width: | Height: | Size: 424 B |
|
Before Width: | Height: | Size: 459 B After Width: | Height: | Size: 457 B |
|
Before Width: | Height: | Size: 302 B After Width: | Height: | Size: 310 B |
|
Before Width: | Height: | Size: 369 B After Width: | Height: | Size: 374 B |
|
Before Width: | Height: | Size: 4.0 KiB After Width: | Height: | Size: 4.0 KiB |
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
@@ -0,0 +1,24 @@
|
|||||||
|
{
|
||||||
|
"type": "minecraft:block",
|
||||||
|
"pools": [
|
||||||
|
{
|
||||||
|
"rolls": 1.0,
|
||||||
|
"entries": [
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"name": "minecraft:flower_pot"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"rolls": 1.0,
|
||||||
|
"entries": [
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"name": "antarchy:lotus"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"random_sequence": "antarchy:blocks/potted_lotus"
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
{
|
||||||
|
"type": "minecraft:block",
|
||||||
|
"pools": [
|
||||||
|
{
|
||||||
|
"rolls": 1.0,
|
||||||
|
"entries": [
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"name": "minecraft:flower_pot"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"rolls": 1.0,
|
||||||
|
"entries": [
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"name": "antarchy:ouranwood_acorn"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"random_sequence": "antarchy:blocks/potted_ouranwood_acorn"
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
{
|
||||||
|
"type": "minecraft:block",
|
||||||
|
"pools": [
|
||||||
|
{
|
||||||
|
"rolls": 1.0,
|
||||||
|
"entries": [
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"name": "minecraft:flower_pot"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"rolls": 1.0,
|
||||||
|
"entries": [
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"name": "antarchy:peach_sapling"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"random_sequence": "antarchy:blocks/potted_peach_sapling"
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
{
|
||||||
|
"type": "minecraft:block",
|
||||||
|
"pools": [
|
||||||
|
{
|
||||||
|
"rolls": 1.0,
|
||||||
|
"entries": [
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"name": "minecraft:flower_pot"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"rolls": 1.0,
|
||||||
|
"entries": [
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"name": "antarchy:spider_lily"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"random_sequence": "antarchy:blocks/potted_spider_lily"
|
||||||
|
}
|
||||||
@@ -4,19 +4,125 @@
|
|||||||
{
|
{
|
||||||
"rolls": {
|
"rolls": {
|
||||||
"type": "minecraft:uniform",
|
"type": "minecraft:uniform",
|
||||||
"min": 2,
|
"min": 1,
|
||||||
"max": 5
|
"max": 3
|
||||||
},
|
},
|
||||||
"entries": [
|
"entries": [
|
||||||
{ "type": "minecraft:item", "name": "minecraft:nautilus_shell", "weight": 8 },
|
{
|
||||||
{ "type": "minecraft:item", "name": "minecraft:prismarine_shard", "weight": 10 },
|
"type": "minecraft:item",
|
||||||
{ "type": "minecraft:item", "name": "minecraft:prismarine_crystals", "weight": 8 },
|
"name": "minecraft:lapis_lazuli",
|
||||||
{ "type": "minecraft:item", "name": "minecraft:kelp", "weight": 12 },
|
"weight": 14,
|
||||||
{ "type": "minecraft:item", "name": "minecraft:seagrass", "weight": 10 },
|
"functions": [
|
||||||
{ "type": "minecraft:item", "name": "minecraft:tropical_fish", "weight": 4 },
|
{
|
||||||
{ "type": "minecraft:item", "name": "minecraft:bone_meal", "weight": 8 },
|
"function": "minecraft:set_count",
|
||||||
{ "type": "minecraft:item", "name": "antarchy:star_coral", "weight": 3 },
|
"count": {
|
||||||
{ "type": "minecraft:item", "name": "antarchy:giant_lily_pad", "weight": 1 }
|
"type": "minecraft:uniform",
|
||||||
|
"min": 2,
|
||||||
|
"max": 6
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"name": "minecraft:redstone",
|
||||||
|
"weight": 14,
|
||||||
|
"functions": [
|
||||||
|
{
|
||||||
|
"function": "minecraft:set_count",
|
||||||
|
"count": {
|
||||||
|
"type": "minecraft:uniform",
|
||||||
|
"min": 2,
|
||||||
|
"max": 6
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"name": "minecraft:quartz",
|
||||||
|
"weight": 14,
|
||||||
|
"functions": [
|
||||||
|
{
|
||||||
|
"function": "minecraft:set_count",
|
||||||
|
"count": {
|
||||||
|
"type": "minecraft:uniform",
|
||||||
|
"min": 2,
|
||||||
|
"max": 5
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"name": "minecraft:raw_iron",
|
||||||
|
"weight": 7,
|
||||||
|
"functions": [
|
||||||
|
{
|
||||||
|
"function": "minecraft:set_count",
|
||||||
|
"count": {
|
||||||
|
"type": "minecraft:uniform",
|
||||||
|
"min": 1,
|
||||||
|
"max": 3
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"name": "minecraft:raw_gold",
|
||||||
|
"weight": 7,
|
||||||
|
"functions": [
|
||||||
|
{
|
||||||
|
"function": "minecraft:set_count",
|
||||||
|
"count": {
|
||||||
|
"type": "minecraft:uniform",
|
||||||
|
"min": 1,
|
||||||
|
"max": 3
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"name": "antarchy:uranium_nugget",
|
||||||
|
"weight": 2,
|
||||||
|
"functions": [
|
||||||
|
{
|
||||||
|
"function": "minecraft:set_count",
|
||||||
|
"count": {
|
||||||
|
"type": "minecraft:uniform",
|
||||||
|
"min": 1,
|
||||||
|
"max": 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"name": "antarchy:titanium_nugget",
|
||||||
|
"weight": 2,
|
||||||
|
"functions": [
|
||||||
|
{
|
||||||
|
"function": "minecraft:set_count",
|
||||||
|
"count": {
|
||||||
|
"type": "minecraft:uniform",
|
||||||
|
"min": 1,
|
||||||
|
"max": 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"name": "minecraft:heart_of_the_sea",
|
||||||
|
"weight": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"name": "minecraft:diamond",
|
||||||
|
"weight": 1
|
||||||
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
{
|
{
|
||||||
"type": "minecraft:crafting_shaped",
|
"type": "minecraft:crafting_shaped",
|
||||||
|
"category": "misc",
|
||||||
"pattern": [
|
"pattern": [
|
||||||
"ISI",
|
"ISI",
|
||||||
"SLS",
|
"SLS",
|
||||||
@@ -17,7 +18,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"result": {
|
"result": {
|
||||||
"item": "antarchy:critter_cage",
|
"id": "antarchy:critter_cage",
|
||||||
"count": 1
|
"count": 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"replace": false,
|
||||||
|
"values": [
|
||||||
|
"minecraft:warm_ocean"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -1,14 +1,6 @@
|
|||||||
{
|
{
|
||||||
"replace": false,
|
"replace": false,
|
||||||
"values": [
|
"values": [
|
||||||
"#minecraft:is_ocean",
|
"antarchy:elythia_ocean"
|
||||||
{
|
|
||||||
"id": "#neoforge:is_ocean",
|
|
||||||
"required": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "#c:ocean",
|
|
||||||
"required": false
|
|
||||||
}
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -72,8 +72,8 @@
|
|||||||
{
|
{
|
||||||
"type": "antarchy:caterpillar",
|
"type": "antarchy:caterpillar",
|
||||||
"weight": 30,
|
"weight": 30,
|
||||||
"minCount": 6,
|
"minCount": 1,
|
||||||
"maxCount": 12
|
"maxCount": 3
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "antarchy:golden_apple_cow",
|
"type": "antarchy:golden_apple_cow",
|
||||||
@@ -92,8 +92,8 @@
|
|||||||
{
|
{
|
||||||
"type": "antarchy:butterfly",
|
"type": "antarchy:butterfly",
|
||||||
"weight": 180,
|
"weight": 180,
|
||||||
"minCount": 4,
|
"minCount": 2,
|
||||||
"maxCount": 12
|
"maxCount": 5
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"axolotls": [],
|
"axolotls": [],
|
||||||
|
|||||||
@@ -73,7 +73,7 @@
|
|||||||
"antarchy:elythia_brown_ant_nests",
|
"antarchy:elythia_brown_ant_nests",
|
||||||
"antarchy:elythia_rainbow_ant_nests",
|
"antarchy:elythia_rainbow_ant_nests",
|
||||||
"minecraft:patch_sugar_cane",
|
"minecraft:patch_sugar_cane",
|
||||||
"antarchy:giant_lily_pad_patch_common"
|
"antarchy:giant_lily_pad_patch_meadow"
|
||||||
],
|
],
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -54,6 +54,7 @@
|
|||||||
[
|
[
|
||||||
"minecraft:sea_pickle",
|
"minecraft:sea_pickle",
|
||||||
"minecraft:warm_ocean_vegetation",
|
"minecraft:warm_ocean_vegetation",
|
||||||
|
"antarchy:star_coral_patch",
|
||||||
"minecraft:kelp_warm",
|
"minecraft:kelp_warm",
|
||||||
"antarchy:giant_lily_pad_patch_common"
|
"antarchy:giant_lily_pad_patch_common"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -27,7 +27,8 @@
|
|||||||
[
|
[
|
||||||
"antarchy:lumen_pools",
|
"antarchy:lumen_pools",
|
||||||
"antarchy:lumen_streams",
|
"antarchy:lumen_streams",
|
||||||
"antarchy:lumen_lily_pads"
|
"antarchy:lumen_lily_pads",
|
||||||
|
"antarchy:giant_lily_pad_patch_common"
|
||||||
],
|
],
|
||||||
[],
|
[],
|
||||||
[],
|
[],
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"type": "minecraft:random_patch",
|
||||||
|
"config": {
|
||||||
|
"tries": 6,
|
||||||
|
"xz_spread": 3,
|
||||||
|
"y_spread": 1,
|
||||||
|
"feature": "antarchy:cornea_stalk_single"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"type": "minecraft:random_patch",
|
||||||
|
"config": {
|
||||||
|
"tries": 6,
|
||||||
|
"xz_spread": 3,
|
||||||
|
"y_spread": 1,
|
||||||
|
"feature": "antarchy:patch_ceiling_cornea_stalk_single"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"feature": "antarchy:cornea_stalk_patch",
|
"feature": "antarchy:cornea_stalk_cluster",
|
||||||
"placement": [
|
"placement": [
|
||||||
{
|
{
|
||||||
"type": "minecraft:count",
|
"type": "minecraft:count",
|
||||||
"count": {
|
"count": {
|
||||||
"type": "minecraft:uniform",
|
"type": "minecraft:uniform",
|
||||||
"min_inclusive": 7,
|
"min_inclusive": 3,
|
||||||
"max_inclusive": 15
|
"max_inclusive": 6
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -26,32 +26,6 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "minecraft:biome"
|
"type": "minecraft:biome"
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "minecraft:random_offset",
|
|
||||||
"xz_spread": 2,
|
|
||||||
"y_spread": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "minecraft:block_predicate_filter",
|
|
||||||
"predicate": {
|
|
||||||
"type": "minecraft:all_of",
|
|
||||||
"predicates": [
|
|
||||||
{
|
|
||||||
"type": "minecraft:matching_blocks",
|
|
||||||
"blocks": "minecraft:air"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "minecraft:matching_block_tag",
|
|
||||||
"tag": "antarchy:cornea_stalk_plantable",
|
|
||||||
"offset": [
|
|
||||||
0,
|
|
||||||
-1,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
"feature": "antarchy:cornea_stalk_patch",
|
||||||
|
"placement": [
|
||||||
|
{
|
||||||
|
"type": "minecraft:block_predicate_filter",
|
||||||
|
"predicate": {
|
||||||
|
"type": "minecraft:all_of",
|
||||||
|
"predicates": [
|
||||||
|
{
|
||||||
|
"type": "minecraft:matching_blocks",
|
||||||
|
"blocks": "minecraft:air"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "minecraft:matching_block_tag",
|
||||||
|
"tag": "antarchy:cornea_stalk_plantable",
|
||||||
|
"offset": [
|
||||||
|
0,
|
||||||
|
-1,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"feature": "antarchy:giant_lily_pad_patch",
|
||||||
|
"placement": [
|
||||||
|
{ "type": "minecraft:rarity_filter", "chance": 8 },
|
||||||
|
{ "type": "minecraft:in_square" },
|
||||||
|
{ "type": "minecraft:heightmap", "heightmap": "MOTION_BLOCKING_NO_LEAVES" },
|
||||||
|
{ "type": "minecraft:biome" }
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"feature": "antarchy:patch_ceiling_cornea_stalk",
|
"feature": "antarchy:patch_ceiling_cornea_stalk_cluster",
|
||||||
"placement": [
|
"placement": [
|
||||||
{
|
{
|
||||||
"type": "minecraft:count",
|
"type": "minecraft:count",
|
||||||
"count": {
|
"count": {
|
||||||
"type": "minecraft:uniform",
|
"type": "minecraft:uniform",
|
||||||
"min_inclusive": 7,
|
"min_inclusive": 3,
|
||||||
"max_inclusive": 15
|
"max_inclusive": 6
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -26,32 +26,6 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "minecraft:biome"
|
"type": "minecraft:biome"
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "minecraft:random_offset",
|
|
||||||
"xz_spread": 2,
|
|
||||||
"y_spread": 1
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "minecraft:block_predicate_filter",
|
|
||||||
"predicate": {
|
|
||||||
"type": "minecraft:all_of",
|
|
||||||
"predicates": [
|
|
||||||
{
|
|
||||||
"type": "minecraft:matching_blocks",
|
|
||||||
"blocks": "minecraft:air"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "minecraft:matching_block_tag",
|
|
||||||
"tag": "antarchy:cornea_stalk_plantable",
|
|
||||||
"offset": [
|
|
||||||
0,
|
|
||||||
1,
|
|
||||||
0
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
"feature": "antarchy:patch_ceiling_cornea_stalk",
|
||||||
|
"placement": [
|
||||||
|
{
|
||||||
|
"type": "minecraft:block_predicate_filter",
|
||||||
|
"predicate": {
|
||||||
|
"type": "minecraft:all_of",
|
||||||
|
"predicates": [
|
||||||
|
{
|
||||||
|
"type": "minecraft:matching_blocks",
|
||||||
|
"blocks": "minecraft:air"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "minecraft:matching_block_tag",
|
||||||
|
"tag": "antarchy:cornea_stalk_plantable",
|
||||||
|
"offset": [
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"feature": "antarchy:seashell_patch",
|
||||||
|
"placement": [
|
||||||
|
{
|
||||||
|
"type": "minecraft:rarity_filter",
|
||||||
|
"chance": 100
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "minecraft:in_square"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "minecraft:heightmap",
|
||||||
|
"heightmap": "OCEAN_FLOOR_WG"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "minecraft:biome"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -111,10 +111,26 @@ public final class AntarchyFabric implements ModInitializer {
|
|||||||
Registries.BIOME,
|
Registries.BIOME,
|
||||||
ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "has_seashell")
|
ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "has_seashell")
|
||||||
);
|
);
|
||||||
|
private static final TagKey<net.minecraft.world.level.biome.Biome> HAS_RARE_SEASHELL = TagKey.create(
|
||||||
|
Registries.BIOME,
|
||||||
|
ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "has_rare_seashell")
|
||||||
|
);
|
||||||
private static final ResourceKey<PlacedFeature> SEASHELL_PATCH = ResourceKey.create(
|
private static final ResourceKey<PlacedFeature> SEASHELL_PATCH = ResourceKey.create(
|
||||||
Registries.PLACED_FEATURE,
|
Registries.PLACED_FEATURE,
|
||||||
ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "seashell_patch")
|
ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "seashell_patch")
|
||||||
);
|
);
|
||||||
|
private static final ResourceKey<PlacedFeature> SEASHELL_PATCH_RARE = ResourceKey.create(
|
||||||
|
Registries.PLACED_FEATURE,
|
||||||
|
ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "seashell_patch_rare")
|
||||||
|
);
|
||||||
|
private static final TagKey<net.minecraft.world.level.biome.Biome> HAS_STAR_CORAL = TagKey.create(
|
||||||
|
Registries.BIOME,
|
||||||
|
ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "has_star_coral")
|
||||||
|
);
|
||||||
|
private static final ResourceKey<PlacedFeature> STAR_CORAL_PATCH = ResourceKey.create(
|
||||||
|
Registries.PLACED_FEATURE,
|
||||||
|
ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "star_coral_patch")
|
||||||
|
);
|
||||||
@Override
|
@Override
|
||||||
public void onInitialize() {
|
public void onInitialize() {
|
||||||
AntarchyFabricNetworking.register();
|
AntarchyFabricNetworking.register();
|
||||||
@@ -226,6 +242,16 @@ public final class AntarchyFabric implements ModInitializer {
|
|||||||
GenerationStep.Decoration.VEGETAL_DECORATION,
|
GenerationStep.Decoration.VEGETAL_DECORATION,
|
||||||
SEASHELL_PATCH
|
SEASHELL_PATCH
|
||||||
);
|
);
|
||||||
|
BiomeModifications.addFeature(
|
||||||
|
BiomeSelectors.tag(HAS_RARE_SEASHELL),
|
||||||
|
GenerationStep.Decoration.VEGETAL_DECORATION,
|
||||||
|
SEASHELL_PATCH_RARE
|
||||||
|
);
|
||||||
|
BiomeModifications.addFeature(
|
||||||
|
BiomeSelectors.tag(HAS_STAR_CORAL),
|
||||||
|
GenerationStep.Decoration.VEGETAL_DECORATION,
|
||||||
|
STAR_CORAL_PATCH
|
||||||
|
);
|
||||||
BiomeModifications.addSpawn(
|
BiomeModifications.addSpawn(
|
||||||
BiomeSelectors.tag(APPLE_COW_SPAWN_BIOMES),
|
BiomeSelectors.tag(APPLE_COW_SPAWN_BIOMES),
|
||||||
net.minecraft.world.entity.MobCategory.CREATURE,
|
net.minecraft.world.entity.MobCategory.CREATURE,
|
||||||
|
|||||||
@@ -155,6 +155,12 @@ public final class AntarchyFabricClientBootstrap {
|
|||||||
: net.minecraft.world.level.GrassColor.getDefaultColor(),
|
: net.minecraft.world.level.GrassColor.getDefaultColor(),
|
||||||
AntarchyFabricBlocks.SPIDER_LILY.get()
|
AntarchyFabricBlocks.SPIDER_LILY.get()
|
||||||
);
|
);
|
||||||
|
ColorProviderRegistry.BLOCK.register(
|
||||||
|
(state, level, pos, tintIndex) -> level != null && pos != null
|
||||||
|
? BiomeColors.getAverageGrassColor(level, pos)
|
||||||
|
: net.minecraft.world.level.GrassColor.getDefaultColor(),
|
||||||
|
AntarchyFabricBlocks.POTTED_SPIDER_LILY.get()
|
||||||
|
);
|
||||||
ColorProviderRegistry.ITEM.register((stack, tintIndex) -> FoliageColor.getDefaultColor(), AntarchyFabricItems.OURANWOOD_LEAVES_ITEM.get());
|
ColorProviderRegistry.ITEM.register((stack, tintIndex) -> FoliageColor.getDefaultColor(), AntarchyFabricItems.OURANWOOD_LEAVES_ITEM.get());
|
||||||
ColorProviderRegistry.ITEM.register(
|
ColorProviderRegistry.ITEM.register(
|
||||||
(stack, tintIndex) -> tintIndex == 0 ? net.minecraft.world.level.GrassColor.getDefaultColor() : -1,
|
(stack, tintIndex) -> tintIndex == 0 ? net.minecraft.world.level.GrassColor.getDefaultColor() : -1,
|
||||||
@@ -266,11 +272,13 @@ public final class AntarchyFabricClientBootstrap {
|
|||||||
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.OURANWOOD_DOOR.get(), RenderType.cutout());
|
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.OURANWOOD_DOOR.get(), RenderType.cutout());
|
||||||
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.OURANWOOD_TRAPDOOR.get(), RenderType.cutout());
|
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.OURANWOOD_TRAPDOOR.get(), RenderType.cutout());
|
||||||
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.OURANWOOD_ACORN_BLOCK.get(), RenderType.cutout());
|
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.OURANWOOD_ACORN_BLOCK.get(), RenderType.cutout());
|
||||||
|
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.POTTED_OURANWOOD_ACORN.get(), RenderType.cutout());
|
||||||
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.PEACH_LEAVES.get(), RenderType.cutout());
|
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.PEACH_LEAVES.get(), RenderType.cutout());
|
||||||
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.PEACH_HANGING_PEACH.get(), RenderType.cutout());
|
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.PEACH_HANGING_PEACH.get(), RenderType.cutout());
|
||||||
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.PEACH_DOOR.get(), RenderType.cutout());
|
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.PEACH_DOOR.get(), RenderType.cutout());
|
||||||
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.PEACH_TRAPDOOR.get(), RenderType.cutout());
|
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.PEACH_TRAPDOOR.get(), RenderType.cutout());
|
||||||
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.PEACH_SAPLING.get(), RenderType.cutout());
|
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.PEACH_SAPLING.get(), RenderType.cutout());
|
||||||
|
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.POTTED_PEACH_SAPLING.get(), RenderType.cutout());
|
||||||
// BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricContent.OURANWOOD_VINE.get(), RenderType.cutout());
|
// BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricContent.OURANWOOD_VINE.get(), RenderType.cutout());
|
||||||
// BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricContent.OURANWOOD_VINE_PLANT.get(), RenderType.cutout());
|
// BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricContent.OURANWOOD_VINE_PLANT.get(), RenderType.cutout());
|
||||||
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.DUPLICATOR_SAPLING.get(), RenderType.cutout());
|
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.DUPLICATOR_SAPLING.get(), RenderType.cutout());
|
||||||
@@ -278,7 +286,9 @@ public final class AntarchyFabricClientBootstrap {
|
|||||||
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.PINK_MILKWEED.get(), RenderType.cutout());
|
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.PINK_MILKWEED.get(), RenderType.cutout());
|
||||||
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.CAMELLIA.get(), RenderType.cutout());
|
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.CAMELLIA.get(), RenderType.cutout());
|
||||||
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.SPIDER_LILY.get(), RenderType.cutout());
|
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.SPIDER_LILY.get(), RenderType.cutout());
|
||||||
|
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.POTTED_SPIDER_LILY.get(), RenderType.cutout());
|
||||||
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.LOTUS.get(), RenderType.cutout());
|
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.LOTUS.get(), RenderType.cutout());
|
||||||
|
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.POTTED_LOTUS.get(), RenderType.cutout());
|
||||||
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.GIANT_LILY_PAD.get(), RenderType.cutout());
|
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.GIANT_LILY_PAD.get(), RenderType.cutout());
|
||||||
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.HUSHWEED.get(), RenderType.cutout());
|
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.HUSHWEED.get(), RenderType.cutout());
|
||||||
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.CRITTER_CAGE_BLOCK.get(), RenderType.cutout());
|
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.CRITTER_CAGE_BLOCK.get(), RenderType.cutout());
|
||||||
|
|||||||
@@ -38,6 +38,9 @@ public final class DorrieJumpClientHandler {
|
|||||||
boolean pressingCharge = AntarchyKeyBindings.isDorrieChargeJumpPressed();
|
boolean pressingCharge = AntarchyKeyBindings.isDorrieChargeJumpPressed();
|
||||||
if (pressingCharge != wasPressingCharge) {
|
if (pressingCharge != wasPressingCharge) {
|
||||||
ClientPlayNetworking.send(new DorrieChargeJumpPayload(pressingCharge));
|
ClientPlayNetworking.send(new DorrieChargeJumpPayload(pressingCharge));
|
||||||
|
if (!pressingCharge && player.getVehicle() instanceof DorrieEntity dorrie) {
|
||||||
|
dorrie.applyJumpImpulseClient();
|
||||||
|
}
|
||||||
wasPressingCharge = pressingCharge;
|
wasPressingCharge = pressingCharge;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -335,6 +335,8 @@ public final class AntarchyFabricBlocks {
|
|||||||
|
|
||||||
public static final DeferredBlock<OuranwoodAcornBlock> OURANWOOD_ACORN_BLOCK = BLOCKS.register("ouranwood_acorn",
|
public static final DeferredBlock<OuranwoodAcornBlock> OURANWOOD_ACORN_BLOCK = BLOCKS.register("ouranwood_acorn",
|
||||||
() -> new OuranwoodAcornBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.OAK_SAPLING).randomTicks().noCollission()));
|
() -> new OuranwoodAcornBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.OAK_SAPLING).randomTicks().noCollission()));
|
||||||
|
public static final DeferredBlock<net.minecraft.world.level.block.FlowerPotBlock> POTTED_OURANWOOD_ACORN = BLOCKS.register("potted_ouranwood_acorn",
|
||||||
|
() -> new net.minecraft.world.level.block.FlowerPotBlock(OURANWOOD_ACORN_BLOCK.get(), BlockBehaviour.Properties.ofFullCopy(Blocks.POTTED_DANDELION)));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredBlock<MilkweedBlock> ORANGE_MILKWEED = BLOCKS.register("orange_milkweed",
|
public static final DeferredBlock<MilkweedBlock> ORANGE_MILKWEED = BLOCKS.register("orange_milkweed",
|
||||||
@@ -351,12 +353,16 @@ public final class AntarchyFabricBlocks {
|
|||||||
|
|
||||||
public static final DeferredBlock<com.craisinlord.antarchy.content.block.SpiderLilyBlock> SPIDER_LILY = BLOCKS.register("spider_lily",
|
public static final DeferredBlock<com.craisinlord.antarchy.content.block.SpiderLilyBlock> SPIDER_LILY = BLOCKS.register("spider_lily",
|
||||||
() -> new com.craisinlord.antarchy.content.block.SpiderLilyBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.POPPY)));
|
() -> new com.craisinlord.antarchy.content.block.SpiderLilyBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.POPPY)));
|
||||||
|
public static final DeferredBlock<net.minecraft.world.level.block.FlowerPotBlock> POTTED_SPIDER_LILY = BLOCKS.register("potted_spider_lily",
|
||||||
|
() -> new net.minecraft.world.level.block.FlowerPotBlock(SPIDER_LILY.get(), BlockBehaviour.Properties.ofFullCopy(Blocks.POTTED_DANDELION)));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredBlock<GiantLilyPadBlock> GIANT_LILY_PAD = BLOCKS.register("giant_lily_pad",
|
public static final DeferredBlock<GiantLilyPadBlock> GIANT_LILY_PAD = BLOCKS.register("giant_lily_pad",
|
||||||
() -> new GiantLilyPadBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.LILY_PAD)));
|
() -> new GiantLilyPadBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.LILY_PAD)));
|
||||||
public static final DeferredBlock<com.craisinlord.antarchy.content.block.LotusBlock> LOTUS = BLOCKS.register("lotus",
|
public static final DeferredBlock<com.craisinlord.antarchy.content.block.LotusBlock> LOTUS = BLOCKS.register("lotus",
|
||||||
() -> new com.craisinlord.antarchy.content.block.LotusBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SPORE_BLOSSOM)));
|
() -> new com.craisinlord.antarchy.content.block.LotusBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SPORE_BLOSSOM)));
|
||||||
|
public static final DeferredBlock<net.minecraft.world.level.block.FlowerPotBlock> POTTED_LOTUS = BLOCKS.register("potted_lotus",
|
||||||
|
() -> new net.minecraft.world.level.block.FlowerPotBlock(LOTUS.get(), BlockBehaviour.Properties.ofFullCopy(Blocks.POTTED_DANDELION)));
|
||||||
public static final DeferredBlock<SeashellBlock> SEASHELL = BLOCKS.register("seashell",
|
public static final DeferredBlock<SeashellBlock> SEASHELL = BLOCKS.register("seashell",
|
||||||
() -> new SeashellBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.TURTLE_EGG).noOcclusion()));
|
() -> new SeashellBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.TURTLE_EGG).noOcclusion()));
|
||||||
public static final DeferredBlock<CritterCageBlock> CRITTER_CAGE_BLOCK = BLOCKS.register("critter_cage_block",
|
public static final DeferredBlock<CritterCageBlock> CRITTER_CAGE_BLOCK = BLOCKS.register("critter_cage_block",
|
||||||
@@ -441,6 +447,8 @@ public final class AntarchyFabricBlocks {
|
|||||||
|
|
||||||
public static final DeferredBlock<com.craisinlord.antarchy.content.block.PeachSaplingBlock> PEACH_SAPLING = BLOCKS.register("peach_sapling",
|
public static final DeferredBlock<com.craisinlord.antarchy.content.block.PeachSaplingBlock> PEACH_SAPLING = BLOCKS.register("peach_sapling",
|
||||||
() -> new com.craisinlord.antarchy.content.block.PeachSaplingBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.OAK_SAPLING).randomTicks().noCollission()));
|
() -> new com.craisinlord.antarchy.content.block.PeachSaplingBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.OAK_SAPLING).randomTicks().noCollission()));
|
||||||
|
public static final DeferredBlock<net.minecraft.world.level.block.FlowerPotBlock> POTTED_PEACH_SAPLING = BLOCKS.register("potted_peach_sapling",
|
||||||
|
() -> new net.minecraft.world.level.block.FlowerPotBlock(PEACH_SAPLING.get(), BlockBehaviour.Properties.ofFullCopy(Blocks.POTTED_DANDELION)));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredBlock<net.minecraft.world.level.block.StandingSignBlock> PEACH_SIGN = BLOCKS.register("peach_sign",
|
public static final DeferredBlock<net.minecraft.world.level.block.StandingSignBlock> PEACH_SIGN = BLOCKS.register("peach_sign",
|
||||||
|
|||||||
@@ -409,7 +409,7 @@ public final class AntarchyFabricEntities {
|
|||||||
|
|
||||||
public static final DeferredHolder<EntityType<?>, EntityType<ButterflyEntity>> BUTTERFLY = ENTITY_TYPES.register("butterfly",
|
public static final DeferredHolder<EntityType<?>, EntityType<ButterflyEntity>> BUTTERFLY = ENTITY_TYPES.register("butterfly",
|
||||||
() -> EntityType.Builder.of(ButterflyEntity::new, MobCategory.AMBIENT)
|
() -> EntityType.Builder.of(ButterflyEntity::new, MobCategory.AMBIENT)
|
||||||
.sized(1.125F, 1.375F)
|
.sized(1.125F, 0.6875F)
|
||||||
.clientTrackingRange(8)
|
.clientTrackingRange(8)
|
||||||
.build("butterfly"));
|
.build("butterfly"));
|
||||||
|
|
||||||
|
|||||||
@@ -479,8 +479,8 @@ public final class AntarchyToolsConfig {
|
|||||||
// Critter Cage
|
// Critter Cage
|
||||||
|
|
||||||
b.push("critterCage");
|
b.push("critterCage");
|
||||||
CRITTER_CAGE_MAX_CAPTURABLE_WIDTH = b.comment("Maximum capturable entity width/depth based on the live hitbox, in blocks.").defineInRange("maxCapturableWidth", 1.15D, 0.1D, 64.0D);
|
CRITTER_CAGE_MAX_CAPTURABLE_WIDTH = b.comment("Maximum capturable entity width/depth based on the live hitbox, in blocks.").defineInRange("maxCapturableWidth", 1.65D, 0.1D, 64.0D);
|
||||||
CRITTER_CAGE_MAX_CAPTURABLE_HEIGHT = b.comment("Maximum capturable entity height based on the live hitbox, in blocks.").defineInRange("maxCapturableHeight", 1.15D, 0.1D, 64.0D);
|
CRITTER_CAGE_MAX_CAPTURABLE_HEIGHT = b.comment("Maximum capturable entity height based on the live hitbox, in blocks.").defineInRange("maxCapturableHeight", 1.65D, 0.1D, 64.0D);
|
||||||
b.pop();
|
b.pop();
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -210,6 +210,12 @@ public final class AntarchyNeoForgeClient {
|
|||||||
: net.minecraft.world.level.GrassColor.getDefaultColor(),
|
: net.minecraft.world.level.GrassColor.getDefaultColor(),
|
||||||
AntarchyNeoforgeBlocks.SPIDER_LILY.get()
|
AntarchyNeoforgeBlocks.SPIDER_LILY.get()
|
||||||
);
|
);
|
||||||
|
event.register(
|
||||||
|
(state, level, pos, tintIndex) -> level != null && pos != null
|
||||||
|
? BiomeColors.getAverageGrassColor(level, pos)
|
||||||
|
: net.minecraft.world.level.GrassColor.getDefaultColor(),
|
||||||
|
AntarchyNeoforgeBlocks.POTTED_SPIDER_LILY.get()
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
@@ -505,11 +511,13 @@ public final class AntarchyNeoForgeClient {
|
|||||||
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.OURANWOOD_DOOR.get(), RenderType.cutout());
|
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.OURANWOOD_DOOR.get(), RenderType.cutout());
|
||||||
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.OURANWOOD_TRAPDOOR.get(), RenderType.cutout());
|
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.OURANWOOD_TRAPDOOR.get(), RenderType.cutout());
|
||||||
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.OURANWOOD_ACORN_BLOCK.get(), RenderType.cutout());
|
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.OURANWOOD_ACORN_BLOCK.get(), RenderType.cutout());
|
||||||
|
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.POTTED_OURANWOOD_ACORN.get(), RenderType.cutout());
|
||||||
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.PEACH_LEAVES.get(), RenderType.cutout());
|
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.PEACH_LEAVES.get(), RenderType.cutout());
|
||||||
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.PEACH_HANGING_PEACH.get(), RenderType.cutout());
|
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.PEACH_HANGING_PEACH.get(), RenderType.cutout());
|
||||||
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.PEACH_DOOR.get(), RenderType.cutout());
|
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.PEACH_DOOR.get(), RenderType.cutout());
|
||||||
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.PEACH_TRAPDOOR.get(), RenderType.cutout());
|
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.PEACH_TRAPDOOR.get(), RenderType.cutout());
|
||||||
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.PEACH_SAPLING.get(), RenderType.cutout());
|
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.PEACH_SAPLING.get(), RenderType.cutout());
|
||||||
|
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.POTTED_PEACH_SAPLING.get(), RenderType.cutout());
|
||||||
// ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.OURANWOOD_VINE.get(), RenderType.cutout());
|
// ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.OURANWOOD_VINE.get(), RenderType.cutout());
|
||||||
// ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.OURANWOOD_VINE_PLANT.get(), RenderType.cutout());
|
// ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.OURANWOOD_VINE_PLANT.get(), RenderType.cutout());
|
||||||
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.DUPLICATOR_SAPLING.get(), RenderType.cutout());
|
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.DUPLICATOR_SAPLING.get(), RenderType.cutout());
|
||||||
@@ -517,7 +525,9 @@ public final class AntarchyNeoForgeClient {
|
|||||||
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.PINK_MILKWEED.get(), RenderType.cutout());
|
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.PINK_MILKWEED.get(), RenderType.cutout());
|
||||||
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.CAMELLIA.get(), RenderType.cutout());
|
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.CAMELLIA.get(), RenderType.cutout());
|
||||||
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.SPIDER_LILY.get(), RenderType.cutout());
|
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.SPIDER_LILY.get(), RenderType.cutout());
|
||||||
|
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.POTTED_SPIDER_LILY.get(), RenderType.cutout());
|
||||||
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.LOTUS.get(), RenderType.cutout());
|
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.LOTUS.get(), RenderType.cutout());
|
||||||
|
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.POTTED_LOTUS.get(), RenderType.cutout());
|
||||||
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.GIANT_LILY_PAD.get(), RenderType.cutout());
|
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.GIANT_LILY_PAD.get(), RenderType.cutout());
|
||||||
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.HUSHWEED.get(), RenderType.cutout());
|
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.HUSHWEED.get(), RenderType.cutout());
|
||||||
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.CRITTER_CAGE_BLOCK.get(), RenderType.cutout());
|
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.CRITTER_CAGE_BLOCK.get(), RenderType.cutout());
|
||||||
|
|||||||
@@ -43,6 +43,9 @@ public final class DorrieJumpClientHandler {
|
|||||||
boolean pressingCharge = AntarchyKeyBindings.DORRIE_CHARGE_JUMP.isDown();
|
boolean pressingCharge = AntarchyKeyBindings.DORRIE_CHARGE_JUMP.isDown();
|
||||||
if (pressingCharge != wasPressingCharge) {
|
if (pressingCharge != wasPressingCharge) {
|
||||||
PacketDistributor.sendToServer(new DorrieChargeJumpPayload(pressingCharge));
|
PacketDistributor.sendToServer(new DorrieChargeJumpPayload(pressingCharge));
|
||||||
|
if (!pressingCharge && player.getVehicle() instanceof DorrieEntity dorrie) {
|
||||||
|
dorrie.applyJumpImpulseClient();
|
||||||
|
}
|
||||||
wasPressingCharge = pressingCharge;
|
wasPressingCharge = pressingCharge;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,6 +49,10 @@ import net.neoforged.fml.event.lifecycle.FMLCommonSetupEvent;
|
|||||||
import net.neoforged.neoforge.common.ItemAbilities;
|
import net.neoforged.neoforge.common.ItemAbilities;
|
||||||
import net.neoforged.neoforge.common.NeoForge;
|
import net.neoforged.neoforge.common.NeoForge;
|
||||||
import net.neoforged.neoforge.common.NeoForgeMod;
|
import net.neoforged.neoforge.common.NeoForgeMod;
|
||||||
|
import net.minecraft.world.entity.npc.VillagerProfession;
|
||||||
|
import net.minecraft.world.entity.npc.VillagerTrades;
|
||||||
|
import net.minecraft.world.item.trading.ItemCost;
|
||||||
|
import net.minecraft.world.item.trading.MerchantOffer;
|
||||||
import net.neoforged.neoforge.event.AddReloadListenerEvent;
|
import net.neoforged.neoforge.event.AddReloadListenerEvent;
|
||||||
import net.neoforged.neoforge.event.brewing.RegisterBrewingRecipesEvent;
|
import net.neoforged.neoforge.event.brewing.RegisterBrewingRecipesEvent;
|
||||||
import net.neoforged.neoforge.event.entity.EntityAttributeModificationEvent;
|
import net.neoforged.neoforge.event.entity.EntityAttributeModificationEvent;
|
||||||
@@ -58,6 +62,8 @@ import net.neoforged.neoforge.event.entity.player.PlayerEvent;
|
|||||||
import net.neoforged.neoforge.event.entity.player.PlayerInteractEvent;
|
import net.neoforged.neoforge.event.entity.player.PlayerInteractEvent;
|
||||||
import net.neoforged.neoforge.event.level.BlockEvent;
|
import net.neoforged.neoforge.event.level.BlockEvent;
|
||||||
import net.neoforged.neoforge.event.tick.EntityTickEvent;
|
import net.neoforged.neoforge.event.tick.EntityTickEvent;
|
||||||
|
import net.neoforged.neoforge.event.village.VillagerTradesEvent;
|
||||||
|
import net.neoforged.neoforge.event.village.WandererTradesEvent;
|
||||||
import net.neoforged.neoforge.event.tick.PlayerTickEvent;
|
import net.neoforged.neoforge.event.tick.PlayerTickEvent;
|
||||||
import net.neoforged.neoforge.event.tick.ServerTickEvent;
|
import net.neoforged.neoforge.event.tick.ServerTickEvent;
|
||||||
import com.craisinlord.antarchy.content.item.MinersDreamExcavationManager;
|
import com.craisinlord.antarchy.content.item.MinersDreamExcavationManager;
|
||||||
@@ -118,6 +124,28 @@ public final class AntarchyNeoForgeEvents {
|
|||||||
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleStartTracking);
|
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleStartTracking);
|
||||||
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleDreamSandLogout);
|
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::handleDreamSandLogout);
|
||||||
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::registerReloadListeners);
|
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::registerReloadListeners);
|
||||||
|
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::onVillagerTrades);
|
||||||
|
NeoForge.EVENT_BUS.addListener(AntarchyNeoForgeEvents::onWandererTrades);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void onVillagerTrades(VillagerTradesEvent event) {
|
||||||
|
if (event.getType() == VillagerProfession.FARMER) {
|
||||||
|
event.getTrades().get(1).add(emeraldForItems(AntarchyObjects.CORN.get(), 20, 16, 2));
|
||||||
|
} else if (event.getType() == VillagerProfession.BUTCHER) {
|
||||||
|
event.getTrades().get(1).add(emeraldForItems(AntarchyObjects.COOKED_CORNDOG.get(), 5, 16, 2));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void onWandererTrades(WandererTradesEvent event) {
|
||||||
|
event.getGenericTrades().add(itemsForEmerald(AntarchyObjects.CORN_SEEDS.get(), 1, 3, 12, 2));
|
||||||
|
}
|
||||||
|
|
||||||
|
private static VillagerTrades.ItemListing emeraldForItems(Item item, int count, int maxUses, int villagerXp) {
|
||||||
|
return (trader, random) -> new MerchantOffer(new ItemCost(item, count), new ItemStack(Items.EMERALD), maxUses, villagerXp, 0.05F);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static VillagerTrades.ItemListing itemsForEmerald(Item item, int emeraldCost, int count, int maxUses, int villagerXp) {
|
||||||
|
return (trader, random) -> new MerchantOffer(new ItemCost(Items.EMERALD, emeraldCost), new ItemStack(item, count), maxUses, villagerXp, 0.05F);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void onMissileSquidDeath(LivingDeathEvent event) {
|
public static void onMissileSquidDeath(LivingDeathEvent event) {
|
||||||
|
|||||||
@@ -79,6 +79,8 @@ public final class AntarchyNeoforgeBlocks {
|
|||||||
() -> new OuranwoodLeavesBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_LEAVES).randomTicks()));
|
() -> new OuranwoodLeavesBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_LEAVES).randomTicks()));
|
||||||
public static final DeferredBlock<OuranwoodAcornBlock> OURANWOOD_ACORN_BLOCK = BLOCKS.register("ouranwood_acorn",
|
public static final DeferredBlock<OuranwoodAcornBlock> OURANWOOD_ACORN_BLOCK = BLOCKS.register("ouranwood_acorn",
|
||||||
() -> new OuranwoodAcornBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.OAK_SAPLING).randomTicks().noCollission()));
|
() -> new OuranwoodAcornBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.OAK_SAPLING).randomTicks().noCollission()));
|
||||||
|
public static final DeferredBlock<FlowerPotBlock> POTTED_OURANWOOD_ACORN = BLOCKS.register("potted_ouranwood_acorn",
|
||||||
|
() -> new FlowerPotBlock(OURANWOOD_ACORN_BLOCK.get(), BlockBehaviour.Properties.ofFullCopy(Blocks.POTTED_DANDELION)));
|
||||||
// public static final DeferredBlock<OuranwoodVineBlock> OURANWOOD_VINE = BLOCKS.register("ouranwood_vine",
|
// public static final DeferredBlock<OuranwoodVineBlock> OURANWOOD_VINE = BLOCKS.register("ouranwood_vine",
|
||||||
// () -> OURANWOOD_VINE_INSTANCE);
|
// () -> OURANWOOD_VINE_INSTANCE);
|
||||||
// public static final DeferredBlock<OuranwoodVinePlantBlock> OURANWOOD_VINE_PLANT = BLOCKS.register("ouranwood_vine_plant",
|
// public static final DeferredBlock<OuranwoodVinePlantBlock> OURANWOOD_VINE_PLANT = BLOCKS.register("ouranwood_vine_plant",
|
||||||
@@ -91,10 +93,14 @@ public final class AntarchyNeoforgeBlocks {
|
|||||||
() -> new com.craisinlord.antarchy.content.block.CamelliaBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.PEONY)));
|
() -> new com.craisinlord.antarchy.content.block.CamelliaBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.PEONY)));
|
||||||
public static final DeferredBlock<com.craisinlord.antarchy.content.block.SpiderLilyBlock> SPIDER_LILY = BLOCKS.register("spider_lily",
|
public static final DeferredBlock<com.craisinlord.antarchy.content.block.SpiderLilyBlock> SPIDER_LILY = BLOCKS.register("spider_lily",
|
||||||
() -> new com.craisinlord.antarchy.content.block.SpiderLilyBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.POPPY)));
|
() -> new com.craisinlord.antarchy.content.block.SpiderLilyBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.POPPY)));
|
||||||
|
public static final DeferredBlock<FlowerPotBlock> POTTED_SPIDER_LILY = BLOCKS.register("potted_spider_lily",
|
||||||
|
() -> new FlowerPotBlock(SPIDER_LILY.get(), BlockBehaviour.Properties.ofFullCopy(Blocks.POTTED_DANDELION)));
|
||||||
public static final DeferredBlock<GiantLilyPadBlock> GIANT_LILY_PAD = BLOCKS.register("giant_lily_pad",
|
public static final DeferredBlock<GiantLilyPadBlock> GIANT_LILY_PAD = BLOCKS.register("giant_lily_pad",
|
||||||
() -> new GiantLilyPadBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.LILY_PAD)));
|
() -> new GiantLilyPadBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.LILY_PAD)));
|
||||||
public static final DeferredBlock<com.craisinlord.antarchy.content.block.LotusBlock> LOTUS = BLOCKS.register("lotus",
|
public static final DeferredBlock<com.craisinlord.antarchy.content.block.LotusBlock> LOTUS = BLOCKS.register("lotus",
|
||||||
() -> new com.craisinlord.antarchy.content.block.LotusBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SPORE_BLOSSOM)));
|
() -> new com.craisinlord.antarchy.content.block.LotusBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SPORE_BLOSSOM)));
|
||||||
|
public static final DeferredBlock<FlowerPotBlock> POTTED_LOTUS = BLOCKS.register("potted_lotus",
|
||||||
|
() -> new FlowerPotBlock(LOTUS.get(), BlockBehaviour.Properties.ofFullCopy(Blocks.POTTED_DANDELION)));
|
||||||
public static final DeferredBlock<SeashellBlock> SEASHELL = BLOCKS.register("seashell",
|
public static final DeferredBlock<SeashellBlock> SEASHELL = BLOCKS.register("seashell",
|
||||||
() -> new SeashellBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.TURTLE_EGG).noOcclusion()));
|
() -> new SeashellBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.TURTLE_EGG).noOcclusion()));
|
||||||
public static final DeferredBlock<CritterCageBlock> CRITTER_CAGE_BLOCK = BLOCKS.register("critter_cage_block",
|
public static final DeferredBlock<CritterCageBlock> CRITTER_CAGE_BLOCK = BLOCKS.register("critter_cage_block",
|
||||||
@@ -139,6 +145,8 @@ public final class AntarchyNeoforgeBlocks {
|
|||||||
() -> new HangingPeachBlock(BlockBehaviour.Properties.of().noOcclusion().instabreak()));
|
() -> new HangingPeachBlock(BlockBehaviour.Properties.of().noOcclusion().instabreak()));
|
||||||
public static final DeferredBlock<com.craisinlord.antarchy.content.block.PeachSaplingBlock> PEACH_SAPLING = BLOCKS.register("peach_sapling",
|
public static final DeferredBlock<com.craisinlord.antarchy.content.block.PeachSaplingBlock> PEACH_SAPLING = BLOCKS.register("peach_sapling",
|
||||||
() -> new com.craisinlord.antarchy.content.block.PeachSaplingBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.OAK_SAPLING).randomTicks().noCollission()));
|
() -> new com.craisinlord.antarchy.content.block.PeachSaplingBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.OAK_SAPLING).randomTicks().noCollission()));
|
||||||
|
public static final DeferredBlock<FlowerPotBlock> POTTED_PEACH_SAPLING = BLOCKS.register("potted_peach_sapling",
|
||||||
|
() -> new FlowerPotBlock(PEACH_SAPLING.get(), BlockBehaviour.Properties.ofFullCopy(Blocks.POTTED_DANDELION)));
|
||||||
public static final DeferredBlock<StandingSignBlock> PEACH_SIGN = BLOCKS.register("peach_sign",
|
public static final DeferredBlock<StandingSignBlock> PEACH_SIGN = BLOCKS.register("peach_sign",
|
||||||
() -> new StandingSignBlock(AntarchyWoodTypes.PEACH, BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_SIGN)));
|
() -> new StandingSignBlock(AntarchyWoodTypes.PEACH, BlockBehaviour.Properties.ofFullCopy(Blocks.JUNGLE_SIGN)));
|
||||||
public static final DeferredBlock<WallSignBlock> PEACH_WALL_SIGN = BLOCKS.register("peach_wall_sign",
|
public static final DeferredBlock<WallSignBlock> PEACH_WALL_SIGN = BLOCKS.register("peach_wall_sign",
|
||||||
|
|||||||
@@ -134,6 +134,8 @@ public class AntarchyNeoforgeCreativeModeTabs {
|
|||||||
event.accept(AntarchyNeoforgeItems.LUMEN_BUCKET.get());
|
event.accept(AntarchyNeoforgeItems.LUMEN_BUCKET.get());
|
||||||
event.accept(AntarchyNeoforgeItems.CLOUD_BUCKET.get());
|
event.accept(AntarchyNeoforgeItems.CLOUD_BUCKET.get());
|
||||||
event.accept(AntarchyNeoforgeItems.REVERIE_BOTTLE.get());
|
event.accept(AntarchyNeoforgeItems.REVERIE_BOTTLE.get());
|
||||||
|
event.accept(AntarchyNeoforgeItems.GLIMMER_BOTTLE.get());
|
||||||
|
event.accept(AntarchyNeoforgeItems.CRITTER_CAGE.get());
|
||||||
event.accept(AntarchyNeoforgeItems.ULTIMATE_PICKAXE.get());
|
event.accept(AntarchyNeoforgeItems.ULTIMATE_PICKAXE.get());
|
||||||
event.accept(AntarchyNeoforgeItems.ULTIMATE_AXE.get());
|
event.accept(AntarchyNeoforgeItems.ULTIMATE_AXE.get());
|
||||||
event.accept(AntarchyNeoforgeItems.ULTIMATE_SHOVEL.get());
|
event.accept(AntarchyNeoforgeItems.ULTIMATE_SHOVEL.get());
|
||||||
|
|||||||
@@ -193,7 +193,7 @@ public final class AntarchyNeoforgeEntites {
|
|||||||
.build("caterpillar"));
|
.build("caterpillar"));
|
||||||
public static final DeferredHolder<EntityType<?>, EntityType<ButterflyEntity>> BUTTERFLY = ENTITY_TYPES.register("butterfly",
|
public static final DeferredHolder<EntityType<?>, EntityType<ButterflyEntity>> BUTTERFLY = ENTITY_TYPES.register("butterfly",
|
||||||
() -> EntityType.Builder.of(ButterflyEntity::new, MobCategory.AMBIENT)
|
() -> EntityType.Builder.of(ButterflyEntity::new, MobCategory.AMBIENT)
|
||||||
.sized(1.125F, 1.375F)
|
.sized(1.125F, 0.6875F)
|
||||||
.clientTrackingRange(8)
|
.clientTrackingRange(8)
|
||||||
.build("butterfly"));
|
.build("butterfly"));
|
||||||
public static final DeferredHolder<EntityType<?>, EntityType<ReverieEntity>> REVERIE = ENTITY_TYPES.register("reverie",
|
public static final DeferredHolder<EntityType<?>, EntityType<ReverieEntity>> REVERIE = ENTITY_TYPES.register("reverie",
|
||||||
|
|||||||
@@ -711,11 +711,6 @@ public final class AntarchyNeoforgeItems {
|
|||||||
.nutrition(2)
|
.nutrition(2)
|
||||||
.saturationModifier(0.1F)
|
.saturationModifier(0.1F)
|
||||||
.build())));
|
.build())));
|
||||||
public static final DeferredItem<Item> CREEPING_HORROR_EGG_ITEM = ITEMS.register("creeping_horror_egg",
|
|
||||||
() -> new MobComingSoonTooltipItem(new Item.Properties().rarity(Rarity.RARE)));
|
|
||||||
public static final DeferredItem<Item> LURKING_TERROR_EGG_ITEM = ITEMS.register("lurking_terror_egg",
|
|
||||||
() -> new MobComingSoonTooltipItem(new Item.Properties().rarity(Rarity.RARE)));
|
|
||||||
|
|
||||||
private AntarchyNeoforgeItems() {}
|
private AntarchyNeoforgeItems() {}
|
||||||
|
|
||||||
public static Collection<DeferredHolder<Item,? extends Item>> getItemEntries() {
|
public static Collection<DeferredHolder<Item,? extends Item>> getItemEntries() {
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"type": "neoforge:add_features",
|
||||||
|
"biomes": "#antarchy:has_rare_seashell",
|
||||||
|
"features": ["antarchy:seashell_patch_rare"],
|
||||||
|
"step": "vegetal_decoration"
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"type": "neoforge:add_features",
|
||||||
|
"biomes": "#antarchy:has_star_coral",
|
||||||
|
"features": ["antarchy:star_coral_patch"],
|
||||||
|
"step": "vegetal_decoration"
|
||||||
|
}
|
||||||