fixed NML crash
jerry fixes made drinking milk reset size ray fixed logspam for setblock far away fixed fabric brutalfly charge bar fixed blood crystal hearts being on top of chat overlay fixed glimmers immune to kill and damage commands fixed ult crossbow player data corruption rarely happening made nyxite spikes broken facing up fall upward and UpwardFallingBlockEntity fixed incorrect map colors for blocks fixed common rarity for uranium and titanium blocks
This commit is contained in:
1 parent
1858369f74
commit
d5fd81f1c3
78 files changed
+896
-234
No files matched your search
@@ -83,7 +83,7 @@ public final class AntarchySettings {
|
|||||||
private static double bigBerthaBasiliskCooldownSeconds = 7.0D;
|
private static double bigBerthaBasiliskCooldownSeconds = 7.0D;
|
||||||
private static double bigBerthaLucidInvertedDurationSeconds = 3.0D;
|
private static double bigBerthaLucidInvertedDurationSeconds = 3.0D;
|
||||||
private static double bigBerthaLucidInvertedDamageBonusPercent = 25.0D;
|
private static double bigBerthaLucidInvertedDamageBonusPercent = 25.0D;
|
||||||
private static double potentNyxiteInvertedDurationSeconds = 2.0D;
|
private static double potentNyxiteInvertedDurationSeconds = 60.0D;
|
||||||
private static int ultimateToolEnchantability = 25;
|
private static int ultimateToolEnchantability = 25;
|
||||||
private static int ultimateArmorEnchantability = 10;
|
private static int ultimateArmorEnchantability = 10;
|
||||||
private static int ultimateBowEnchantability = 20;
|
private static int ultimateBowEnchantability = 20;
|
||||||
|
|||||||
@@ -134,6 +134,7 @@ public final class AntarchySoundEvents {
|
|||||||
public static Supplier<SoundEvent> STINKY_FLY = (Supplier<SoundEvent>) UNBOUND;
|
public static Supplier<SoundEvent> STINKY_FLY = (Supplier<SoundEvent>) UNBOUND;
|
||||||
public static Supplier<SoundEvent> STINK_BUG_FART = (Supplier<SoundEvent>) UNBOUND;
|
public static Supplier<SoundEvent> STINK_BUG_FART = (Supplier<SoundEvent>) UNBOUND;
|
||||||
public static Supplier<SoundEvent> STINK_BUG_IDLE = (Supplier<SoundEvent>) UNBOUND;
|
public static Supplier<SoundEvent> STINK_BUG_IDLE = (Supplier<SoundEvent>) UNBOUND;
|
||||||
|
public static Supplier<SoundEvent> CAVARYN_HEARTBEAT = (Supplier<SoundEvent>) UNBOUND;
|
||||||
public static Supplier<SoundEvent> ROLLY_POLLY_IDLE = (Supplier<SoundEvent>) UNBOUND;
|
public static Supplier<SoundEvent> ROLLY_POLLY_IDLE = (Supplier<SoundEvent>) UNBOUND;
|
||||||
public static Supplier<SoundEvent> CREEPING_HORROR_GROWL = (Supplier<SoundEvent>) UNBOUND;
|
public static Supplier<SoundEvent> CREEPING_HORROR_GROWL = (Supplier<SoundEvent>) UNBOUND;
|
||||||
public static Supplier<SoundEvent> CREEPING_HORROR_HURT = (Supplier<SoundEvent>) UNBOUND;
|
public static Supplier<SoundEvent> CREEPING_HORROR_HURT = (Supplier<SoundEvent>) UNBOUND;
|
||||||
@@ -289,6 +290,7 @@ public final class AntarchySoundEvents {
|
|||||||
Supplier<SoundEvent> stinkyFly,
|
Supplier<SoundEvent> stinkyFly,
|
||||||
Supplier<SoundEvent> stinkBugFart,
|
Supplier<SoundEvent> stinkBugFart,
|
||||||
Supplier<SoundEvent> stinkBugIdle,
|
Supplier<SoundEvent> stinkBugIdle,
|
||||||
|
Supplier<SoundEvent> cavarynHeartbeat,
|
||||||
Supplier<SoundEvent> rollyPollyIdle,
|
Supplier<SoundEvent> rollyPollyIdle,
|
||||||
Supplier<SoundEvent> creepingHorrorGrowl,
|
Supplier<SoundEvent> creepingHorrorGrowl,
|
||||||
Supplier<SoundEvent> creepingHorrorHurt,
|
Supplier<SoundEvent> creepingHorrorHurt,
|
||||||
@@ -440,6 +442,7 @@ public final class AntarchySoundEvents {
|
|||||||
STINKY_FLY = stinkyFly;
|
STINKY_FLY = stinkyFly;
|
||||||
STINK_BUG_FART = stinkBugFart;
|
STINK_BUG_FART = stinkBugFart;
|
||||||
STINK_BUG_IDLE = stinkBugIdle;
|
STINK_BUG_IDLE = stinkBugIdle;
|
||||||
|
CAVARYN_HEARTBEAT = cavarynHeartbeat;
|
||||||
ROLLY_POLLY_IDLE = rollyPollyIdle;
|
ROLLY_POLLY_IDLE = rollyPollyIdle;
|
||||||
CREEPING_HORROR_GROWL = creepingHorrorGrowl;
|
CREEPING_HORROR_GROWL = creepingHorrorGrowl;
|
||||||
CREEPING_HORROR_HURT = creepingHorrorHurt;
|
CREEPING_HORROR_HURT = creepingHorrorHurt;
|
||||||
|
|||||||
@@ -13,6 +13,8 @@ import net.minecraft.util.RandomSource;
|
|||||||
import net.minecraft.util.StringRepresentable;
|
import net.minecraft.util.StringRepresentable;
|
||||||
import net.minecraft.world.InteractionHand;
|
import net.minecraft.world.InteractionHand;
|
||||||
import net.minecraft.world.ItemInteractionResult;
|
import net.minecraft.world.ItemInteractionResult;
|
||||||
|
import net.minecraft.world.entity.Entity;
|
||||||
|
import net.minecraft.world.entity.LivingEntity;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.item.context.BlockPlaceContext;
|
import net.minecraft.world.item.context.BlockPlaceContext;
|
||||||
@@ -31,6 +33,7 @@ import net.minecraft.world.level.block.state.properties.BooleanProperty;
|
|||||||
import net.minecraft.world.level.block.state.properties.EnumProperty;
|
import net.minecraft.world.level.block.state.properties.EnumProperty;
|
||||||
import net.minecraft.world.phys.BlockHitResult;
|
import net.minecraft.world.phys.BlockHitResult;
|
||||||
import net.minecraft.world.phys.Vec2;
|
import net.minecraft.world.phys.Vec2;
|
||||||
|
import net.minecraft.world.phys.Vec3;
|
||||||
import net.minecraft.world.phys.shapes.CollisionContext;
|
import net.minecraft.world.phys.shapes.CollisionContext;
|
||||||
import net.minecraft.world.phys.shapes.VoxelShape;
|
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
@@ -44,6 +47,9 @@ public final class GiantLilyPadBlock extends Block implements BonemealableBlock
|
|||||||
private static final VoxelShape SHAPE = Block.box(0.0D, 0.0D, 0.0D, 16.0D, 0.5D, 16.0D);
|
private static final VoxelShape SHAPE = Block.box(0.0D, 0.0D, 0.0D, 16.0D, 0.5D, 16.0D);
|
||||||
private static final ThreadLocal<Boolean> REMOVING_STRUCTURE = ThreadLocal.withInitial(() -> false);
|
private static final ThreadLocal<Boolean> REMOVING_STRUCTURE = ThreadLocal.withInitial(() -> false);
|
||||||
private static final Map<TilePosition, Vec2> OFFSETS = createOffsets();
|
private static final Map<TilePosition, Vec2> OFFSETS = createOffsets();
|
||||||
|
private static final double BOUNCE_FACTOR = 0.35D;
|
||||||
|
private static final double FORWARD_BOOST_MULTIPLIER = 1.05D;
|
||||||
|
private static final double MAX_BOOSTED_HORIZONTAL_SPEED = 0.6D;
|
||||||
|
|
||||||
public GiantLilyPadBlock(BlockBehaviour.Properties properties) {
|
public GiantLilyPadBlock(BlockBehaviour.Properties properties) {
|
||||||
super(properties);
|
super(properties);
|
||||||
@@ -148,6 +154,34 @@ public final class GiantLilyPadBlock extends Block implements BonemealableBlock
|
|||||||
return ItemInteractionResult.CONSUME;
|
return ItemInteractionResult.CONSUME;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void stepOn(Level level, BlockPos pos, BlockState state, Entity entity) {
|
||||||
|
super.stepOn(level, pos, state, entity);
|
||||||
|
if (!level.isClientSide) {
|
||||||
|
Vec3 movement = entity.getDeltaMovement();
|
||||||
|
double horizontalSpeed = movement.horizontalDistance();
|
||||||
|
if (horizontalSpeed > 0.02D && horizontalSpeed < MAX_BOOSTED_HORIZONTAL_SPEED) {
|
||||||
|
double boosted = Math.min(horizontalSpeed * FORWARD_BOOST_MULTIPLIER, MAX_BOOSTED_HORIZONTAL_SPEED);
|
||||||
|
double scale = boosted / horizontalSpeed;
|
||||||
|
entity.setDeltaMovement(movement.x * scale, movement.y, movement.z * scale);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateEntityAfterFallOn(BlockGetter level, Entity entity) {
|
||||||
|
if (entity.isSuppressingBounce()) {
|
||||||
|
super.updateEntityAfterFallOn(level, entity);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Vec3 movement = entity.getDeltaMovement();
|
||||||
|
if (movement.y < 0.0D) {
|
||||||
|
double bounce = entity instanceof LivingEntity ? BOUNCE_FACTOR : BOUNCE_FACTOR * 0.7D;
|
||||||
|
entity.setDeltaMovement(movement.x, -movement.y * bounce, movement.z);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void animateTick(BlockState state, Level level, BlockPos pos, RandomSource random) {
|
public void animateTick(BlockState state, Level level, BlockPos pos, RandomSource random) {
|
||||||
if (!state.getValue(HAS_LOTUS) || random.nextInt(10) != 0) {
|
if (!state.getValue(HAS_LOTUS) || random.nextInt(10) != 0) {
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ public class JerryEggBlock extends Block {
|
|||||||
public static final BooleanProperty ROTATED = BooleanProperty.create("rotated");
|
public static final BooleanProperty ROTATED = BooleanProperty.create("rotated");
|
||||||
private static final ResourceLocation JERRY_ID = ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "jerry");
|
private static final ResourceLocation JERRY_ID = ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "jerry");
|
||||||
private static final int HATCH_CHECK_INTERVAL = 1200;
|
private static final int HATCH_CHECK_INTERVAL = 1200;
|
||||||
private static final VoxelShape SHAPE = Block.box(1.0D, 0.0D, 0.0D, 15.0D, 16.0D, 16.0D);
|
private static final VoxelShape SHAPE = Block.box(1.5D, 0.0D, 1.5D, 14.5D, 16.0D, 14.5D);
|
||||||
|
|
||||||
public JerryEggBlock(BlockBehaviour.Properties properties) {
|
public JerryEggBlock(BlockBehaviour.Properties properties) {
|
||||||
super(properties);
|
super(properties);
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.craisinlord.antarchy.content.block;
|
package com.craisinlord.antarchy.content.block;
|
||||||
|
|
||||||
import com.craisinlord.antarchy.content.AntarchyObjects;
|
import com.craisinlord.antarchy.content.AntarchyObjects;
|
||||||
|
import com.craisinlord.antarchy.content.entity.UpwardFallingBlockEntity;
|
||||||
import com.mojang.serialization.MapCodec;
|
import com.mojang.serialization.MapCodec;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
@@ -11,7 +12,6 @@ import net.minecraft.world.item.context.BlockPlaceContext;
|
|||||||
import net.minecraft.world.level.LevelAccessor;
|
import net.minecraft.world.level.LevelAccessor;
|
||||||
import net.minecraft.world.level.LevelReader;
|
import net.minecraft.world.level.LevelReader;
|
||||||
import net.minecraft.world.level.block.Block;
|
import net.minecraft.world.level.block.Block;
|
||||||
import net.minecraft.world.level.block.Blocks;
|
|
||||||
import net.minecraft.world.level.block.PointedDripstoneBlock;
|
import net.minecraft.world.level.block.PointedDripstoneBlock;
|
||||||
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;
|
||||||
@@ -119,8 +119,7 @@ public class NyxiteSpikeBlock extends PointedDripstoneBlock {
|
|||||||
BlockPos.MutableBlockPos cursor = pos.mutable();
|
BlockPos.MutableBlockPos cursor = pos.mutable();
|
||||||
while (isNyxiteSpikeWithDirection(level.getBlockState(cursor), Direction.UP)) {
|
while (isNyxiteSpikeWithDirection(level.getBlockState(cursor), Direction.UP)) {
|
||||||
BlockState spikeState = level.getBlockState(cursor);
|
BlockState spikeState = level.getBlockState(cursor);
|
||||||
dropResources(spikeState, level, cursor);
|
UpwardFallingBlockEntity.fallUp(level, cursor, spikeState);
|
||||||
level.removeBlock(cursor, false);
|
|
||||||
cursor.move(Direction.UP);
|
cursor.move(Direction.UP);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,13 @@
|
|||||||
package com.craisinlord.antarchy.content.client;
|
package com.craisinlord.antarchy.content.client;
|
||||||
|
|
||||||
import com.craisinlord.antarchy.Antarchy;
|
import com.craisinlord.antarchy.Antarchy;
|
||||||
|
import com.craisinlord.antarchy.content.AntarchySoundEvents;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.core.particles.ParticleTypes;
|
import net.minecraft.core.particles.ParticleTypes;
|
||||||
import net.minecraft.core.registries.Registries;
|
import net.minecraft.core.registries.Registries;
|
||||||
import net.minecraft.resources.ResourceKey;
|
import net.minecraft.resources.ResourceKey;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
import net.minecraft.sounds.SoundSource;
|
||||||
import net.minecraft.util.Mth;
|
import net.minecraft.util.Mth;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
import net.minecraft.world.phys.Vec3;
|
import net.minecraft.world.phys.Vec3;
|
||||||
@@ -15,14 +17,18 @@ public final class HordeClientState {
|
|||||||
Registries.DIMENSION,
|
Registries.DIMENSION,
|
||||||
ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "cavaryn")
|
ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "cavaryn")
|
||||||
);
|
);
|
||||||
|
private static final int STALE_SYNC_TICKS = 20 * 15;
|
||||||
private static float targetIntensity;
|
private static float targetIntensity;
|
||||||
private static float intensity;
|
private static float intensity;
|
||||||
|
private static int heartbeatDelayTicks;
|
||||||
|
private static int ticksSinceSync;
|
||||||
|
|
||||||
private HordeClientState() {
|
private HordeClientState() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void update(float syncedIntensity) {
|
public static void update(float syncedIntensity) {
|
||||||
targetIntensity = Mth.clamp(syncedIntensity, 0.0F, 1.0F);
|
targetIntensity = Mth.clamp(syncedIntensity, 0.0F, 1.0F);
|
||||||
|
ticksSinceSync = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static float intensity() {
|
public static float intensity() {
|
||||||
@@ -31,15 +37,21 @@ public final class HordeClientState {
|
|||||||
|
|
||||||
public static void tick() {
|
public static void tick() {
|
||||||
Minecraft minecraft = Minecraft.getInstance();
|
Minecraft minecraft = Minecraft.getInstance();
|
||||||
if (minecraft.level == null || minecraft.player == null || !minecraft.level.dimension().equals(CAVARYN)) {
|
if (minecraft.level == null || minecraft.player == null || !minecraft.level.dimension().equals(CAVARYN) || !minecraft.player.isAlive()) {
|
||||||
targetIntensity = 0.0F;
|
reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
intensity += (targetIntensity - intensity) * 0.08F;
|
intensity += (targetIntensity - intensity) * 0.08F;
|
||||||
if (intensity < 0.01F) {
|
if (minecraft.level == null || minecraft.player == null || minecraft.isPaused()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (minecraft.level == null || minecraft.player == null || minecraft.isPaused()) {
|
if (minecraft.level.dimension().equals(CAVARYN)) {
|
||||||
|
if (++ticksSinceSync >= STALE_SYNC_TICKS) {
|
||||||
|
targetIntensity = 0.0F;
|
||||||
|
}
|
||||||
|
tickHeartbeat(minecraft);
|
||||||
|
}
|
||||||
|
if (intensity < 0.01F) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -52,4 +64,34 @@ public final class HordeClientState {
|
|||||||
minecraft.level.addParticle(ParticleTypes.MYCELIUM, x, y, z, 0.0D, 0.015D + intensity * 0.025D, 0.0D);
|
minecraft.level.addParticle(ParticleTypes.MYCELIUM, x, y, z, 0.0D, 0.015D + intensity * 0.025D, 0.0D);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void reset() {
|
||||||
|
targetIntensity = 0.0F;
|
||||||
|
intensity = 0.0F;
|
||||||
|
heartbeatDelayTicks = 0;
|
||||||
|
ticksSinceSync = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void tickHeartbeat(Minecraft minecraft) {
|
||||||
|
if (heartbeatDelayTicks > 0) {
|
||||||
|
heartbeatDelayTicks--;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
float soundIntensity = Mth.clamp(intensity, 0.0F, 1.0F);
|
||||||
|
float scaledIntensity = soundIntensity * soundIntensity;
|
||||||
|
float volume = 0.08F + scaledIntensity * 1.42F;
|
||||||
|
float pitch = 0.85F + soundIntensity * 0.45F;
|
||||||
|
heartbeatDelayTicks = Mth.clamp((int) (150.0F - scaledIntensity * 132.0F), 18, 150);
|
||||||
|
minecraft.level.playLocalSound(
|
||||||
|
minecraft.player.getX(),
|
||||||
|
minecraft.player.getY(),
|
||||||
|
minecraft.player.getZ(),
|
||||||
|
AntarchySoundEvents.CAVARYN_HEARTBEAT.get(),
|
||||||
|
SoundSource.AMBIENT,
|
||||||
|
volume,
|
||||||
|
pitch,
|
||||||
|
false
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
+1
-4
@@ -17,9 +17,6 @@ public class JerryRenderer extends GeoEntityRenderer<JerryEntity> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public RenderType getRenderType(JerryEntity animatable, ResourceLocation texture, @Nullable MultiBufferSource bufferSource, float partialTick) {
|
public RenderType getRenderType(JerryEntity animatable, ResourceLocation texture, @Nullable MultiBufferSource bufferSource, float partialTick) {
|
||||||
JerryEntity.Stage stage = animatable.getStage();
|
return RenderType.entityTranslucent(texture);
|
||||||
return stage == JerryEntity.Stage.INFANT || stage == JerryEntity.Stage.MATURE
|
|
||||||
? RenderType.entityTranslucent(texture)
|
|
||||||
: RenderType.entityCutoutNoCull(texture);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,11 +1,15 @@
|
|||||||
package com.craisinlord.antarchy.content.entity;
|
package com.craisinlord.antarchy.content.entity;
|
||||||
|
|
||||||
import com.craisinlord.antarchy.config.AntarchySettings;
|
import com.craisinlord.antarchy.config.AntarchySettings;
|
||||||
|
import com.craisinlord.antarchy.content.horde.CavarynHordeManager;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
|
import net.minecraft.core.registries.BuiltInRegistries;
|
||||||
import net.minecraft.network.syncher.EntityDataAccessor;
|
import net.minecraft.network.syncher.EntityDataAccessor;
|
||||||
import net.minecraft.network.syncher.EntityDataSerializers;
|
import net.minecraft.network.syncher.EntityDataSerializers;
|
||||||
import net.minecraft.network.syncher.SynchedEntityData;
|
import net.minecraft.network.syncher.SynchedEntityData;
|
||||||
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.server.level.ServerLevel;
|
import net.minecraft.server.level.ServerLevel;
|
||||||
|
import net.minecraft.server.level.ServerPlayer;
|
||||||
import net.minecraft.util.ByIdMap;
|
import net.minecraft.util.ByIdMap;
|
||||||
import net.minecraft.util.Mth;
|
import net.minecraft.util.Mth;
|
||||||
import net.minecraft.util.StringRepresentable;
|
import net.minecraft.util.StringRepresentable;
|
||||||
@@ -71,6 +75,8 @@ public class JerryEntity extends Monster implements GeoEntity {
|
|||||||
private int stageAgeTicks;
|
private int stageAgeTicks;
|
||||||
private int attachDamageTicks;
|
private int attachDamageTicks;
|
||||||
private int attackCooldownTicks;
|
private int attackCooldownTicks;
|
||||||
|
private int alphaDiveCooldownTicks;
|
||||||
|
private boolean attachedToTarget;
|
||||||
|
|
||||||
public JerryEntity(EntityType<? extends JerryEntity> entityType, Level level) {
|
public JerryEntity(EntityType<? extends JerryEntity> entityType, Level level) {
|
||||||
super(entityType, level);
|
super(entityType, level);
|
||||||
@@ -145,6 +151,9 @@ public class JerryEntity extends Monster implements GeoEntity {
|
|||||||
if (this.attackCooldownTicks > 0) {
|
if (this.attackCooldownTicks > 0) {
|
||||||
this.attackCooldownTicks--;
|
this.attackCooldownTicks--;
|
||||||
}
|
}
|
||||||
|
if (this.alphaDiveCooldownTicks > 0) {
|
||||||
|
this.alphaDiveCooldownTicks--;
|
||||||
|
}
|
||||||
|
|
||||||
Stage stage = this.getStage();
|
Stage stage = this.getStage();
|
||||||
if (stage == Stage.INFANT || stage == Stage.MATURE) {
|
if (stage == Stage.INFANT || stage == Stage.MATURE) {
|
||||||
@@ -156,20 +165,43 @@ public class JerryEntity extends Monster implements GeoEntity {
|
|||||||
|
|
||||||
private void tickGrowth() {
|
private void tickGrowth() {
|
||||||
Stage stage = this.getStage();
|
Stage stage = this.getStage();
|
||||||
if (stage == Stage.ALPHA || stage == Stage.GAMMA) {
|
if (stage == Stage.GAMMA) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.stageAgeTicks++;
|
this.stageAgeTicks += this.growthTickAmount();
|
||||||
if (this.stageAgeTicks < GROWTH_TICKS) {
|
if (this.stageAgeTicks < GROWTH_TICKS) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.stageAgeTicks = 0;
|
this.stageAgeTicks = 0;
|
||||||
this.setStage(stage == Stage.INFANT ? Stage.MATURE : (this.random.nextBoolean() ? Stage.ALPHA : Stage.GAMMA));
|
this.setStage(switch (stage) {
|
||||||
|
case INFANT -> Stage.MATURE;
|
||||||
|
case MATURE -> Stage.ALPHA;
|
||||||
|
case ALPHA -> Stage.GAMMA;
|
||||||
|
case GAMMA -> Stage.GAMMA;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private int growthTickAmount() {
|
||||||
|
if (!(this.level() instanceof ServerLevel serverLevel)) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int hordeLevel = 0;
|
||||||
|
for (ServerPlayer player : serverLevel.players()) {
|
||||||
|
if (player.isSpectator() || player.distanceToSqr(this) > 96.0D * 96.0D) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
hordeLevel = Math.max(hordeLevel, CavarynHordeManager.getHordeLevel(player));
|
||||||
|
}
|
||||||
|
|
||||||
|
float intensity = Mth.clamp(hordeLevel / (float) CavarynHordeManager.maxHordeLevel(), 0.0F, 1.0F);
|
||||||
|
return 1 + Math.round(intensity * intensity * 99.0F);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void tickAttachedForm(Stage stage) {
|
private void tickAttachedForm(Stage stage) {
|
||||||
LivingEntity target = this.getTarget();
|
LivingEntity target = this.getTarget();
|
||||||
if (target == null || !target.isAlive()) {
|
if (target == null || !target.isAlive()) {
|
||||||
|
this.attachedToTarget = false;
|
||||||
this.drift();
|
this.drift();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -182,13 +214,18 @@ public class JerryEntity extends Monster implements GeoEntity {
|
|||||||
this.setDeltaMovement(this.getDeltaMovement().scale(0.55D).add(motion));
|
this.setDeltaMovement(this.getDeltaMovement().scale(0.55D).add(motion));
|
||||||
}
|
}
|
||||||
if (distance < 1.15D) {
|
if (distance < 1.15D) {
|
||||||
|
this.attachedToTarget = true;
|
||||||
this.setPos(targetPos.x, targetPos.y, targetPos.z);
|
this.setPos(targetPos.x, targetPos.y, targetPos.z);
|
||||||
this.setDeltaMovement(Vec3.ZERO);
|
this.setDeltaMovement(Vec3.ZERO);
|
||||||
if (++this.attachDamageTicks >= ATTACH_DAMAGE_INTERVAL) {
|
if (++this.attachDamageTicks >= ATTACH_DAMAGE_INTERVAL) {
|
||||||
this.attachDamageTicks = 0;
|
this.attachDamageTicks = 0;
|
||||||
|
Vec3 targetMotion = target.getDeltaMovement();
|
||||||
target.hurt(this.damageSources().mobAttack(this), (float) stage.attackDamage());
|
target.hurt(this.damageSources().mobAttack(this), (float) stage.attackDamage());
|
||||||
|
target.setDeltaMovement(targetMotion);
|
||||||
|
target.hurtMarked = true;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
this.attachedToTarget = false;
|
||||||
this.attachDamageTicks = 0;
|
this.attachDamageTicks = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -201,14 +238,27 @@ public class JerryEntity extends Monster implements GeoEntity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Stage stage = this.getStage();
|
Stage stage = this.getStage();
|
||||||
Vec3 targetPos = target.getEyePosition().add(0.0D, -0.35D, 0.0D);
|
Vec3 targetPos = target.getEyePosition();
|
||||||
|
Vec3 hoverPos = targetPos.add(0.0D, 5.0D, 0.0D);
|
||||||
|
Vec3 toHover = hoverPos.subtract(this.position());
|
||||||
Vec3 toTarget = targetPos.subtract(this.position());
|
Vec3 toTarget = targetPos.subtract(this.position());
|
||||||
double distance = toTarget.length();
|
double hoverDistance = toHover.length();
|
||||||
|
double targetDistance = toTarget.length();
|
||||||
|
double horizontalDistance = this.position().subtract(targetPos).horizontalDistance();
|
||||||
this.faceTarget(target);
|
this.faceTarget(target);
|
||||||
if (distance > 0.01D) {
|
if (this.alphaDiveCooldownTicks > 0) {
|
||||||
this.setDeltaMovement(this.getDeltaMovement().scale(0.65D).add(toTarget.normalize().scale(0.22D)));
|
this.setDeltaMovement(this.getDeltaMovement().scale(0.8D).add(toTarget.normalize().scale(0.28D)).add(0.0D, -0.08D, 0.0D));
|
||||||
|
} else if (hoverDistance > 0.01D) {
|
||||||
|
Vec3 desiredMotion = toHover.normalize().scale(0.20D);
|
||||||
|
this.setDeltaMovement(this.getDeltaMovement().scale(0.72D).add(desiredMotion));
|
||||||
}
|
}
|
||||||
if (distance < 2.1D && this.attackCooldownTicks <= 0) {
|
|
||||||
|
if (this.alphaDiveCooldownTicks <= 0 && targetDistance < 9.0D && horizontalDistance < 7.0D) {
|
||||||
|
this.alphaDiveCooldownTicks = 30;
|
||||||
|
this.setDeltaMovement(this.getDeltaMovement().add(0.0D, -0.55D, 0.0D).add(toTarget.normalize().scale(0.42D)));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (targetDistance < 2.3D && this.attackCooldownTicks <= 0) {
|
||||||
this.faceTarget(target);
|
this.faceTarget(target);
|
||||||
this.attackCooldownTicks = 24;
|
this.attackCooldownTicks = 24;
|
||||||
this.entityData.set(ATTACK_ANIM_TICKS, ATTACK_ANIM_DURATION);
|
this.entityData.set(ATTACK_ANIM_TICKS, ATTACK_ANIM_DURATION);
|
||||||
@@ -252,9 +302,23 @@ public class JerryEntity extends Monster implements GeoEntity {
|
|||||||
@Override
|
@Override
|
||||||
public InteractionResult mobInteract(Player player, InteractionHand hand) {
|
public InteractionResult mobInteract(Player player, InteractionHand hand) {
|
||||||
ItemStack stack = player.getItemInHand(hand);
|
ItemStack stack = player.getItemInHand(hand);
|
||||||
if (this.isAdultStage() && stack.getItem() instanceof SpawnEggItem spawnEggItem && spawnEggItem.getType(stack) == this.getType()) {
|
if (stack.is(BuiltInRegistries.ITEM.get(ResourceLocation.fromNamespaceAndPath(com.craisinlord.antarchy.Antarchy.MODID, "jerry_nucleus")))) {
|
||||||
|
if (!this.level().isClientSide) {
|
||||||
|
Stage nextStage = this.nextGrowthStage();
|
||||||
|
if (nextStage != this.getStage()) {
|
||||||
|
this.setStage(nextStage);
|
||||||
|
this.stageAgeTicks = 0;
|
||||||
|
if (!player.getAbilities().instabuild) {
|
||||||
|
stack.shrink(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return InteractionResult.sidedSuccess(this.level().isClientSide);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (stack.getItem() instanceof SpawnEggItem spawnEggItem && spawnEggItem.getType(stack) == this.getType()) {
|
||||||
if (this.level() instanceof ServerLevel serverLevel && this.getType().create(serverLevel) instanceof JerryEntity infant) {
|
if (this.level() instanceof ServerLevel serverLevel && this.getType().create(serverLevel) instanceof JerryEntity infant) {
|
||||||
infant.setStage(Stage.INFANT);
|
infant.setStage(this.isAdultStage() ? Stage.INFANT : this.randomAdultStage());
|
||||||
infant.moveTo(this.getX(), this.getY(), this.getZ(), this.random.nextFloat() * 360.0F, 0.0F);
|
infant.moveTo(this.getX(), this.getY(), this.getZ(), this.random.nextFloat() * 360.0F, 0.0F);
|
||||||
infant.finalizeSpawn(serverLevel, serverLevel.getCurrentDifficultyAt(infant.blockPosition()), MobSpawnType.MOB_SUMMONED, null);
|
infant.finalizeSpawn(serverLevel, serverLevel.getCurrentDifficultyAt(infant.blockPosition()), MobSpawnType.MOB_SUMMONED, null);
|
||||||
serverLevel.addFreshEntity(infant);
|
serverLevel.addFreshEntity(infant);
|
||||||
@@ -304,6 +368,24 @@ public class JerryEntity extends Monster implements GeoEntity {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isPushable() {
|
||||||
|
return !this.isAttachedYoungStage() && super.isPushable();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void push(Entity entity) {
|
||||||
|
if (this.isAttachedYoungStage()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
super.push(entity);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canBeCollidedWith() {
|
||||||
|
return !this.isAttachedYoungStage() && super.canBeCollidedWith();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void checkFallDamage(double y, boolean onGround, BlockState state, net.minecraft.core.BlockPos pos) {
|
protected void checkFallDamage(double y, boolean onGround, BlockState state, net.minecraft.core.BlockPos pos) {
|
||||||
}
|
}
|
||||||
@@ -354,6 +436,24 @@ public class JerryEntity extends Monster implements GeoEntity {
|
|||||||
return stage == Stage.ALPHA || stage == Stage.GAMMA;
|
return stage == Stage.ALPHA || stage == Stage.GAMMA;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Stage nextGrowthStage() {
|
||||||
|
return switch (this.getStage()) {
|
||||||
|
case INFANT -> Stage.MATURE;
|
||||||
|
case MATURE -> Stage.ALPHA;
|
||||||
|
case ALPHA -> Stage.GAMMA;
|
||||||
|
case GAMMA -> Stage.GAMMA;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
private Stage randomAdultStage() {
|
||||||
|
return this.random.nextBoolean() ? Stage.ALPHA : Stage.GAMMA;
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isAttachedYoungStage() {
|
||||||
|
Stage stage = this.getStage();
|
||||||
|
return this.attachedToTarget && (stage == Stage.INFANT || stage == Stage.MATURE);
|
||||||
|
}
|
||||||
|
|
||||||
private class GammaMeleeGoal extends MeleeAttackGoal {
|
private class GammaMeleeGoal extends MeleeAttackGoal {
|
||||||
GammaMeleeGoal() {
|
GammaMeleeGoal() {
|
||||||
super(JerryEntity.this, 1.35D, false);
|
super(JerryEntity.this, 1.35D, false);
|
||||||
|
|||||||
-1
@@ -21,7 +21,6 @@ import java.util.function.Supplier;
|
|||||||
|
|
||||||
public class UpwardFallingBlockEntity extends Entity {
|
public class UpwardFallingBlockEntity extends Entity {
|
||||||
|
|
||||||
/** Set by the platform registration before any block tick fires. */
|
|
||||||
public static Supplier<EntityType<UpwardFallingBlockEntity>> TYPE;
|
public static Supplier<EntityType<UpwardFallingBlockEntity>> TYPE;
|
||||||
|
|
||||||
private static final EntityDataAccessor<BlockState> DATA_BLOCK_STATE =
|
private static final EntityDataAccessor<BlockState> DATA_BLOCK_STATE =
|
||||||
|
|||||||
@@ -124,7 +124,7 @@ public class WaterBombEntity extends ThrowableProjectile {
|
|||||||
level.removeBlock(hitPos, false);
|
level.removeBlock(hitPos, false);
|
||||||
} else if (level.isEmptyBlock(hitPos) && level.getBlockState(hitPos.below()).isSolid()) {
|
} else if (level.isEmptyBlock(hitPos) && level.getBlockState(hitPos.below()).isSolid()) {
|
||||||
level.setBlock(hitPos, Blocks.WATER.defaultBlockState().setValue(LiquidBlock.LEVEL, 1), 3);
|
level.setBlock(hitPos, Blocks.WATER.defaultBlockState().setValue(LiquidBlock.LEVEL, 1), 3);
|
||||||
level.scheduleTick(hitPos, Fluids.WATER, 2);
|
level.scheduleTick(hitPos, Fluids.FLOWING_WATER, 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.discard();
|
this.discard();
|
||||||
|
|||||||
+3
-1
@@ -22,6 +22,8 @@ import net.minecraft.world.DifficultyInstance;
|
|||||||
import net.minecraft.world.InteractionHand;
|
import net.minecraft.world.InteractionHand;
|
||||||
import net.minecraft.world.InteractionResult;
|
import net.minecraft.world.InteractionResult;
|
||||||
import net.minecraft.world.damagesource.DamageSource;
|
import net.minecraft.world.damagesource.DamageSource;
|
||||||
|
import net.minecraft.world.damagesource.DamageTypes;
|
||||||
|
import net.minecraft.tags.DamageTypeTags;
|
||||||
import net.minecraft.world.entity.AgeableMob;
|
import net.minecraft.world.entity.AgeableMob;
|
||||||
import net.minecraft.world.entity.Entity;
|
import net.minecraft.world.entity.Entity;
|
||||||
import net.minecraft.world.entity.EntityDimensions;
|
import net.minecraft.world.entity.EntityDimensions;
|
||||||
@@ -132,7 +134,7 @@ public class GlimmerEntity extends TamableAnimal implements GeoEntity {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isInvulnerableTo(DamageSource damageSource) {
|
public boolean isInvulnerableTo(DamageSource damageSource) {
|
||||||
return true;
|
return !damageSource.is(DamageTypeTags.BYPASSES_INVULNERABILITY) && !damageSource.is(DamageTypes.GENERIC);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+7
-4
@@ -113,7 +113,7 @@ public final class CavarynHordeDefinitions {
|
|||||||
for (int i = 0; i < count; i++) {
|
for (int i = 0; i < count; i++) {
|
||||||
EntityType<?> type = entry.randomType(random);
|
EntityType<?> type = entry.randomType(random);
|
||||||
if (type != null) {
|
if (type != null) {
|
||||||
choices.add(new SpawnChoice(type, entry.trackCompletion, entry.heavyArrivalEffect));
|
choices.add(new SpawnChoice(type, entry.trackCompletion, entry.heavyArrivalEffect, entry.jerryStage));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -137,7 +137,7 @@ public final class CavarynHordeDefinitions {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public record SpawnChoice(EntityType<?> type, boolean trackCompletion, boolean heavyArrivalEffect) {
|
public record SpawnChoice(EntityType<?> type, boolean trackCompletion, boolean heavyArrivalEffect, String jerryStage) {
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final class Entry {
|
private static final class Entry {
|
||||||
@@ -153,10 +153,11 @@ public final class CavarynHordeDefinitions {
|
|||||||
private final boolean warning;
|
private final boolean warning;
|
||||||
private final boolean trackCompletion;
|
private final boolean trackCompletion;
|
||||||
private final boolean heavyArrivalEffect;
|
private final boolean heavyArrivalEffect;
|
||||||
|
private final String jerryStage;
|
||||||
|
|
||||||
private Entry(TagKey<EntityType<?>> entityTag, int weight, int baseCount, int highAttentionBaseCount, int perPlayerCount,
|
private Entry(TagKey<EntityType<?>> entityTag, int weight, int baseCount, int highAttentionBaseCount, int perPlayerCount,
|
||||||
int perPlayers, int perPlayersCount, int minCount, int maxCount, boolean warning,
|
int perPlayers, int perPlayersCount, int minCount, int maxCount, boolean warning,
|
||||||
boolean trackCompletion, boolean heavyArrivalEffect) {
|
boolean trackCompletion, boolean heavyArrivalEffect, String jerryStage) {
|
||||||
this.entityTag = entityTag;
|
this.entityTag = entityTag;
|
||||||
this.weight = Math.max(1, weight);
|
this.weight = Math.max(1, weight);
|
||||||
this.baseCount = baseCount;
|
this.baseCount = baseCount;
|
||||||
@@ -169,6 +170,7 @@ public final class CavarynHordeDefinitions {
|
|||||||
this.warning = warning;
|
this.warning = warning;
|
||||||
this.trackCompletion = trackCompletion;
|
this.trackCompletion = trackCompletion;
|
||||||
this.heavyArrivalEffect = heavyArrivalEffect;
|
this.heavyArrivalEffect = heavyArrivalEffect;
|
||||||
|
this.jerryStage = jerryStage;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Entry fromJson(JsonObject json) {
|
private static Entry fromJson(JsonObject json) {
|
||||||
@@ -191,7 +193,8 @@ public final class CavarynHordeDefinitions {
|
|||||||
getInt(json, "max_count", Integer.MAX_VALUE),
|
getInt(json, "max_count", Integer.MAX_VALUE),
|
||||||
getBoolean(json, "warning", false),
|
getBoolean(json, "warning", false),
|
||||||
getBoolean(json, "track_completion", false),
|
getBoolean(json, "track_completion", false),
|
||||||
getBoolean(json, "heavy_arrival_effect", false)
|
getBoolean(json, "heavy_arrival_effect", false),
|
||||||
|
getString(json, "jerry_stage", "")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+88
-24
@@ -3,6 +3,7 @@ package com.craisinlord.antarchy.content.horde;
|
|||||||
import com.craisinlord.antarchy.Antarchy;
|
import com.craisinlord.antarchy.Antarchy;
|
||||||
import com.craisinlord.antarchy.content.AntarchySoundEvents;
|
import com.craisinlord.antarchy.content.AntarchySoundEvents;
|
||||||
import com.craisinlord.antarchy.content.AntarchyTags;
|
import com.craisinlord.antarchy.content.AntarchyTags;
|
||||||
|
import com.craisinlord.antarchy.content.entity.JerryEntity;
|
||||||
import com.craisinlord.antarchy.content.network.HerculesBeetleImpactShakeSync;
|
import com.craisinlord.antarchy.content.network.HerculesBeetleImpactShakeSync;
|
||||||
import com.craisinlord.antarchy.content.network.HordeIntensitySync;
|
import com.craisinlord.antarchy.content.network.HordeIntensitySync;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -38,6 +39,7 @@ import net.minecraft.world.entity.monster.Enemy;
|
|||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
import net.minecraft.world.level.ServerLevelAccessor;
|
import net.minecraft.world.level.ServerLevelAccessor;
|
||||||
|
import net.minecraft.world.level.biome.Biome;
|
||||||
import net.minecraft.world.level.block.state.BlockState;
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
import net.minecraft.world.level.saveddata.SavedData;
|
import net.minecraft.world.level.saveddata.SavedData;
|
||||||
import net.minecraft.world.phys.AABB;
|
import net.minecraft.world.phys.AABB;
|
||||||
@@ -48,6 +50,10 @@ public final class CavarynHordeManager {
|
|||||||
Registries.DIMENSION,
|
Registries.DIMENSION,
|
||||||
ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "cavaryn")
|
ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "cavaryn")
|
||||||
);
|
);
|
||||||
|
private static final ResourceKey<Biome> BIOWART_CAVES = ResourceKey.create(
|
||||||
|
Registries.BIOME,
|
||||||
|
ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "biowart_caves")
|
||||||
|
);
|
||||||
private static final ResourceLocation DORMANT_HORDE = hordeId("dormant");
|
private static final ResourceLocation DORMANT_HORDE = hordeId("dormant");
|
||||||
private static final ResourceLocation AWAKENING_HORDE = hordeId("awakening");
|
private static final ResourceLocation AWAKENING_HORDE = hordeId("awakening");
|
||||||
private static final ResourceLocation WAVE_ONE_HORDE = hordeId("wave_1");
|
private static final ResourceLocation WAVE_ONE_HORDE = hordeId("wave_1");
|
||||||
@@ -58,6 +64,10 @@ public final class CavarynHordeManager {
|
|||||||
|
|
||||||
private static final int GROUP_RADIUS_BLOCKS = 128;
|
private static final int GROUP_RADIUS_BLOCKS = 128;
|
||||||
private static final int ATTENTION_THRESHOLD = 100;
|
private static final int ATTENTION_THRESHOLD = 100;
|
||||||
|
private static final int HOSTILE_KILL_ATTENTION = 4;
|
||||||
|
private static final int MOB_KILL_ATTENTION = 3;
|
||||||
|
private static final int EGG_OR_NEST_BREAK_ATTENTION = 5;
|
||||||
|
private static final int BLOCK_BREAK_ATTENTION = 1;
|
||||||
private static final int STALE_ATTENTION_PRUNE_TICKS = 20 * 60 * 20;
|
private static final int STALE_ATTENTION_PRUNE_TICKS = 20 * 60 * 20;
|
||||||
private static final int PLAYER_CHECK_INTERVAL = 20;
|
private static final int PLAYER_CHECK_INTERVAL = 20;
|
||||||
private static final int AREA_ATTENTION_INTERVAL = 20 * 45;
|
private static final int AREA_ATTENTION_INTERVAL = 20 * 45;
|
||||||
@@ -105,7 +115,7 @@ public final class CavarynHordeManager {
|
|||||||
if (isPlayerInActiveEncounter(level, player)) {
|
if (isPlayerInActiveEncounter(level, player)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
addAttention(level, player, killed instanceof Enemy || killed.getType().getCategory() == MobCategory.MONSTER ? 18 : 8);
|
addAttention(level, player, scaleActionAttention(level, killed instanceof Enemy || killed.getType().getCategory() == MobCategory.MONSTER ? HOSTILE_KILL_ATTENTION : MOB_KILL_ATTENTION));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void recordBlockBreak(ServerPlayer player, BlockState brokenState, BlockPos pos) {
|
public static void recordBlockBreak(ServerPlayer player, BlockState brokenState, BlockPos pos) {
|
||||||
@@ -115,7 +125,7 @@ public final class CavarynHordeManager {
|
|||||||
if (!isHordeBiome(level, pos) || isPlayerInActiveEncounter(level, player)) {
|
if (!isHordeBiome(level, pos) || isPlayerInActiveEncounter(level, player)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
addAttention(level, player, isEggOrNest(brokenState) ? 22 : 2);
|
addAttention(level, player, scaleActionAttention(level, isEggOrNest(brokenState) ? EGG_OR_NEST_BREAK_ATTENTION : BLOCK_BREAK_ATTENTION));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isHordeBiome(ServerLevelAccessor level, BlockPos pos) {
|
public static boolean isHordeBiome(ServerLevelAccessor level, BlockPos pos) {
|
||||||
@@ -207,7 +217,7 @@ public final class CavarynHordeManager {
|
|||||||
if (encounter == null) {
|
if (encounter == null) {
|
||||||
tickDormantPressure(level, data, player, attention, currentArea, gameTime);
|
tickDormantPressure(level, data, player, attention, currentArea, gameTime);
|
||||||
}
|
}
|
||||||
HordeIntensitySync.send(player, encounter != null ? encounter.intensity(gameTime) : attention.attention / (float) ATTENTION_THRESHOLD);
|
HordeIntensitySync.send(player, attention.attention / (float) ATTENTION_THRESHOLD);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (Map.Entry<UUID, PlayerAttention> entry : data.players.entrySet()) {
|
for (Map.Entry<UUID, PlayerAttention> entry : data.players.entrySet()) {
|
||||||
@@ -272,7 +282,7 @@ public final class CavarynHordeManager {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
CavarynHordeDefinitions.Definition definition = CavarynHordeDefinitions.get(level, DORMANT_HORDE);
|
CavarynHordeDefinitions.Definition definition = CavarynHordeDefinitions.get(level, hordeForPosition(level, player.blockPosition(), DORMANT_HORDE));
|
||||||
int existing = countNearbyDirectHordeMobs(level, player.blockPosition(), 48.0D);
|
int existing = countNearbyDirectHordeMobs(level, player.blockPosition(), 48.0D);
|
||||||
if (existing >= definition.resolvedMaxActive(level, scaleSpawnCount(level, MAX_DORMANT_MOBS_PER_AREA))) {
|
if (existing >= definition.resolvedMaxActive(level, scaleSpawnCount(level, MAX_DORMANT_MOBS_PER_AREA))) {
|
||||||
data.areaSpawnCooldowns.put(areaKey, gameTime + DORMANT_MIN_SPAWN_INTERVAL);
|
data.areaSpawnCooldowns.put(areaKey, gameTime + DORMANT_MIN_SPAWN_INTERVAL);
|
||||||
@@ -310,6 +320,15 @@ public final class CavarynHordeManager {
|
|||||||
data.setDirty();
|
data.setDirty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static int scaleActionAttention(ServerLevel level, int amount) {
|
||||||
|
float multiplier = switch (level.getDifficulty()) {
|
||||||
|
case HARD -> 1.5F;
|
||||||
|
case EASY -> 0.75F;
|
||||||
|
default -> 1.0F;
|
||||||
|
};
|
||||||
|
return Math.max(1, Math.round(amount * multiplier));
|
||||||
|
}
|
||||||
|
|
||||||
private static void startEncounter(ServerLevel level, HordeData data, ServerPlayer seedPlayer) {
|
private static void startEncounter(ServerLevel level, HordeData data, ServerPlayer seedPlayer) {
|
||||||
Encounter existing = findNearbyEncounter(data, seedPlayer.blockPosition());
|
Encounter existing = findNearbyEncounter(data, seedPlayer.blockPosition());
|
||||||
if (existing != null) {
|
if (existing != null) {
|
||||||
@@ -336,6 +355,37 @@ public final class CavarynHordeManager {
|
|||||||
data.setDirty();
|
data.setDirty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static List<TargetedSpawnChoice> buildTargetedSpawnList(ServerLevel level, ResourceLocation horde, List<ServerPlayer> targets, int players, boolean highAttention) {
|
||||||
|
Map<ResourceLocation, List<ServerPlayer>> targetsByHorde = new HashMap<>();
|
||||||
|
for (ServerPlayer target : targets) {
|
||||||
|
ResourceLocation targetHorde = hordeForPosition(level, target.blockPosition(), horde);
|
||||||
|
targetsByHorde.computeIfAbsent(targetHorde, ignored -> new ArrayList<>()).add(target);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<TargetedSpawnChoice> choices = new ArrayList<>();
|
||||||
|
for (Map.Entry<ResourceLocation, List<ServerPlayer>> entry : targetsByHorde.entrySet()) {
|
||||||
|
List<ServerPlayer> groupTargets = entry.getValue();
|
||||||
|
int groupPlayers = Math.max(1, Math.min(players, groupTargets.size()));
|
||||||
|
List<CavarynHordeDefinitions.SpawnChoice> groupChoices = CavarynHordeDefinitions.get(level, entry.getKey())
|
||||||
|
.buildSpawnList(level, groupPlayers, highAttention, level.random);
|
||||||
|
for (CavarynHordeDefinitions.SpawnChoice choice : groupChoices) {
|
||||||
|
ServerPlayer target = groupTargets.get(level.random.nextInt(groupTargets.size()));
|
||||||
|
choices.add(new TargetedSpawnChoice(choice, target));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
java.util.Collections.shuffle(choices);
|
||||||
|
return choices;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static boolean shouldWarnForTargets(ServerLevel level, ResourceLocation horde, List<ServerPlayer> targets) {
|
||||||
|
for (ServerPlayer target : targets) {
|
||||||
|
if (CavarynHordeDefinitions.get(level, hordeForPosition(level, target.blockPosition(), horde)).shouldWarn()) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
private static void spawnAwakeningSkirmish(ServerLevel level, Encounter encounter, List<ServerPlayer> targets) {
|
private static void spawnAwakeningSkirmish(ServerLevel level, Encounter encounter, List<ServerPlayer> targets) {
|
||||||
if (level.getDifficulty() == Difficulty.PEACEFUL) {
|
if (level.getDifficulty() == Difficulty.PEACEFUL) {
|
||||||
return;
|
return;
|
||||||
@@ -346,15 +396,13 @@ public final class CavarynHordeManager {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
List<CavarynHordeDefinitions.SpawnChoice> choices = CavarynHordeDefinitions.get(level, AWAKENING_HORDE)
|
List<TargetedSpawnChoice> choices = buildTargetedSpawnList(level, AWAKENING_HORDE, targets, players, false);
|
||||||
.buildSpawnList(level, players, false, level.random);
|
|
||||||
int spawned = 0;
|
int spawned = 0;
|
||||||
for (CavarynHordeDefinitions.SpawnChoice choice : choices) {
|
for (TargetedSpawnChoice choice : choices) {
|
||||||
if (spawned >= capacity) {
|
if (spawned >= capacity) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
ServerPlayer target = targets.get(level.random.nextInt(targets.size()));
|
if (spawnDirectMob(level, encounter, choice.choice(), choice.target())) {
|
||||||
if (spawnDirectMob(level, encounter, choice, target)) {
|
|
||||||
spawned++;
|
spawned++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -371,19 +419,18 @@ public final class CavarynHordeManager {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
CavarynHordeDefinitions.Definition definition = CavarynHordeDefinitions.get(level, hordeForWave(encounter.wave));
|
ResourceLocation horde = hordeForWave(encounter.wave);
|
||||||
if (definition.shouldWarn()) {
|
if (shouldWarnForTargets(level, horde, targets)) {
|
||||||
warnHercules(level, encounter.center, targets);
|
warnHercules(level, encounter.center, targets);
|
||||||
}
|
}
|
||||||
|
|
||||||
List<CavarynHordeDefinitions.SpawnChoice> choices = definition.buildSpawnList(level, players, false, level.random);
|
List<TargetedSpawnChoice> choices = buildTargetedSpawnList(level, horde, targets, players, false);
|
||||||
int spawned = 0;
|
int spawned = 0;
|
||||||
for (CavarynHordeDefinitions.SpawnChoice choice : choices) {
|
for (TargetedSpawnChoice choice : choices) {
|
||||||
if (spawned >= capacity) {
|
if (spawned >= capacity) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
ServerPlayer target = targets.get(level.random.nextInt(targets.size()));
|
if (spawnDirectMob(level, encounter, choice.choice(), choice.target())) {
|
||||||
if (spawnDirectMob(level, encounter, choice, target)) {
|
|
||||||
spawned++;
|
spawned++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -401,6 +448,7 @@ public final class CavarynHordeManager {
|
|||||||
}
|
}
|
||||||
mob.moveTo(spawnPos.getX() + 0.5D, spawnPos.getY(), spawnPos.getZ() + 0.5D, level.random.nextFloat() * 360.0F, 0.0F);
|
mob.moveTo(spawnPos.getX() + 0.5D, spawnPos.getY(), spawnPos.getZ() + 0.5D, level.random.nextFloat() * 360.0F, 0.0F);
|
||||||
mob.finalizeSpawn(level, level.getCurrentDifficultyAt(spawnPos), MobSpawnType.EVENT, null);
|
mob.finalizeSpawn(level, level.getCurrentDifficultyAt(spawnPos), MobSpawnType.EVENT, null);
|
||||||
|
applyJerryStage(mob, choice.jerryStage(), level.random);
|
||||||
if (mob.canAttack(target)) {
|
if (mob.canAttack(target)) {
|
||||||
mob.setTarget(target);
|
mob.setTarget(target);
|
||||||
}
|
}
|
||||||
@@ -425,6 +473,27 @@ public final class CavarynHordeManager {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void applyJerryStage(Mob mob, String stageName, RandomSource random) {
|
||||||
|
if (!(mob instanceof JerryEntity jerry) || stageName == null || stageName.isBlank()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
JerryEntity.Stage stage = switch (stageName) {
|
||||||
|
case "random" -> JerryEntity.Stage.values()[random.nextInt(JerryEntity.Stage.values().length)];
|
||||||
|
case "random_young" -> random.nextBoolean() ? JerryEntity.Stage.INFANT : JerryEntity.Stage.MATURE;
|
||||||
|
case "random_adult" -> random.nextBoolean() ? JerryEntity.Stage.ALPHA : JerryEntity.Stage.GAMMA;
|
||||||
|
default -> JerryEntity.Stage.byName(stageName);
|
||||||
|
};
|
||||||
|
jerry.setStage(stage);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static ResourceLocation hordeForPosition(ServerLevel level, BlockPos pos, ResourceLocation horde) {
|
||||||
|
if (level.getBiome(pos).is(BIOWART_CAVES)) {
|
||||||
|
return ResourceLocation.fromNamespaceAndPath(horde.getNamespace(), "biowart_caves/" + horde.getPath());
|
||||||
|
}
|
||||||
|
return horde;
|
||||||
|
}
|
||||||
|
|
||||||
private static int countNearbyDirectHordeMobs(ServerLevel level, BlockPos center, double radius) {
|
private static int countNearbyDirectHordeMobs(ServerLevel level, BlockPos center, double radius) {
|
||||||
AABB box = new AABB(center).inflate(radius);
|
AABB box = new AABB(center).inflate(radius);
|
||||||
return level.getEntitiesOfClass(Mob.class, box, mob -> CavarynHordeDefinitions.isConfiguredHordeType(level, mob.getType())).size();
|
return level.getEntitiesOfClass(Mob.class, box, mob -> CavarynHordeDefinitions.isConfiguredHordeType(level, mob.getType())).size();
|
||||||
@@ -598,6 +667,9 @@ public final class CavarynHordeManager {
|
|||||||
RECOVERY
|
RECOVERY
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private record TargetedSpawnChoice(CavarynHordeDefinitions.SpawnChoice choice, ServerPlayer target) {
|
||||||
|
}
|
||||||
|
|
||||||
public static final class HordeData extends SavedData {
|
public static final class HordeData extends SavedData {
|
||||||
private static final String PLAYERS_KEY = "Players";
|
private static final String PLAYERS_KEY = "Players";
|
||||||
private static final String ENCOUNTERS_KEY = "Encounters";
|
private static final String ENCOUNTERS_KEY = "Encounters";
|
||||||
@@ -716,14 +788,6 @@ public final class CavarynHordeManager {
|
|||||||
private final Set<UUID> hordeMobIds = new HashSet<>();
|
private final Set<UUID> hordeMobIds = new HashSet<>();
|
||||||
private final Set<UUID> herculesIds = new HashSet<>();
|
private final Set<UUID> herculesIds = new HashSet<>();
|
||||||
|
|
||||||
private float intensity(long gameTime) {
|
|
||||||
return switch (this.phase) {
|
|
||||||
case AWAKENING -> Mth.clamp((gameTime - this.startedAt) / (float) AWAKENING_TICKS, 0.25F, 1.0F);
|
|
||||||
case SWARMING, HERCULES -> 1.0F;
|
|
||||||
case RECOVERY -> Mth.clamp((this.recoveryEndsAt - gameTime) / (float) RECOVERY_TICKS, 0.0F, 0.75F);
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
private CompoundTag save() {
|
private CompoundTag save() {
|
||||||
CompoundTag tag = new CompoundTag();
|
CompoundTag tag = new CompoundTag();
|
||||||
tag.putUUID("Id", this.id);
|
tag.putUUID("Id", this.id);
|
||||||
|
|||||||
@@ -202,6 +202,7 @@ public class SizeRayItem extends ProjectileWeaponItem implements GeoItem {
|
|||||||
? "tooltip.antarchy.shrink_ray"
|
? "tooltip.antarchy.shrink_ray"
|
||||||
: "tooltip.antarchy.growth_ray";
|
: "tooltip.antarchy.growth_ray";
|
||||||
tooltipComponents.add(Component.translatable(tooltipKey).withStyle(ChatFormatting.GRAY));
|
tooltipComponents.add(Component.translatable(tooltipKey).withStyle(ChatFormatting.GRAY));
|
||||||
|
tooltipComponents.add(Component.translatable("tooltip.antarchy.size_ray_milk_reset").withStyle(ChatFormatting.GRAY));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+67
-11
@@ -4,6 +4,9 @@ import com.craisinlord.antarchy.config.AntarchySettings;
|
|||||||
import net.minecraft.ChatFormatting;
|
import net.minecraft.ChatFormatting;
|
||||||
import net.minecraft.core.component.DataComponents;
|
import net.minecraft.core.component.DataComponents;
|
||||||
import net.minecraft.network.chat.Component;
|
import net.minecraft.network.chat.Component;
|
||||||
|
import net.minecraft.nbt.CompoundTag;
|
||||||
|
import net.minecraft.nbt.ListTag;
|
||||||
|
import net.minecraft.nbt.Tag;
|
||||||
import net.minecraft.sounds.SoundEvents;
|
import net.minecraft.sounds.SoundEvents;
|
||||||
import net.minecraft.sounds.SoundSource;
|
import net.minecraft.sounds.SoundSource;
|
||||||
import net.minecraft.util.Mth;
|
import net.minecraft.util.Mth;
|
||||||
@@ -18,6 +21,7 @@ import net.minecraft.world.item.Item;
|
|||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.item.TooltipFlag;
|
import net.minecraft.world.item.TooltipFlag;
|
||||||
import net.minecraft.world.item.component.ChargedProjectiles;
|
import net.minecraft.world.item.component.ChargedProjectiles;
|
||||||
|
import net.minecraft.world.item.component.CustomData;
|
||||||
import net.minecraft.world.item.enchantment.Enchantments;
|
import net.minecraft.world.item.enchantment.Enchantments;
|
||||||
import net.minecraft.world.item.enchantment.ItemEnchantments;
|
import net.minecraft.world.item.enchantment.ItemEnchantments;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
@@ -30,6 +34,8 @@ public class UltimateCrossbowItem extends CrossbowItem {
|
|||||||
private static final int FIRE_COOLDOWN_TICKS = 5; // 4 shots/sec
|
private static final int FIRE_COOLDOWN_TICKS = 5; // 4 shots/sec
|
||||||
private static final float SHOOTING_POWER = 3.15F;
|
private static final float SHOOTING_POWER = 3.15F;
|
||||||
private static final double VANILLA_CROSSBOW_ARROW_DAMAGE = 7.0D;
|
private static final double VANILLA_CROSSBOW_ARROW_DAMAGE = 7.0D;
|
||||||
|
private static final String RESERVE_PROJECTILES_TAG = "UltimateCrossbowProjectiles";
|
||||||
|
private static final String PROJECTILE_ITEM_TAG = "Item";
|
||||||
|
|
||||||
public UltimateCrossbowItem(Item.Properties properties) {
|
public UltimateCrossbowItem(Item.Properties properties) {
|
||||||
super(properties);
|
super(properties);
|
||||||
@@ -84,15 +90,14 @@ public class UltimateCrossbowItem extends CrossbowItem {
|
|||||||
for (int i = 0; i < toLoad; i++) {
|
for (int i = 0; i < toLoad; i++) {
|
||||||
projectiles.add(ammoType.copyWithCount(1));
|
projectiles.add(ammoType.copyWithCount(1));
|
||||||
}
|
}
|
||||||
stack.set(DataComponents.CHARGED_PROJECTILES, ChargedProjectiles.of(projectiles));
|
saveLoadedProjectiles(stack, player.registryAccess(), projectiles);
|
||||||
|
|
||||||
level.playSound(null, player.getX(), player.getY(), player.getZ(),
|
level.playSound(null, player.getX(), player.getY(), player.getZ(),
|
||||||
SoundEvents.CROSSBOW_LOADING_END.value(), SoundSource.PLAYERS, 1.0F, 1.0F);
|
SoundEvents.CROSSBOW_LOADING_END.value(), SoundSource.PLAYERS, 1.0F, 1.0F);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void fireOneShot(Level level, Player player, InteractionHand hand, ItemStack stack) {
|
private void fireOneShot(Level level, Player player, InteractionHand hand, ItemStack stack) {
|
||||||
ChargedProjectiles charged = stack.getOrDefault(DataComponents.CHARGED_PROJECTILES, ChargedProjectiles.EMPTY);
|
List<ItemStack> all = getLoadedProjectiles(stack, player.registryAccess());
|
||||||
List<ItemStack> all = new ArrayList<>(charged.getItems().stream().filter(s -> !s.isEmpty()).toList());
|
|
||||||
if (all.isEmpty()) return;
|
if (all.isEmpty()) return;
|
||||||
|
|
||||||
ItemStack arrow = all.remove(0);
|
ItemStack arrow = all.remove(0);
|
||||||
@@ -110,10 +115,7 @@ public class UltimateCrossbowItem extends CrossbowItem {
|
|||||||
this.performShooting(level, player, hand, stack, SHOOTING_POWER, 1.0F, null);
|
this.performShooting(level, player, hand, stack, SHOOTING_POWER, 1.0F, null);
|
||||||
|
|
||||||
// performShooting clears CHARGED_PROJECTILES; restore remaining valid arrows if any
|
// performShooting clears CHARGED_PROJECTILES; restore remaining valid arrows if any
|
||||||
List<ItemStack> remaining = all.stream().filter(s -> !s.isEmpty()).toList();
|
saveLoadedProjectiles(stack, player.registryAccess(), all);
|
||||||
if (!remaining.isEmpty()) {
|
|
||||||
stack.set(DataComponents.CHARGED_PROJECTILES, ChargedProjectiles.of(remaining));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -139,10 +141,10 @@ public class UltimateCrossbowItem extends CrossbowItem {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void appendHoverText(ItemStack stack, Item.TooltipContext context, List<Component> tooltipComponents, TooltipFlag tooltipFlag) {
|
public void appendHoverText(ItemStack stack, Item.TooltipContext context, List<Component> tooltipComponents, TooltipFlag tooltipFlag) {
|
||||||
ChargedProjectiles charged = stack.getOrDefault(DataComponents.CHARGED_PROJECTILES, ChargedProjectiles.EMPTY);
|
List<ItemStack> loadedProjectiles = getLoadedProjectiles(stack, context.registries());
|
||||||
if (!charged.isEmpty()) {
|
if (!loadedProjectiles.isEmpty()) {
|
||||||
int count = charged.getItems().size();
|
int count = loadedProjectiles.size();
|
||||||
Component arrowName = charged.getItems().get(0).getHoverName();
|
Component arrowName = loadedProjectiles.get(0).getHoverName();
|
||||||
tooltipComponents.add(Component.translatable("item.antarchy.ultimate_crossbow.arrows_remaining", count, arrowName)
|
tooltipComponents.add(Component.translatable("item.antarchy.ultimate_crossbow.arrows_remaining", count, arrowName)
|
||||||
.withStyle(ChatFormatting.GRAY));
|
.withStyle(ChatFormatting.GRAY));
|
||||||
}
|
}
|
||||||
@@ -214,4 +216,58 @@ public class UltimateCrossbowItem extends CrossbowItem {
|
|||||||
public int getEnchantmentValue() {
|
public int getEnchantmentValue() {
|
||||||
return AntarchySettings.ultimateCrossbowEnchantability();
|
return AntarchySettings.ultimateCrossbowEnchantability();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static List<ItemStack> getLoadedProjectiles(ItemStack crossbow, net.minecraft.core.HolderLookup.Provider registries) {
|
||||||
|
List<ItemStack> projectiles = new ArrayList<>();
|
||||||
|
ChargedProjectiles charged = crossbow.getOrDefault(DataComponents.CHARGED_PROJECTILES, ChargedProjectiles.EMPTY);
|
||||||
|
for (ItemStack projectile : charged.getItems()) {
|
||||||
|
if (!projectile.isEmpty() && projectiles.size() < MAX_ARROWS) {
|
||||||
|
projectiles.add(projectile.copyWithCount(1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
CompoundTag customData = crossbow.getOrDefault(DataComponents.CUSTOM_DATA, CustomData.EMPTY).copyTag();
|
||||||
|
ListTag reserve = customData.getList(RESERVE_PROJECTILES_TAG, Tag.TAG_COMPOUND);
|
||||||
|
for (int i = 0; i < reserve.size() && projectiles.size() < MAX_ARROWS; i++) {
|
||||||
|
ItemStack projectile = ItemStack.parseOptional(registries, reserve.getCompound(i).getCompound(PROJECTILE_ITEM_TAG));
|
||||||
|
if (!projectile.isEmpty()) {
|
||||||
|
projectiles.add(projectile.copyWithCount(1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return projectiles;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void saveLoadedProjectiles(ItemStack crossbow, net.minecraft.core.HolderLookup.Provider registries, List<ItemStack> projectiles) {
|
||||||
|
List<ItemStack> sanitizedProjectiles = projectiles.stream()
|
||||||
|
.filter(projectile -> !projectile.isEmpty())
|
||||||
|
.limit(MAX_ARROWS)
|
||||||
|
.map(projectile -> projectile.copyWithCount(1))
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
if (sanitizedProjectiles.isEmpty()) {
|
||||||
|
crossbow.set(DataComponents.CHARGED_PROJECTILES, ChargedProjectiles.EMPTY);
|
||||||
|
clearReserveProjectiles(crossbow);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
crossbow.set(DataComponents.CHARGED_PROJECTILES, ChargedProjectiles.of(List.of(sanitizedProjectiles.get(0))));
|
||||||
|
ListTag reserve = new ListTag();
|
||||||
|
for (int i = 1; i < sanitizedProjectiles.size(); i++) {
|
||||||
|
CompoundTag entry = new CompoundTag();
|
||||||
|
entry.put(PROJECTILE_ITEM_TAG, sanitizedProjectiles.get(i).save(registries));
|
||||||
|
reserve.add(entry);
|
||||||
|
}
|
||||||
|
|
||||||
|
CustomData.update(DataComponents.CUSTOM_DATA, crossbow, tag -> {
|
||||||
|
if (reserve.isEmpty()) {
|
||||||
|
tag.remove(RESERVE_PROJECTILES_TAG);
|
||||||
|
} else {
|
||||||
|
tag.put(RESERVE_PROJECTILES_TAG, reserve);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void clearReserveProjectiles(ItemStack crossbow) {
|
||||||
|
CustomData.update(DataComponents.CUSTOM_DATA, crossbow, tag -> tag.remove(RESERVE_PROJECTILES_TAG));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
+24
-10
@@ -59,11 +59,12 @@ public final class ThoraxisBiomeSource extends BiomeSource {
|
|||||||
private final int dreamDunesMaxQuartY;
|
private final int dreamDunesMaxQuartY;
|
||||||
private final int umbralHillsMaxQuartY;
|
private final int umbralHillsMaxQuartY;
|
||||||
private final int lucidPoolsMinQuartY;
|
private final int lucidPoolsMinQuartY;
|
||||||
private final Holder<Biome> nightmareWastesBiome;
|
private volatile boolean biomesResolved;
|
||||||
private final Holder<Biome> dreamDunesBiome;
|
private Holder<Biome> nightmareWastesBiome;
|
||||||
private final Holder<Biome> umbralHillsBiome;
|
private Holder<Biome> dreamDunesBiome;
|
||||||
private final Holder<Biome> lucidPoolsBiome;
|
private Holder<Biome> umbralHillsBiome;
|
||||||
private final Holder<Biome> cloudSeaBiome;
|
private Holder<Biome> lucidPoolsBiome;
|
||||||
|
private Holder<Biome> cloudSeaBiome;
|
||||||
|
|
||||||
private static final ThreadLocal<Long2DoubleOpenHashMap> CLOUD_SEA_CACHE =
|
private static final ThreadLocal<Long2DoubleOpenHashMap> CLOUD_SEA_CACHE =
|
||||||
ThreadLocal.withInitial(() -> new Long2DoubleOpenHashMap(512));
|
ThreadLocal.withInitial(() -> new Long2DoubleOpenHashMap(512));
|
||||||
@@ -81,11 +82,23 @@ public final class ThoraxisBiomeSource extends BiomeSource {
|
|||||||
this.dreamDunesMaxQuartY = QuartPos.fromBlock(dreamDunesMaxY);
|
this.dreamDunesMaxQuartY = QuartPos.fromBlock(dreamDunesMaxY);
|
||||||
this.umbralHillsMaxQuartY = QuartPos.fromBlock(umbralHillsMaxY);
|
this.umbralHillsMaxQuartY = QuartPos.fromBlock(umbralHillsMaxY);
|
||||||
this.lucidPoolsMinQuartY = QuartPos.fromBlock(lucidPoolsMinY);
|
this.lucidPoolsMinQuartY = QuartPos.fromBlock(lucidPoolsMinY);
|
||||||
this.nightmareWastesBiome = this.findBiome(NIGHTMARE_WASTES);
|
}
|
||||||
this.dreamDunesBiome = this.findBiome(DREAM_DUNES);
|
|
||||||
this.umbralHillsBiome = this.findBiome(UMBRAL_HILLS);
|
private void resolveBiomesIfNeeded() {
|
||||||
this.lucidPoolsBiome = this.findBiome(LUCID_POOLS);
|
if (this.biomesResolved) {
|
||||||
this.cloudSeaBiome = this.findBiome(CLOUD_SEA);
|
return;
|
||||||
|
}
|
||||||
|
synchronized (this) {
|
||||||
|
if (this.biomesResolved) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.nightmareWastesBiome = this.findBiome(NIGHTMARE_WASTES);
|
||||||
|
this.dreamDunesBiome = this.findBiome(DREAM_DUNES);
|
||||||
|
this.umbralHillsBiome = this.findBiome(UMBRAL_HILLS);
|
||||||
|
this.lucidPoolsBiome = this.findBiome(LUCID_POOLS);
|
||||||
|
this.cloudSeaBiome = this.findBiome(CLOUD_SEA);
|
||||||
|
this.biomesResolved = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private Climate.ParameterList<Holder<Biome>> parameters() {
|
private Climate.ParameterList<Holder<Biome>> parameters() {
|
||||||
@@ -116,6 +129,7 @@ public final class ThoraxisBiomeSource extends BiomeSource {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Holder<Biome> getNoiseBiome(int x, int y, int z, Climate.Sampler sampler) {
|
public Holder<Biome> getNoiseBiome(int x, int y, int z, Climate.Sampler sampler) {
|
||||||
|
this.resolveBiomesIfNeeded();
|
||||||
if (this.cloudSeaBiome != null && cachedIsCloudSeaZone(x, z)) {
|
if (this.cloudSeaBiome != null && cachedIsCloudSeaZone(x, z)) {
|
||||||
return this.cloudSeaBiome;
|
return this.cloudSeaBiome;
|
||||||
}
|
}
|
||||||
|
|||||||
+16
@@ -0,0 +1,16 @@
|
|||||||
|
package com.craisinlord.antarchy.mixins;
|
||||||
|
|
||||||
|
import net.minecraft.server.level.WorldGenRegion;
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
|
import org.spongepowered.asm.mixin.injection.Redirect;
|
||||||
|
|
||||||
|
@Mixin(WorldGenRegion.class)
|
||||||
|
public abstract class FarChunkSetBlockWarningMixin {
|
||||||
|
@Redirect(
|
||||||
|
method = "ensureCanWrite",
|
||||||
|
at = @At(value = "INVOKE", target = "Lnet/minecraft/Util;logAndPauseIfInIde(Ljava/lang/String;)V")
|
||||||
|
)
|
||||||
|
private void antarchy$suppressFarChunkWarning(String message) {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
package com.craisinlord.antarchy.mixins;
|
||||||
|
|
||||||
|
import com.craisinlord.antarchy.content.entity.SizeRayProjectileEntity;
|
||||||
|
import net.minecraft.world.entity.LivingEntity;
|
||||||
|
import net.minecraft.world.entity.ai.attributes.AttributeInstance;
|
||||||
|
import net.minecraft.world.entity.ai.attributes.Attributes;
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
|
import org.spongepowered.asm.mixin.injection.Inject;
|
||||||
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||||
|
|
||||||
|
@Mixin(LivingEntity.class)
|
||||||
|
public abstract class MilkBucketSizeResetMixin {
|
||||||
|
@Inject(method = "removeAllEffects", at = @At("TAIL"))
|
||||||
|
private void antarchy$resetSizeRayScale(CallbackInfoReturnable<Boolean> cir) {
|
||||||
|
LivingEntity self = (LivingEntity) (Object) this;
|
||||||
|
if (self.level().isClientSide) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
AttributeInstance scaleAttribute = self.getAttribute(Attributes.SCALE);
|
||||||
|
if (scaleAttribute != null) {
|
||||||
|
SizeRayProjectileEntity.writeModifier(scaleAttribute, 0.0D);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -12,6 +12,7 @@
|
|||||||
"DreamFireBlockMixin",
|
"DreamFireBlockMixin",
|
||||||
"DreamSandFallingSpeedMixin",
|
"DreamSandFallingSpeedMixin",
|
||||||
"DreamSandLowGravityMixin",
|
"DreamSandLowGravityMixin",
|
||||||
|
"FarChunkSetBlockWarningMixin",
|
||||||
"FireVisualBaseFireBlockMixin",
|
"FireVisualBaseFireBlockMixin",
|
||||||
"FireVisualEntityMixin",
|
"FireVisualEntityMixin",
|
||||||
"FlintAndSteelPortalIgnitionMixin",
|
"FlintAndSteelPortalIgnitionMixin",
|
||||||
@@ -19,6 +20,7 @@
|
|||||||
"FrogVariantBootstrapMixin",
|
"FrogVariantBootstrapMixin",
|
||||||
"GlowSquidLumenSpawnMixin",
|
"GlowSquidLumenSpawnMixin",
|
||||||
"GlowVinesUnderLeavesMixin",
|
"GlowVinesUnderLeavesMixin",
|
||||||
|
"MilkBucketSizeResetMixin",
|
||||||
"GoopedStepSoundMixin",
|
"GoopedStepSoundMixin",
|
||||||
"ExperimentalSettingsLevelSummaryMixin",
|
"ExperimentalSettingsLevelSummaryMixin",
|
||||||
"NightmareSwordDamageMixin",
|
"NightmareSwordDamageMixin",
|
||||||
|
|||||||
@@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"variants": {
|
||||||
|
"level=0": { "model": "minecraft:block/water" },
|
||||||
|
"level=1": { "model": "minecraft:block/water" },
|
||||||
|
"level=2": { "model": "minecraft:block/water" },
|
||||||
|
"level=3": { "model": "minecraft:block/water" },
|
||||||
|
"level=4": { "model": "minecraft:block/water" },
|
||||||
|
"level=5": { "model": "minecraft:block/water" },
|
||||||
|
"level=6": { "model": "minecraft:block/water" },
|
||||||
|
"level=7": { "model": "minecraft:block/water" },
|
||||||
|
"level=8": { "model": "minecraft:block/water" },
|
||||||
|
"level=9": { "model": "minecraft:block/water" },
|
||||||
|
"level=10": { "model": "minecraft:block/water" },
|
||||||
|
"level=11": { "model": "minecraft:block/water" },
|
||||||
|
"level=12": { "model": "minecraft:block/water" },
|
||||||
|
"level=13": { "model": "minecraft:block/water" },
|
||||||
|
"level=14": { "model": "minecraft:block/water" },
|
||||||
|
"level=15": { "model": "minecraft:block/water" }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -406,6 +406,7 @@
|
|||||||
"item.antarchy.growth_ray": "Wachstumsstrahler",
|
"item.antarchy.growth_ray": "Wachstumsstrahler",
|
||||||
"tooltip.antarchy.shrink_ray": "Schrumpft Ziele dauerhaft. Gedrückt halten zum Aufladen.",
|
"tooltip.antarchy.shrink_ray": "Schrumpft Ziele dauerhaft. Gedrückt halten zum Aufladen.",
|
||||||
"tooltip.antarchy.growth_ray": "Vergrößert Ziele dauerhaft. Gedrückt halten zum Aufladen.",
|
"tooltip.antarchy.growth_ray": "Vergrößert Ziele dauerhaft. Gedrückt halten zum Aufladen.",
|
||||||
|
"tooltip.antarchy.size_ray_milk_reset": "Milch trinken setzt diesen Effekt zurück.",
|
||||||
"tooltip.antarchy.reverie_bottle.capture": "Rechtsklicke mit einer Glasflasche auf eine Reverie, um sie einzufangen.",
|
"tooltip.antarchy.reverie_bottle.capture": "Rechtsklicke mit einer Glasflasche auf eine Reverie, um sie einzufangen.",
|
||||||
"tooltip.antarchy.reverie_bottle.release": "Rechtsklick, um die Reverie freizulassen.",
|
"tooltip.antarchy.reverie_bottle.release": "Rechtsklick, um die Reverie freizulassen.",
|
||||||
"item.antarchy.gravity_gun": "Gravitationskanone",
|
"item.antarchy.gravity_gun": "Gravitationskanone",
|
||||||
|
|||||||
@@ -408,6 +408,7 @@
|
|||||||
"item.antarchy.growth_ray": "Growth Ray",
|
"item.antarchy.growth_ray": "Growth Ray",
|
||||||
"tooltip.antarchy.shrink_ray": "Permanently shrinks targets. Hold down to charge.",
|
"tooltip.antarchy.shrink_ray": "Permanently shrinks targets. Hold down to charge.",
|
||||||
"tooltip.antarchy.growth_ray": "Permanently Grows Targets. Hold down to charge.",
|
"tooltip.antarchy.growth_ray": "Permanently Grows Targets. Hold down to charge.",
|
||||||
|
"tooltip.antarchy.size_ray_milk_reset": "Drinking milk resets this effect.",
|
||||||
"tooltip.antarchy.reverie_bottle.capture": "Right click a Reverie with a glass bottle to store it.",
|
"tooltip.antarchy.reverie_bottle.capture": "Right click a Reverie with a glass bottle to store it.",
|
||||||
"tooltip.antarchy.reverie_bottle.release": "Right click to release the Reverie.",
|
"tooltip.antarchy.reverie_bottle.release": "Right click to release the Reverie.",
|
||||||
"item.antarchy.gravity_gun": "Gravity Gun",
|
"item.antarchy.gravity_gun": "Gravity Gun",
|
||||||
@@ -567,6 +568,8 @@
|
|||||||
"advancements.antarchy.visit_elythia.description": "Use a brown ant to reach Elythia.",
|
"advancements.antarchy.visit_elythia.description": "Use a brown ant to reach Elythia.",
|
||||||
"advancements.antarchy.visit_thoraxis.title": "Ant-ger Management",
|
"advancements.antarchy.visit_thoraxis.title": "Ant-ger Management",
|
||||||
"advancements.antarchy.visit_thoraxis.description": "Use a red ant to reach Thoraxis.",
|
"advancements.antarchy.visit_thoraxis.description": "Use a red ant to reach Thoraxis.",
|
||||||
|
"advancements.antarchy.visit_cavaryn.title": "Antfestation Problem",
|
||||||
|
"advancements.antarchy.visit_cavaryn.description": "Enter the infested dimension of Cavaryn.",
|
||||||
"advancements.antarchy.fallen_kingdom_castle.title": "I Used to Rule the World...",
|
"advancements.antarchy.fallen_kingdom_castle.title": "I Used to Rule the World...",
|
||||||
"advancements.antarchy.fallen_kingdom_castle.description": "Discover the Fallen Kingdom Castle.",
|
"advancements.antarchy.fallen_kingdom_castle.description": "Discover the Fallen Kingdom Castle.",
|
||||||
"advancements.antarchy.fallen_king_crown.title": "Chunks would load when I gave the word...",
|
"advancements.antarchy.fallen_king_crown.title": "Chunks would load when I gave the word...",
|
||||||
@@ -935,6 +938,7 @@
|
|||||||
"subtitles.antarchy.lurking_terror_bite": "Lurking Terror bites",
|
"subtitles.antarchy.lurking_terror_bite": "Lurking Terror bites",
|
||||||
"subtitles.antarchy.lurking_terror_fly_loop": "Lurking Terror flies",
|
"subtitles.antarchy.lurking_terror_fly_loop": "Lurking Terror flies",
|
||||||
"subtitles.antarchy.stink_bug_fart": "Stink Bug farts",
|
"subtitles.antarchy.stink_bug_fart": "Stink Bug farts",
|
||||||
|
"subtitles.antarchy.cavaryn_heartbeat": "Cavaryn pulses",
|
||||||
"subtitles.antarchy.stink_bug_idle": "Stink Bug idles",
|
"subtitles.antarchy.stink_bug_idle": "Stink Bug idles",
|
||||||
"subtitles.antarchy.rolly_polly_idle": "Rolly Polly idles",
|
"subtitles.antarchy.rolly_polly_idle": "Rolly Polly idles",
|
||||||
"subtitles.antarchy.rolly_polly_wheel_mode": "Rolly Polly curls up",
|
"subtitles.antarchy.rolly_polly_wheel_mode": "Rolly Polly curls up",
|
||||||
|
|||||||
@@ -406,6 +406,7 @@
|
|||||||
"item.antarchy.growth_ray": "Rayo de crecimiento",
|
"item.antarchy.growth_ray": "Rayo de crecimiento",
|
||||||
"tooltip.antarchy.shrink_ray": "Encoge permanentemente a los objetivos. Mantén pulsado para cargar.",
|
"tooltip.antarchy.shrink_ray": "Encoge permanentemente a los objetivos. Mantén pulsado para cargar.",
|
||||||
"tooltip.antarchy.growth_ray": "Aumenta permanentemente a los objetivos. Mantén pulsado para cargar.",
|
"tooltip.antarchy.growth_ray": "Aumenta permanentemente a los objetivos. Mantén pulsado para cargar.",
|
||||||
|
"tooltip.antarchy.size_ray_milk_reset": "Beber leche restablece este efecto.",
|
||||||
"tooltip.antarchy.reverie_bottle.capture": "Haz clic derecho en una Reverie con una botella de cristal para guardarla.",
|
"tooltip.antarchy.reverie_bottle.capture": "Haz clic derecho en una Reverie con una botella de cristal para guardarla.",
|
||||||
"tooltip.antarchy.reverie_bottle.release": "Clic derecho para liberar a la Reverie.",
|
"tooltip.antarchy.reverie_bottle.release": "Clic derecho para liberar a la Reverie.",
|
||||||
"item.antarchy.gravity_gun": "Pistola gravitatoria",
|
"item.antarchy.gravity_gun": "Pistola gravitatoria",
|
||||||
|
|||||||
@@ -406,6 +406,7 @@
|
|||||||
"item.antarchy.growth_ray": "Rayon de croissance",
|
"item.antarchy.growth_ray": "Rayon de croissance",
|
||||||
"tooltip.antarchy.shrink_ray": "Rétrécit définitivement les cibles. Maintenez pour charger.",
|
"tooltip.antarchy.shrink_ray": "Rétrécit définitivement les cibles. Maintenez pour charger.",
|
||||||
"tooltip.antarchy.growth_ray": "Agrandit définitivement les cibles. Maintenez pour charger.",
|
"tooltip.antarchy.growth_ray": "Agrandit définitivement les cibles. Maintenez pour charger.",
|
||||||
|
"tooltip.antarchy.size_ray_milk_reset": "Boire du lait réinitialise cet effet.",
|
||||||
"tooltip.antarchy.reverie_bottle.capture": "Faites un clic droit sur une Reverie avec une fiole en verre pour la capturer.",
|
"tooltip.antarchy.reverie_bottle.capture": "Faites un clic droit sur une Reverie avec une fiole en verre pour la capturer.",
|
||||||
"tooltip.antarchy.reverie_bottle.release": "Clic droit pour libérer la Reverie.",
|
"tooltip.antarchy.reverie_bottle.release": "Clic droit pour libérer la Reverie.",
|
||||||
"item.antarchy.gravity_gun": "Canon à gravité",
|
"item.antarchy.gravity_gun": "Canon à gravité",
|
||||||
|
|||||||
@@ -406,6 +406,7 @@
|
|||||||
"item.antarchy.growth_ray": "Raggio di crescita",
|
"item.antarchy.growth_ray": "Raggio di crescita",
|
||||||
"tooltip.antarchy.shrink_ray": "Rimpicciolisce permanentemente i bersagli. Tieni premuto per caricare.",
|
"tooltip.antarchy.shrink_ray": "Rimpicciolisce permanentemente i bersagli. Tieni premuto per caricare.",
|
||||||
"tooltip.antarchy.growth_ray": "Ingrandisce permanentemente i bersagli. Tieni premuto per caricare.",
|
"tooltip.antarchy.growth_ray": "Ingrandisce permanentemente i bersagli. Tieni premuto per caricare.",
|
||||||
|
"tooltip.antarchy.size_ray_milk_reset": "Bere il latte annulla questo effetto.",
|
||||||
"tooltip.antarchy.reverie_bottle.capture": "Fai clic destro su una Reverie con una bottiglia di vetro per catturarla.",
|
"tooltip.antarchy.reverie_bottle.capture": "Fai clic destro su una Reverie con una bottiglia di vetro per catturarla.",
|
||||||
"tooltip.antarchy.reverie_bottle.release": "Fai clic destro per liberare la Reverie.",
|
"tooltip.antarchy.reverie_bottle.release": "Fai clic destro per liberare la Reverie.",
|
||||||
"item.antarchy.gravity_gun": "Cannone gravitazionale",
|
"item.antarchy.gravity_gun": "Cannone gravitazionale",
|
||||||
|
|||||||
@@ -406,6 +406,7 @@
|
|||||||
"item.antarchy.growth_ray": "成長光線銃",
|
"item.antarchy.growth_ray": "成長光線銃",
|
||||||
"tooltip.antarchy.shrink_ray": "対象を永久に縮小します。長押しでチャージします。",
|
"tooltip.antarchy.shrink_ray": "対象を永久に縮小します。長押しでチャージします。",
|
||||||
"tooltip.antarchy.growth_ray": "対象を永久に巨大化します。長押しでチャージします。",
|
"tooltip.antarchy.growth_ray": "対象を永久に巨大化します。長押しでチャージします。",
|
||||||
|
"tooltip.antarchy.size_ray_milk_reset": "牛乳を飲むとこの効果はリセットされます。",
|
||||||
"tooltip.antarchy.reverie_bottle.capture": "ガラス瓶を持ってレヴェリーを右クリックすると収納できます。",
|
"tooltip.antarchy.reverie_bottle.capture": "ガラス瓶を持ってレヴェリーを右クリックすると収納できます。",
|
||||||
"tooltip.antarchy.reverie_bottle.release": "右クリックでレヴェリーを解放します。",
|
"tooltip.antarchy.reverie_bottle.release": "右クリックでレヴェリーを解放します。",
|
||||||
"item.antarchy.gravity_gun": "重力銃",
|
"item.antarchy.gravity_gun": "重力銃",
|
||||||
|
|||||||
@@ -406,6 +406,7 @@
|
|||||||
"item.antarchy.growth_ray": "성장 광선총",
|
"item.antarchy.growth_ray": "성장 광선총",
|
||||||
"tooltip.antarchy.shrink_ray": "대상을 영구적으로 축소합니다. 길게 눌러 충전합니다.",
|
"tooltip.antarchy.shrink_ray": "대상을 영구적으로 축소합니다. 길게 눌러 충전합니다.",
|
||||||
"tooltip.antarchy.growth_ray": "대상을 영구적으로 성장시킵니다. 길게 눌러 충전합니다.",
|
"tooltip.antarchy.growth_ray": "대상을 영구적으로 성장시킵니다. 길게 눌러 충전합니다.",
|
||||||
|
"tooltip.antarchy.size_ray_milk_reset": "우유를 마시면 이 효과가 초기화됩니다.",
|
||||||
"tooltip.antarchy.reverie_bottle.capture": "유리병으로 레버리를 우클릭하여 담습니다.",
|
"tooltip.antarchy.reverie_bottle.capture": "유리병으로 레버리를 우클릭하여 담습니다.",
|
||||||
"tooltip.antarchy.reverie_bottle.release": "우클릭하여 레버리를 풀어줍니다.",
|
"tooltip.antarchy.reverie_bottle.release": "우클릭하여 레버리를 풀어줍니다.",
|
||||||
"item.antarchy.gravity_gun": "중력총",
|
"item.antarchy.gravity_gun": "중력총",
|
||||||
|
|||||||
@@ -406,6 +406,7 @@
|
|||||||
"item.antarchy.growth_ray": "Raio de Crescimento",
|
"item.antarchy.growth_ray": "Raio de Crescimento",
|
||||||
"tooltip.antarchy.shrink_ray": "Encolhe alvos permanentemente. Segure para carregar.",
|
"tooltip.antarchy.shrink_ray": "Encolhe alvos permanentemente. Segure para carregar.",
|
||||||
"tooltip.antarchy.growth_ray": "Aumenta alvos permanentemente. Segure para carregar.",
|
"tooltip.antarchy.growth_ray": "Aumenta alvos permanentemente. Segure para carregar.",
|
||||||
|
"tooltip.antarchy.size_ray_milk_reset": "Beber leite redefine este efeito.",
|
||||||
"tooltip.antarchy.reverie_bottle.capture": "Clique com o botão direito em uma Reverie com um frasco de vidro para guardá-la.",
|
"tooltip.antarchy.reverie_bottle.capture": "Clique com o botão direito em uma Reverie com um frasco de vidro para guardá-la.",
|
||||||
"tooltip.antarchy.reverie_bottle.release": "Clique com o botão direito para soltar a Reverie.",
|
"tooltip.antarchy.reverie_bottle.release": "Clique com o botão direito para soltar a Reverie.",
|
||||||
"item.antarchy.gravity_gun": "Arma Gravitacional",
|
"item.antarchy.gravity_gun": "Arma Gravitacional",
|
||||||
|
|||||||
@@ -382,6 +382,7 @@
|
|||||||
"item.antarchy.growth_ray": "Увеличитель",
|
"item.antarchy.growth_ray": "Увеличитель",
|
||||||
"tooltip.antarchy.shrink_ray": "Навсегда уменьшает цель. Зажмите, чтобы зарядить.",
|
"tooltip.antarchy.shrink_ray": "Навсегда уменьшает цель. Зажмите, чтобы зарядить.",
|
||||||
"tooltip.antarchy.growth_ray": "Навсегда увеличивает цель. Зажмите, чтобы зарядить.",
|
"tooltip.antarchy.growth_ray": "Навсегда увеличивает цель. Зажмите, чтобы зарядить.",
|
||||||
|
"tooltip.antarchy.size_ray_milk_reset": "Питьё молока сбрасывает этот эффект.",
|
||||||
"tooltip.antarchy.reverie_bottle.capture": "Нажмите ПКМ стеклянной бутылочкой по грёзе, чтобы поймать её.",
|
"tooltip.antarchy.reverie_bottle.capture": "Нажмите ПКМ стеклянной бутылочкой по грёзе, чтобы поймать её.",
|
||||||
"tooltip.antarchy.reverie_bottle.release": "Нажмите ПКМ, чтобы выпустить грёзу.",
|
"tooltip.antarchy.reverie_bottle.release": "Нажмите ПКМ, чтобы выпустить грёзу.",
|
||||||
"item.antarchy.gravity_gun": "Гравитационная пушка",
|
"item.antarchy.gravity_gun": "Гравитационная пушка",
|
||||||
|
|||||||
@@ -406,6 +406,7 @@
|
|||||||
"item.antarchy.growth_ray": "生长射线枪",
|
"item.antarchy.growth_ray": "生长射线枪",
|
||||||
"tooltip.antarchy.shrink_ray": "永久缩小目标。按住以蓄力。",
|
"tooltip.antarchy.shrink_ray": "永久缩小目标。按住以蓄力。",
|
||||||
"tooltip.antarchy.growth_ray": "永久放大目标。按住以蓄力。",
|
"tooltip.antarchy.growth_ray": "永久放大目标。按住以蓄力。",
|
||||||
|
"tooltip.antarchy.size_ray_milk_reset": "喝牛奶可重置此效果。",
|
||||||
"tooltip.antarchy.reverie_bottle.capture": "手持玻璃瓶右键雷弗里即可将其收纳。",
|
"tooltip.antarchy.reverie_bottle.capture": "手持玻璃瓶右键雷弗里即可将其收纳。",
|
||||||
"tooltip.antarchy.reverie_bottle.release": "右键释放雷弗里。",
|
"tooltip.antarchy.reverie_bottle.release": "右键释放雷弗里。",
|
||||||
"item.antarchy.gravity_gun": "重力枪",
|
"item.antarchy.gravity_gun": "重力枪",
|
||||||
|
|||||||
@@ -406,6 +406,7 @@
|
|||||||
"item.antarchy.growth_ray": "生長射線槍",
|
"item.antarchy.growth_ray": "生長射線槍",
|
||||||
"tooltip.antarchy.shrink_ray": "永久縮小目標。按住以蓄力。",
|
"tooltip.antarchy.shrink_ray": "永久縮小目標。按住以蓄力。",
|
||||||
"tooltip.antarchy.growth_ray": "永久放大目標。按住以蓄力。",
|
"tooltip.antarchy.growth_ray": "永久放大目標。按住以蓄力。",
|
||||||
|
"tooltip.antarchy.size_ray_milk_reset": "喝牛奶可重置此效果。",
|
||||||
"tooltip.antarchy.reverie_bottle.capture": "手持玻璃瓶右鍵雷弗裡即可將其收納。",
|
"tooltip.antarchy.reverie_bottle.capture": "手持玻璃瓶右鍵雷弗裡即可將其收納。",
|
||||||
"tooltip.antarchy.reverie_bottle.release": "右鍵釋放雷弗裡。",
|
"tooltip.antarchy.reverie_bottle.release": "右鍵釋放雷弗裡。",
|
||||||
"item.antarchy.gravity_gun": "重力槍",
|
"item.antarchy.gravity_gun": "重力槍",
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
"texture_size": [64, 64],
|
"texture_size": [64, 64],
|
||||||
"textures": {
|
"textures": {
|
||||||
"1": "antarchy:block/jerry_egg",
|
"1": "antarchy:block/jerry_egg",
|
||||||
"particle": "antarchy:block/biomite"
|
"particle": "antarchy:block/jerry_egg_break_particle"
|
||||||
},
|
},
|
||||||
"elements": [
|
"elements": [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"textures": {
|
"textures": {
|
||||||
"particle": "antarchy:models/ouranwood/ouranwood_hanging_sign"
|
"particle": "antarchy:block/ouranwood/ouranwood_planks"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"textures": {
|
"textures": {
|
||||||
"particle": "antarchy:models/ouranwood/ouranwood_sign"
|
"particle": "antarchy:block/ouranwood/ouranwood_planks"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"textures": {
|
"textures": {
|
||||||
"particle": "antarchy:models/ouranwood/ouranwood_hanging_sign"
|
"particle": "antarchy:block/ouranwood/ouranwood_planks"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"textures": {
|
"textures": {
|
||||||
"particle": "antarchy:models/ouranwood/ouranwood_sign"
|
"particle": "antarchy:block/ouranwood/ouranwood_planks"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1826,6 +1826,14 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"cavaryn_heartbeat": {
|
||||||
|
"subtitle": "subtitles.antarchy.cavaryn_heartbeat",
|
||||||
|
"sounds": [
|
||||||
|
{
|
||||||
|
"name": "antarchy:ambient/cavaryn/heartbeat"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
"triffid_attack": {
|
"triffid_attack": {
|
||||||
"subtitle": "subtitles.antarchy.triffid_attack",
|
"subtitle": "subtitles.antarchy.triffid_attack",
|
||||||
"sounds": [
|
"sounds": [
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.2 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 652 B |
@@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"parent": "minecraft:adventure/root",
|
||||||
|
"criteria": {
|
||||||
|
"entered_cavaryn": {
|
||||||
|
"conditions": {
|
||||||
|
"to": "antarchy:cavaryn"
|
||||||
|
},
|
||||||
|
"trigger": "minecraft:changed_dimension"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"display": {
|
||||||
|
"announce_to_chat": true,
|
||||||
|
"description": {
|
||||||
|
"translate": "advancements.antarchy.visit_cavaryn.description"
|
||||||
|
},
|
||||||
|
"frame": "task",
|
||||||
|
"icon": {
|
||||||
|
"count": 1,
|
||||||
|
"id": "antarchy:myrmite"
|
||||||
|
},
|
||||||
|
"show_toast": true,
|
||||||
|
"title": {
|
||||||
|
"translate": "advancements.antarchy.visit_cavaryn.title"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"requirements": [
|
||||||
|
[
|
||||||
|
"entered_cavaryn"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"sends_telemetry_event": true
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"entries": [
|
||||||
|
{
|
||||||
|
"entity_tag": "antarchy:horde_jerry",
|
||||||
|
"jerry_stage": "random_young",
|
||||||
|
"base_count": 3,
|
||||||
|
"per_player_count": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"entity_tag": "antarchy:horde_jerry",
|
||||||
|
"jerry_stage": "alpha",
|
||||||
|
"base_count": 0,
|
||||||
|
"per_player_count": 1,
|
||||||
|
"min_count": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"max_active": 8,
|
||||||
|
"entries": [
|
||||||
|
{
|
||||||
|
"entity_tag": "antarchy:horde_jerry",
|
||||||
|
"jerry_stage": "infant",
|
||||||
|
"base_count": 1,
|
||||||
|
"high_attention_base_count": 2
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"entity_tag": "antarchy:horde_jerry",
|
||||||
|
"jerry_stage": "mature",
|
||||||
|
"base_count": 0,
|
||||||
|
"high_attention_base_count": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"entries": [
|
||||||
|
{
|
||||||
|
"entity_tag": "antarchy:horde_bosses",
|
||||||
|
"base_count": 1,
|
||||||
|
"per_players": 3,
|
||||||
|
"per_players_count": 1,
|
||||||
|
"max_count": 3,
|
||||||
|
"warning": true,
|
||||||
|
"track_completion": true,
|
||||||
|
"heavy_arrival_effect": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"entity_tag": "antarchy:horde_jerry",
|
||||||
|
"jerry_stage": "random",
|
||||||
|
"base_count": 8,
|
||||||
|
"per_player_count": 2
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"entries": [
|
||||||
|
{
|
||||||
|
"entity_tag": "antarchy:horde_jerry",
|
||||||
|
"jerry_stage": "random_young",
|
||||||
|
"base_count": 12,
|
||||||
|
"per_player_count": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"entries": [
|
||||||
|
{
|
||||||
|
"entity_tag": "antarchy:horde_jerry",
|
||||||
|
"jerry_stage": "random_young",
|
||||||
|
"base_count": 12,
|
||||||
|
"per_player_count": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"entity_tag": "antarchy:horde_jerry",
|
||||||
|
"jerry_stage": "alpha",
|
||||||
|
"base_count": 3,
|
||||||
|
"per_player_count": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"entries": [
|
||||||
|
{
|
||||||
|
"entity_tag": "antarchy:horde_jerry",
|
||||||
|
"jerry_stage": "random_young",
|
||||||
|
"base_count": 12,
|
||||||
|
"per_player_count": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"entity_tag": "antarchy:horde_jerry",
|
||||||
|
"jerry_stage": "alpha",
|
||||||
|
"base_count": 4,
|
||||||
|
"per_player_count": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"entity_tag": "antarchy:horde_jerry",
|
||||||
|
"jerry_stage": "gamma",
|
||||||
|
"base_count": 2,
|
||||||
|
"per_player_count": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"values": [
|
||||||
|
"antarchy:jerry"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"replace": false,
|
"replace": false,
|
||||||
"values": [
|
"values": [
|
||||||
"minecraft:glow_berries"
|
"antarchy:broodfruit"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -47,11 +47,13 @@
|
|||||||
"antarchy:cavaryn_bile_cysts",
|
"antarchy:cavaryn_bile_cysts",
|
||||||
"antarchy:termite_nest"
|
"antarchy:termite_nest"
|
||||||
],
|
],
|
||||||
|
[
|
||||||
|
"antarchy:jerry_egg_patch"
|
||||||
|
],
|
||||||
[
|
[
|
||||||
"antarchy:biowart_patch",
|
"antarchy:biowart_patch",
|
||||||
"antarchy:cavaryn_creepvine",
|
"antarchy:cavaryn_creepvine",
|
||||||
"antarchy:cavaryn_hanging_creeproots",
|
"antarchy:cavaryn_hanging_creeproots"
|
||||||
"antarchy:jerry_egg_patch"
|
|
||||||
],
|
],
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
@@ -68,9 +70,9 @@
|
|||||||
"creature": [
|
"creature": [
|
||||||
{
|
{
|
||||||
"type": "antarchy:stink_bug",
|
"type": "antarchy:stink_bug",
|
||||||
"weight": 12,
|
"weight": 35,
|
||||||
"minCount": 1,
|
"minCount": 2,
|
||||||
"maxCount": 3
|
"maxCount": 4
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"ambient": [],
|
"ambient": [],
|
||||||
|
|||||||
@@ -75,9 +75,9 @@
|
|||||||
"creature": [
|
"creature": [
|
||||||
{
|
{
|
||||||
"type": "antarchy:stink_bug",
|
"type": "antarchy:stink_bug",
|
||||||
"weight": 10,
|
"weight": 35,
|
||||||
"minCount": 1,
|
"minCount": 2,
|
||||||
"maxCount": 3
|
"maxCount": 4
|
||||||
}],
|
}],
|
||||||
"ambient": [
|
"ambient": [
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -65,9 +65,9 @@
|
|||||||
"creature": [
|
"creature": [
|
||||||
{
|
{
|
||||||
"type": "antarchy:stink_bug",
|
"type": "antarchy:stink_bug",
|
||||||
"weight": 10,
|
"weight": 35,
|
||||||
"minCount": 1,
|
"minCount": 2,
|
||||||
"maxCount": 3
|
"maxCount": 4
|
||||||
}],
|
}],
|
||||||
"ambient": [
|
"ambient": [
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -66,15 +66,15 @@
|
|||||||
],
|
],
|
||||||
[]
|
[]
|
||||||
],
|
],
|
||||||
"creature_spawn_probability": 0.4,
|
"creature_spawn_probability": 0.15,
|
||||||
"spawners": {
|
"spawners": {
|
||||||
"monster": [],
|
"monster": [],
|
||||||
"creature": [
|
"creature": [
|
||||||
{
|
{
|
||||||
"type": "antarchy:glimmer",
|
"type": "antarchy:glimmer",
|
||||||
"weight": 36,
|
"weight": 36,
|
||||||
"minCount": 3,
|
"minCount": 1,
|
||||||
"maxCount": 6
|
"maxCount": 1
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"ambient": [
|
"ambient": [
|
||||||
|
|||||||
@@ -59,7 +59,14 @@
|
|||||||
"creature_spawn_probability": 0.08,
|
"creature_spawn_probability": 0.08,
|
||||||
"spawners": {
|
"spawners": {
|
||||||
"monster": [],
|
"monster": [],
|
||||||
"creature": [],
|
"creature": [
|
||||||
|
{
|
||||||
|
"type": "antarchy:stink_bug",
|
||||||
|
"weight": 35,
|
||||||
|
"minCount": 2,
|
||||||
|
"maxCount": 4
|
||||||
|
}
|
||||||
|
],
|
||||||
"ambient": [],
|
"ambient": [],
|
||||||
"axolotls": [],
|
"axolotls": [],
|
||||||
"underground_water_creature": [],
|
"underground_water_creature": [],
|
||||||
|
|||||||
+2
-2
@@ -5,8 +5,8 @@
|
|||||||
"type": "minecraft:count",
|
"type": "minecraft:count",
|
||||||
"count": {
|
"count": {
|
||||||
"type": "minecraft:uniform",
|
"type": "minecraft:uniform",
|
||||||
"min_inclusive": 1,
|
"min_inclusive": 2,
|
||||||
"max_inclusive": 3
|
"max_inclusive": 5
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -249,6 +249,7 @@ public final class AntarchyFabricContent {
|
|||||||
AntarchyFabricSounds.STINKY_FLY_SOUND,
|
AntarchyFabricSounds.STINKY_FLY_SOUND,
|
||||||
AntarchyFabricSounds.STINK_BUG_FART,
|
AntarchyFabricSounds.STINK_BUG_FART,
|
||||||
AntarchyFabricSounds.STINK_BUG_IDLE,
|
AntarchyFabricSounds.STINK_BUG_IDLE,
|
||||||
|
AntarchyFabricSounds.CAVARYN_HEARTBEAT,
|
||||||
AntarchyFabricSounds.ROLLY_POLLY_IDLE,
|
AntarchyFabricSounds.ROLLY_POLLY_IDLE,
|
||||||
AntarchyFabricSounds.CREEPING_HORROR_GROWL,
|
AntarchyFabricSounds.CREEPING_HORROR_GROWL,
|
||||||
AntarchyFabricSounds.CREEPING_HORROR_HURT,
|
AntarchyFabricSounds.CREEPING_HORROR_HURT,
|
||||||
|
|||||||
-1
@@ -474,7 +474,6 @@ public final class AntarchyFabricClientBootstrap {
|
|||||||
ParalyzedHudRenderer.render(guiGraphics);
|
ParalyzedHudRenderer.render(guiGraphics);
|
||||||
BrutalflyElytraHudRenderer.render(guiGraphics);
|
BrutalflyElytraHudRenderer.render(guiGraphics);
|
||||||
JumpyBootsHudRenderer.render(guiGraphics);
|
JumpyBootsHudRenderer.render(guiGraphics);
|
||||||
BloodglassHudRenderer.render(guiGraphics);
|
|
||||||
TriffidGooHudRenderer.render(guiGraphics);
|
TriffidGooHudRenderer.render(guiGraphics);
|
||||||
DorrieJumpHudRenderer.render(guiGraphics);
|
DorrieJumpHudRenderer.render(guiGraphics);
|
||||||
});
|
});
|
||||||
|
|||||||
+1
-1
@@ -20,7 +20,7 @@ public final class BrutalflyElytraHudRenderer {
|
|||||||
public static void render(GuiGraphics guiGraphics) {
|
public static void render(GuiGraphics guiGraphics) {
|
||||||
Minecraft minecraft = Minecraft.getInstance();
|
Minecraft minecraft = Minecraft.getInstance();
|
||||||
Player player = minecraft.player;
|
Player player = minecraft.player;
|
||||||
if (player == null || minecraft.screen != null || player.isDeadOrDying()) {
|
if (player == null || minecraft.screen != null || player.isDeadOrDying() || minecraft.options.hideGui) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!BrutalflyElytraItem.isWearingBrutalflyElytra(player) || !player.isFallFlying()) {
|
if (!BrutalflyElytraItem.isWearingBrutalflyElytra(player) || !player.isFallFlying()) {
|
||||||
|
|||||||
+24
@@ -1,14 +1,38 @@
|
|||||||
package com.craisinlord.antarchy.fabric.mixin;
|
package com.craisinlord.antarchy.fabric.mixin;
|
||||||
|
|
||||||
|
import com.craisinlord.antarchy.content.gravity.AntarchyGravityApi;
|
||||||
|
import com.craisinlord.antarchy.content.item.BloodCrystalArmorItem;
|
||||||
import com.craisinlord.antarchy.content.item.JumpyBootsItem;
|
import com.craisinlord.antarchy.content.item.JumpyBootsItem;
|
||||||
import com.craisinlord.antarchy.fabric.util.JumpyBootsFabricHelper;
|
import com.craisinlord.antarchy.fabric.util.JumpyBootsFabricHelper;
|
||||||
|
import net.minecraft.world.damagesource.DamageSource;
|
||||||
|
import net.minecraft.world.entity.EquipmentSlot;
|
||||||
import net.minecraft.world.entity.LivingEntity;
|
import net.minecraft.world.entity.LivingEntity;
|
||||||
|
import net.minecraft.world.entity.player.Player;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
import org.spongepowered.asm.mixin.injection.At;
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
|
import org.spongepowered.asm.mixin.injection.Inject;
|
||||||
import org.spongepowered.asm.mixin.injection.ModifyVariable;
|
import org.spongepowered.asm.mixin.injection.ModifyVariable;
|
||||||
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||||
|
|
||||||
@Mixin(LivingEntity.class)
|
@Mixin(LivingEntity.class)
|
||||||
public abstract class JumpyBootsFallDamageMixin {
|
public abstract class JumpyBootsFallDamageMixin {
|
||||||
|
@Inject(method = "causeFallDamage", at = @At("HEAD"), cancellable = true)
|
||||||
|
private void antarchy$cancelBloodCrystalBootsInvertedFallDamage(float fallDistance, float multiplier, DamageSource source, CallbackInfoReturnable<Boolean> cir) {
|
||||||
|
LivingEntity self = (LivingEntity) (Object) this;
|
||||||
|
if (!(self instanceof Player player)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!AntarchyGravityApi.isGravityInverted(player)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!(player.getItemBySlot(EquipmentSlot.FEET).getItem() instanceof BloodCrystalArmorItem)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
player.fallDistance = 0.0F;
|
||||||
|
cir.setReturnValue(false);
|
||||||
|
}
|
||||||
|
|
||||||
@ModifyVariable(method = "causeFallDamage", at = @At("HEAD"), ordinal = 0, argsOnly = true)
|
@ModifyVariable(method = "causeFallDamage", at = @At("HEAD"), ordinal = 0, argsOnly = true)
|
||||||
private float antarchy$reduceJumpyBootsFallDamage(float fallDistance) {
|
private float antarchy$reduceJumpyBootsFallDamage(float fallDistance) {
|
||||||
LivingEntity self = (LivingEntity) (Object) this;
|
LivingEntity self = (LivingEntity) (Object) this;
|
||||||
|
|||||||
+18
@@ -0,0 +1,18 @@
|
|||||||
|
package com.craisinlord.antarchy.fabric.mixin.client;
|
||||||
|
|
||||||
|
import com.craisinlord.antarchy.fabric.client.BloodglassHudRenderer;
|
||||||
|
import net.minecraft.client.DeltaTracker;
|
||||||
|
import net.minecraft.client.gui.Gui;
|
||||||
|
import net.minecraft.client.gui.GuiGraphics;
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
|
import org.spongepowered.asm.mixin.injection.Inject;
|
||||||
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||||
|
|
||||||
|
@Mixin(Gui.class)
|
||||||
|
public abstract class BloodglassChatOrderMixin {
|
||||||
|
@Inject(method = "renderChat", at = @At("HEAD"))
|
||||||
|
private void antarchy$renderBloodglassBeforeChat(GuiGraphics guiGraphics, DeltaTracker deltaTracker, CallbackInfo ci) {
|
||||||
|
BloodglassHudRenderer.render(guiGraphics);
|
||||||
|
}
|
||||||
|
}
|
||||||
+21
@@ -0,0 +1,21 @@
|
|||||||
|
package com.craisinlord.antarchy.fabric.mixin.client;
|
||||||
|
|
||||||
|
import com.craisinlord.antarchy.content.item.BrutalflyElytraItem;
|
||||||
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.gui.Gui;
|
||||||
|
import net.minecraft.client.player.LocalPlayer;
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
|
import org.spongepowered.asm.mixin.injection.Inject;
|
||||||
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||||
|
|
||||||
|
@Mixin(Gui.class)
|
||||||
|
public abstract class BrutalflyElytraExperienceBarMixin {
|
||||||
|
@Inject(method = "isExperienceBarVisible", at = @At("RETURN"), cancellable = true)
|
||||||
|
private void antarchy$hideExperienceBarForBrutalfly(CallbackInfoReturnable<Boolean> cir) {
|
||||||
|
LocalPlayer player = Minecraft.getInstance().player;
|
||||||
|
if (player != null && BrutalflyElytraItem.isWearingBrutalflyElytra(player) && player.isFallFlying()) {
|
||||||
|
cir.setReturnValue(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+38
-37
@@ -246,6 +246,7 @@ import net.minecraft.world.level.block.VineBlock;
|
|||||||
import net.minecraft.world.level.block.entity.BlockEntityType;
|
import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||||
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.material.MapColor;
|
||||||
import net.minecraft.world.level.block.state.StateDefinition;
|
import net.minecraft.world.level.block.state.StateDefinition;
|
||||||
import net.minecraft.world.level.biome.BiomeSource;
|
import net.minecraft.world.level.biome.BiomeSource;
|
||||||
import net.minecraft.world.level.levelgen.DensityFunction;
|
import net.minecraft.world.level.levelgen.DensityFunction;
|
||||||
@@ -677,7 +678,7 @@ public final class AntarchyFabricBlocks {
|
|||||||
|
|
||||||
|
|
||||||
public static final DeferredBlock<Block> MYRMITE_COAL_ORE = BLOCKS.register("myrmite_coal_ore",
|
public static final DeferredBlock<Block> MYRMITE_COAL_ORE = BLOCKS.register("myrmite_coal_ore",
|
||||||
() -> createOre(Blocks.COAL_ORE, 0, 2));
|
() -> createOre(Blocks.COAL_ORE, 0, 2, MapColor.COLOR_GRAY));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredBlock<Block> BROODSTONE = BLOCKS.register("broodstone",
|
public static final DeferredBlock<Block> BROODSTONE = BLOCKS.register("broodstone",
|
||||||
@@ -733,11 +734,11 @@ public final class AntarchyFabricBlocks {
|
|||||||
|
|
||||||
|
|
||||||
public static final DeferredBlock<Block> BROODSTONE_URANIUM_ORE = BLOCKS.register("broodstone_uranium_ore",
|
public static final DeferredBlock<Block> BROODSTONE_URANIUM_ORE = BLOCKS.register("broodstone_uranium_ore",
|
||||||
() -> createOre(Blocks.DEEPSLATE_EMERALD_ORE, 4, 8));
|
() -> createOre(Blocks.DEEPSLATE_EMERALD_ORE, 4, 8, MapColor.COLOR_YELLOW));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredBlock<Block> BROODSTONE_TITANIUM_ORE = BLOCKS.register("broodstone_titanium_ore",
|
public static final DeferredBlock<Block> BROODSTONE_TITANIUM_ORE = BLOCKS.register("broodstone_titanium_ore",
|
||||||
() -> createOre(Blocks.DEEPSLATE_DIAMOND_ORE, 4, 8));
|
() -> createOre(Blocks.DEEPSLATE_DIAMOND_ORE, 4, 8, MapColor.COLOR_LIGHT_BLUE));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredBlock<RotatedPillarBlock> CHITEN_BLOCK = BLOCKS.register("chiten_block",
|
public static final DeferredBlock<RotatedPillarBlock> CHITEN_BLOCK = BLOCKS.register("chiten_block",
|
||||||
@@ -911,99 +912,99 @@ public final class AntarchyFabricBlocks {
|
|||||||
|
|
||||||
|
|
||||||
public static final DeferredBlock<Block> URANIUM_ORE = BLOCKS.register("uranium_ore",
|
public static final DeferredBlock<Block> URANIUM_ORE = BLOCKS.register("uranium_ore",
|
||||||
() -> createOre(Blocks.EMERALD_ORE, 4, 8));
|
() -> createOre(Blocks.EMERALD_ORE, 4, 8, MapColor.COLOR_YELLOW));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredBlock<Block> DEEPSLATE_URANIUM_ORE = BLOCKS.register("deepslate_uranium_ore",
|
public static final DeferredBlock<Block> DEEPSLATE_URANIUM_ORE = BLOCKS.register("deepslate_uranium_ore",
|
||||||
() -> createOre(Blocks.DEEPSLATE_EMERALD_ORE, 4, 8));
|
() -> createOre(Blocks.DEEPSLATE_EMERALD_ORE, 4, 8, MapColor.COLOR_YELLOW));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredBlock<Block> TITANIUM_ORE = BLOCKS.register("titanium_ore",
|
public static final DeferredBlock<Block> TITANIUM_ORE = BLOCKS.register("titanium_ore",
|
||||||
() -> createOre(Blocks.DIAMOND_ORE, 4, 8));
|
() -> createOre(Blocks.DIAMOND_ORE, 4, 8, MapColor.COLOR_LIGHT_BLUE));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredBlock<Block> DEEPSLATE_TITANIUM_ORE = BLOCKS.register("deepslate_titanium_ore",
|
public static final DeferredBlock<Block> DEEPSLATE_TITANIUM_ORE = BLOCKS.register("deepslate_titanium_ore",
|
||||||
() -> createOre(Blocks.DEEPSLATE_DIAMOND_ORE, 4, 8));
|
() -> createOre(Blocks.DEEPSLATE_DIAMOND_ORE, 4, 8, MapColor.COLOR_LIGHT_BLUE));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredBlock<Block> URANIUM_BLOCK = BLOCKS.register("uranium_block",
|
public static final DeferredBlock<Block> URANIUM_BLOCK = BLOCKS.register("uranium_block",
|
||||||
() -> createStorageBlock(Blocks.EMERALD_BLOCK));
|
() -> createStorageBlock(Blocks.EMERALD_BLOCK, MapColor.COLOR_YELLOW));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredBlock<Block> TITANIUM_BLOCK = BLOCKS.register("titanium_block",
|
public static final DeferredBlock<Block> TITANIUM_BLOCK = BLOCKS.register("titanium_block",
|
||||||
() -> createStorageBlock(Blocks.DIAMOND_BLOCK));
|
() -> createStorageBlock(Blocks.DIAMOND_BLOCK, MapColor.COLOR_LIGHT_BLUE));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredBlock<Block> RAW_URANIUM_BLOCK = BLOCKS.register("raw_uranium_block",
|
public static final DeferredBlock<Block> RAW_URANIUM_BLOCK = BLOCKS.register("raw_uranium_block",
|
||||||
() -> createRawStorageBlock(Blocks.EMERALD_ORE));
|
() -> createRawStorageBlock(Blocks.EMERALD_ORE, MapColor.COLOR_YELLOW));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredBlock<Block> RAW_TITANIUM_BLOCK = BLOCKS.register("raw_titanium_block",
|
public static final DeferredBlock<Block> RAW_TITANIUM_BLOCK = BLOCKS.register("raw_titanium_block",
|
||||||
() -> createRawStorageBlock(Blocks.DIAMOND_ORE));
|
() -> createRawStorageBlock(Blocks.DIAMOND_ORE, MapColor.COLOR_LIGHT_BLUE));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredBlock<Block> CUT_URANIUM = BLOCKS.register("cut_uranium",
|
public static final DeferredBlock<Block> CUT_URANIUM = BLOCKS.register("cut_uranium",
|
||||||
() -> createHorizontalFacingStorageBlock(Blocks.CUT_COPPER));
|
() -> createHorizontalFacingStorageBlock(Blocks.CUT_COPPER, MapColor.COLOR_YELLOW));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredBlock<Block> CUT_TITANIUM = BLOCKS.register("cut_titanium",
|
public static final DeferredBlock<Block> CUT_TITANIUM = BLOCKS.register("cut_titanium",
|
||||||
() -> createHorizontalFacingStorageBlock(Blocks.CUT_COPPER));
|
() -> createHorizontalFacingStorageBlock(Blocks.CUT_COPPER, MapColor.COLOR_LIGHT_BLUE));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredBlock<net.minecraft.world.level.block.SlabBlock> CUT_URANIUM_SLAB = BLOCKS.register("cut_uranium_slab",
|
public static final DeferredBlock<net.minecraft.world.level.block.SlabBlock> CUT_URANIUM_SLAB = BLOCKS.register("cut_uranium_slab",
|
||||||
() -> new net.minecraft.world.level.block.SlabBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.CUT_COPPER_SLAB)));
|
() -> new net.minecraft.world.level.block.SlabBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.CUT_COPPER_SLAB).mapColor(MapColor.COLOR_YELLOW)));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredBlock<net.minecraft.world.level.block.SlabBlock> CUT_TITANIUM_SLAB = BLOCKS.register("cut_titanium_slab",
|
public static final DeferredBlock<net.minecraft.world.level.block.SlabBlock> CUT_TITANIUM_SLAB = BLOCKS.register("cut_titanium_slab",
|
||||||
() -> new net.minecraft.world.level.block.SlabBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.CUT_COPPER_SLAB)));
|
() -> new net.minecraft.world.level.block.SlabBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.CUT_COPPER_SLAB).mapColor(MapColor.COLOR_LIGHT_BLUE)));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredBlock<net.minecraft.world.level.block.StairBlock> CUT_URANIUM_STAIRS = BLOCKS.register("cut_uranium_stairs",
|
public static final DeferredBlock<net.minecraft.world.level.block.StairBlock> CUT_URANIUM_STAIRS = BLOCKS.register("cut_uranium_stairs",
|
||||||
() -> new net.minecraft.world.level.block.StairBlock(CUT_URANIUM.get().defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(Blocks.CUT_COPPER_STAIRS)));
|
() -> new net.minecraft.world.level.block.StairBlock(CUT_URANIUM.get().defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(Blocks.CUT_COPPER_STAIRS).mapColor(MapColor.COLOR_YELLOW)));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredBlock<net.minecraft.world.level.block.StairBlock> CUT_TITANIUM_STAIRS = BLOCKS.register("cut_titanium_stairs",
|
public static final DeferredBlock<net.minecraft.world.level.block.StairBlock> CUT_TITANIUM_STAIRS = BLOCKS.register("cut_titanium_stairs",
|
||||||
() -> new net.minecraft.world.level.block.StairBlock(CUT_TITANIUM.get().defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(Blocks.CUT_COPPER_STAIRS)));
|
() -> new net.minecraft.world.level.block.StairBlock(CUT_TITANIUM.get().defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(Blocks.CUT_COPPER_STAIRS).mapColor(MapColor.COLOR_LIGHT_BLUE)));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredBlock<Block> CHISELED_URANIUM = BLOCKS.register("chiseled_uranium",
|
public static final DeferredBlock<Block> CHISELED_URANIUM = BLOCKS.register("chiseled_uranium",
|
||||||
() -> createHorizontalFacingStorageBlock(Blocks.CHISELED_COPPER));
|
() -> createHorizontalFacingStorageBlock(Blocks.CHISELED_COPPER, MapColor.COLOR_YELLOW));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredBlock<Block> CHISELED_TITANIUM = BLOCKS.register("chiseled_titanium",
|
public static final DeferredBlock<Block> CHISELED_TITANIUM = BLOCKS.register("chiseled_titanium",
|
||||||
() -> createHorizontalFacingStorageBlock(Blocks.CHISELED_COPPER));
|
() -> createHorizontalFacingStorageBlock(Blocks.CHISELED_COPPER, MapColor.COLOR_LIGHT_BLUE));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredBlock<SignalSavingBulbBlock> URANIUM_BULB = BLOCKS.register("uranium_bulb",
|
public static final DeferredBlock<SignalSavingBulbBlock> URANIUM_BULB = BLOCKS.register("uranium_bulb",
|
||||||
() -> new SignalSavingBulbBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.COPPER_BULB)));
|
() -> new SignalSavingBulbBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.COPPER_BULB).mapColor(MapColor.COLOR_YELLOW)));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredBlock<SignalSavingBulbBlock> TITANIUM_BULB = BLOCKS.register("titanium_bulb",
|
public static final DeferredBlock<SignalSavingBulbBlock> TITANIUM_BULB = BLOCKS.register("titanium_bulb",
|
||||||
() -> new SignalSavingBulbBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.COPPER_BULB)));
|
() -> new SignalSavingBulbBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.COPPER_BULB).mapColor(MapColor.COLOR_LIGHT_BLUE)));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredBlock<net.minecraft.world.level.block.DoorBlock> URANIUM_DOOR = BLOCKS.register("uranium_door",
|
public static final DeferredBlock<net.minecraft.world.level.block.DoorBlock> URANIUM_DOOR = BLOCKS.register("uranium_door",
|
||||||
() -> new net.minecraft.world.level.block.DoorBlock(net.minecraft.world.level.block.state.properties.BlockSetType.IRON, BlockBehaviour.Properties.ofFullCopy(Blocks.IRON_DOOR)));
|
() -> new net.minecraft.world.level.block.DoorBlock(net.minecraft.world.level.block.state.properties.BlockSetType.IRON, BlockBehaviour.Properties.ofFullCopy(Blocks.IRON_DOOR).mapColor(MapColor.COLOR_YELLOW)));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredBlock<net.minecraft.world.level.block.DoorBlock> TITANIUM_DOOR = BLOCKS.register("titanium_door",
|
public static final DeferredBlock<net.minecraft.world.level.block.DoorBlock> TITANIUM_DOOR = BLOCKS.register("titanium_door",
|
||||||
() -> new net.minecraft.world.level.block.DoorBlock(net.minecraft.world.level.block.state.properties.BlockSetType.IRON, BlockBehaviour.Properties.ofFullCopy(Blocks.IRON_DOOR)));
|
() -> new net.minecraft.world.level.block.DoorBlock(net.minecraft.world.level.block.state.properties.BlockSetType.IRON, BlockBehaviour.Properties.ofFullCopy(Blocks.IRON_DOOR).mapColor(MapColor.COLOR_LIGHT_BLUE)));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredBlock<net.minecraft.world.level.block.TrapDoorBlock> URANIUM_TRAPDOOR = BLOCKS.register("uranium_trapdoor",
|
public static final DeferredBlock<net.minecraft.world.level.block.TrapDoorBlock> URANIUM_TRAPDOOR = BLOCKS.register("uranium_trapdoor",
|
||||||
() -> new net.minecraft.world.level.block.TrapDoorBlock(net.minecraft.world.level.block.state.properties.BlockSetType.IRON, BlockBehaviour.Properties.ofFullCopy(Blocks.IRON_TRAPDOOR)));
|
() -> new net.minecraft.world.level.block.TrapDoorBlock(net.minecraft.world.level.block.state.properties.BlockSetType.IRON, BlockBehaviour.Properties.ofFullCopy(Blocks.IRON_TRAPDOOR).mapColor(MapColor.COLOR_YELLOW)));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredBlock<net.minecraft.world.level.block.TrapDoorBlock> TITANIUM_TRAPDOOR = BLOCKS.register("titanium_trapdoor",
|
public static final DeferredBlock<net.minecraft.world.level.block.TrapDoorBlock> TITANIUM_TRAPDOOR = BLOCKS.register("titanium_trapdoor",
|
||||||
() -> new net.minecraft.world.level.block.TrapDoorBlock(net.minecraft.world.level.block.state.properties.BlockSetType.IRON, BlockBehaviour.Properties.ofFullCopy(Blocks.IRON_TRAPDOOR)));
|
() -> new net.minecraft.world.level.block.TrapDoorBlock(net.minecraft.world.level.block.state.properties.BlockSetType.IRON, BlockBehaviour.Properties.ofFullCopy(Blocks.IRON_TRAPDOOR).mapColor(MapColor.COLOR_LIGHT_BLUE)));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredBlock<net.minecraft.world.level.block.IronBarsBlock> URANIUM_BARS = BLOCKS.register("uranium_bars",
|
public static final DeferredBlock<net.minecraft.world.level.block.IronBarsBlock> URANIUM_BARS = BLOCKS.register("uranium_bars",
|
||||||
() -> new net.minecraft.world.level.block.IronBarsBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.IRON_BARS)));
|
() -> new net.minecraft.world.level.block.IronBarsBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.IRON_BARS).mapColor(MapColor.COLOR_YELLOW)));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredBlock<net.minecraft.world.level.block.IronBarsBlock> TITANIUM_BARS = BLOCKS.register("titanium_bars",
|
public static final DeferredBlock<net.minecraft.world.level.block.IronBarsBlock> TITANIUM_BARS = BLOCKS.register("titanium_bars",
|
||||||
() -> new net.minecraft.world.level.block.IronBarsBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.IRON_BARS)));
|
() -> new net.minecraft.world.level.block.IronBarsBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.IRON_BARS).mapColor(MapColor.COLOR_LIGHT_BLUE)));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredBlock<net.minecraft.world.level.block.RotatedPillarBlock> ANTIMETAL = BLOCKS.register("antimetal",
|
public static final DeferredBlock<net.minecraft.world.level.block.RotatedPillarBlock> ANTIMETAL = BLOCKS.register("antimetal",
|
||||||
@@ -1295,26 +1296,26 @@ public final class AntarchyFabricBlocks {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
private static Block createOre(Block copyFrom) {
|
private static Block createOre(Block copyFrom, MapColor mapColor) {
|
||||||
return new Block(BlockBehaviour.Properties.ofFullCopy(copyFrom).requiresCorrectToolForDrops());
|
return new Block(BlockBehaviour.Properties.ofFullCopy(copyFrom).mapColor(mapColor).requiresCorrectToolForDrops());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private static Block createOre(Block copyFrom, int minExperience, int maxExperience) {
|
private static Block createOre(Block copyFrom, int minExperience, int maxExperience, MapColor mapColor) {
|
||||||
return new DropExperienceBlock(UniformInt.of(minExperience, maxExperience), BlockBehaviour.Properties.ofFullCopy(copyFrom).requiresCorrectToolForDrops());
|
return new DropExperienceBlock(UniformInt.of(minExperience, maxExperience), BlockBehaviour.Properties.ofFullCopy(copyFrom).mapColor(mapColor).requiresCorrectToolForDrops());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private static Block createStorageBlock(Block copyFrom) {
|
private static Block createStorageBlock(Block copyFrom, MapColor mapColor) {
|
||||||
return new Block(BlockBehaviour.Properties.ofFullCopy(copyFrom).requiresCorrectToolForDrops());
|
return new Block(BlockBehaviour.Properties.ofFullCopy(copyFrom).mapColor(mapColor).requiresCorrectToolForDrops());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private static Block createHorizontalFacingStorageBlock(Block copyFrom) {
|
private static Block createHorizontalFacingStorageBlock(Block copyFrom, MapColor mapColor) {
|
||||||
return new SimpleHorizontalFacingBlock(BlockBehaviour.Properties.ofFullCopy(copyFrom).requiresCorrectToolForDrops());
|
return new SimpleHorizontalFacingBlock(BlockBehaviour.Properties.ofFullCopy(copyFrom).mapColor(mapColor).requiresCorrectToolForDrops());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1355,8 +1356,8 @@ public final class AntarchyFabricBlocks {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
private static Block createRawStorageBlock(Block copyFrom) {
|
private static Block createRawStorageBlock(Block copyFrom, MapColor mapColor) {
|
||||||
return new Block(BlockBehaviour.Properties.ofFullCopy(copyFrom).requiresCorrectToolForDrops());
|
return new Block(BlockBehaviour.Properties.ofFullCopy(copyFrom).mapColor(mapColor).requiresCorrectToolForDrops());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -360,7 +360,7 @@ public final class AntarchyFabricEntities {
|
|||||||
|
|
||||||
|
|
||||||
public static final DeferredHolder<EntityType<?>, EntityType<StinkBugEntity>> STINK_BUG = ENTITY_TYPES.register("stink_bug",
|
public static final DeferredHolder<EntityType<?>, EntityType<StinkBugEntity>> STINK_BUG = ENTITY_TYPES.register("stink_bug",
|
||||||
() -> EntityType.Builder.of(StinkBugEntity::new, MobCategory.AMBIENT)
|
() -> EntityType.Builder.of(StinkBugEntity::new, MobCategory.CREATURE)
|
||||||
.sized(0.35F, 0.2F)
|
.sized(0.35F, 0.2F)
|
||||||
.clientTrackingRange(8)
|
.clientTrackingRange(8)
|
||||||
.build("stink_bug"));
|
.build("stink_bug"));
|
||||||
|
|||||||
+34
-29
@@ -466,78 +466,78 @@ public final class AntarchyFabricItems {
|
|||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> TERMITE_NEST_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TERMITE_NEST);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> TERMITE_NEST_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TERMITE_NEST);
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> URANIUM_ORE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.URANIUM_ORE);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> URANIUM_ORE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.URANIUM_ORE, new Item.Properties().rarity(Rarity.UNCOMMON));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> DEEPSLATE_URANIUM_ORE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.DEEPSLATE_URANIUM_ORE);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> DEEPSLATE_URANIUM_ORE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.DEEPSLATE_URANIUM_ORE, new Item.Properties().rarity(Rarity.UNCOMMON));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> TITANIUM_ORE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TITANIUM_ORE);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> TITANIUM_ORE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TITANIUM_ORE, new Item.Properties().rarity(Rarity.UNCOMMON));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> DEEPSLATE_TITANIUM_ORE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.DEEPSLATE_TITANIUM_ORE);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> DEEPSLATE_TITANIUM_ORE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.DEEPSLATE_TITANIUM_ORE, new Item.Properties().rarity(Rarity.UNCOMMON));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> URANIUM_BLOCK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.URANIUM_BLOCK);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> URANIUM_BLOCK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.URANIUM_BLOCK, new Item.Properties().rarity(Rarity.UNCOMMON));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> TITANIUM_BLOCK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TITANIUM_BLOCK);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> TITANIUM_BLOCK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TITANIUM_BLOCK, new Item.Properties().rarity(Rarity.UNCOMMON));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> RAW_URANIUM_BLOCK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.RAW_URANIUM_BLOCK);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> RAW_URANIUM_BLOCK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.RAW_URANIUM_BLOCK, new Item.Properties().rarity(Rarity.UNCOMMON));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> RAW_TITANIUM_BLOCK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.RAW_TITANIUM_BLOCK);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> RAW_TITANIUM_BLOCK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.RAW_TITANIUM_BLOCK, new Item.Properties().rarity(Rarity.UNCOMMON));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> CUT_URANIUM_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.CUT_URANIUM);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> CUT_URANIUM_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.CUT_URANIUM, new Item.Properties().rarity(Rarity.UNCOMMON));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> CUT_TITANIUM_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.CUT_TITANIUM);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> CUT_TITANIUM_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.CUT_TITANIUM, new Item.Properties().rarity(Rarity.UNCOMMON));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> CUT_URANIUM_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.CUT_URANIUM_SLAB);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> CUT_URANIUM_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.CUT_URANIUM_SLAB, new Item.Properties().rarity(Rarity.UNCOMMON));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> CUT_TITANIUM_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.CUT_TITANIUM_SLAB);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> CUT_TITANIUM_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.CUT_TITANIUM_SLAB, new Item.Properties().rarity(Rarity.UNCOMMON));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> CUT_URANIUM_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.CUT_URANIUM_STAIRS);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> CUT_URANIUM_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.CUT_URANIUM_STAIRS, new Item.Properties().rarity(Rarity.UNCOMMON));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> CUT_TITANIUM_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.CUT_TITANIUM_STAIRS);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> CUT_TITANIUM_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.CUT_TITANIUM_STAIRS, new Item.Properties().rarity(Rarity.UNCOMMON));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> CHISELED_URANIUM_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.CHISELED_URANIUM);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> CHISELED_URANIUM_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.CHISELED_URANIUM, new Item.Properties().rarity(Rarity.UNCOMMON));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> CHISELED_TITANIUM_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.CHISELED_TITANIUM);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> CHISELED_TITANIUM_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.CHISELED_TITANIUM, new Item.Properties().rarity(Rarity.UNCOMMON));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> URANIUM_BULB_ITEM = ITEMS.register("uranium_bulb",
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> URANIUM_BULB_ITEM = ITEMS.register("uranium_bulb",
|
||||||
() -> new com.craisinlord.antarchy.content.item.SignalSavingBulbItem(AntarchyFabricBlocks.URANIUM_BULB.get(), new Item.Properties()));
|
() -> new com.craisinlord.antarchy.content.item.SignalSavingBulbItem(AntarchyFabricBlocks.URANIUM_BULB.get(), new Item.Properties().rarity(Rarity.UNCOMMON)));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> TITANIUM_BULB_ITEM = ITEMS.register("titanium_bulb",
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> TITANIUM_BULB_ITEM = ITEMS.register("titanium_bulb",
|
||||||
() -> new com.craisinlord.antarchy.content.item.SignalSavingBulbItem(AntarchyFabricBlocks.TITANIUM_BULB.get(), new Item.Properties()));
|
() -> new com.craisinlord.antarchy.content.item.SignalSavingBulbItem(AntarchyFabricBlocks.TITANIUM_BULB.get(), new Item.Properties().rarity(Rarity.UNCOMMON)));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> URANIUM_DOOR_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.URANIUM_DOOR);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> URANIUM_DOOR_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.URANIUM_DOOR, new Item.Properties().rarity(Rarity.UNCOMMON));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> TITANIUM_DOOR_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TITANIUM_DOOR);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> TITANIUM_DOOR_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TITANIUM_DOOR, new Item.Properties().rarity(Rarity.UNCOMMON));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> URANIUM_TRAPDOOR_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.URANIUM_TRAPDOOR);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> URANIUM_TRAPDOOR_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.URANIUM_TRAPDOOR, new Item.Properties().rarity(Rarity.UNCOMMON));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> TITANIUM_TRAPDOOR_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TITANIUM_TRAPDOOR);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> TITANIUM_TRAPDOOR_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TITANIUM_TRAPDOOR, new Item.Properties().rarity(Rarity.UNCOMMON));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> URANIUM_BARS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.URANIUM_BARS);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> URANIUM_BARS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.URANIUM_BARS, new Item.Properties().rarity(Rarity.UNCOMMON));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> TITANIUM_BARS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TITANIUM_BARS);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> TITANIUM_BARS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TITANIUM_BARS, new Item.Properties().rarity(Rarity.UNCOMMON));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> ANTIMETAL_ITEM = ITEMS.register("antimetal",
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> ANTIMETAL_ITEM = ITEMS.register("antimetal",
|
||||||
@@ -652,8 +652,8 @@ public final class AntarchyFabricItems {
|
|||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> BROODSTONE_BRICK_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BROODSTONE_BRICK_SLAB);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> BROODSTONE_BRICK_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BROODSTONE_BRICK_SLAB);
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> BROODSTONE_BRICK_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BROODSTONE_BRICK_WALL);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> BROODSTONE_BRICK_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BROODSTONE_BRICK_WALL);
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> MYRMITE_COAL_ORE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MYRMITE_COAL_ORE);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> MYRMITE_COAL_ORE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MYRMITE_COAL_ORE);
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> BROODSTONE_URANIUM_ORE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BROODSTONE_URANIUM_ORE);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> BROODSTONE_URANIUM_ORE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BROODSTONE_URANIUM_ORE, new Item.Properties().rarity(Rarity.UNCOMMON));
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> BROODSTONE_TITANIUM_ORE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BROODSTONE_TITANIUM_ORE);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> BROODSTONE_TITANIUM_ORE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BROODSTONE_TITANIUM_ORE, new Item.Properties().rarity(Rarity.UNCOMMON));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> POLISHED_NYXITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.POLISHED_NYXITE);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> POLISHED_NYXITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.POLISHED_NYXITE);
|
||||||
@@ -887,7 +887,11 @@ public final class AntarchyFabricItems {
|
|||||||
public static final DeferredItem<Item> CHITEN = ITEMS.registerSimpleItem("chiten", new Item.Properties().rarity(Rarity.UNCOMMON));
|
public static final DeferredItem<Item> CHITEN = ITEMS.registerSimpleItem("chiten", new Item.Properties().rarity(Rarity.UNCOMMON));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredItem<Item> JERRY_NUCLEUS = ITEMS.registerSimpleItem("jerry_nucleus", new Item.Properties().rarity(Rarity.UNCOMMON));
|
public static final DeferredItem<Item> JERRY_NUCLEUS = ITEMS.registerSimpleItem("jerry_nucleus", new Item.Properties().rarity(Rarity.UNCOMMON)
|
||||||
|
.food(new FoodProperties.Builder()
|
||||||
|
.nutrition(2)
|
||||||
|
.saturationModifier(0.1F)
|
||||||
|
.build()));
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredItem<Item> CARAPACE = ITEMS.registerSimpleItem("carapace", new Item.Properties().rarity(Rarity.UNCOMMON));
|
public static final DeferredItem<Item> CARAPACE = ITEMS.registerSimpleItem("carapace", new Item.Properties().rarity(Rarity.UNCOMMON));
|
||||||
@@ -950,8 +954,9 @@ public final class AntarchyFabricItems {
|
|||||||
public static final DeferredItem<Item> RAW_BUG_MEAT = ITEMS.register("raw_bug_meat",
|
public static final DeferredItem<Item> RAW_BUG_MEAT = ITEMS.register("raw_bug_meat",
|
||||||
() -> new Item(new Item.Properties()
|
() -> new Item(new Item.Properties()
|
||||||
.food(new FoodProperties.Builder()
|
.food(new FoodProperties.Builder()
|
||||||
.nutrition(3)
|
.nutrition(4)
|
||||||
.saturationModifier(0.3F)
|
.saturationModifier(0.1F)
|
||||||
|
.effect(new MobEffectInstance(MobEffects.HUNGER, 600), 0.8F)
|
||||||
.build())));
|
.build())));
|
||||||
public static final DeferredItem<Item> COOKED_BUG_MEAT = ITEMS.register("cooked_bug_meat",
|
public static final DeferredItem<Item> COOKED_BUG_MEAT = ITEMS.register("cooked_bug_meat",
|
||||||
() -> new Item(new Item.Properties()
|
() -> new Item(new Item.Properties()
|
||||||
|
|||||||
+3
@@ -634,6 +634,9 @@ public final class AntarchyFabricSounds {
|
|||||||
public static final DeferredHolder<SoundEvent, SoundEvent> STINK_BUG_IDLE = registerSoundEvent("stink_bug_idle");
|
public static final DeferredHolder<SoundEvent, SoundEvent> STINK_BUG_IDLE = registerSoundEvent("stink_bug_idle");
|
||||||
|
|
||||||
|
|
||||||
|
public static final DeferredHolder<SoundEvent, SoundEvent> CAVARYN_HEARTBEAT = registerSoundEvent("cavaryn_heartbeat");
|
||||||
|
|
||||||
|
|
||||||
public static final DeferredHolder<SoundEvent, SoundEvent> ROLLY_POLLY_IDLE = registerSoundEvent("rolly_polly_idle");
|
public static final DeferredHolder<SoundEvent, SoundEvent> ROLLY_POLLY_IDLE = registerSoundEvent("rolly_polly_idle");
|
||||||
public static final DeferredHolder<SoundEvent, SoundEvent> ROLLY_POLLY_WHEEL_MODE = registerSoundEvent("rolly_polly_wheel_mode");
|
public static final DeferredHolder<SoundEvent, SoundEvent> ROLLY_POLLY_WHEEL_MODE = registerSoundEvent("rolly_polly_wheel_mode");
|
||||||
public static final DeferredHolder<SoundEvent, SoundEvent> ROLLY_POLLY_NORMAL_MODE = registerSoundEvent("rolly_polly_normal_mode");
|
public static final DeferredHolder<SoundEvent, SoundEvent> ROLLY_POLLY_NORMAL_MODE = registerSoundEvent("rolly_polly_normal_mode");
|
||||||
|
|||||||
@@ -43,6 +43,10 @@ public class DeferredRegister<T> {
|
|||||||
public DeferredItem<BlockItem> registerSimpleBlockItem(DeferredBlock<? extends Block> block) {
|
public DeferredItem<BlockItem> registerSimpleBlockItem(DeferredBlock<? extends Block> block) {
|
||||||
return this.register(block.getId().getPath(), () -> new BlockItem(block.get(), new Item.Properties()));
|
return this.register(block.getId().getPath(), () -> new BlockItem(block.get(), new Item.Properties()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public DeferredItem<BlockItem> registerSimpleBlockItem(DeferredBlock<? extends Block> block, Item.Properties properties) {
|
||||||
|
return this.register(block.getId().getPath(), () -> new BlockItem(block.get(), properties));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@FunctionalInterface
|
@FunctionalInterface
|
||||||
|
|||||||
@@ -22,6 +22,8 @@
|
|||||||
],
|
],
|
||||||
"client": [
|
"client": [
|
||||||
"client.CameraShakeMixin",
|
"client.CameraShakeMixin",
|
||||||
|
"client.BrutalflyElytraExperienceBarMixin",
|
||||||
|
"client.BloodglassChatOrderMixin",
|
||||||
"client.DuctTapeInputMixin",
|
"client.DuctTapeInputMixin",
|
||||||
"client.AntiwaterFogMixin",
|
"client.AntiwaterFogMixin",
|
||||||
"client.GravityGunMouseScrollMixin",
|
"client.GravityGunMouseScrollMixin",
|
||||||
|
|||||||
@@ -152,6 +152,7 @@ public class AntarchyNeoforge {
|
|||||||
AntarchyNeoforgeSounds.STINKY_FLY,
|
AntarchyNeoforgeSounds.STINKY_FLY,
|
||||||
AntarchyNeoforgeSounds.STINK_BUG_FART,
|
AntarchyNeoforgeSounds.STINK_BUG_FART,
|
||||||
AntarchyNeoforgeSounds.STINK_BUG_IDLE,
|
AntarchyNeoforgeSounds.STINK_BUG_IDLE,
|
||||||
|
AntarchyNeoforgeSounds.CAVARYN_HEARTBEAT,
|
||||||
AntarchyNeoforgeSounds.ROLLY_POLLY_IDLE,
|
AntarchyNeoforgeSounds.ROLLY_POLLY_IDLE,
|
||||||
AntarchyNeoforgeSounds.CREEPING_HORROR_GROWL,
|
AntarchyNeoforgeSounds.CREEPING_HORROR_GROWL,
|
||||||
AntarchyNeoforgeSounds.CREEPING_HORROR_HURT,
|
AntarchyNeoforgeSounds.CREEPING_HORROR_HURT,
|
||||||
|
|||||||
@@ -513,7 +513,7 @@ public final class AntarchyToolsConfig {
|
|||||||
b.push("potentNyxite");
|
b.push("potentNyxite");
|
||||||
POTENT_NYXITE_INVERTED_DURATION_SECONDS = b
|
POTENT_NYXITE_INVERTED_DURATION_SECONDS = b
|
||||||
.comment("How long the Inverted effect from Potent Nyxite eruptions lasts, in seconds.")
|
.comment("How long the Inverted effect from Potent Nyxite eruptions lasts, in seconds.")
|
||||||
.defineInRange("invertedDurationSeconds", 10.0D, 0.0D, 3600.0D);
|
.defineInRange("invertedDurationSeconds", 60.0D, 0.0D, 3600.0D);
|
||||||
b.pop();
|
b.pop();
|
||||||
|
|
||||||
b.push("corneaEar");
|
b.push("corneaEar");
|
||||||
|
|||||||
+3
-1
@@ -58,6 +58,7 @@ import net.neoforged.neoforge.client.event.RegisterColorHandlersEvent;
|
|||||||
import net.neoforged.neoforge.client.event.RegisterMenuScreensEvent;
|
import net.neoforged.neoforge.client.event.RegisterMenuScreensEvent;
|
||||||
import net.neoforged.neoforge.client.event.EntityRenderersEvent;
|
import net.neoforged.neoforge.client.event.EntityRenderersEvent;
|
||||||
import net.neoforged.neoforge.client.event.RegisterGuiLayersEvent;
|
import net.neoforged.neoforge.client.event.RegisterGuiLayersEvent;
|
||||||
|
import net.neoforged.neoforge.client.gui.VanillaGuiLayers;
|
||||||
import net.neoforged.neoforge.client.extensions.common.IClientItemExtensions;
|
import net.neoforged.neoforge.client.extensions.common.IClientItemExtensions;
|
||||||
import net.neoforged.neoforge.client.extensions.common.IClientFluidTypeExtensions;
|
import net.neoforged.neoforge.client.extensions.common.IClientFluidTypeExtensions;
|
||||||
import net.neoforged.neoforge.client.extensions.common.RegisterClientExtensionsEvent;
|
import net.neoforged.neoforge.client.extensions.common.RegisterClientExtensionsEvent;
|
||||||
@@ -312,7 +313,8 @@ public final class AntarchyNeoForgeClient {
|
|||||||
ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "brutalfly_elytra"),
|
ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "brutalfly_elytra"),
|
||||||
(guiGraphics, partialTick) -> BrutalflyElytraHudRenderer.render(guiGraphics)
|
(guiGraphics, partialTick) -> BrutalflyElytraHudRenderer.render(guiGraphics)
|
||||||
);
|
);
|
||||||
event.registerAboveAll(
|
event.registerBelow(
|
||||||
|
VanillaGuiLayers.CHAT,
|
||||||
ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "bloodglass_hearts"),
|
ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "bloodglass_hearts"),
|
||||||
(guiGraphics, partialTick) -> BloodglassHudRenderer.render(guiGraphics)
|
(guiGraphics, partialTick) -> BloodglassHudRenderer.render(guiGraphics)
|
||||||
);
|
);
|
||||||
|
|||||||
+36
-35
@@ -28,6 +28,7 @@ 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.block.state.properties.BlockSetType;
|
import net.minecraft.world.level.block.state.properties.BlockSetType;
|
||||||
|
import net.minecraft.world.level.material.MapColor;
|
||||||
import net.minecraft.world.level.block.state.properties.WoodType;
|
import net.minecraft.world.level.block.state.properties.WoodType;
|
||||||
import net.minecraft.world.level.material.FlowingFluid;
|
import net.minecraft.world.level.material.FlowingFluid;
|
||||||
import net.minecraft.world.level.material.FluidState;
|
import net.minecraft.world.level.material.FluidState;
|
||||||
@@ -257,7 +258,7 @@ public final class AntarchyNeoforgeBlocks {
|
|||||||
public static final DeferredBlock<BiowartTendrilsBlock> BIOWART_TENDRILS = BLOCKS.register("biowart_tendrils",
|
public static final DeferredBlock<BiowartTendrilsBlock> BIOWART_TENDRILS = BLOCKS.register("biowart_tendrils",
|
||||||
() -> new BiowartTendrilsBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.MOSS_CARPET).lightLevel(state -> 2).noCollission().noOcclusion()));
|
() -> new BiowartTendrilsBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.MOSS_CARPET).lightLevel(state -> 2).noCollission().noOcclusion()));
|
||||||
public static final DeferredBlock<Block> MYRMITE_COAL_ORE = BLOCKS.register("myrmite_coal_ore",
|
public static final DeferredBlock<Block> MYRMITE_COAL_ORE = BLOCKS.register("myrmite_coal_ore",
|
||||||
() -> createOre(Blocks.COAL_ORE, 0, 2));
|
() -> createOre(Blocks.COAL_ORE, 0, 2, MapColor.COLOR_GRAY));
|
||||||
public static final DeferredBlock<Block> BROODSTONE = BLOCKS.register("broodstone",
|
public static final DeferredBlock<Block> BROODSTONE = BLOCKS.register("broodstone",
|
||||||
() -> new Block(broodstoneProperties()));
|
() -> new Block(broodstoneProperties()));
|
||||||
public static final DeferredBlock<Block> POLISHED_BROODSTONE = BLOCKS.register("polished_broodstone",
|
public static final DeferredBlock<Block> POLISHED_BROODSTONE = BLOCKS.register("polished_broodstone",
|
||||||
@@ -285,9 +286,9 @@ public final class AntarchyNeoforgeBlocks {
|
|||||||
public static final DeferredBlock<WallBlock> BROODSTONE_BRICK_WALL = BLOCKS.register("broodstone_brick_wall",
|
public static final DeferredBlock<WallBlock> BROODSTONE_BRICK_WALL = BLOCKS.register("broodstone_brick_wall",
|
||||||
() -> new WallBlock(broodstoneProperties()));
|
() -> new WallBlock(broodstoneProperties()));
|
||||||
public static final DeferredBlock<Block> BROODSTONE_URANIUM_ORE = BLOCKS.register("broodstone_uranium_ore",
|
public static final DeferredBlock<Block> BROODSTONE_URANIUM_ORE = BLOCKS.register("broodstone_uranium_ore",
|
||||||
() -> createOre(Blocks.DEEPSLATE_EMERALD_ORE, 4, 8));
|
() -> createOre(Blocks.DEEPSLATE_EMERALD_ORE, 4, 8, MapColor.COLOR_YELLOW));
|
||||||
public static final DeferredBlock<Block> BROODSTONE_TITANIUM_ORE = BLOCKS.register("broodstone_titanium_ore",
|
public static final DeferredBlock<Block> BROODSTONE_TITANIUM_ORE = BLOCKS.register("broodstone_titanium_ore",
|
||||||
() -> createOre(Blocks.DEEPSLATE_DIAMOND_ORE, 4, 8));
|
() -> createOre(Blocks.DEEPSLATE_DIAMOND_ORE, 4, 8, MapColor.COLOR_LIGHT_BLUE));
|
||||||
public static final DeferredBlock<RotatedPillarBlock> CHITEN_BLOCK = BLOCKS.register("chiten_block",
|
public static final DeferredBlock<RotatedPillarBlock> CHITEN_BLOCK = BLOCKS.register("chiten_block",
|
||||||
() -> new RotatedPillarBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.BONE_BLOCK).requiresCorrectToolForDrops()));
|
() -> new RotatedPillarBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.BONE_BLOCK).requiresCorrectToolForDrops()));
|
||||||
public static final DeferredBlock<UmbralMossBlock> UMBRAL_MOSS_BLOCK = BLOCKS.register("umbral_moss_block",
|
public static final DeferredBlock<UmbralMossBlock> UMBRAL_MOSS_BLOCK = BLOCKS.register("umbral_moss_block",
|
||||||
@@ -382,53 +383,53 @@ public final class AntarchyNeoforgeBlocks {
|
|||||||
public static final DeferredBlock<AntNestBlock> TERMITE_NEST = BLOCKS.register("termite_nest",
|
public static final DeferredBlock<AntNestBlock> TERMITE_NEST = BLOCKS.register("termite_nest",
|
||||||
() -> new AntNestBlock(AntarchyNeoforgeEntites.TERMITE, AntarchyNeoforgeItems::antNestBlockEntityType, BlockBehaviour.Properties.ofFullCopy(Blocks.DIRT).noLootTable()));
|
() -> new AntNestBlock(AntarchyNeoforgeEntites.TERMITE, AntarchyNeoforgeItems::antNestBlockEntityType, BlockBehaviour.Properties.ofFullCopy(Blocks.DIRT).noLootTable()));
|
||||||
public static final DeferredBlock<Block> URANIUM_ORE = BLOCKS.register("uranium_ore",
|
public static final DeferredBlock<Block> URANIUM_ORE = BLOCKS.register("uranium_ore",
|
||||||
() -> createOre(Blocks.EMERALD_ORE, 4, 8));
|
() -> createOre(Blocks.EMERALD_ORE, 4, 8, MapColor.COLOR_YELLOW));
|
||||||
public static final DeferredBlock<Block> DEEPSLATE_URANIUM_ORE = BLOCKS.register("deepslate_uranium_ore",
|
public static final DeferredBlock<Block> DEEPSLATE_URANIUM_ORE = BLOCKS.register("deepslate_uranium_ore",
|
||||||
() -> createOre(Blocks.DEEPSLATE_EMERALD_ORE, 4, 8));
|
() -> createOre(Blocks.DEEPSLATE_EMERALD_ORE, 4, 8, MapColor.COLOR_YELLOW));
|
||||||
public static final DeferredBlock<Block> TITANIUM_ORE = BLOCKS.register("titanium_ore",
|
public static final DeferredBlock<Block> TITANIUM_ORE = BLOCKS.register("titanium_ore",
|
||||||
() -> createOre(Blocks.DIAMOND_ORE, 4, 8));
|
() -> createOre(Blocks.DIAMOND_ORE, 4, 8, MapColor.COLOR_LIGHT_BLUE));
|
||||||
public static final DeferredBlock<Block> DEEPSLATE_TITANIUM_ORE = BLOCKS.register("deepslate_titanium_ore",
|
public static final DeferredBlock<Block> DEEPSLATE_TITANIUM_ORE = BLOCKS.register("deepslate_titanium_ore",
|
||||||
() -> createOre(Blocks.DEEPSLATE_DIAMOND_ORE, 4, 8));
|
() -> createOre(Blocks.DEEPSLATE_DIAMOND_ORE, 4, 8, MapColor.COLOR_LIGHT_BLUE));
|
||||||
public static final DeferredBlock<Block> URANIUM_BLOCK = BLOCKS.register("uranium_block",
|
public static final DeferredBlock<Block> URANIUM_BLOCK = BLOCKS.register("uranium_block",
|
||||||
() -> createStorageBlock(Blocks.EMERALD_BLOCK));
|
() -> createStorageBlock(Blocks.EMERALD_BLOCK, MapColor.COLOR_YELLOW));
|
||||||
public static final DeferredBlock<Block> TITANIUM_BLOCK = BLOCKS.register("titanium_block",
|
public static final DeferredBlock<Block> TITANIUM_BLOCK = BLOCKS.register("titanium_block",
|
||||||
() -> createStorageBlock(Blocks.DIAMOND_BLOCK));
|
() -> createStorageBlock(Blocks.DIAMOND_BLOCK, MapColor.COLOR_LIGHT_BLUE));
|
||||||
public static final DeferredBlock<Block> RAW_URANIUM_BLOCK = BLOCKS.register("raw_uranium_block",
|
public static final DeferredBlock<Block> RAW_URANIUM_BLOCK = BLOCKS.register("raw_uranium_block",
|
||||||
() -> createRawStorageBlock(Blocks.EMERALD_ORE));
|
() -> createRawStorageBlock(Blocks.EMERALD_ORE, MapColor.COLOR_YELLOW));
|
||||||
public static final DeferredBlock<Block> RAW_TITANIUM_BLOCK = BLOCKS.register("raw_titanium_block",
|
public static final DeferredBlock<Block> RAW_TITANIUM_BLOCK = BLOCKS.register("raw_titanium_block",
|
||||||
() -> createRawStorageBlock(Blocks.DIAMOND_ORE));
|
() -> createRawStorageBlock(Blocks.DIAMOND_ORE, MapColor.COLOR_LIGHT_BLUE));
|
||||||
public static final DeferredBlock<Block> CUT_URANIUM = BLOCKS.register("cut_uranium",
|
public static final DeferredBlock<Block> CUT_URANIUM = BLOCKS.register("cut_uranium",
|
||||||
() -> createHorizontalFacingStorageBlock(Blocks.CUT_COPPER));
|
() -> createHorizontalFacingStorageBlock(Blocks.CUT_COPPER, MapColor.COLOR_YELLOW));
|
||||||
public static final DeferredBlock<Block> CUT_TITANIUM = BLOCKS.register("cut_titanium",
|
public static final DeferredBlock<Block> CUT_TITANIUM = BLOCKS.register("cut_titanium",
|
||||||
() -> createHorizontalFacingStorageBlock(Blocks.CUT_COPPER));
|
() -> createHorizontalFacingStorageBlock(Blocks.CUT_COPPER, MapColor.COLOR_LIGHT_BLUE));
|
||||||
public static final DeferredBlock<SlabBlock> CUT_URANIUM_SLAB = BLOCKS.register("cut_uranium_slab",
|
public static final DeferredBlock<SlabBlock> CUT_URANIUM_SLAB = BLOCKS.register("cut_uranium_slab",
|
||||||
() -> new SlabBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.CUT_COPPER_SLAB)));
|
() -> new SlabBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.CUT_COPPER_SLAB).mapColor(MapColor.COLOR_YELLOW)));
|
||||||
public static final DeferredBlock<SlabBlock> CUT_TITANIUM_SLAB = BLOCKS.register("cut_titanium_slab",
|
public static final DeferredBlock<SlabBlock> CUT_TITANIUM_SLAB = BLOCKS.register("cut_titanium_slab",
|
||||||
() -> new SlabBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.CUT_COPPER_SLAB)));
|
() -> new SlabBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.CUT_COPPER_SLAB).mapColor(MapColor.COLOR_LIGHT_BLUE)));
|
||||||
public static final DeferredBlock<StairBlock> CUT_URANIUM_STAIRS = BLOCKS.register("cut_uranium_stairs",
|
public static final DeferredBlock<StairBlock> CUT_URANIUM_STAIRS = BLOCKS.register("cut_uranium_stairs",
|
||||||
() -> new StairBlock(CUT_URANIUM.get().defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(Blocks.CUT_COPPER_STAIRS)));
|
() -> new StairBlock(CUT_URANIUM.get().defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(Blocks.CUT_COPPER_STAIRS).mapColor(MapColor.COLOR_YELLOW)));
|
||||||
public static final DeferredBlock<StairBlock> CUT_TITANIUM_STAIRS = BLOCKS.register("cut_titanium_stairs",
|
public static final DeferredBlock<StairBlock> CUT_TITANIUM_STAIRS = BLOCKS.register("cut_titanium_stairs",
|
||||||
() -> new StairBlock(CUT_TITANIUM.get().defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(Blocks.CUT_COPPER_STAIRS)));
|
() -> new StairBlock(CUT_TITANIUM.get().defaultBlockState(), BlockBehaviour.Properties.ofFullCopy(Blocks.CUT_COPPER_STAIRS).mapColor(MapColor.COLOR_LIGHT_BLUE)));
|
||||||
public static final DeferredBlock<Block> CHISELED_URANIUM = BLOCKS.register("chiseled_uranium",
|
public static final DeferredBlock<Block> CHISELED_URANIUM = BLOCKS.register("chiseled_uranium",
|
||||||
() -> createHorizontalFacingStorageBlock(Blocks.CHISELED_COPPER));
|
() -> createHorizontalFacingStorageBlock(Blocks.CHISELED_COPPER, MapColor.COLOR_YELLOW));
|
||||||
public static final DeferredBlock<Block> CHISELED_TITANIUM = BLOCKS.register("chiseled_titanium",
|
public static final DeferredBlock<Block> CHISELED_TITANIUM = BLOCKS.register("chiseled_titanium",
|
||||||
() -> createHorizontalFacingStorageBlock(Blocks.CHISELED_COPPER));
|
() -> createHorizontalFacingStorageBlock(Blocks.CHISELED_COPPER, MapColor.COLOR_LIGHT_BLUE));
|
||||||
public static final DeferredBlock<SignalSavingBulbBlock> URANIUM_BULB = BLOCKS.register("uranium_bulb",
|
public static final DeferredBlock<SignalSavingBulbBlock> URANIUM_BULB = BLOCKS.register("uranium_bulb",
|
||||||
() -> new SignalSavingBulbBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.COPPER_BULB)));
|
() -> new SignalSavingBulbBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.COPPER_BULB).mapColor(MapColor.COLOR_YELLOW)));
|
||||||
public static final DeferredBlock<SignalSavingBulbBlock> TITANIUM_BULB = BLOCKS.register("titanium_bulb",
|
public static final DeferredBlock<SignalSavingBulbBlock> TITANIUM_BULB = BLOCKS.register("titanium_bulb",
|
||||||
() -> new SignalSavingBulbBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.COPPER_BULB)));
|
() -> new SignalSavingBulbBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.COPPER_BULB).mapColor(MapColor.COLOR_LIGHT_BLUE)));
|
||||||
public static final DeferredBlock<DoorBlock> URANIUM_DOOR = BLOCKS.register("uranium_door",
|
public static final DeferredBlock<DoorBlock> URANIUM_DOOR = BLOCKS.register("uranium_door",
|
||||||
() -> new DoorBlock(BlockSetType.IRON, BlockBehaviour.Properties.ofFullCopy(Blocks.IRON_DOOR)));
|
() -> new DoorBlock(BlockSetType.IRON, BlockBehaviour.Properties.ofFullCopy(Blocks.IRON_DOOR).mapColor(MapColor.COLOR_YELLOW)));
|
||||||
public static final DeferredBlock<DoorBlock> TITANIUM_DOOR = BLOCKS.register("titanium_door",
|
public static final DeferredBlock<DoorBlock> TITANIUM_DOOR = BLOCKS.register("titanium_door",
|
||||||
() -> new DoorBlock(BlockSetType.IRON, BlockBehaviour.Properties.ofFullCopy(Blocks.IRON_DOOR)));
|
() -> new DoorBlock(BlockSetType.IRON, BlockBehaviour.Properties.ofFullCopy(Blocks.IRON_DOOR).mapColor(MapColor.COLOR_LIGHT_BLUE)));
|
||||||
public static final DeferredBlock<TrapDoorBlock> URANIUM_TRAPDOOR = BLOCKS.register("uranium_trapdoor",
|
public static final DeferredBlock<TrapDoorBlock> URANIUM_TRAPDOOR = BLOCKS.register("uranium_trapdoor",
|
||||||
() -> new TrapDoorBlock(BlockSetType.IRON, BlockBehaviour.Properties.ofFullCopy(Blocks.IRON_TRAPDOOR)));
|
() -> new TrapDoorBlock(BlockSetType.IRON, BlockBehaviour.Properties.ofFullCopy(Blocks.IRON_TRAPDOOR).mapColor(MapColor.COLOR_YELLOW)));
|
||||||
public static final DeferredBlock<TrapDoorBlock> TITANIUM_TRAPDOOR = BLOCKS.register("titanium_trapdoor",
|
public static final DeferredBlock<TrapDoorBlock> TITANIUM_TRAPDOOR = BLOCKS.register("titanium_trapdoor",
|
||||||
() -> new TrapDoorBlock(BlockSetType.IRON, BlockBehaviour.Properties.ofFullCopy(Blocks.IRON_TRAPDOOR)));
|
() -> new TrapDoorBlock(BlockSetType.IRON, BlockBehaviour.Properties.ofFullCopy(Blocks.IRON_TRAPDOOR).mapColor(MapColor.COLOR_LIGHT_BLUE)));
|
||||||
public static final DeferredBlock<IronBarsBlock> URANIUM_BARS = BLOCKS.register("uranium_bars",
|
public static final DeferredBlock<IronBarsBlock> URANIUM_BARS = BLOCKS.register("uranium_bars",
|
||||||
() -> new IronBarsBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.IRON_BARS)));
|
() -> new IronBarsBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.IRON_BARS).mapColor(MapColor.COLOR_YELLOW)));
|
||||||
public static final DeferredBlock<IronBarsBlock> TITANIUM_BARS = BLOCKS.register("titanium_bars",
|
public static final DeferredBlock<IronBarsBlock> TITANIUM_BARS = BLOCKS.register("titanium_bars",
|
||||||
() -> new IronBarsBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.IRON_BARS)));
|
() -> new IronBarsBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.IRON_BARS).mapColor(MapColor.COLOR_LIGHT_BLUE)));
|
||||||
public static final DeferredBlock<RotatedPillarBlock> ANTIMETAL = BLOCKS.register("antimetal",
|
public static final DeferredBlock<RotatedPillarBlock> ANTIMETAL = BLOCKS.register("antimetal",
|
||||||
() -> new RotatedPillarBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.BASALT)));
|
() -> new RotatedPillarBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.BASALT)));
|
||||||
public static final DeferredBlock<RotatedPillarBlock> POLISHED_ANTIMETAL = BLOCKS.register("polished_antimetal",
|
public static final DeferredBlock<RotatedPillarBlock> POLISHED_ANTIMETAL = BLOCKS.register("polished_antimetal",
|
||||||
@@ -577,20 +578,20 @@ public final class AntarchyNeoforgeBlocks {
|
|||||||
.isViewBlocking((state, level, pos) -> false);
|
.isViewBlocking((state, level, pos) -> false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Block createOre(Block copyFrom, int minExperience, int maxExperience) {
|
private static Block createOre(Block copyFrom, int minExperience, int maxExperience, MapColor mapColor) {
|
||||||
return new DropExperienceBlock(UniformInt.of(minExperience, maxExperience), BlockBehaviour.Properties.ofFullCopy(copyFrom).requiresCorrectToolForDrops());
|
return new DropExperienceBlock(UniformInt.of(minExperience, maxExperience), BlockBehaviour.Properties.ofFullCopy(copyFrom).mapColor(mapColor).requiresCorrectToolForDrops());
|
||||||
}
|
}
|
||||||
|
|
||||||
static Block createStorageBlock(Block copyFrom) {
|
static Block createStorageBlock(Block copyFrom, MapColor mapColor) {
|
||||||
return new Block(BlockBehaviour.Properties.ofFullCopy(copyFrom).requiresCorrectToolForDrops());
|
return new Block(BlockBehaviour.Properties.ofFullCopy(copyFrom).mapColor(mapColor).requiresCorrectToolForDrops());
|
||||||
}
|
}
|
||||||
|
|
||||||
static Block createHorizontalFacingStorageBlock(Block copyFrom) {
|
static Block createHorizontalFacingStorageBlock(Block copyFrom, MapColor mapColor) {
|
||||||
return new SimpleHorizontalFacingBlock(BlockBehaviour.Properties.ofFullCopy(copyFrom).requiresCorrectToolForDrops());
|
return new SimpleHorizontalFacingBlock(BlockBehaviour.Properties.ofFullCopy(copyFrom).mapColor(mapColor).requiresCorrectToolForDrops());
|
||||||
}
|
}
|
||||||
|
|
||||||
static Block createRawStorageBlock(Block copyFrom) {
|
static Block createRawStorageBlock(Block copyFrom, MapColor mapColor) {
|
||||||
return new Block(BlockBehaviour.Properties.ofFullCopy(copyFrom).requiresCorrectToolForDrops());
|
return new Block(BlockBehaviour.Properties.ofFullCopy(copyFrom).mapColor(mapColor).requiresCorrectToolForDrops());
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Block smallBloodCrystalBudBlock() {
|
private static Block smallBloodCrystalBudBlock() {
|
||||||
|
|||||||
+2
@@ -188,6 +188,8 @@ public class AntarchyNeoforgeCreativeModeTabs {
|
|||||||
event.accept(AntarchyNeoforgeItems.KING_SCALE.get());
|
event.accept(AntarchyNeoforgeItems.KING_SCALE.get());
|
||||||
event.accept(AntarchyNeoforgeItems.QUEEN_SCALE.get());
|
event.accept(AntarchyNeoforgeItems.QUEEN_SCALE.get());
|
||||||
event.accept(AntarchyNeoforgeItems.CHITEN.get());
|
event.accept(AntarchyNeoforgeItems.CHITEN.get());
|
||||||
|
event.accept(AntarchyNeoforgeItems.JERRY_NUCLEUS.get());
|
||||||
|
event.accept(AntarchyNeoforgeItems.CARAPACE.get());
|
||||||
event.accept(AntarchyNeoforgeItems.STINK_BUG.get());
|
event.accept(AntarchyNeoforgeItems.STINK_BUG.get());
|
||||||
event.accept(AntarchyNeoforgeItems.BRUTALFLY_WING.get());
|
event.accept(AntarchyNeoforgeItems.BRUTALFLY_WING.get());
|
||||||
event.accept(AntarchyNeoforgeItems.PRIMORDIAL_SCUTE.get());
|
event.accept(AntarchyNeoforgeItems.PRIMORDIAL_SCUTE.get());
|
||||||
|
|||||||
+1
-1
@@ -153,7 +153,7 @@ public final class AntarchyNeoforgeEntites {
|
|||||||
.clientTrackingRange(8)
|
.clientTrackingRange(8)
|
||||||
.build("bed_bug"));
|
.build("bed_bug"));
|
||||||
public static final DeferredHolder<EntityType<?>, EntityType<StinkBugEntity>> STINK_BUG = ENTITY_TYPES.register("stink_bug",
|
public static final DeferredHolder<EntityType<?>, EntityType<StinkBugEntity>> STINK_BUG = ENTITY_TYPES.register("stink_bug",
|
||||||
() -> EntityType.Builder.of(StinkBugEntity::new, MobCategory.AMBIENT)
|
() -> EntityType.Builder.of(StinkBugEntity::new, MobCategory.CREATURE)
|
||||||
.sized(0.35F, 0.2F)
|
.sized(0.35F, 0.2F)
|
||||||
.clientTrackingRange(8)
|
.clientTrackingRange(8)
|
||||||
.build("stink_bug"));
|
.build("stink_bug"));
|
||||||
|
|||||||
+58
-29
@@ -213,32 +213,54 @@ public final class AntarchyNeoforgeItems {
|
|||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> BROWN_ANT_NEST_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BROWN_ANT_NEST);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> BROWN_ANT_NEST_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BROWN_ANT_NEST);
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> RAINBOW_ANT_NEST_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.RAINBOW_ANT_NEST);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> RAINBOW_ANT_NEST_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.RAINBOW_ANT_NEST);
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> TERMITE_NEST_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.TERMITE_NEST);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> TERMITE_NEST_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.TERMITE_NEST);
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> URANIUM_ORE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.URANIUM_ORE);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> URANIUM_ORE_ITEM = ITEMS.register("uranium_ore",
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> DEEPSLATE_URANIUM_ORE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.DEEPSLATE_URANIUM_ORE);
|
() -> new net.minecraft.world.item.BlockItem(AntarchyNeoforgeBlocks.URANIUM_ORE.get(), new Item.Properties().rarity(Rarity.UNCOMMON)));
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> TITANIUM_ORE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.TITANIUM_ORE);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> DEEPSLATE_URANIUM_ORE_ITEM = ITEMS.register("deepslate_uranium_ore",
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> DEEPSLATE_TITANIUM_ORE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.DEEPSLATE_TITANIUM_ORE);
|
() -> new net.minecraft.world.item.BlockItem(AntarchyNeoforgeBlocks.DEEPSLATE_URANIUM_ORE.get(), new Item.Properties().rarity(Rarity.UNCOMMON)));
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> URANIUM_BLOCK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.URANIUM_BLOCK);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> TITANIUM_ORE_ITEM = ITEMS.register("titanium_ore",
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> TITANIUM_BLOCK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.TITANIUM_BLOCK);
|
() -> new net.minecraft.world.item.BlockItem(AntarchyNeoforgeBlocks.TITANIUM_ORE.get(), new Item.Properties().rarity(Rarity.UNCOMMON)));
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> RAW_URANIUM_BLOCK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.RAW_URANIUM_BLOCK);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> DEEPSLATE_TITANIUM_ORE_ITEM = ITEMS.register("deepslate_titanium_ore",
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> RAW_TITANIUM_BLOCK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.RAW_TITANIUM_BLOCK);
|
() -> new net.minecraft.world.item.BlockItem(AntarchyNeoforgeBlocks.DEEPSLATE_TITANIUM_ORE.get(), new Item.Properties().rarity(Rarity.UNCOMMON)));
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> CUT_URANIUM_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.CUT_URANIUM);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> URANIUM_BLOCK_ITEM = ITEMS.register("uranium_block",
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> CUT_TITANIUM_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.CUT_TITANIUM);
|
() -> new net.minecraft.world.item.BlockItem(AntarchyNeoforgeBlocks.URANIUM_BLOCK.get(), new Item.Properties().rarity(Rarity.UNCOMMON)));
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> CUT_URANIUM_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.CUT_URANIUM_SLAB);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> TITANIUM_BLOCK_ITEM = ITEMS.register("titanium_block",
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> CUT_TITANIUM_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.CUT_TITANIUM_SLAB);
|
() -> new net.minecraft.world.item.BlockItem(AntarchyNeoforgeBlocks.TITANIUM_BLOCK.get(), new Item.Properties().rarity(Rarity.UNCOMMON)));
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> CUT_URANIUM_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.CUT_URANIUM_STAIRS);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> RAW_URANIUM_BLOCK_ITEM = ITEMS.register("raw_uranium_block",
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> CUT_TITANIUM_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.CUT_TITANIUM_STAIRS);
|
() -> new net.minecraft.world.item.BlockItem(AntarchyNeoforgeBlocks.RAW_URANIUM_BLOCK.get(), new Item.Properties().rarity(Rarity.UNCOMMON)));
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> CHISELED_URANIUM_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.CHISELED_URANIUM);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> RAW_TITANIUM_BLOCK_ITEM = ITEMS.register("raw_titanium_block",
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> CHISELED_TITANIUM_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.CHISELED_TITANIUM);
|
() -> new net.minecraft.world.item.BlockItem(AntarchyNeoforgeBlocks.RAW_TITANIUM_BLOCK.get(), new Item.Properties().rarity(Rarity.UNCOMMON)));
|
||||||
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> CUT_URANIUM_ITEM = ITEMS.register("cut_uranium",
|
||||||
|
() -> new net.minecraft.world.item.BlockItem(AntarchyNeoforgeBlocks.CUT_URANIUM.get(), new Item.Properties().rarity(Rarity.UNCOMMON)));
|
||||||
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> CUT_TITANIUM_ITEM = ITEMS.register("cut_titanium",
|
||||||
|
() -> new net.minecraft.world.item.BlockItem(AntarchyNeoforgeBlocks.CUT_TITANIUM.get(), new Item.Properties().rarity(Rarity.UNCOMMON)));
|
||||||
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> CUT_URANIUM_SLAB_ITEM = ITEMS.register("cut_uranium_slab",
|
||||||
|
() -> new net.minecraft.world.item.BlockItem(AntarchyNeoforgeBlocks.CUT_URANIUM_SLAB.get(), new Item.Properties().rarity(Rarity.UNCOMMON)));
|
||||||
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> CUT_TITANIUM_SLAB_ITEM = ITEMS.register("cut_titanium_slab",
|
||||||
|
() -> new net.minecraft.world.item.BlockItem(AntarchyNeoforgeBlocks.CUT_TITANIUM_SLAB.get(), new Item.Properties().rarity(Rarity.UNCOMMON)));
|
||||||
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> CUT_URANIUM_STAIRS_ITEM = ITEMS.register("cut_uranium_stairs",
|
||||||
|
() -> new net.minecraft.world.item.BlockItem(AntarchyNeoforgeBlocks.CUT_URANIUM_STAIRS.get(), new Item.Properties().rarity(Rarity.UNCOMMON)));
|
||||||
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> CUT_TITANIUM_STAIRS_ITEM = ITEMS.register("cut_titanium_stairs",
|
||||||
|
() -> new net.minecraft.world.item.BlockItem(AntarchyNeoforgeBlocks.CUT_TITANIUM_STAIRS.get(), new Item.Properties().rarity(Rarity.UNCOMMON)));
|
||||||
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> CHISELED_URANIUM_ITEM = ITEMS.register("chiseled_uranium",
|
||||||
|
() -> new net.minecraft.world.item.BlockItem(AntarchyNeoforgeBlocks.CHISELED_URANIUM.get(), new Item.Properties().rarity(Rarity.UNCOMMON)));
|
||||||
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> CHISELED_TITANIUM_ITEM = ITEMS.register("chiseled_titanium",
|
||||||
|
() -> new net.minecraft.world.item.BlockItem(AntarchyNeoforgeBlocks.CHISELED_TITANIUM.get(), new Item.Properties().rarity(Rarity.UNCOMMON)));
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> URANIUM_BULB_ITEM = ITEMS.register("uranium_bulb",
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> URANIUM_BULB_ITEM = ITEMS.register("uranium_bulb",
|
||||||
() -> new com.craisinlord.antarchy.content.item.SignalSavingBulbItem(AntarchyNeoforgeBlocks.URANIUM_BULB.get(), new Item.Properties()));
|
() -> new com.craisinlord.antarchy.content.item.SignalSavingBulbItem(AntarchyNeoforgeBlocks.URANIUM_BULB.get(), new Item.Properties().rarity(Rarity.UNCOMMON)));
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> TITANIUM_BULB_ITEM = ITEMS.register("titanium_bulb",
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> TITANIUM_BULB_ITEM = ITEMS.register("titanium_bulb",
|
||||||
() -> new com.craisinlord.antarchy.content.item.SignalSavingBulbItem(AntarchyNeoforgeBlocks.TITANIUM_BULB.get(), new Item.Properties()));
|
() -> new com.craisinlord.antarchy.content.item.SignalSavingBulbItem(AntarchyNeoforgeBlocks.TITANIUM_BULB.get(), new Item.Properties().rarity(Rarity.UNCOMMON)));
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> URANIUM_DOOR_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.URANIUM_DOOR);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> URANIUM_DOOR_ITEM = ITEMS.register("uranium_door",
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> TITANIUM_DOOR_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.TITANIUM_DOOR);
|
() -> new net.minecraft.world.item.BlockItem(AntarchyNeoforgeBlocks.URANIUM_DOOR.get(), new Item.Properties().rarity(Rarity.UNCOMMON)));
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> URANIUM_TRAPDOOR_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.URANIUM_TRAPDOOR);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> TITANIUM_DOOR_ITEM = ITEMS.register("titanium_door",
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> TITANIUM_TRAPDOOR_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.TITANIUM_TRAPDOOR);
|
() -> new net.minecraft.world.item.BlockItem(AntarchyNeoforgeBlocks.TITANIUM_DOOR.get(), new Item.Properties().rarity(Rarity.UNCOMMON)));
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> URANIUM_BARS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.URANIUM_BARS);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> URANIUM_TRAPDOOR_ITEM = ITEMS.register("uranium_trapdoor",
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> TITANIUM_BARS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.TITANIUM_BARS);
|
() -> new net.minecraft.world.item.BlockItem(AntarchyNeoforgeBlocks.URANIUM_TRAPDOOR.get(), new Item.Properties().rarity(Rarity.UNCOMMON)));
|
||||||
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> TITANIUM_TRAPDOOR_ITEM = ITEMS.register("titanium_trapdoor",
|
||||||
|
() -> new net.minecraft.world.item.BlockItem(AntarchyNeoforgeBlocks.TITANIUM_TRAPDOOR.get(), new Item.Properties().rarity(Rarity.UNCOMMON)));
|
||||||
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> URANIUM_BARS_ITEM = ITEMS.register("uranium_bars",
|
||||||
|
() -> new net.minecraft.world.item.BlockItem(AntarchyNeoforgeBlocks.URANIUM_BARS.get(), new Item.Properties().rarity(Rarity.UNCOMMON)));
|
||||||
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> TITANIUM_BARS_ITEM = ITEMS.register("titanium_bars",
|
||||||
|
() -> new net.minecraft.world.item.BlockItem(AntarchyNeoforgeBlocks.TITANIUM_BARS.get(), new Item.Properties().rarity(Rarity.UNCOMMON)));
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> ANTIMETAL_ITEM = ITEMS.register("antimetal",
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> ANTIMETAL_ITEM = ITEMS.register("antimetal",
|
||||||
() -> new AntimetalBlockItem(AntarchyNeoforgeBlocks.ANTIMETAL.get(), new Item.Properties()));
|
() -> new AntimetalBlockItem(AntarchyNeoforgeBlocks.ANTIMETAL.get(), new Item.Properties()));
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> POLISHED_ANTIMETAL_ITEM = ITEMS.register("polished_antimetal",
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> POLISHED_ANTIMETAL_ITEM = ITEMS.register("polished_antimetal",
|
||||||
@@ -293,8 +315,10 @@ public final class AntarchyNeoforgeItems {
|
|||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> BROODSTONE_BRICK_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BROODSTONE_BRICK_SLAB);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> BROODSTONE_BRICK_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BROODSTONE_BRICK_SLAB);
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> BROODSTONE_BRICK_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BROODSTONE_BRICK_WALL);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> BROODSTONE_BRICK_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BROODSTONE_BRICK_WALL);
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> MYRMITE_COAL_ORE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.MYRMITE_COAL_ORE);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> MYRMITE_COAL_ORE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.MYRMITE_COAL_ORE);
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> BROODSTONE_URANIUM_ORE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BROODSTONE_URANIUM_ORE);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> BROODSTONE_URANIUM_ORE_ITEM = ITEMS.register("broodstone_uranium_ore",
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> BROODSTONE_TITANIUM_ORE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BROODSTONE_TITANIUM_ORE);
|
() -> new net.minecraft.world.item.BlockItem(AntarchyNeoforgeBlocks.BROODSTONE_URANIUM_ORE.get(), new Item.Properties().rarity(Rarity.UNCOMMON)));
|
||||||
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> BROODSTONE_TITANIUM_ORE_ITEM = ITEMS.register("broodstone_titanium_ore",
|
||||||
|
() -> new net.minecraft.world.item.BlockItem(AntarchyNeoforgeBlocks.BROODSTONE_TITANIUM_ORE.get(), new Item.Properties().rarity(Rarity.UNCOMMON)));
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> POLISHED_NYXITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.POLISHED_NYXITE);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> POLISHED_NYXITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.POLISHED_NYXITE);
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> CHISELED_NYXITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.CHISELED_NYXITE);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> CHISELED_NYXITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.CHISELED_NYXITE);
|
||||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> NYXITE_BRICKS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.NYXITE_BRICKS);
|
public static final DeferredItem<net.minecraft.world.item.BlockItem> NYXITE_BRICKS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.NYXITE_BRICKS);
|
||||||
@@ -402,7 +426,11 @@ public final class AntarchyNeoforgeItems {
|
|||||||
public static final DeferredItem<Item> QUEEN_SCALE = ITEMS.register("queen_scale",
|
public static final DeferredItem<Item> QUEEN_SCALE = ITEMS.register("queen_scale",
|
||||||
() -> new MobComingSoonTooltipItem(new Item.Properties().rarity(Rarity.RARE)));
|
() -> new MobComingSoonTooltipItem(new Item.Properties().rarity(Rarity.RARE)));
|
||||||
public static final DeferredItem<Item> CHITEN = ITEMS.registerSimpleItem("chiten", new Item.Properties().rarity(Rarity.UNCOMMON));
|
public static final DeferredItem<Item> CHITEN = ITEMS.registerSimpleItem("chiten", new Item.Properties().rarity(Rarity.UNCOMMON));
|
||||||
public static final DeferredItem<Item> JERRY_NUCLEUS = ITEMS.registerSimpleItem("jerry_nucleus", new Item.Properties().rarity(Rarity.UNCOMMON));
|
public static final DeferredItem<Item> JERRY_NUCLEUS = ITEMS.registerSimpleItem("jerry_nucleus", new Item.Properties().rarity(Rarity.UNCOMMON)
|
||||||
|
.food(new FoodProperties.Builder()
|
||||||
|
.nutrition(2)
|
||||||
|
.saturationModifier(0.1F)
|
||||||
|
.build()));
|
||||||
public static final DeferredItem<Item> CARAPACE = ITEMS.registerSimpleItem("carapace", new Item.Properties().rarity(Rarity.UNCOMMON));
|
public static final DeferredItem<Item> CARAPACE = ITEMS.registerSimpleItem("carapace", new Item.Properties().rarity(Rarity.UNCOMMON));
|
||||||
public static final DeferredItem<Item> STINK_BUG = ITEMS.registerSimpleItem("stink_bug", new Item.Properties().rarity(Rarity.UNCOMMON));
|
public static final DeferredItem<Item> STINK_BUG = ITEMS.registerSimpleItem("stink_bug", new Item.Properties().rarity(Rarity.UNCOMMON));
|
||||||
public static final DeferredItem<Item> JUMPY_BUG_LEG = ITEMS.registerSimpleItem("jumpy_bug_leg", new Item.Properties().rarity(Rarity.UNCOMMON));
|
public static final DeferredItem<Item> JUMPY_BUG_LEG = ITEMS.registerSimpleItem("jumpy_bug_leg", new Item.Properties().rarity(Rarity.UNCOMMON));
|
||||||
@@ -442,8 +470,9 @@ public final class AntarchyNeoforgeItems {
|
|||||||
public static final DeferredItem<Item> RAW_BUG_MEAT = ITEMS.register("raw_bug_meat",
|
public static final DeferredItem<Item> RAW_BUG_MEAT = ITEMS.register("raw_bug_meat",
|
||||||
() -> new Item(new Item.Properties()
|
() -> new Item(new Item.Properties()
|
||||||
.food(new FoodProperties.Builder()
|
.food(new FoodProperties.Builder()
|
||||||
.nutrition(3)
|
.nutrition(4)
|
||||||
.saturationModifier(0.3F)
|
.saturationModifier(0.1F)
|
||||||
|
.effect(() -> new MobEffectInstance(MobEffects.HUNGER, 600), 0.8F)
|
||||||
.build())));
|
.build())));
|
||||||
public static final DeferredItem<Item> COOKED_BUG_MEAT = ITEMS.register("cooked_bug_meat",
|
public static final DeferredItem<Item> COOKED_BUG_MEAT = ITEMS.register("cooked_bug_meat",
|
||||||
() -> new Item(new Item.Properties()
|
() -> new Item(new Item.Properties()
|
||||||
|
|||||||
+1
@@ -136,6 +136,7 @@ public final class AntarchyNeoforgeSounds {
|
|||||||
public static final DeferredHolder<SoundEvent, SoundEvent> STINKY_FLY = registerSoundEvent("stinky_fly");
|
public static final DeferredHolder<SoundEvent, SoundEvent> STINKY_FLY = registerSoundEvent("stinky_fly");
|
||||||
public static final DeferredHolder<SoundEvent, SoundEvent> STINK_BUG_FART = registerSoundEvent("stink_bug_fart");
|
public static final DeferredHolder<SoundEvent, SoundEvent> STINK_BUG_FART = registerSoundEvent("stink_bug_fart");
|
||||||
public static final DeferredHolder<SoundEvent, SoundEvent> STINK_BUG_IDLE = registerSoundEvent("stink_bug_idle");
|
public static final DeferredHolder<SoundEvent, SoundEvent> STINK_BUG_IDLE = registerSoundEvent("stink_bug_idle");
|
||||||
|
public static final DeferredHolder<SoundEvent, SoundEvent> CAVARYN_HEARTBEAT = registerSoundEvent("cavaryn_heartbeat");
|
||||||
public static final DeferredHolder<SoundEvent, SoundEvent> ROLLY_POLLY_IDLE = registerSoundEvent("rolly_polly_idle");
|
public static final DeferredHolder<SoundEvent, SoundEvent> ROLLY_POLLY_IDLE = registerSoundEvent("rolly_polly_idle");
|
||||||
public static final DeferredHolder<SoundEvent, SoundEvent> ROLLY_POLLY_WHEEL_MODE = registerSoundEvent("rolly_polly_wheel_mode");
|
public static final DeferredHolder<SoundEvent, SoundEvent> ROLLY_POLLY_WHEEL_MODE = registerSoundEvent("rolly_polly_wheel_mode");
|
||||||
public static final DeferredHolder<SoundEvent, SoundEvent> ROLLY_POLLY_NORMAL_MODE = registerSoundEvent("rolly_polly_normal_mode");
|
public static final DeferredHolder<SoundEvent, SoundEvent> ROLLY_POLLY_NORMAL_MODE = registerSoundEvent("rolly_polly_normal_mode");
|
||||||
|
|||||||
Reference in new issue
Block a user