fixed krakens graps missing tags
improved upward falling block entity started bluestone fixed herc beetle mounted behavior
This commit is contained in:
1 parent
db93a3ced9
commit
b37b49dff1
163 files changed
+2903
-2417
No files matched your search
@@ -12,8 +12,8 @@ public final class AntarchyMiscConfig {
|
||||
private static final ModConfigSpec.BooleanValue DREAM_SAND_ENABLED;
|
||||
private static final ModConfigSpec.DoubleValue DREAM_SAND_JUMP_VELOCITY_MULTIPLIER;
|
||||
private static final ModConfigSpec.DoubleValue DREAM_SAND_GRAVITY_MULTIPLIER;
|
||||
private static final ModConfigSpec.DoubleValue DREAM_SAND_FALL_DAMAGE_MULTIPLIER;
|
||||
private static final ModConfigSpec.DoubleValue DREAM_SAND_EFFECT_DURATION_SECONDS;
|
||||
private static final ModConfigSpec.DoubleValue DREAM_SAND_FALL_DAMAGE_MULTIPLIER;
|
||||
|
||||
// Ichor
|
||||
private static final ModConfigSpec.BooleanValue ICHOR_WITHER_ENABLED;
|
||||
@@ -45,8 +45,8 @@ public final class AntarchyMiscConfig {
|
||||
|
||||
// World / misc toggles
|
||||
private static final ModConfigSpec.BooleanValue DUPLICATOR_TREE_ENABLED;
|
||||
private static final ModConfigSpec.BooleanValue GLOWING_TORCHFLOWERS;
|
||||
private static final ModConfigSpec.BooleanValue GLOW_VINES_UNDER_LEAVES;
|
||||
private static final ModConfigSpec.BooleanValue GLOWING_TORCHFLOWERS;
|
||||
private static final ModConfigSpec.BooleanValue SWING_THROUGH_GRASS_ENABLED;
|
||||
private static final ModConfigSpec.BooleanValue FABRIC_KEYBINDING_CONFLICT_FIX_ENABLED;
|
||||
private static final ModConfigSpec.BooleanValue EXPERIMENTAL_SETTINGS_POPUP_DISABLED;
|
||||
@@ -71,8 +71,8 @@ public final class AntarchyMiscConfig {
|
||||
DREAM_SAND_ENABLED = b.comment("If true, jumping from dream sand applies temporary low gravity until solid ground is touched.").define("enabled", true);
|
||||
DREAM_SAND_JUMP_VELOCITY_MULTIPLIER = b.comment("Multiplier applied to upward jump velocity when leaving dream sand.") .defineInRange("jumpVelocityMultiplier", 1.3D, 0.0D, 16.0D);
|
||||
DREAM_SAND_GRAVITY_MULTIPLIER = b.comment("Multiplier applied to downward velocity while low gravity is active.") .defineInRange("gravityMultiplier", 0.45D, 0.0D, 1.0D);
|
||||
DREAM_SAND_FALL_DAMAGE_MULTIPLIER = b.comment("Multiplier applied to fall damage during the low-gravity phase.") .defineInRange("fallDamageMultiplier", 0.35D, 0.0D, 1.0D);
|
||||
DREAM_SAND_EFFECT_DURATION_SECONDS = b.comment("Seconds the low-gravity effect remains active after leaving dream sand.") .defineInRange("effectDurationSeconds", 7.0D, 0.0D, 60.0D);
|
||||
DREAM_SAND_FALL_DAMAGE_MULTIPLIER = b.comment("Multiplier applied to fall damage after dream sand low gravity.").defineInRange("fallDamageMultiplier", 0.4D, 0.0D, 16.0D);
|
||||
b.pop();
|
||||
|
||||
|
||||
@@ -139,8 +139,8 @@ public final class AntarchyMiscConfig {
|
||||
|
||||
b.push("world");
|
||||
DUPLICATOR_TREE_ENABLED = b.comment("If false, duplicator trees do not generate and duplicator saplings produce nothing.").define("duplicatorTreeEnabled", true);
|
||||
GLOWING_TORCHFLOWERS = b.comment("Whether fully-grown torchflower blocks emit light.") .define("glowingTorchflowers", true);
|
||||
GLOW_VINES_UNDER_LEAVES = b.comment("Whether glow vines can be placed and survive when attached under leaf blocks.") .define("glowVinesUnderLeaves", true);
|
||||
GLOWING_TORCHFLOWERS = b.comment("If true, torchflowers use the glowing behavior.").define("glowingTorchflowers", true);
|
||||
SWING_THROUGH_GRASS_ENABLED = b.comment("If true, empty collision plants like grass do not block melee target picking.") .define("swingThroughGrassEnabled", true);
|
||||
FABRIC_KEYBINDING_CONFLICT_FIX_ENABLED = b.define("fabricKeybindingConflictFixEnabled", true);
|
||||
EXPERIMENTAL_SETTINGS_POPUP_DISABLED = b.define("experimentalSettingsPopupDisabled", true);
|
||||
@@ -157,14 +157,14 @@ public final class AntarchyMiscConfig {
|
||||
static boolean dreamSandEnabled() { return DREAM_SAND_ENABLED.get(); }
|
||||
static double dreamSandJumpVelocityMultiplier() { return DREAM_SAND_JUMP_VELOCITY_MULTIPLIER.get(); }
|
||||
static double dreamSandGravityMultiplier() { return DREAM_SAND_GRAVITY_MULTIPLIER.get(); }
|
||||
static double dreamSandFallDamageMultiplier() { return DREAM_SAND_FALL_DAMAGE_MULTIPLIER.get(); }
|
||||
static double dreamSandEffectDurationSeconds() { return DREAM_SAND_EFFECT_DURATION_SECONDS.get(); }
|
||||
static double dreamSandFallDamageMultiplier() { return DREAM_SAND_FALL_DAMAGE_MULTIPLIER.get(); }
|
||||
|
||||
static boolean ichorWitherEnabled() { return ICHOR_WITHER_ENABLED.get(); }
|
||||
|
||||
static boolean duplicatorTreeEnabled() { return DUPLICATOR_TREE_ENABLED.get(); }
|
||||
static boolean glowingTorchflowers() { return GLOWING_TORCHFLOWERS.get(); }
|
||||
static boolean glowVinesUnderLeaves() { return GLOW_VINES_UNDER_LEAVES.get(); }
|
||||
static boolean glowingTorchflowers() { return GLOWING_TORCHFLOWERS.get(); }
|
||||
static boolean swingThroughGrassEnabled() { return SWING_THROUGH_GRASS_ENABLED.get(); }
|
||||
static boolean fabricKeybindingConflictFixEnabled() { return FABRIC_KEYBINDING_CONFLICT_FIX_ENABLED.get(); }
|
||||
static boolean experimentalSettingsPopupDisabled() { return EXPERIMENTAL_SETTINGS_POPUP_DISABLED.get(); }
|
||||
|
||||
@@ -106,9 +106,9 @@ public final class AntarchyMobsConfig {
|
||||
private static final ModConfigSpec.DoubleValue ROLLY_POLLY_HEALTH;
|
||||
private static final ModConfigSpec.DoubleValue ROLLY_POLLY_MOVEMENT_SPEED;
|
||||
private static final ModConfigSpec.DoubleValue ROLLY_POLLY_ROLL_SPEED_MULTIPLIER;
|
||||
private static final ModConfigSpec.DoubleValue ROLLY_POLLY_TUMBLE_DAMAGE;
|
||||
private static final ModConfigSpec.IntValue ROLLY_POLLY_TAME_CHANCE;
|
||||
private static final ModConfigSpec.DoubleValue ROLLY_POLLY_BOWLING_DAMAGE;
|
||||
private static final ModConfigSpec.DoubleValue ROLLY_POLLY_TUMBLE_DAMAGE;
|
||||
private static final ModConfigSpec.DoubleValue ROLLY_POLLY_BOWLING_KNOCKBACK;
|
||||
private static final ModConfigSpec.DoubleValue ROLLY_POLLY_ARMOR;
|
||||
private static final ModConfigSpec.DoubleValue ROLLY_POLLY_ROLLED_ARMOR_BONUS;
|
||||
@@ -185,13 +185,13 @@ public final class AntarchyMobsConfig {
|
||||
private static final ModConfigSpec.DoubleValue TORETERROR_JUMP_ATTACK_KNOCKBACK;
|
||||
private static final ModConfigSpec.DoubleValue TORETERROR_SPIN_DAMAGE;
|
||||
private static final ModConfigSpec.DoubleValue TORETERROR_SPIN_KNOCKBACK;
|
||||
private static final ModConfigSpec.DoubleValue TORETERROR_RANGED_WATER_BOMB_CHANCE;
|
||||
private static final ModConfigSpec.DoubleValue TORETERROR_PROJECTILE_DAMAGE_MULTIPLIER;
|
||||
private static final ModConfigSpec.DoubleValue TORETERROR_RANGED_WATER_BOMB_CHANCE;
|
||||
private static final ModConfigSpec.DoubleValue WATER_CANNON_COOLDOWN_SECONDS;
|
||||
private static final ModConfigSpec.DoubleValue WATER_BOMB_DAMAGE;
|
||||
private static final ModConfigSpec.IntValue WATER_BOMB_LIFETIME_TICKS;
|
||||
private static final ModConfigSpec.DoubleValue WATER_BOMB_GRAVITY;
|
||||
private static final ModConfigSpec.DoubleValue WATER_BOMB_KNOCKBACK;
|
||||
private static final ModConfigSpec.DoubleValue WATER_CANNON_COOLDOWN_SECONDS;
|
||||
|
||||
|
||||
// Creeping Horror
|
||||
@@ -377,7 +377,7 @@ public final class AntarchyMobsConfig {
|
||||
b.push("jumpyBug");
|
||||
JUMPY_BUG_HEALTH = b.comment("Base max health.").defineInRange("health", 12.0D, 1.0D, 32768.0D);
|
||||
JUMPY_BUG_POUNCE_DAMAGE = b.comment("Damage dealt on a successful pounce latch.").defineInRange("pounceDamage", 2.0D, 0.0D, 1024.0D);
|
||||
JUMPY_BUG_LATCH_DAMAGE = b.comment("Damage dealt per bite while latched.").defineInRange("latchDamage", 1.0D, 0.0D, 1024.0D);
|
||||
JUMPY_BUG_LATCH_DAMAGE = b.comment("Damage dealt while latched onto a target.").defineInRange("latchDamage", 2.0D, 0.0D, 1024.0D);
|
||||
JUMPY_BUG_CAMOUFLAGE_ALPHA = b.comment("Renderer alpha while camouflaged.").defineInRange("camouflageAlpha", 0.18D, 0.01D, 1.0D);
|
||||
b.pop();
|
||||
|
||||
@@ -387,7 +387,7 @@ public final class AntarchyMobsConfig {
|
||||
b.push("kraken");
|
||||
KRAKEN_HEALTH = b.comment("Base max health.") .defineInRange("health", 1500.0D, 1.0D, 32768.0D);
|
||||
KRAKEN_ATTACK_DAMAGE = b.comment("Base attack damage.") .defineInRange("attackDamage", 45.0D, 0.0D, 1024.0D);
|
||||
KRAKEN_PROJECTILE_DAMAGE_TAKEN_MULTIPLIER = b.comment("Damage multiplier from projectiles. 0.5 means 50% damage.") .defineInRange("projectileDamageTakenMultiplier", 0.5D, 0.0D, 10.0D);
|
||||
KRAKEN_PROJECTILE_DAMAGE_TAKEN_MULTIPLIER = b.comment("Multiplier applied to projectile damage taken by the Kraken.").defineInRange("projectileDamageTakenMultiplier", 0.5D, 0.0D, 16.0D);
|
||||
KRAKEN_SQUID_SPAWN_ENABLED = b.comment("If true, a player killing a Missile Squid has a 1/100 chance to spawn a single Kraken nearby.") .define("squidSpawnEnabled", true);
|
||||
KRAKEN_MASS_SPAWN_ENABLED = b.comment("If true, a player killing a Missile Squid has a 1/500 chance to spawn 10 Krakens. Independent from the single spawn.").define("massSpawnEnabled", true);
|
||||
KRAKEN_REQUIRE_BAD_OMEN_TO_SUMMON = b.comment("If true, the killer must have Bad Omen to summon a single Kraken; chance scales with Bad Omen level. Mass spawn is unaffected by level but still requires Bad Omen when this is on.").define("requireBadOmenToSummon", true);
|
||||
@@ -432,9 +432,9 @@ public final class AntarchyMobsConfig {
|
||||
ROLLY_POLLY_HEALTH = b.comment("Base max health.") .defineInRange("health", 25.0D, 1.0D, 32768.0D);
|
||||
ROLLY_POLLY_MOVEMENT_SPEED = b.comment("Base movement speed.") .defineInRange("movementSpeed", 0.3D, 0.0D, 10.0D);
|
||||
ROLLY_POLLY_ROLL_SPEED_MULTIPLIER = b.comment("Speed multiplier while rolled up.") .defineInRange("rollSpeedMultiplier", 2.2D, 0.1D, 20.0D);
|
||||
ROLLY_POLLY_TUMBLE_DAMAGE = b.comment("Unused (riding removed). Retained for config compatibility.") .defineInRange("tumbleDamage", 1.0D, 0.0D, 1024.0D);
|
||||
ROLLY_POLLY_TAME_CHANCE = b.comment("Taming succeeds with a 1-in-N chance per food item.") .defineInRange("tameChance", 3, 1, 100);
|
||||
ROLLY_POLLY_BOWLING_DAMAGE = b.comment("Damage dealt by a tamed rolly polly's rolling bowling attack.") .defineInRange("bowlingDamage", 3.0D, 0.0D, 1024.0D);
|
||||
ROLLY_POLLY_TUMBLE_DAMAGE = b.comment("Damage dealt by a tumbling rolly polly impact.").defineInRange("tumbleDamage", 3.0D, 0.0D, 1024.0D);
|
||||
ROLLY_POLLY_BOWLING_KNOCKBACK = b.comment("Knockback strength of a tamed rolly polly's rolling bowling attack.") .defineInRange("bowlingKnockback", 0.8D, 0.0D, 20.0D);
|
||||
ROLLY_POLLY_ARMOR = b.comment("Base armor value.") .defineInRange("armor", 2.0D, 0.0D, 100.0D);
|
||||
ROLLY_POLLY_ROLLED_ARMOR_BONUS = b.comment("Additional armor gained while rolled up.") .defineInRange("rolledArmorBonus", 16.0D, 0.0D, 100.0D);
|
||||
@@ -477,7 +477,7 @@ public final class AntarchyMobsConfig {
|
||||
REVERIE_NOTICE_DURATION_TICKS = b.comment("Ticks the Reverie watches a player before becoming bound.") .defineInRange("noticeDurationTicks", 20, 1, 200);
|
||||
REVERIE_INTEREST_DURATION_TICKS = b.comment("Ticks the Reverie stays interested after a color/state change.") .defineInRange("interestDurationTicks", 360, 20, 7200);
|
||||
REVERIE_REBIND_COOLDOWN_TICKS = b.comment("Ticks the Reverie waits after unbinding before it can bind again.") .defineInRange("rebindCooldownTicks", 100, 0, 24000);
|
||||
REVERIE_DAMAGE_REACTION_DURATION_TICKS = b.comment("Ticks the Reverie stays in its hurt warning reaction after being damaged.") .defineInRange("damageReactionDurationTicks", 40, 1, 400);
|
||||
REVERIE_DAMAGE_REACTION_DURATION_TICKS = b.comment("Ticks the Reverie remains in its damage reaction state.").defineInRange("damageReactionDurationTicks", 60, 0, 24000);
|
||||
REVERIE_DANGEROUS_FALL_DISTANCE = b.comment("Minimum fall distance before the Reverie considers its player in danger. Vanilla fall damage starts at 3.").defineInRange("dangerousFallDistance", 3.0D, 0.0D, 64.0D);
|
||||
REVERIE_DANGEROUS_FALL_SPEED = b.comment("Minimum vertical speed before a dangerous fall triggers purple protection.") .defineInRange("dangerousFallSpeed", 0.18D, 0.0D, 4.0D);
|
||||
REVERIE_WARNING_THREAT_RADIUS = b.comment("Horizontal scan radius for hostiles that trigger red warning mode.") .defineInRange("warningThreatRadius", 10.0D, 1.0D, 64.0D);
|
||||
@@ -604,13 +604,13 @@ public final class AntarchyMobsConfig {
|
||||
TORETERROR_JUMP_ATTACK_KNOCKBACK = b.comment("Knockback strength of the jump shockwave.").defineInRange("jumpAttackKnockback", 2.5D, 0.0D, 10.0D);
|
||||
TORETERROR_SPIN_DAMAGE = b.comment("Damage per spin-attack tick.").defineInRange("spinDamage", 8.0D, 0.0D, 1024.0D);
|
||||
TORETERROR_SPIN_KNOCKBACK = b.comment("Knockback strength of the spin attack.").defineInRange("spinKnockback", 1.5D, 0.0D, 10.0D);
|
||||
TORETERROR_RANGED_WATER_BOMB_CHANCE = b.comment("Chance (0.0-1.0) the ranged attack fires a Water Bomb instead of Bombers.").defineInRange("rangedWaterBombChance", 0.5D, 0.0D, 1.0D);
|
||||
TORETERROR_PROJECTILE_DAMAGE_MULTIPLIER = b.comment("Damage multiplier applied to projectile hits on the Toreterror (0.5 = half damage).").defineInRange("projectileDamageMultiplier", 0.5D, 0.0D, 1.0D);
|
||||
TORETERROR_RANGED_WATER_BOMB_CHANCE = b.comment("Chance each ranged attack cycle launches a water bomb.").defineInRange("rangedWaterBombChance", 0.35D, 0.0D, 1.0D);
|
||||
WATER_CANNON_COOLDOWN_SECONDS = b.comment("Cooldown between water cannon uses, in seconds.").defineInRange("waterCannonCooldownSeconds", 1.5D, 0.0D, 60.0D);
|
||||
WATER_BOMB_DAMAGE = b.comment("Damage dealt by a Water Bomb hit.").defineInRange("waterBombDamage", 6.0D, 0.0D, 1024.0D);
|
||||
WATER_BOMB_LIFETIME_TICKS = b.comment("Ticks before a Water Bomb despawns.").defineInRange("waterBombLifetimeTicks", 120, 1, 6000);
|
||||
WATER_BOMB_GRAVITY = b.comment("Gravity applied to Water Bombs (higher = steeper arc).").defineInRange("waterBombGravity", 0.12D, 0.0D, 2.0D);
|
||||
WATER_BOMB_KNOCKBACK = b.comment("Knockback strength when a Water Bomb hits an entity.").defineInRange("waterBombKnockback", 1.2D, 0.0D, 10.0D);
|
||||
WATER_CANNON_COOLDOWN_SECONDS = b.comment("Cooldown in seconds between Water Cannon shots.").defineInRange("waterCannonCooldownSeconds", 1.5D, 0.0D, 300.0D);
|
||||
b.pop();
|
||||
|
||||
SPEC = b.build();
|
||||
@@ -691,9 +691,9 @@ public final class AntarchyMobsConfig {
|
||||
static double rollyPollyHealth() { return ROLLY_POLLY_HEALTH.get(); }
|
||||
static double rollyPollyMovementSpeed() { return ROLLY_POLLY_MOVEMENT_SPEED.get(); }
|
||||
static double rollyPollyRollSpeedMultiplier() { return ROLLY_POLLY_ROLL_SPEED_MULTIPLIER.get(); }
|
||||
static double rollyPollyTumbleDamage() { return ROLLY_POLLY_TUMBLE_DAMAGE.get(); }
|
||||
static int rollyPollyTameChance() { return ROLLY_POLLY_TAME_CHANCE.get(); }
|
||||
static double rollyPollyBowlingDamage() { return ROLLY_POLLY_BOWLING_DAMAGE.get(); }
|
||||
static double rollyPollyTumbleDamage() { return ROLLY_POLLY_TUMBLE_DAMAGE.get(); }
|
||||
static double rollyPollyBowlingKnockback() { return ROLLY_POLLY_BOWLING_KNOCKBACK.get(); }
|
||||
static double rollyPollyArmor() { return ROLLY_POLLY_ARMOR.get(); }
|
||||
static double rollyPollyRolledArmorBonus() { return ROLLY_POLLY_ROLLED_ARMOR_BONUS.get(); }
|
||||
@@ -751,13 +751,13 @@ public final class AntarchyMobsConfig {
|
||||
static double toreterrorJumpAttackKnockback() { return TORETERROR_JUMP_ATTACK_KNOCKBACK.get(); }
|
||||
static double toreterrorSpinDamage() { return TORETERROR_SPIN_DAMAGE.get(); }
|
||||
static double toreterrorSpinKnockback() { return TORETERROR_SPIN_KNOCKBACK.get(); }
|
||||
static double toreterrorRangedWaterBombChance() { return TORETERROR_RANGED_WATER_BOMB_CHANCE.get(); }
|
||||
static double toreterrorProjectileDamageMultiplier() { return TORETERROR_PROJECTILE_DAMAGE_MULTIPLIER.get(); }
|
||||
static double toreterrorRangedWaterBombChance() { return TORETERROR_RANGED_WATER_BOMB_CHANCE.get(); }
|
||||
static double waterCannonCooldownSeconds() { return WATER_CANNON_COOLDOWN_SECONDS.get(); }
|
||||
static double waterBombDamage() { return WATER_BOMB_DAMAGE.get(); }
|
||||
static int waterBombLifetimeTicks() { return WATER_BOMB_LIFETIME_TICKS.get(); }
|
||||
static double waterBombGravity() { return WATER_BOMB_GRAVITY.get(); }
|
||||
static double waterBombKnockback() { return WATER_BOMB_KNOCKBACK.get(); }
|
||||
static double waterCannonCooldownSeconds() { return WATER_CANNON_COOLDOWN_SECONDS.get(); }
|
||||
|
||||
static boolean dreadHallucinationSoundsEnabled() { return DREAD_HALLUCINATION_SOUNDS_ENABLED.get(); }
|
||||
static double dreadHallucinationSoundMinInterval() { return DREAD_HALLUCINATION_SOUND_MIN_INTERVAL.get(); }
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.craisinlord.antarchy.neoforge;
|
||||
import com.craisinlord.antarchy.Antarchy;
|
||||
import com.craisinlord.antarchy.compat.infinity.InfinityCompat;
|
||||
import com.craisinlord.antarchy.compat.infinity.InfinityCompatVersion;
|
||||
import com.craisinlord.antarchy.content.AntarchyGameRules;
|
||||
import com.craisinlord.antarchy.content.AntarchyObjects;
|
||||
import com.craisinlord.antarchy.content.AntarchySoundEvents;
|
||||
import com.craisinlord.antarchy.content.item.BloodCrystalKatanaItem;
|
||||
@@ -16,7 +17,9 @@ import net.neoforged.fml.ModContainer;
|
||||
import net.neoforged.fml.ModList;
|
||||
import net.neoforged.fml.common.Mod;
|
||||
import net.neoforged.neoforge.network.PacketDistributor;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
|
||||
@Mod(Antarchy.MODID)
|
||||
@@ -25,6 +28,7 @@ public class AntarchyNeoforge {
|
||||
|
||||
public AntarchyNeoforge(IEventBus modEventBus, ModContainer modContainer) {
|
||||
modEventBusTempHolder = modEventBus;
|
||||
bootstrapGameRules();
|
||||
AntarchyConfigModuleNeoforge.init(modContainer);
|
||||
AntarchySoundEvents.bind(
|
||||
AntarchyNeoforgeSounds.SQUIDZOOKA_FIRE,
|
||||
@@ -214,7 +218,30 @@ public class AntarchyNeoforge {
|
||||
Antarchy.init();
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
private static void bootstrapGameRules() {
|
||||
AntarchyGameRules.bootstrap((name, category, defaultValue) -> {
|
||||
try {
|
||||
Method create = net.minecraft.world.level.GameRules.BooleanValue.class.getDeclaredMethod("create", boolean.class);
|
||||
create.setAccessible(true);
|
||||
net.minecraft.world.level.GameRules.Type<net.minecraft.world.level.GameRules.BooleanValue> type =
|
||||
(net.minecraft.world.level.GameRules.Type<net.minecraft.world.level.GameRules.BooleanValue>) create.invoke(null, defaultValue);
|
||||
Method register = net.minecraft.world.level.GameRules.class.getDeclaredMethod(
|
||||
"register",
|
||||
String.class,
|
||||
net.minecraft.world.level.GameRules.Category.class,
|
||||
net.minecraft.world.level.GameRules.Type.class
|
||||
);
|
||||
register.setAccessible(true);
|
||||
return (net.minecraft.world.level.GameRules.Key<net.minecraft.world.level.GameRules.BooleanValue>) register.invoke(null, name, category, type);
|
||||
} catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
|
||||
throw new IllegalStateException("Failed to register boolean gamerule " + name, e);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private static void bindCommonObjects() {
|
||||
com.craisinlord.antarchy.content.entity.UpwardFallingBlockEntity.TYPE = AntarchyNeoforgeEntites.UPWARD_FALLING_BLOCK;
|
||||
PermanentPortalType.bindBlocks(
|
||||
() -> AntarchyNeoforgeBlocks.MOSSY_OURANWOOD_WOOD.get(),
|
||||
() -> AntarchyNeoforgeBlocks.ELYTHIA_PORTAL.get(),
|
||||
|
||||
@@ -100,12 +100,12 @@ public final class AntarchyToolsConfig {
|
||||
private static final ModConfigSpec.DoubleValue SCORPION_WHIP_REACH_BONUS;
|
||||
private static final ModConfigSpec.IntValue SCORPION_WHIP_POISON_DURATION_TICKS;
|
||||
private static final ModConfigSpec.DoubleValue SCORPION_WHIP_TETHER_MAX_RANGE;
|
||||
private static final ModConfigSpec.IntValue SCORPION_WHIP_REEL_COOLDOWN_TICKS;
|
||||
private static final ModConfigSpec.DoubleValue SCORPION_WHIP_SNAP_BONUS_DAMAGE;
|
||||
private static final ModConfigSpec.IntValue SCORPION_WHIP_SNAP_COOLDOWN_TICKS;
|
||||
private static final ModConfigSpec.DoubleValue SCORPION_WHIP_PULL_STRENGTH;
|
||||
private static final ModConfigSpec.DoubleValue SCORPION_WHIP_HEAVY_PULL_MULTIPLIER;
|
||||
private static final ModConfigSpec.DoubleValue SCORPION_WHIP_SELF_PULL_MULTIPLIER;
|
||||
private static final ModConfigSpec.IntValue SCORPION_WHIP_REEL_COOLDOWN_TICKS;
|
||||
private static final ModConfigSpec.IntValue SCORPION_WHIP_SNAP_COOLDOWN_TICKS;
|
||||
private static final ModConfigSpec.IntValue BLOOD_CRYSTAL_KATANA_ATTACK_DAMAGE;
|
||||
private static final ModConfigSpec.DoubleValue BLOOD_CRYSTAL_KATANA_LAUNCH_STRENGTH;
|
||||
private static final ModConfigSpec.IntValue BLOOD_CRYSTAL_KATANA_TRAIL_DURATION_TICKS;
|
||||
@@ -122,8 +122,8 @@ public final class AntarchyToolsConfig {
|
||||
private static final ModConfigSpec.DoubleValue NIGHTMARE_LEGGINGS_ARMOR_TOUGHNESS;
|
||||
private static final ModConfigSpec.DoubleValue NIGHTMARE_BOOTS_ARMOR_TOUGHNESS;
|
||||
private static final ModConfigSpec.DoubleValue NIGHTMARE_ARMOR_KNOCKBACK_RESISTANCE;
|
||||
private static final ModConfigSpec.DoubleValue NIGHTMARE_ARMOR_DREAD_AURA_RANGE_PER_PIECE;
|
||||
private static final ModConfigSpec.DoubleValue PRIMORDIAL_ARMOR_KNOCKBACK_PER_PIECE;
|
||||
private static final ModConfigSpec.DoubleValue NIGHTMARE_ARMOR_DREAD_AURA_RANGE_PER_PIECE;
|
||||
private static final ModConfigSpec.DoubleValue NIGHTMARE_SWORD_BASE_DAMAGE;
|
||||
private static final ModConfigSpec.DoubleValue NIGHTMARE_SWORD_ATTACK_SPEED;
|
||||
private static final ModConfigSpec.DoubleValue NIGHTMARE_SWORD_SCALING_FACTOR;
|
||||
@@ -212,11 +212,11 @@ public final class AntarchyToolsConfig {
|
||||
private static final ModConfigSpec.IntValue AMERICAN_REGENERATION_AMPLIFIER;
|
||||
|
||||
// Moggles
|
||||
|
||||
private static final ModConfigSpec.IntValue MOGGLES_VISION_RADIUS;
|
||||
private static final ModConfigSpec.DoubleValue MOGGLES_VISION_RADIUS;
|
||||
private static final ModConfigSpec.IntValue MOGGLES_VISION_MAX_LIGHT;
|
||||
private static final ModConfigSpec.DoubleValue MOGGLES_VISION_ALPHA;
|
||||
|
||||
|
||||
static {
|
||||
ModConfigSpec.Builder b = new ModConfigSpec.Builder();
|
||||
|
||||
@@ -346,12 +346,12 @@ public final class AntarchyToolsConfig {
|
||||
SCORPION_WHIP_REACH_BONUS = b.comment("Extra entity interaction range in blocks while held in main hand.").defineInRange("reachBonus", 5.0D, 0.0D, 32.0D);
|
||||
SCORPION_WHIP_POISON_DURATION_TICKS = b.comment("Poison duration applied on lash.").defineInRange("poisonDurationTicks", 100, 0, 20000);
|
||||
SCORPION_WHIP_TETHER_MAX_RANGE = b.comment("Maximum tether distance before it breaks.").defineInRange("tetherMaxRange", 10.0D, 0.0D, 128.0D);
|
||||
SCORPION_WHIP_REEL_COOLDOWN_TICKS = b.comment("Cooldown in ticks between reel pulls.").defineInRange("reelCooldownTicks", 10, 0, 20000);
|
||||
SCORPION_WHIP_SNAP_BONUS_DAMAGE = b.comment("Bonus damage dealt when snapping the tether free.").defineInRange("snapBonusDamage", 6.0D, 0.0D, 4096.0D);
|
||||
SCORPION_WHIP_SNAP_COOLDOWN_TICKS = b.comment("Cooldown in ticks after a snap release.").defineInRange("snapCooldownTicks", 30, 0, 20000);
|
||||
SCORPION_WHIP_PULL_STRENGTH = b.comment("Pull strength applied to normal tethered targets.").defineInRange("pullStrength", 0.75D, 0.0D, 8.0D);
|
||||
SCORPION_WHIP_HEAVY_PULL_MULTIPLIER = b.comment("Reduced pull strength applied to heavy targets.").defineInRange("heavyPullMultiplier", 0.25D, 0.0D, 8.0D);
|
||||
SCORPION_WHIP_SELF_PULL_MULTIPLIER = b.comment("Self-pull strength toward heavy tethered targets.").defineInRange("selfPullMultiplier", 0.45D, 0.0D, 8.0D);
|
||||
SCORPION_WHIP_REEL_COOLDOWN_TICKS = b.comment("Cooldown after reeling with the whip, in ticks.").defineInRange("reelCooldownTicks", 10, 0, 72000);
|
||||
SCORPION_WHIP_SNAP_COOLDOWN_TICKS = b.comment("Cooldown after snapping the whip, in ticks.").defineInRange("snapCooldownTicks", 30, 0, 72000);
|
||||
b.pop();
|
||||
|
||||
b.push("bloodCrystalKatana");
|
||||
@@ -373,13 +373,8 @@ public final class AntarchyToolsConfig {
|
||||
NIGHTMARE_LEGGINGS_ARMOR_TOUGHNESS = b.comment("Armor toughness of the Nightmare Leggings.") .defineInRange("leggingsToughness", 3.0D, 0.0D, 100.0D);
|
||||
NIGHTMARE_BOOTS_ARMOR_TOUGHNESS = b.comment("Armor toughness of the Nightmare Boots.") .defineInRange("bootsToughness", 3.0D, 0.0D, 100.0D);
|
||||
NIGHTMARE_ARMOR_KNOCKBACK_RESISTANCE = b.comment("Knockback resistance granted by each Nightmare Armor piece.") .defineInRange("knockbackResistance", 0.1D, 0.0D, 1.0D);
|
||||
NIGHTMARE_ARMOR_DREAD_AURA_RANGE_PER_PIECE = b
|
||||
.comment(
|
||||
"Dread Aura radius added per Nightmare Armor piece worn.",
|
||||
"Full set (4 pieces) gives 5.0 blocks by default."
|
||||
)
|
||||
.defineInRange("dreadAuraRangePerPiece", 1.25D, 0.0D, 64.0D);
|
||||
PRIMORDIAL_ARMOR_KNOCKBACK_PER_PIECE = b.comment("Attack knockback added by each Primordial Armor piece.") .defineInRange("primordialArmorKnockbackPerPiece", 0.5D, 0.0D, 16.0D);
|
||||
NIGHTMARE_ARMOR_DREAD_AURA_RANGE_PER_PIECE = b.comment("Additional Dread aura range added by each Nightmare armor piece.").defineInRange("dreadAuraRangePerPiece", 2.0D, 0.0D, 64.0D);
|
||||
b.pop();
|
||||
|
||||
b.push("nightmareSword");
|
||||
@@ -531,9 +526,9 @@ public final class AntarchyToolsConfig {
|
||||
b.pop();
|
||||
|
||||
b.push("moggles");
|
||||
MOGGLES_VISION_RADIUS = b.comment("Radius in blocks of the see-through effect (cube side = 2r+1).").defineInRange("visionRadius", 2, 1, 16);
|
||||
MOGGLES_VISION_MAX_LIGHT = b.comment("Maximum block light level where Moggles vision activates.") .defineInRange("visionMaxLight", 7, 0, 15);
|
||||
MOGGLES_VISION_ALPHA = b.comment("Alpha of blocks made visible by Moggles. 0 = invisible, 1 = opaque.").defineInRange("visionAlpha", 0.35D, 0.05D, 1.0D);
|
||||
MOGGLES_VISION_RADIUS = b.comment("Radius used by Moggles cave detection.").defineInRange("visionRadius", 20.0D, 1.0D, 128.0D);
|
||||
MOGGLES_VISION_MAX_LIGHT = b.comment("Maximum block light level counted as dark enough for Moggles.").defineInRange("visionMaxLight", 7, 0, 15);
|
||||
MOGGLES_VISION_ALPHA = b.comment("Overlay alpha used by Moggles vision rendering.").defineInRange("visionAlpha", 0.65D, 0.0D, 1.0D);
|
||||
b.pop();
|
||||
|
||||
SPEC = b.build();
|
||||
@@ -613,12 +608,12 @@ public final class AntarchyToolsConfig {
|
||||
static double scorpionWhipReachBonus() { return SCORPION_WHIP_REACH_BONUS.get(); }
|
||||
static int scorpionWhipPoisonDurationTicks() { return SCORPION_WHIP_POISON_DURATION_TICKS.get(); }
|
||||
static double scorpionWhipTetherMaxRange() { return SCORPION_WHIP_TETHER_MAX_RANGE.get(); }
|
||||
static int scorpionWhipReelCooldownTicks() { return SCORPION_WHIP_REEL_COOLDOWN_TICKS.get(); }
|
||||
static double scorpionWhipSnapBonusDamage() { return SCORPION_WHIP_SNAP_BONUS_DAMAGE.get(); }
|
||||
static int scorpionWhipSnapCooldownTicks() { return SCORPION_WHIP_SNAP_COOLDOWN_TICKS.get(); }
|
||||
static double scorpionWhipPullStrength() { return SCORPION_WHIP_PULL_STRENGTH.get(); }
|
||||
static double scorpionWhipHeavyPullMultiplier() { return SCORPION_WHIP_HEAVY_PULL_MULTIPLIER.get(); }
|
||||
static double scorpionWhipSelfPullMultiplier() { return SCORPION_WHIP_SELF_PULL_MULTIPLIER.get(); }
|
||||
static int scorpionWhipReelCooldownTicks() { return SCORPION_WHIP_REEL_COOLDOWN_TICKS.get(); }
|
||||
static int scorpionWhipSnapCooldownTicks() { return SCORPION_WHIP_SNAP_COOLDOWN_TICKS.get(); }
|
||||
static int bloodCrystalKatanaAttackDamage() { return BLOOD_CRYSTAL_KATANA_ATTACK_DAMAGE.get(); }
|
||||
static double bloodCrystalKatanaLaunchStrength() { return BLOOD_CRYSTAL_KATANA_LAUNCH_STRENGTH.get(); }
|
||||
static int bloodCrystalKatanaTrailDurationTicks() { return BLOOD_CRYSTAL_KATANA_TRAIL_DURATION_TICKS.get(); }
|
||||
@@ -632,8 +627,8 @@ public final class AntarchyToolsConfig {
|
||||
static double nightmareLeggingsArmorToughness() { return NIGHTMARE_LEGGINGS_ARMOR_TOUGHNESS.get(); }
|
||||
static double nightmareBootsArmorToughness() { return NIGHTMARE_BOOTS_ARMOR_TOUGHNESS.get(); }
|
||||
static double nightmareArmorKnockbackResistance() { return NIGHTMARE_ARMOR_KNOCKBACK_RESISTANCE.get(); }
|
||||
static double nightmareArmorDreadAuraRangePerPiece() { return NIGHTMARE_ARMOR_DREAD_AURA_RANGE_PER_PIECE.get(); }
|
||||
static double primordialArmorKnockbackPerPiece() { return PRIMORDIAL_ARMOR_KNOCKBACK_PER_PIECE.get(); }
|
||||
static double nightmareArmorDreadAuraRangePerPiece() { return NIGHTMARE_ARMOR_DREAD_AURA_RANGE_PER_PIECE.get(); }
|
||||
static double nightmareSwordBaseDamage() { return NIGHTMARE_SWORD_BASE_DAMAGE.get(); }
|
||||
static double nightmareSwordAttackSpeed() { return NIGHTMARE_SWORD_ATTACK_SPEED.get(); }
|
||||
static double nightmareSwordScalingFactor() { return NIGHTMARE_SWORD_SCALING_FACTOR.get(); }
|
||||
@@ -699,9 +694,9 @@ public final class AntarchyToolsConfig {
|
||||
static double americanBonusSaturation() { return AMERICAN_BONUS_SATURATION.get(); }
|
||||
static int americanRegenerationDurationTicks() { return AMERICAN_REGENERATION_DURATION_TICKS.get(); }
|
||||
static int americanRegenerationAmplifier() { return AMERICAN_REGENERATION_AMPLIFIER.get(); }
|
||||
|
||||
static int mogglesVisionRadius() { return MOGGLES_VISION_RADIUS.get(); }
|
||||
static double mogglesVisionRadius() { return MOGGLES_VISION_RADIUS.get(); }
|
||||
static int mogglesVisionMaxLight() { return MOGGLES_VISION_MAX_LIGHT.get(); }
|
||||
static float mogglesVisionAlpha() { return MOGGLES_VISION_ALPHA.get().floatValue(); }
|
||||
static double mogglesVisionAlpha() { return MOGGLES_VISION_ALPHA.get(); }
|
||||
|
||||
|
||||
}
|
||||
+13
@@ -37,6 +37,14 @@ public final class AntarchyKeyBindings {
|
||||
CATEGORY
|
||||
);
|
||||
|
||||
public static final KeyMapping HERCULES_BEETLE_FLIGHT_TOGGLE = new KeyMapping(
|
||||
"key.antarchy.hercules_beetle_flight_toggle",
|
||||
KeyConflictContext.IN_GAME,
|
||||
InputConstants.Type.KEYSYM,
|
||||
InputConstants.KEY_R,
|
||||
CATEGORY
|
||||
);
|
||||
|
||||
private AntarchyKeyBindings() {}
|
||||
|
||||
@SubscribeEvent
|
||||
@@ -44,5 +52,10 @@ public final class AntarchyKeyBindings {
|
||||
event.register(BRUTALFLY_FLAP);
|
||||
event.register(DORRIE_CHARGE_JUMP);
|
||||
event.register(HERCULES_BEETLE_CHARGE);
|
||||
event.register(HERCULES_BEETLE_FLIGHT_TOGGLE);
|
||||
}
|
||||
|
||||
public static boolean isHerculesBeetleFlightTogglePressed() {
|
||||
return HERCULES_BEETLE_FLIGHT_TOGGLE.isDown();
|
||||
}
|
||||
}
|
||||
+20
@@ -210,6 +210,10 @@ public final class AntarchyNeoForgeClient {
|
||||
|
||||
@SubscribeEvent
|
||||
public static void registerBlockColors(RegisterColorHandlersEvent.Block event) {
|
||||
event.register(
|
||||
(state, level, pos, tintIndex) -> tintIndex == 0 ? bluestoneWireColor(state.getValue(com.craisinlord.antarchy.content.block.BluestoneWireBlock.POWER)) : -1,
|
||||
AntarchyNeoforgeBlocks.BLUESTONE_WIRE.get()
|
||||
);
|
||||
event.register(
|
||||
(state, level, pos, tintIndex) -> level != null && pos != null
|
||||
? BiomeColors.getAverageFoliageColor(level, pos)
|
||||
@@ -236,6 +240,10 @@ public final class AntarchyNeoForgeClient {
|
||||
|
||||
@SubscribeEvent
|
||||
public static void registerItemColors(RegisterColorHandlersEvent.Item event) {
|
||||
event.register(
|
||||
(stack, tintIndex) -> tintIndex == 0 ? bluestoneWireColor(15) : -1,
|
||||
AntarchyNeoforgeItems.BLUESTONE_DUST.get()
|
||||
);
|
||||
event.register(
|
||||
(stack, tintIndex) -> FoliageColor.getDefaultColor(),
|
||||
AntarchyNeoforgeItems.OURANWOOD_LEAVES_ITEM.get()
|
||||
@@ -579,6 +587,10 @@ public final class AntarchyNeoForgeClient {
|
||||
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.BLOOD_CRYSTAL_CRYSTAL.get(), RenderType.cutout());
|
||||
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.DREAM_TORCH.get(), RenderType.cutout());
|
||||
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.DREAM_WALL_TORCH.get(), RenderType.cutout());
|
||||
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.BLUESTONE_WIRE.get(), RenderType.cutout());
|
||||
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.BLUESTONE_REPEATER.get(), RenderType.cutout());
|
||||
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.BLUESTONE_COMPARATOR.get(), RenderType.cutout());
|
||||
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.BLUESTONE_TORCH.get(), RenderType.cutout());
|
||||
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.DREAM_LANTERN.get(), RenderType.cutout());
|
||||
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.DREAM_CAMPFIRE.get(), RenderType.cutout());
|
||||
ItemBlockRenderTypes.setRenderLayer(AntarchyNeoforgeBlocks.DREAM_FIRE.get(), RenderType.cutout());
|
||||
@@ -703,4 +715,12 @@ public final class AntarchyNeoForgeClient {
|
||||
}
|
||||
}, item);
|
||||
}
|
||||
|
||||
private static int bluestoneWireColor(int power) {
|
||||
float normalized = power / 15.0F;
|
||||
int red = (int) (6.0F + normalized * 54.0F);
|
||||
int green = (int) (22.0F + normalized * 132.0F);
|
||||
int blue = (int) (64.0F + normalized * 191.0F);
|
||||
return red << 16 | green << 8 | blue;
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -36,7 +36,7 @@ public final class HerculesBeetleChargeHudRenderer {
|
||||
int width = mc.getWindow().getGuiScaledWidth();
|
||||
int height = mc.getWindow().getGuiScaledHeight();
|
||||
int x0 = width / 2 - BAR_WIDTH / 2;
|
||||
int y0 = height - 39;
|
||||
int y0 = height - 29;
|
||||
float chargeRatio = Mth.clamp(charge / 100.0F, 0.0F, 1.0F);
|
||||
int filledWidth = Mth.clamp((int) (chargeRatio * BAR_WIDTH), 0, BAR_WIDTH);
|
||||
|
||||
|
||||
+9
@@ -5,6 +5,7 @@ import com.craisinlord.antarchy.content.client.CameraShakeClientState;
|
||||
import com.craisinlord.antarchy.content.client.HerculesBeetleImpactShakeClientState;
|
||||
import com.craisinlord.antarchy.content.client.HordeClientState;
|
||||
import com.craisinlord.antarchy.content.entity.HerculesBeetleEntity;
|
||||
import com.craisinlord.antarchy.content.network.HerculesBeetleFlightTogglePayload;
|
||||
import com.craisinlord.antarchy.content.network.HerculesBeetleJumpInputPayload;
|
||||
import com.craisinlord.antarchy.content.network.HerculesBeetleMountedAttackPayload;
|
||||
import com.craisinlord.antarchy.content.network.HerculesBeetleMountedChargePayload;
|
||||
@@ -21,6 +22,7 @@ public final class HerculesBeetleClientHandler {
|
||||
private static boolean wasPressingJump;
|
||||
private static boolean wasPressingAttack;
|
||||
private static boolean wasCharging;
|
||||
private static boolean wasPressingFlightToggle;
|
||||
|
||||
private HerculesBeetleClientHandler() {
|
||||
}
|
||||
@@ -60,6 +62,12 @@ public final class HerculesBeetleClientHandler {
|
||||
PacketDistributor.sendToServer(new HerculesBeetleMountedChargePayload(charging));
|
||||
}
|
||||
wasCharging = charging;
|
||||
|
||||
boolean pressingFlightToggle = AntarchyKeyBindings.HERCULES_BEETLE_FLIGHT_TOGGLE.isDown();
|
||||
if (pressingFlightToggle && !wasPressingFlightToggle) {
|
||||
PacketDistributor.sendToServer(new HerculesBeetleFlightTogglePayload());
|
||||
}
|
||||
wasPressingFlightToggle = pressingFlightToggle;
|
||||
}
|
||||
|
||||
private static void resetAll() {
|
||||
@@ -69,5 +77,6 @@ public final class HerculesBeetleClientHandler {
|
||||
}
|
||||
wasPressingAttack = false;
|
||||
wasCharging = false;
|
||||
wasPressingFlightToggle = false;
|
||||
}
|
||||
}
|
||||
+16
@@ -2,6 +2,7 @@ package com.craisinlord.antarchy.neoforge.network;
|
||||
|
||||
import com.craisinlord.antarchy.content.client.HerculesBeetleImpactShakeClientState;
|
||||
import com.craisinlord.antarchy.content.entity.HerculesBeetleEntity;
|
||||
import com.craisinlord.antarchy.content.network.HerculesBeetleFlightTogglePayload;
|
||||
import com.craisinlord.antarchy.content.network.HerculesBeetleImpactShakePayload;
|
||||
import com.craisinlord.antarchy.content.network.HerculesBeetleJumpInputPayload;
|
||||
import com.craisinlord.antarchy.content.network.HerculesBeetleMountedAttackPayload;
|
||||
@@ -19,6 +20,10 @@ public final class HerculesBeetleNetworking {
|
||||
HerculesBeetleJumpInputPayload.TYPE,
|
||||
HerculesBeetleJumpInputPayload.STREAM_CODEC,
|
||||
HerculesBeetleNetworking::handleJumpInput
|
||||
).playToServer(
|
||||
HerculesBeetleFlightTogglePayload.TYPE,
|
||||
HerculesBeetleFlightTogglePayload.STREAM_CODEC,
|
||||
HerculesBeetleNetworking::handleFlightToggle
|
||||
).playToServer(
|
||||
HerculesBeetleMountedAttackPayload.TYPE,
|
||||
HerculesBeetleMountedAttackPayload.STREAM_CODEC,
|
||||
@@ -56,6 +61,17 @@ public final class HerculesBeetleNetworking {
|
||||
});
|
||||
}
|
||||
|
||||
private static void handleFlightToggle(HerculesBeetleFlightTogglePayload payload, IPayloadContext context) {
|
||||
context.enqueueWork(() -> {
|
||||
if (!(context.player() instanceof ServerPlayer player)) {
|
||||
return;
|
||||
}
|
||||
if (player.getVehicle() instanceof HerculesBeetleEntity beetle) {
|
||||
beetle.toggleMountedFlight(player);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private static void handleMountedCharge(HerculesBeetleMountedChargePayload payload, IPayloadContext context) {
|
||||
context.enqueueWork(() -> {
|
||||
if (!(context.player() instanceof ServerPlayer player)) {
|
||||
|
||||
+23
@@ -313,6 +313,8 @@ public final class AntarchyNeoforgeBlocks {
|
||||
() -> new DreamTorchBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SOUL_TORCH)));
|
||||
public static final DeferredBlock<DreamWallTorchBlock> DREAM_WALL_TORCH = BLOCKS.register("dream_wall_torch",
|
||||
() -> new DreamWallTorchBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SOUL_WALL_TORCH)));
|
||||
public static final DeferredBlock<com.craisinlord.antarchy.content.block.DreamCeilingTorchBlock> DREAM_CEILING_TORCH = BLOCKS.register("dream_ceiling_torch",
|
||||
() -> new com.craisinlord.antarchy.content.block.DreamCeilingTorchBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SOUL_TORCH)));
|
||||
public static final DeferredBlock<LanternBlock> DREAM_LANTERN = BLOCKS.register("dream_lantern",
|
||||
() -> new LanternBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.SOUL_LANTERN)));
|
||||
public static final DeferredBlock<DreamCampfireBlock> DREAM_CAMPFIRE = BLOCKS.register("dream_campfire",
|
||||
@@ -390,6 +392,18 @@ public final class AntarchyNeoforgeBlocks {
|
||||
() -> createOre(Blocks.DIAMOND_ORE, 4, 8, MapColor.COLOR_LIGHT_BLUE));
|
||||
public static final DeferredBlock<Block> DEEPSLATE_TITANIUM_ORE = BLOCKS.register("deepslate_titanium_ore",
|
||||
() -> createOre(Blocks.DEEPSLATE_DIAMOND_ORE, 4, 8, MapColor.COLOR_LIGHT_BLUE));
|
||||
public static final DeferredBlock<BluestoneOreBlock> BLUESTONE_ORE = BLOCKS.register("bluestone_ore",
|
||||
() -> new BluestoneOreBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.REDSTONE_ORE).mapColor(MapColor.COLOR_BLUE)));
|
||||
public static final DeferredBlock<BluestoneWireBlock> BLUESTONE_WIRE = BLOCKS.register("bluestone_wire",
|
||||
() -> new BluestoneWireBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.REDSTONE_WIRE).mapColor(MapColor.COLOR_BLUE).noCollission().instabreak()));
|
||||
public static final DeferredBlock<BluestoneBlock> BLUESTONE_BLOCK = BLOCKS.register("bluestone_block",
|
||||
() -> new BluestoneBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.REDSTONE_BLOCK).mapColor(MapColor.COLOR_BLUE)));
|
||||
public static final DeferredBlock<BluestoneRepeaterBlock> BLUESTONE_REPEATER = BLOCKS.register("bluestone_repeater",
|
||||
() -> new BluestoneRepeaterBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.REPEATER).mapColor(MapColor.COLOR_BLUE).noCollission()));
|
||||
public static final DeferredBlock<BluestoneComparatorBlock> BLUESTONE_COMPARATOR = BLOCKS.register("bluestone_comparator",
|
||||
() -> new BluestoneComparatorBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.COMPARATOR).mapColor(MapColor.COLOR_BLUE).noCollission(), AntarchyNeoforgeBlocks::bluestoneComparatorBlockEntityType));
|
||||
public static final DeferredBlock<BluestoneTorchBlock> BLUESTONE_TORCH = BLOCKS.register("bluestone_torch",
|
||||
() -> new BluestoneTorchBlock(BlockBehaviour.Properties.ofFullCopy(Blocks.REDSTONE_TORCH).mapColor(MapColor.COLOR_BLUE).lightLevel(state -> state.getValue(BluestoneTorchBlock.LIT) ? 7 : 0).noCollission().instabreak()));
|
||||
public static final DeferredBlock<Block> URANIUM_BLOCK = BLOCKS.register("uranium_block",
|
||||
() -> createStorageBlock(Blocks.EMERALD_BLOCK, MapColor.COLOR_YELLOW));
|
||||
public static final DeferredBlock<Block> TITANIUM_BLOCK = BLOCKS.register("titanium_block",
|
||||
@@ -551,6 +565,11 @@ public final class AntarchyNeoforgeBlocks {
|
||||
CritterCageBlockEntity::new,
|
||||
CRITTER_CAGE_BLOCK.get()
|
||||
).build(null));
|
||||
public static final DeferredHolder<BlockEntityType<?>, BlockEntityType<com.craisinlord.antarchy.content.block.entity.BluestoneComparatorBlockEntity>> BLUESTONE_COMPARATOR_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("bluestone_comparator",
|
||||
() -> BlockEntityType.Builder.of(
|
||||
(pos, state) -> new com.craisinlord.antarchy.content.block.entity.BluestoneComparatorBlockEntity(pos, state, AntarchyNeoforgeBlocks::bluestoneComparatorBlockEntityType),
|
||||
BLUESTONE_COMPARATOR.get()
|
||||
).build(null));
|
||||
|
||||
private AntarchyNeoforgeBlocks() {}
|
||||
|
||||
@@ -610,6 +629,10 @@ public final class AntarchyNeoforgeBlocks {
|
||||
return BLOOD_CRYSTAL_CRYSTAL.get();
|
||||
}
|
||||
|
||||
private static BlockEntityType<com.craisinlord.antarchy.content.block.entity.BluestoneComparatorBlockEntity> bluestoneComparatorBlockEntityType() {
|
||||
return BLUESTONE_COMPARATOR_BLOCK_ENTITY.get();
|
||||
}
|
||||
|
||||
|
||||
private static final class SimpleHorizontalFacingBlock extends HorizontalDirectionalBlock {
|
||||
private static final MapCodec<SimpleHorizontalFacingBlock> CODEC = simpleCodec(SimpleHorizontalFacingBlock::new);
|
||||
|
||||
+1
-2
@@ -1,8 +1,7 @@
|
||||
package com.craisinlord.antarchy.neoforge.registry;
|
||||
|
||||
import com.craisinlord.antarchy.Antarchy;
|
||||
import com.craisinlord.antarchy.content.CreativeTabContents;
|
||||
import com.craisinlord.antarchy.content.CreativeTabOrder;
|
||||
import com.craisinlord.antarchy.content.creative.CreativeTabContents;
|
||||
import net.minecraft.core.registries.Registries;
|
||||
import net.minecraft.world.item.*;
|
||||
import net.neoforged.bus.api.IEventBus;
|
||||
|
||||
+15
-3
@@ -221,6 +221,18 @@ public final class AntarchyNeoforgeItems {
|
||||
() -> 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> DEEPSLATE_TITANIUM_ORE_ITEM = ITEMS.register("deepslate_titanium_ore",
|
||||
() -> new net.minecraft.world.item.BlockItem(AntarchyNeoforgeBlocks.DEEPSLATE_TITANIUM_ORE.get(), new Item.Properties().rarity(Rarity.UNCOMMON)));
|
||||
public static final DeferredItem<Item> BLUESTONE_DUST = ITEMS.register("bluestone",
|
||||
() -> new BluestoneDustItem(AntarchyNeoforgeBlocks.BLUESTONE_WIRE.get(), new Item.Properties()));
|
||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> BLUESTONE_ORE_ITEM = ITEMS.register("bluestone_ore",
|
||||
() -> new net.minecraft.world.item.BlockItem(AntarchyNeoforgeBlocks.BLUESTONE_ORE.get(), new Item.Properties()));
|
||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> BLUESTONE_BLOCK_ITEM = ITEMS.register("bluestone_block",
|
||||
() -> new net.minecraft.world.item.BlockItem(AntarchyNeoforgeBlocks.BLUESTONE_BLOCK.get(), new Item.Properties()));
|
||||
public static final DeferredItem<CeilingPlacementTooltipBlockItem> BLUESTONE_REPEATER_ITEM = ITEMS.register("bluestone_repeater",
|
||||
() -> new CeilingPlacementTooltipBlockItem(AntarchyNeoforgeBlocks.BLUESTONE_REPEATER.get(), new Item.Properties()));
|
||||
public static final DeferredItem<CeilingPlacementTooltipBlockItem> BLUESTONE_COMPARATOR_ITEM = ITEMS.register("bluestone_comparator",
|
||||
() -> new CeilingPlacementTooltipBlockItem(AntarchyNeoforgeBlocks.BLUESTONE_COMPARATOR.get(), new Item.Properties()));
|
||||
public static final DeferredItem<CeilingPlacementTooltipBlockItem> BLUESTONE_TORCH_ITEM = ITEMS.register("bluestone_torch",
|
||||
() -> new CeilingPlacementTooltipBlockItem(AntarchyNeoforgeBlocks.BLUESTONE_TORCH.get(), new Item.Properties()));
|
||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> URANIUM_BLOCK_ITEM = ITEMS.register("uranium_block",
|
||||
() -> 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> TITANIUM_BLOCK_ITEM = ITEMS.register("titanium_block",
|
||||
@@ -367,8 +379,8 @@ public final class AntarchyNeoforgeItems {
|
||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> CREEPVINE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.CREEPVINE);
|
||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> BLUSH_MOSS_BLOCK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BLUSH_MOSS_BLOCK);
|
||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> BLUSH_MOSS_CARPET_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.BLUSH_MOSS_CARPET);
|
||||
public static final DeferredItem<StandingAndWallBlockItem> DREAM_TORCH_ITEM = ITEMS.register("dream_torch",
|
||||
() -> new StandingAndWallBlockItem(AntarchyNeoforgeBlocks.DREAM_TORCH.get(), AntarchyNeoforgeBlocks.DREAM_WALL_TORCH.get(), new Item.Properties(), net.minecraft.core.Direction.UP));
|
||||
public static final DeferredItem<com.craisinlord.antarchy.content.item.DreamTorchItem> DREAM_TORCH_ITEM = ITEMS.register("dream_torch",
|
||||
() -> new com.craisinlord.antarchy.content.item.DreamTorchItem(AntarchyNeoforgeBlocks.DREAM_TORCH.get(), AntarchyNeoforgeBlocks.DREAM_WALL_TORCH.get(), AntarchyNeoforgeBlocks.DREAM_CEILING_TORCH.get(), new Item.Properties()));
|
||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> DREAM_LANTERN_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.DREAM_LANTERN);
|
||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> DREAM_CAMPFIRE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.DREAM_CAMPFIRE);
|
||||
public static final DeferredItem<net.minecraft.world.item.BlockItem> LUMEN_FROGLIGHT_ITEM = ITEMS.registerSimpleBlockItem(AntarchyNeoforgeBlocks.LUMEN_FROGLIGHT);
|
||||
@@ -422,7 +434,7 @@ public final class AntarchyNeoforgeItems {
|
||||
-2.2F
|
||||
));
|
||||
public static final DeferredItem<MantisClawItem> MANTIS_CLAW = ITEMS.register("mantis_claw",
|
||||
() -> new MantisClawItem(Tiers.IRON, new Item.Properties().stacksTo(1).rarity(Rarity.UNCOMMON)));
|
||||
() -> new MantisClawItem(Tiers.IRON, new Item.Properties().stacksTo(1).durability(50).rarity(Rarity.UNCOMMON)));
|
||||
public static final DeferredItem<Item> HERCULES_HORN = ITEMS.registerSimpleItem("hercules_horn", new Item.Properties().rarity(Rarity.UNCOMMON));
|
||||
public static final DeferredItem<Item> KING_SCALE = ITEMS.register("king_scale",
|
||||
() -> new MobComingSoonTooltipItem(new Item.Properties().rarity(Rarity.RARE)));
|
||||
|
||||
Reference in new issue
Block a user