1.20 backport

This commit is contained in:
craisinlord committed 2026-10-14 17:39:56 -05:00
1 parent f7e7bebac3
commit d54264c6c8
4681 files changed
+61551 -78441

No files matched your search

+25 -16
View File
@@ -17,19 +17,17 @@ java {
repositories {
mavenCentral()
maven { url = 'https://maven.minecraftforge.net' }
maven { url = 'https://maven.architectury.dev/' }
maven { url = 'https://maven.parchmentmc.org' }
maven { url = 'https://repo.spongepowered.org/repository/maven-public/' }
maven { url = 'https://www.cursemaven.com' }
maven { url = 'https://maven.blamejared.com' }
maven { url = 'https://jitpack.io' }
exclusiveContent {
forRepository {
maven {
name = "GeckoLib"
url = "https://dl.cloudsmith.io/public/geckolib3/geckolib/maven/"
}
}
filter {
flatDir { dirs file('../anthology_jars'), file('../infinite_dimensions_jars'), file('../integrated_api_jars') }
maven {
name = "GeckoLib"
url = "https://dl.cloudsmith.io/public/geckolib3/geckolib/maven/"
content {
includeGroup("software.bernie.geckolib")
includeGroup("com.eliotlash.mclib")
}
@@ -71,6 +69,10 @@ minecraft {
}
server {
jvmArgs(
"-Dmixin.env.remapRefMap=true",
"-Dmixin.env.refMapRemappingFile=${projectDir}/build/createSrgToMcp/output.srg"
)
args '--nogui'
}
}
@@ -93,27 +95,34 @@ sourceSets {
dependencies {
minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}"
implementation "software.bernie.geckolib:geckolib-forge-${minecraft_version}:${geckolib_version}"
implementation fg.deobf("software.bernie.geckolib:geckolib-forge-${minecraft_version}:${geckolib_version}")
implementation fg.deobf("com.craisinlord:anthology:${anthology_version}+1.20.1-forge")
compileOnly("curse.maven:sizeable_foliage-${sizeable_foliage_curseforge_id}:${sizeable_foliage_curseforge_file_id_forge}")
runtimeOnly("curse.maven:sizeable_foliage-${sizeable_foliage_curseforge_id}:${sizeable_foliage_curseforge_file_id_forge}")
runtimeOnly fg.deobf("curse.maven:sizeable_foliage-${sizeable_foliage_curseforge_id}:${sizeable_foliage_curseforge_file_id_forge}")
compileOnly("curse.maven:intapi-${intapi_curseforge_id}:${intapi_curseforge_file_id_forge}")
runtimeOnly("curse.maven:intapi-${intapi_curseforge_id}:${intapi_curseforge_file_id_forge}")
compileOnly fg.deobf("blank:antos-forge-1.20.1:1.4.0")
runtimeOnly fg.deobf("blank:antos-forge-1.20.1:1.4.0")
compileOnly fg.deobf("blank:integrated_api-forge-1.20.1:1.9.1")
runtimeOnly(files("$rootDir/../integrated_api_jars/integrated_api-forge-1.20.1-1.9.1-dev-shadow.jar"))
compileOnly("curse.maven:pehkui-${pehkui_curseforge_id}:${pehkui_curseforge_file_id_forge}")
runtimeOnly("curse.maven:pehkui-${pehkui_curseforge_id}:${pehkui_curseforge_file_id_forge}")
runtimeOnly fg.deobf("curse.maven:pehkui-${pehkui_curseforge_id}:${pehkui_curseforge_file_id_forge}")
compileOnly(files("$rootDir/../infinite_dimensions_jars/infinity-2.7.2+1.20.1-forge.jar"))
runtimeOnly(files("$rootDir/../infinite_dimensions_jars/infinity-2.7.2+1.20.1-forge.jar"))
runtimeOnly fg.deobf("blank:infinity:2.7.2+1.20.1-forge")
runtimeOnly fg.deobf("dev.architectury:architectury-forge:9.2.14")
compileOnly "mezz.jei:jei-${minecraft_version}-common-api:${jei_version}"
compileOnly "mezz.jei:jei-${minecraft_version}-forge-api:${jei_version}"
runtimeOnly "mezz.jei:jei-${minecraft_version}-forge:${jei_version}"
runtimeOnly fg.deobf("mezz.jei:jei-${minecraft_version}-forge:${jei_version}")
annotationProcessor 'org.spongepowered:mixin:0.8.5:processor'
implementation(annotationProcessor("io.github.llamalad7:mixinextras-common:${mixin_extras}"))
compileOnly(annotationProcessor("io.github.llamalad7:mixinextras-common:${mixin_extras}"))
implementation "io.github.llamalad7:mixinextras-forge:${mixin_extras}"
}
mixin {
+2 -1
View File
@@ -17,7 +17,8 @@ parchment_version=2023.09.03-1.20.1
jei_version=15.20.0.104
geckolib_version=4.8.4
mixin_extras=0.5.0
mixin_extras=0.4.1
anthology_version=1.0.0
sizeable_foliage_curseforge_id=1601832
sizeable_foliage_curseforge_file_id_forge=8468688
@@ -1,10 +1,11 @@
package com.craisinlord.antarchy.forge;
import com.craisinlord.antarchy.config.AntarchySettings;
import com.craisinlord.antarchy.content.network.ImpactShakeSync;
import com.craisinlord.antarchy.config.ConfigResetGuard;
import com.craisinlord.antarchy.content.network.HerculesBeetleImpactShakePayload;
import com.craisinlord.antarchy.content.network.HerculesBeetleImpactShakeSync;
import com.craisinlord.antarchy.content.network.KingJudgmentFlashPayload;
import com.craisinlord.antarchy.content.network.KingJudgmentFlashSync;
import com.craisinlord.antarchy.content.network.HordeIntensitySync;
import java.nio.file.Path;
import net.minecraftforge.fml.loading.FMLPaths;
@@ -18,7 +19,7 @@ public final class AntarchyConfigModuleForge {
public static void init() {
Path configDir = FMLPaths.CONFIGDIR.get().resolve("antarchy");
ConfigResetGuard.wipeIfNeeded(
ConfigResetGuard.migrateIfNeeded(
configDir,
configDir.resolve("antarchy_mobs.toml"),
configDir.resolve("antarchy_tools.toml"),
@@ -28,7 +29,7 @@ public final class AntarchyConfigModuleForge {
ModLoadingContext.get().registerConfig(ModConfig.Type.COMMON, AntarchyToolsConfig.SPEC, "antarchy/antarchy_tools.toml");
ModLoadingContext.get().registerConfig(ModConfig.Type.COMMON, AntarchyMiscConfig.SPEC, "antarchy/antarchy_misc.toml");
HerculesBeetleImpactShakeSync.setSink((player, ticks) -> AntarchyForgeNetworkCore.sendToPlayer(player, new HerculesBeetleImpactShakePayload(ticks)));
ImpactShakeSync.setSink(AntarchyForgeNetworkCore::sendToPlayer);
KingJudgmentFlashSync.setSink((player, ticks) -> AntarchyForgeNetworkCore.sendToPlayer(player, new KingJudgmentFlashPayload(ticks)));
HordeIntensitySync.setSink(AntarchyForgeNetworkCore::sendToPlayer);
AntarchyForge.modEventBusTempHolder.addListener(AntarchyConfigModuleForge::onConfigChange);
}
@@ -96,16 +97,15 @@ public final class AntarchyConfigModuleForge {
AntarchySettings.setBomberExplosionDamage(AntarchyMobsConfig.bomberExplosionDamage());
AntarchySettings.setBomberExplosionRadius(AntarchyMobsConfig.bomberExplosionRadius());
AntarchySettings.setJumpyBugHealth(AntarchyMobsConfig.jumpyBugHealth());
AntarchySettings.setJumpyBugPounceDamage(AntarchyMobsConfig.jumpyBugPounceDamage());
AntarchySettings.setJumpyBugLatchDamage(AntarchyMobsConfig.jumpyBugLatchDamage());
AntarchySettings.setJumpyBugCamouflageAlpha(AntarchyMobsConfig.jumpyBugCamouflageAlpha());
AntarchySettings.setSpringbugHealth(AntarchyMobsConfig.springbugHealth());
AntarchySettings.setSpringbugPounceDamage(AntarchyMobsConfig.springbugPounceDamage());
AntarchySettings.setSpringbugCamouflageAlpha(AntarchyMobsConfig.springbugCamouflageAlpha());
AntarchySettings.setEmperorScorpionHealth(AntarchyMobsConfig.emperorScorpionHealth());
AntarchySettings.setEmperorScorpionAttackDamage(AntarchyMobsConfig.emperorScorpionAttackDamage());
AntarchySettings.setEmperorScorpionMovementSpeed(AntarchyMobsConfig.emperorScorpionMovementSpeed());
AntarchySettings.setEmperorScorpionArmor(AntarchyMobsConfig.emperorScorpionArmor());
AntarchySettings.setEmperorScorpionKnockbackResistance(AntarchyMobsConfig.emperorScorpionKnockbackResistance());
AntarchySettings.setEmperorScorpionMovementSpeed(AntarchyMobsConfig.emperorScorpionMovementSpeed());
AntarchySettings.setEmperorScorpionFollowRange(AntarchyMobsConfig.emperorScorpionFollowRange());
AntarchySettings.setEmperorScorpionXpReward(AntarchyMobsConfig.emperorScorpionXpReward());
AntarchySettings.setEmperorScorpionClawAnimTicks(AntarchyMobsConfig.emperorScorpionClawAnimTicks());
@@ -123,19 +123,108 @@ public final class AntarchyConfigModuleForge {
AntarchySettings.setEmperorScorpionDamageRange(AntarchyMobsConfig.emperorScorpionDamageRange());
AntarchySettings.setEmperorScorpionMinDespawnTicks(AntarchyMobsConfig.emperorScorpionMinDespawnTicks());
AntarchySettings.setScorpionHealth(AntarchyMobsConfig.scorpionHealth());
AntarchySettings.setScorpionAttackDamage(AntarchyMobsConfig.scorpionAttackDamage());
AntarchySettings.setScorpionMovementSpeed(AntarchyMobsConfig.scorpionMovementSpeed());
AntarchySettings.setScorpionArmor(AntarchyMobsConfig.scorpionArmor());
AntarchySettings.setScorpionKnockbackResistance(AntarchyMobsConfig.scorpionKnockbackResistance());
AntarchySettings.setKrakenHealth(AntarchyMobsConfig.krakenHealth());
AntarchySettings.setKrakenAttackDamage(AntarchyMobsConfig.krakenAttackDamage());
AntarchySettings.setKrakenArmor(AntarchyMobsConfig.krakenArmor());
AntarchySettings.setKrakenKnockbackResistance(AntarchyMobsConfig.krakenKnockbackResistance());
AntarchySettings.setKrakenMovementSpeed(AntarchyMobsConfig.krakenMovementSpeed());
AntarchySettings.setKrakenFlyingSpeed(AntarchyMobsConfig.krakenFlyingSpeed());
AntarchySettings.setKrakenBossBarRange(AntarchyMobsConfig.krakenBossBarRange());
AntarchySettings.setKrakenLightningDamagePhaseOne((float) AntarchyMobsConfig.krakenLightningDamagePhaseOne());
AntarchySettings.setKrakenSquidSpawnEnabled(AntarchyMobsConfig.krakenSquidSpawnEnabled());
AntarchySettings.setKrakenMassSpawnEnabled(AntarchyMobsConfig.krakenMassSpawnEnabled());
AntarchySettings.setKrakenRequireBadOmenToSummon(AntarchyMobsConfig.krakenRequireBadOmenToSummon());
AntarchySettings.setKrakenFollowRange(AntarchyMobsConfig.krakenFollowRange());
AntarchySettings.setKrakenDamageRange(AntarchyMobsConfig.krakenDamageRange());
AntarchySettings.setKrakenArmor(AntarchyMobsConfig.krakenArmor());
AntarchySettings.setKrakenKnockbackResistance(AntarchyMobsConfig.krakenKnockbackResistance());
AntarchySettings.setKrakenMovementSpeed(AntarchyMobsConfig.krakenMovementSpeed());
AntarchySettings.setKrakenFlyingSpeed(AntarchyMobsConfig.krakenFlyingSpeed());
AntarchySettings.setKrakenBossBarRange(AntarchyMobsConfig.krakenBossBarRange());
AntarchySettings.setKrakenLightningDamagePhaseOne(AntarchyMobsConfig.krakenLightningDamagePhaseOne());
AntarchySettings.setKingHealth(AntarchyMobsConfig.kingHealth());
AntarchySettings.setQueenHealth(AntarchyMobsConfig.queenHealth());
AntarchySettings.setKingAttackDamage(AntarchyMobsConfig.kingAttackDamage());
AntarchySettings.setQueenAttackDamage(AntarchyMobsConfig.queenAttackDamage());
AntarchySettings.setRoyalBossArmor(AntarchyMobsConfig.royalBossArmor());
AntarchySettings.setKingArmor(AntarchyMobsConfig.kingArmor());
AntarchySettings.setRoyalBossFollowRange(AntarchyMobsConfig.royalBossFollowRange());
AntarchySettings.setRoyalBossMovementSpeed(AntarchyMobsConfig.royalBossMovementSpeed());
AntarchySettings.setRoyalBossKnockbackResistance(AntarchyMobsConfig.royalBossKnockbackResistance());
AntarchySettings.setRoyalBossStepHeight(AntarchyMobsConfig.royalBossStepHeight());
AntarchySettings.setRoyalBossMaxSingleHitDamage(AntarchyMobsConfig.royalBossMaxSingleHitDamage());
AntarchySettings.setRoyalBossBiteReach(AntarchyMobsConfig.royalBossBiteReach());
AntarchySettings.setRoyalBossBiteDamageMultiplier(AntarchyMobsConfig.royalBossBiteDamageMultiplier());
AntarchySettings.setRoyalBossBiteCooldownTicks(AntarchyMobsConfig.royalBossBiteCooldownTicks());
AntarchySettings.setRoyalBossMultiplayerScalingEnabled(AntarchyMobsConfig.royalBossMultiplayerScalingEnabled());
AntarchySettings.setRoyalBossScalingMaxPlayers(AntarchyMobsConfig.royalBossScalingMaxPlayers());
AntarchySettings.setRoyalBossHealthPerAdditionalPlayer(AntarchyMobsConfig.royalBossHealthPerAdditionalPlayer());
AntarchySettings.setRoyalBossDamagePerAdditionalPlayer(AntarchyMobsConfig.royalBossDamagePerAdditionalPlayer());
AntarchySettings.setRoyalBoundaryRadius(AntarchyMobsConfig.royalBoundaryRadius());
AntarchySettings.setRoyalBoundaryWarningRadius(AntarchyMobsConfig.royalBoundaryWarningRadius());
AntarchySettings.setRoyalBoundaryGraceTicks(AntarchyMobsConfig.royalBoundaryGraceTicks());
AntarchySettings.setQueenBeamDamage(AntarchyMobsConfig.queenBeamDamage());
AntarchySettings.setQueenBeamRange(AntarchyMobsConfig.queenBeamRange());
AntarchySettings.setQueenBeamMinimumRange(AntarchyMobsConfig.queenBeamMinimumRange());
AntarchySettings.setQueenBeamDurationTicks(AntarchyMobsConfig.queenBeamDurationTicks());
AntarchySettings.setQueenBeamWindupTicks(AntarchyMobsConfig.queenBeamWindupTicks());
AntarchySettings.setQueenBeamTravelTicks(AntarchyMobsConfig.queenBeamTravelTicks());
AntarchySettings.setQueenBeamCooldownTicks(AntarchyMobsConfig.queenBeamCooldownTicks());
AntarchySettings.setQueenBeamTracking(AntarchyMobsConfig.queenBeamTracking());
AntarchySettings.setQueenBeamTerrainRadius(AntarchyMobsConfig.queenBeamTerrainRadius());
AntarchySettings.setQueenBeamTerrainCap(AntarchyMobsConfig.queenBeamTerrainCap());
AntarchySettings.setQueenBeamPhaseOneCap(AntarchyMobsConfig.queenBeamPhaseOneCap());
AntarchySettings.setQueenBeamPhaseTwoCap(AntarchyMobsConfig.queenBeamPhaseTwoCap());
AntarchySettings.setQueenBeamPhaseThreeCap(AntarchyMobsConfig.queenBeamPhaseThreeCap());
AntarchySettings.setQueenBeamPhaseThreeMaxVolleyChance(AntarchyMobsConfig.queenBeamPhaseThreeMaxVolleyChance());
AntarchySettings.setKingBeamDamage(AntarchyMobsConfig.kingBeamDamage());
AntarchySettings.setKingBeamRange(AntarchyMobsConfig.kingBeamRange());
AntarchySettings.setKingBeamMinimumRange(AntarchyMobsConfig.kingBeamMinimumRange());
AntarchySettings.setKingBeamDurationTicks(AntarchyMobsConfig.kingBeamDurationTicks());
AntarchySettings.setKingBeamWindupTicks(AntarchyMobsConfig.kingBeamWindupTicks());
AntarchySettings.setKingBeamTravelTicks(AntarchyMobsConfig.kingBeamTravelTicks());
AntarchySettings.setKingBeamCooldownTicks(AntarchyMobsConfig.kingBeamCooldownTicks());
AntarchySettings.setKingBeamTracking(AntarchyMobsConfig.kingBeamTracking());
AntarchySettings.setKingBeamTerrainRadius(AntarchyMobsConfig.kingBeamTerrainRadius());
AntarchySettings.setKingBeamTerrainCap(AntarchyMobsConfig.kingBeamTerrainCap());
AntarchySettings.setRoyalDecreeCooldownTicks(AntarchyMobsConfig.royalDecreeCooldownTicks());
AntarchySettings.setKingRoyalMusterCooldownTicks(AntarchyMobsConfig.kingRoyalMusterCooldownTicks());
AntarchySettings.setKingRoyalMusterWindupTicks(AntarchyMobsConfig.kingRoyalMusterWindupTicks());
AntarchySettings.setKingRoyalMusterDurationTicks(AntarchyMobsConfig.kingRoyalMusterDurationTicks());
AntarchySettings.setKingRoyalMusterRadius(AntarchyMobsConfig.kingRoyalMusterRadius());
AntarchySettings.setKingRoyalMusterCap(AntarchyMobsConfig.kingRoyalMusterCap());
AntarchySettings.setQueenBlackHoleRadius(AntarchyMobsConfig.queenBlackHoleRadius());
AntarchySettings.setQueenBlackHoleActiveTicks(AntarchyMobsConfig.queenBlackHoleActiveTicks());
AntarchySettings.setQueenBlackHolePullStrength(AntarchyMobsConfig.queenBlackHolePullStrength());
AntarchySettings.setQueenBlackHoleBlockSuctionCap(AntarchyMobsConfig.queenBlackHoleBlockSuctionCap());
AntarchySettings.setKingFireballDamage(AntarchyMobsConfig.kingFireballDamage());
AntarchySettings.setKingFireballRadius(AntarchyMobsConfig.kingFireballRadius());
AntarchySettings.setKingFireballCooldownTicks(AntarchyMobsConfig.kingFireballCooldownTicks());
AntarchySettings.setKingIceballDamage(AntarchyMobsConfig.kingIceballDamage());
AntarchySettings.setKingIceballRadius(AntarchyMobsConfig.kingIceballRadius());
AntarchySettings.setKingIceballCooldownTicks(AntarchyMobsConfig.kingIceballCooldownTicks());
AntarchySettings.setKingIceSpikeDamage(AntarchyMobsConfig.kingIceSpikeDamage());
AntarchySettings.setKingIceSpikeCooldownTicks(AntarchyMobsConfig.kingIceSpikeCooldownTicks());
AntarchySettings.setKingElementalTerrainCap(AntarchyMobsConfig.kingElementalTerrainCap());
AntarchySettings.setRoyalBossSoundVolume(AntarchyMobsConfig.royalBossSoundVolume());
AntarchySettings.setRoyalEggHatchChance(AntarchyMobsConfig.royalEggHatchChance());
AntarchySettings.setRoyalBoltDamage(AntarchyMobsConfig.royalBoltDamage());
AntarchySettings.setPrinceHealth(AntarchyMobsConfig.princeHealth());
AntarchySettings.setPrinceAttackDamage(AntarchyMobsConfig.princeAttackDamage());
AntarchySettings.setPrinceMovementSpeed(AntarchyMobsConfig.princeMovementSpeed());
AntarchySettings.setPrinceFlyingSpeed(AntarchyMobsConfig.princeFlyingSpeed());
AntarchySettings.setPrinceArmor(AntarchyMobsConfig.princeArmor());
AntarchySettings.setPrinceKnockbackResistance(AntarchyMobsConfig.princeKnockbackResistance());
AntarchySettings.setPrinceFollowRange(AntarchyMobsConfig.princeFollowRange());
AntarchySettings.setPrincessHealth(AntarchyMobsConfig.princessHealth());
AntarchySettings.setPrincessAttackDamage(AntarchyMobsConfig.princessAttackDamage());
AntarchySettings.setPrincessMovementSpeed(AntarchyMobsConfig.princessMovementSpeed());
AntarchySettings.setPrincessFlyingSpeed(AntarchyMobsConfig.princessFlyingSpeed());
AntarchySettings.setPrincessArmor(AntarchyMobsConfig.princessArmor());
AntarchySettings.setPrincessKnockbackResistance(AntarchyMobsConfig.princessKnockbackResistance());
AntarchySettings.setPrincessFollowRange(AntarchyMobsConfig.princessFollowRange());
AntarchySettings.setBrutalflyHealth(AntarchyMobsConfig.brutalflyHealth());
AntarchySettings.setBrutalflySwipeDamage(AntarchyMobsConfig.brutalflySwipeDamage());
@@ -143,9 +232,9 @@ public final class AntarchyConfigModuleForge {
AntarchySettings.setBrutalflyDamageRange(AntarchyMobsConfig.brutalflyDamageRange());
AntarchySettings.setBrutalflyArmor(AntarchyMobsConfig.brutalflyArmor());
AntarchySettings.setBrutalflyArmorToughness(AntarchyMobsConfig.brutalflyArmorToughness());
AntarchySettings.setBrutalflyKnockbackResistance(AntarchyMobsConfig.brutalflyKnockbackResistance());
AntarchySettings.setBrutalflyMovementSpeed(AntarchyMobsConfig.brutalflyMovementSpeed());
AntarchySettings.setBrutalflyFlyingSpeed(AntarchyMobsConfig.brutalflyFlyingSpeed());
AntarchySettings.setBrutalflyKnockbackResistance(AntarchyMobsConfig.brutalflyKnockbackResistance());
AntarchySettings.setMantisHealth(AntarchyMobsConfig.mantisHealth());
AntarchySettings.setMantisAttackDamage(AntarchyMobsConfig.mantisAttackDamage());
@@ -170,11 +259,47 @@ public final class AntarchyConfigModuleForge {
AntarchySettings.setRollyPollyArmor(AntarchyMobsConfig.rollyPollyArmor());
AntarchySettings.setRollyPollyRolledArmorBonus(AntarchyMobsConfig.rollyPollyRolledArmorBonus());
AntarchySettings.setTriffidHealth(AntarchyMobsConfig.triffidHealth());
AntarchySettings.setTriffidAttackDamage(AntarchyMobsConfig.triffidAttackDamage());
AntarchySettings.setTriffidGrabDamage(AntarchyMobsConfig.triffidGrabDamage());
AntarchySettings.setFlytrapHealth(AntarchyMobsConfig.flytrapHealth());
AntarchySettings.setFlytrapAttackDamage(AntarchyMobsConfig.flytrapAttackDamage());
AntarchySettings.setFlytrapGrabDamage(AntarchyMobsConfig.flytrapGrabDamage());
AntarchySettings.setFlytrapSweepHitCooldownTicks(AntarchyMobsConfig.flytrapSweepHitCooldownTicks());
AntarchySettings.setCaterpillarHealth(AntarchyMobsConfig.caterpillarHealth());
AntarchySettings.setCaterpillarMovementSpeed(AntarchyMobsConfig.caterpillarMovementSpeed());
AntarchySettings.setCaterpillarPupationTimeSeconds(AntarchyMobsConfig.caterpillarPupationTimeSeconds());
AntarchySettings.setFlyingSquirrelHealth(AntarchyMobsConfig.flyingSquirrelHealth());
AntarchySettings.setFlyingSquirrelMovementSpeed(AntarchyMobsConfig.flyingSquirrelMovementSpeed());
AntarchySettings.setButterflyHealth(AntarchyMobsConfig.butterflyHealth());
AntarchySettings.setButterflyMovementSpeed(AntarchyMobsConfig.butterflyMovementSpeed());
AntarchySettings.setButterflyFlyingSpeed(AntarchyMobsConfig.butterflyFlyingSpeed());
AntarchySettings.setBedBugHealth(AntarchyMobsConfig.bedBugHealth());
AntarchySettings.setBedBugAttackDamage(AntarchyMobsConfig.bedBugAttackDamage());
AntarchySettings.setBedBugMovementSpeed(AntarchyMobsConfig.bedBugMovementSpeed());
AntarchySettings.setBedBugArmor(AntarchyMobsConfig.bedBugArmor());
AntarchySettings.setStratosharkHealth(AntarchyMobsConfig.stratosharkHealth());
AntarchySettings.setStratosharkAttackDamage(AntarchyMobsConfig.stratosharkAttackDamage());
AntarchySettings.setStratosharkMovementSpeed(AntarchyMobsConfig.stratosharkMovementSpeed());
AntarchySettings.setStratosharkFlyingSpeed(AntarchyMobsConfig.stratosharkFlyingSpeed());
AntarchySettings.setStratosharkKnockbackResistance(AntarchyMobsConfig.stratosharkKnockbackResistance());
AntarchySettings.setMissileSquidHealth(AntarchyMobsConfig.missileSquidHealth());
AntarchySettings.setMissileSquidAttackDamage(AntarchyMobsConfig.missileSquidAttackDamage());
AntarchySettings.setMissileSquidMovementSpeed(AntarchyMobsConfig.missileSquidMovementSpeed());
AntarchySettings.setMissileSquidFlyingSpeed(AntarchyMobsConfig.missileSquidFlyingSpeed());
AntarchySettings.setMissileSquidKnockbackResistance(AntarchyMobsConfig.missileSquidKnockbackResistance());
AntarchySettings.setMolewormHealth(AntarchyMobsConfig.molewormHealth());
AntarchySettings.setMolewormAttackDamage(AntarchyMobsConfig.molewormAttackDamage());
AntarchySettings.setMolewormMovementSpeed(AntarchyMobsConfig.molewormMovementSpeed());
AntarchySettings.setMolevoreHealth(AntarchyMobsConfig.molevoreHealth());
AntarchySettings.setMolevoreAttackDamage(AntarchyMobsConfig.molevoreAttackDamage());
AntarchySettings.setMolevoreSpinTicks(AntarchyMobsConfig.molevoreSpinTicks());
AntarchySettings.setMolevoreCooldownTicks(AntarchyMobsConfig.molevoreCooldownTicks());
AntarchySettings.setMolevoreChargeSpeed(AntarchyMobsConfig.molevoreChargeSpeed());
AntarchySettings.setMolevoreBreakRange(AntarchyMobsConfig.molevoreBreakRange());
AntarchySettings.setMolevoreBreakVerticalRange(AntarchyMobsConfig.molevoreBreakVerticalRange());
AntarchySettings.setMolevoreBreakHalfWidth(AntarchyMobsConfig.molevoreBreakHalfWidth());
AntarchySettings.setOctopusBombHealth(AntarchyMobsConfig.octopusBombHealth());
AntarchySettings.setOctopusBombAttackDamage(AntarchyMobsConfig.octopusBombAttackDamage());
AntarchySettings.setReverieHealth(AntarchyMobsConfig.reverieHealth());
AntarchySettings.setReverieInterestRadius(AntarchyMobsConfig.reverieInterestRadius());
@@ -194,6 +319,12 @@ public final class AntarchyConfigModuleForge {
AntarchySettings.setNightmareMovementSpeed(AntarchyMobsConfig.nightmareMovementSpeed());
AntarchySettings.setNightmareWeaknessTicks(AntarchyMobsConfig.nightmareWeaknessTicks());
AntarchySettings.setNightmareDreadTicks(AntarchyMobsConfig.nightmareDreadTicks());
AntarchySettings.setDimensionalTearLifetimeTicks(AntarchyMobsConfig.dimensionalTearLifetimeTicks());
AntarchySettings.setDimensionalTearInvertedDurationTicks(AntarchyMobsConfig.dimensionalTearInvertedDurationTicks());
AntarchySettings.setDimensionalTearEmergenceMinIntervalTicks(AntarchyMobsConfig.dimensionalTearEmergenceMinIntervalTicks());
AntarchySettings.setDimensionalTearEmergenceMaxIntervalTicks(AntarchyMobsConfig.dimensionalTearEmergenceMaxIntervalTicks());
AntarchySettings.setDimensionalTearLucidEventChance(AntarchyMobsConfig.dimensionalTearLucidEventChance());
AntarchySettings.setDimensionalTearsSpawnNaturally(AntarchyMobsConfig.dimensionalTearsSpawnNaturally());
AntarchySettings.setBasiliskPetrifyingGazeEnabled(AntarchyMobsConfig.basiliskPetrifyingGazeEnabled());
AntarchySettings.setBasiliskSpawnMaxLightLevel(AntarchyMobsConfig.basiliskSpawnMaxLightLevel());
@@ -224,57 +355,21 @@ public final class AntarchyConfigModuleForge {
AntarchySettings.setLucidMovementSpeed(AntarchyMobsConfig.lucidMovementSpeed());
AntarchySettings.setLucidFlyingSpeed(AntarchyMobsConfig.lucidFlyingSpeed());
AntarchySettings.setLucidKnockbackResistance(AntarchyMobsConfig.lucidKnockbackResistance());
AntarchySettings.setMissileSquidHealth(AntarchyMobsConfig.missileSquidHealth());
AntarchySettings.setMissileSquidAttackDamage(AntarchyMobsConfig.missileSquidAttackDamage());
AntarchySettings.setMissileSquidMovementSpeed(AntarchyMobsConfig.missileSquidMovementSpeed());
AntarchySettings.setMissileSquidFlyingSpeed(AntarchyMobsConfig.missileSquidFlyingSpeed());
AntarchySettings.setMissileSquidKnockbackResistance(AntarchyMobsConfig.missileSquidKnockbackResistance());
AntarchySettings.setOctopusBombHealth(AntarchyMobsConfig.octopusBombHealth());
AntarchySettings.setOctopusBombAttackDamage(AntarchyMobsConfig.octopusBombAttackDamage());
AntarchySettings.setBedBugHealth(AntarchyMobsConfig.bedBugHealth());
AntarchySettings.setBedBugAttackDamage(AntarchyMobsConfig.bedBugAttackDamage());
AntarchySettings.setBedBugMovementSpeed(AntarchyMobsConfig.bedBugMovementSpeed());
AntarchySettings.setBedBugArmor(AntarchyMobsConfig.bedBugArmor());
AntarchySettings.setCloudSharkHealth(AntarchyMobsConfig.cloudSharkHealth());
AntarchySettings.setCloudSharkAttackDamage(AntarchyMobsConfig.cloudSharkAttackDamage());
AntarchySettings.setCloudSharkMovementSpeed(AntarchyMobsConfig.cloudSharkMovementSpeed());
AntarchySettings.setCloudSharkFlyingSpeed(AntarchyMobsConfig.cloudSharkFlyingSpeed());
AntarchySettings.setCloudSharkKnockbackResistance(AntarchyMobsConfig.cloudSharkKnockbackResistance());
AntarchySettings.setFlyingSquirrelHealth(AntarchyMobsConfig.flyingSquirrelHealth());
AntarchySettings.setFlyingSquirrelMovementSpeed(AntarchyMobsConfig.flyingSquirrelMovementSpeed());
AntarchySettings.setMolevoreHealth(AntarchyMobsConfig.molevoreHealth());
AntarchySettings.setMolevoreAttackDamage(AntarchyMobsConfig.molevoreAttackDamage());
AntarchySettings.setMolevoreMovementSpeed(AntarchyMobsConfig.molevoreMovementSpeed());
AntarchySettings.setMolevoreArmor(AntarchyMobsConfig.molevoreArmor());
AntarchySettings.setMolevoreKnockbackResistance(AntarchyMobsConfig.molevoreKnockbackResistance());
AntarchySettings.setMolevoreFollowRange(AntarchyMobsConfig.molevoreFollowRange());
AntarchySettings.setMolevoreXpReward(AntarchyMobsConfig.molevoreXpReward());
AntarchySettings.setMolevoreSpinTicks(AntarchyMobsConfig.molevoreSpinTicks());
AntarchySettings.setMolevoreCooldownTicks(AntarchyMobsConfig.molevoreCooldownTicks());
AntarchySettings.setMolevoreChargeSpeed(AntarchyMobsConfig.molevoreChargeSpeed());
AntarchySettings.setMolevoreBreakRange(AntarchyMobsConfig.molevoreBreakRange());
AntarchySettings.setMolevoreBreakVerticalRange(AntarchyMobsConfig.molevoreBreakVerticalRange());
AntarchySettings.setMolevoreBreakHalfWidth(AntarchyMobsConfig.molevoreBreakHalfWidth());
AntarchySettings.setMolewormHealth(AntarchyMobsConfig.molewormHealth());
AntarchySettings.setMolewormAttackDamage(AntarchyMobsConfig.molewormAttackDamage());
AntarchySettings.setMolewormMovementSpeed(AntarchyMobsConfig.molewormMovementSpeed());
AntarchySettings.setScorpionHealth(AntarchyMobsConfig.scorpionHealth());
AntarchySettings.setScorpionAttackDamage(AntarchyMobsConfig.scorpionAttackDamage());
AntarchySettings.setScorpionMovementSpeed(AntarchyMobsConfig.scorpionMovementSpeed());
AntarchySettings.setScorpionArmor(AntarchyMobsConfig.scorpionArmor());
AntarchySettings.setScorpionKnockbackResistance(AntarchyMobsConfig.scorpionKnockbackResistance());
AntarchySettings.setButterflyHealth(AntarchyMobsConfig.butterflyHealth());
AntarchySettings.setButterflyMovementSpeed(AntarchyMobsConfig.butterflyMovementSpeed());
AntarchySettings.setButterflyFlyingSpeed(AntarchyMobsConfig.butterflyFlyingSpeed());
AntarchySettings.setVortexHealth(AntarchyMobsConfig.vortexHealth());
AntarchySettings.setVortexAttackDamage(AntarchyMobsConfig.vortexAttackDamage());
AntarchySettings.setVortexMovementSpeed(AntarchyMobsConfig.vortexMovementSpeed());
AntarchySettings.setVortexFlyingSpeed(AntarchyMobsConfig.vortexFlyingSpeed());
AntarchySettings.setVortexMaxActiveVortexes(AntarchyMobsConfig.vortexMaxActiveVortexes());
AntarchySettings.setWindVortexDurationTicks(AntarchyMobsConfig.windVortexDurationTicks());
AntarchySettings.setWindVortexPullStrength(AntarchyMobsConfig.windVortexPullStrength());
AntarchySettings.setWindVortexLaunchStrength(AntarchyMobsConfig.windVortexLaunchStrength());
AntarchySettings.setVortexLensMinRadius(AntarchyMobsConfig.vortexLensMinRadius());
AntarchySettings.setVortexLensMaxRadius(AntarchyMobsConfig.vortexLensMaxRadius());
AntarchySettings.setVortexLensMinHeight(AntarchyMobsConfig.vortexLensMinHeight());
AntarchySettings.setVortexLensMaxHeight(AntarchyMobsConfig.vortexLensMaxHeight());
AntarchySettings.setVortexLensPullStrength(AntarchyMobsConfig.vortexLensPullStrength());
AntarchySettings.setVortexLensPushStrength(AntarchyMobsConfig.vortexLensPushStrength());
AntarchySettings.setVortexLensLaunchStrength(AntarchyMobsConfig.vortexLensLaunchStrength());
AntarchySettings.setDreadHallucinationSoundsEnabled(AntarchyMobsConfig.dreadHallucinationSoundsEnabled());
AntarchySettings.setDreadHallucinationSoundMinInterval(AntarchyMobsConfig.dreadHallucinationSoundMinInterval());
@@ -289,18 +384,23 @@ public final class AntarchyConfigModuleForge {
AntarchySettings.setToreterrorJumpAttackKnockback(AntarchyMobsConfig.toreterrorJumpAttackKnockback());
AntarchySettings.setToreterrorSpinDamage(AntarchyMobsConfig.toreterrorSpinDamage());
AntarchySettings.setToreterrorSpinKnockback(AntarchyMobsConfig.toreterrorSpinKnockback());
AntarchySettings.setToreterrorRangedWaterBombChance(AntarchyMobsConfig.toreterrorRangedWaterBombChance());
AntarchySettings.setToreterrorProjectileDamageMultiplier(AntarchyMobsConfig.toreterrorProjectileDamageMultiplier());
AntarchySettings.setWaterBombDamage(AntarchyMobsConfig.waterBombDamage());
AntarchySettings.setWaterBombLifetimeTicks(AntarchyMobsConfig.waterBombLifetimeTicks());
AntarchySettings.setWaterBombGravity(AntarchyMobsConfig.waterBombGravity());
AntarchySettings.setWaterBombKnockback(AntarchyMobsConfig.waterBombKnockback());
AntarchySettings.setWaterCannonCooldownSeconds(AntarchyMobsConfig.waterCannonCooldownSeconds());
AntarchySettings.setCreepingHorrorHealth(AntarchyMobsConfig.creepingHorrorHealth());
AntarchySettings.setCreepingHorrorAttackDamage(AntarchyMobsConfig.creepingHorrorAttackDamage());
AntarchySettings.setLurkingTerrorHealth(AntarchyMobsConfig.lurkingTerrorHealth());
AntarchySettings.setLurkingTerrorAttackDamage(AntarchyMobsConfig.lurkingTerrorAttackDamage());
AntarchySettings.setCrawlingBlightHealth(AntarchyMobsConfig.crawlingBlightHealth());
AntarchySettings.setCrawlingBlightAttackDamage(AntarchyMobsConfig.crawlingBlightAttackDamage());
AntarchySettings.setSkulkingFrightHealth(AntarchyMobsConfig.skulkingFrightHealth());
AntarchySettings.setSkulkingFrightAttackDamage(AntarchyMobsConfig.skulkingFrightAttackDamage());
AntarchySettings.setManticoreHealth(AntarchyMobsConfig.manticoreHealth());
AntarchySettings.setManticoreAttackDamage(AntarchyMobsConfig.manticoreAttackDamage());
AntarchySettings.setManticoreStingPoisonTicks(AntarchyMobsConfig.manticoreStingPoisonTicks());
AntarchySettings.setQueenManticoreCap(AntarchyMobsConfig.queenManticoreCap());
AntarchySettings.setQueenManticoreSummonCooldownTicks(AntarchyMobsConfig.queenManticoreSummonCooldownTicks());
AntarchySettings.setQueenManticoreSummonCount(AntarchyMobsConfig.queenManticoreSummonCount());
AntarchySettings.setQueenManticoreSummonRange(AntarchyMobsConfig.queenManticoreSummonRange());
AntarchySettings.setJerryInfantHealth(AntarchyMobsConfig.jerryInfantHealth());
AntarchySettings.setJerryInfantAttackDamage(AntarchyMobsConfig.jerryInfantAttackDamage());
AntarchySettings.setJerryMatureHealth(AntarchyMobsConfig.jerryMatureHealth());
@@ -318,7 +418,6 @@ public final class AntarchyConfigModuleForge {
AntarchySettings.setHerculesBeetleDamageRange(AntarchyMobsConfig.herculesBeetleDamageRange());
AntarchySettings.setOuranwoodDeerHealth(AntarchyMobsConfig.ouranwoodDeerHealth());
AntarchySettings.setGlimmerHealth(AntarchyMobsConfig.glimmerHealth());
AntarchySettings.setAntDanceRadius(AntarchyMobsConfig.antDanceRadius());
}
@@ -351,6 +450,10 @@ public final class AntarchyConfigModuleForge {
AntarchySettings.setUltimateCrossbowChargeSpeedMultiplier(AntarchyToolsConfig.ultimateCrossbowChargeSpeedMultiplier());
AntarchySettings.setUltimateCrossbowEnchantability(AntarchyToolsConfig.ultimateCrossbowEnchantability());
AntarchySettings.setUltimateMaceDamageMultiplier(AntarchyToolsConfig.ultimateMaceDamageMultiplier());
AntarchySettings.setUltimateMaceAttackSpeed(AntarchyToolsConfig.ultimateMaceAttackSpeed());
AntarchySettings.setUltimateMaceEnchantability(AntarchyToolsConfig.ultimateMaceEnchantability());
AntarchySettings.setUltimateArmorComesEnchanted(AntarchyToolsConfig.ultimateArmorComesEnchanted());
AntarchySettings.setUltimateArmorEnchantability(AntarchyToolsConfig.ultimateArmorEnchantability());
AntarchySettings.setUltimateHelmetArmorValue(AntarchyToolsConfig.ultimateHelmetArmorValue());
@@ -363,6 +466,66 @@ public final class AntarchyConfigModuleForge {
AntarchySettings.setUltimateBootsArmorToughness(AntarchyToolsConfig.ultimateBootsArmorToughness());
AntarchySettings.setUltimateArmorKnockbackResistance(AntarchyToolsConfig.ultimateArmorKnockbackResistance());
AntarchySettings.setRoyalArmorComesEnchanted(AntarchyToolsConfig.royalArmorComesEnchanted());
AntarchySettings.setRoyalArmorProtectionLevel(AntarchyToolsConfig.royalArmorProtectionLevel());
AntarchySettings.setRoyalArmorEnchantability(AntarchyToolsConfig.royalArmorEnchantability());
AntarchySettings.setRoyalArmorDurabilityMultiplier(AntarchyToolsConfig.royalArmorDurabilityMultiplier());
AntarchySettings.setRoyalGuardianHelmetArmorValue(AntarchyToolsConfig.royalGuardianHelmetArmorValue());
AntarchySettings.setRoyalGuardianChestplateArmorValue(AntarchyToolsConfig.royalGuardianChestplateArmorValue());
AntarchySettings.setRoyalGuardianLeggingsArmorValue(AntarchyToolsConfig.royalGuardianLeggingsArmorValue());
AntarchySettings.setRoyalGuardianBootsArmorValue(AntarchyToolsConfig.royalGuardianBootsArmorValue());
AntarchySettings.setRoyalGuardianArmorToughness(AntarchyToolsConfig.royalGuardianArmorToughness());
AntarchySettings.setRoyalGuardianArmorKnockbackResistance(AntarchyToolsConfig.royalGuardianArmorKnockbackResistance());
AntarchySettings.setRoyalGuardianHelmetJudgmentBonus(AntarchyToolsConfig.royalGuardianHelmetJudgmentBonus());
AntarchySettings.setRoyalGuardianChestplateJudgmentBonus(AntarchyToolsConfig.royalGuardianChestplateJudgmentBonus());
AntarchySettings.setRoyalGuardianLeggingsJudgmentBonus(AntarchyToolsConfig.royalGuardianLeggingsJudgmentBonus());
AntarchySettings.setRoyalGuardianBootsJudgmentBonus(AntarchyToolsConfig.royalGuardianBootsJudgmentBonus());
AntarchySettings.setRoyalGuardianJudgmentDurationTicks(AntarchyToolsConfig.royalGuardianJudgmentDurationTicks());
AntarchySettings.setRoyalAssailantHelmetArmorValue(AntarchyToolsConfig.royalAssailantHelmetArmorValue());
AntarchySettings.setRoyalAssailantChestplateArmorValue(AntarchyToolsConfig.royalAssailantChestplateArmorValue());
AntarchySettings.setRoyalAssailantLeggingsArmorValue(AntarchyToolsConfig.royalAssailantLeggingsArmorValue());
AntarchySettings.setRoyalAssailantBootsArmorValue(AntarchyToolsConfig.royalAssailantBootsArmorValue());
AntarchySettings.setRoyalAssailantArmorToughness(AntarchyToolsConfig.royalAssailantArmorToughness());
AntarchySettings.setRoyalAssailantArmorKnockbackResistance(AntarchyToolsConfig.royalAssailantArmorKnockbackResistance());
AntarchySettings.setRoyalAssailantHelmetDoubleDamageChance(AntarchyToolsConfig.royalAssailantHelmetDoubleDamageChance());
AntarchySettings.setRoyalAssailantChestplateDoubleDamageChance(AntarchyToolsConfig.royalAssailantChestplateDoubleDamageChance());
AntarchySettings.setRoyalAssailantLeggingsDoubleDamageChance(AntarchyToolsConfig.royalAssailantLeggingsDoubleDamageChance());
AntarchySettings.setRoyalAssailantBootsDoubleDamageChance(AntarchyToolsConfig.royalAssailantBootsDoubleDamageChance());
AntarchySettings.setRoyalGuardianSwordAttackDamage(AntarchyToolsConfig.royalGuardianSwordAttackDamage());
AntarchySettings.setGiantFryingPanAttackDamage(AntarchyToolsConfig.giantFryingPanAttackDamage());
AntarchySettings.setGiantFryingPanCookTimeTicks(AntarchyToolsConfig.giantFryingPanCookTimeTicks());
AntarchySettings.setRoyalGuardianSwordAttackSpeed(AntarchyToolsConfig.royalGuardianSwordAttackSpeed());
AntarchySettings.setRoyalGuardianSwordElementalCooldownTicks(AntarchyToolsConfig.royalGuardianSwordElementalCooldownTicks());
AntarchySettings.setRoyalGuardianSwordFirePrimaryDamage(AntarchyToolsConfig.royalGuardianSwordFirePrimaryDamage());
AntarchySettings.setRoyalGuardianSwordFireSplashDamage(AntarchyToolsConfig.royalGuardianSwordFireSplashDamage());
AntarchySettings.setRoyalGuardianSwordFrostSpikeDamage(AntarchyToolsConfig.royalGuardianSwordFrostSpikeDamage());
AntarchySettings.setRoyalGuardianSwordStormPrimaryDamage(AntarchyToolsConfig.royalGuardianSwordStormPrimaryDamage());
AntarchySettings.setRoyalGuardianSwordStormJumpDamage(AntarchyToolsConfig.royalGuardianSwordStormJumpDamage());
AntarchySettings.setRoyalGuardianSwordStormMaxJumps(AntarchyToolsConfig.royalGuardianSwordStormMaxJumps());
AntarchySettings.setRoyalGuardianSwordStormJumpRange(AntarchyToolsConfig.royalGuardianSwordStormJumpRange());
AntarchySettings.setRoyalAssailantBattleAxeAttackDamage(AntarchyToolsConfig.royalAssailantBattleAxeAttackDamage());
AntarchySettings.setRoyalAssailantBattleAxeAttackSpeed(AntarchyToolsConfig.royalAssailantBattleAxeAttackSpeed());
AntarchySettings.setRoyalWeaponAttackReachBonus(AntarchyToolsConfig.royalWeaponAttackReachBonus());
AntarchySettings.setRoyalWeaponAttackKnockbackBonus(AntarchyToolsConfig.royalWeaponAttackKnockbackBonus());
AntarchySettings.setRoyalWeaponDurability(AntarchyToolsConfig.royalWeaponDurability());
AntarchySettings.setRoyalWeaponEnchantability(AntarchyToolsConfig.royalWeaponEnchantability());
AntarchySettings.setRoyalGuardianShieldDurability(AntarchyToolsConfig.royalGuardianShieldDurability());
AntarchySettings.setRoyalGuardianMusterRange(AntarchyToolsConfig.royalGuardianMusterRange());
AntarchySettings.setRoyalGuardianMusterDurationTicks(AntarchyToolsConfig.royalGuardianMusterDurationTicks());
AntarchySettings.setRoyalGuardianMusterCooldownTicks(AntarchyToolsConfig.royalGuardianMusterCooldownTicks());
AntarchySettings.setRoyalGuardianMusterMobCap(AntarchyToolsConfig.royalGuardianMusterMobCap());
AntarchySettings.setRoyalGuardianMusterDamageReduction(AntarchyToolsConfig.royalGuardianMusterDamageReduction());
AntarchySettings.setRoyalGuardianMusterAttackBonus(AntarchyToolsConfig.royalGuardianMusterAttackBonus());
AntarchySettings.setRoyalGuardianMusterSpeedBonus(AntarchyToolsConfig.royalGuardianMusterSpeedBonus());
AntarchySettings.setRoyalGuardianMusterPassiveDamageFloor(AntarchyToolsConfig.royalGuardianMusterPassiveDamageFloor());
AntarchySettings.setRoyalGuardianBoundaryRadius(AntarchyToolsConfig.royalGuardianBoundaryRadius());
AntarchySettings.setRoyalGuardianBoundaryDurationTicks(AntarchyToolsConfig.royalGuardianBoundaryDurationTicks());
AntarchySettings.setRoyalGuardianBoundaryCooldownTicks(AntarchyToolsConfig.royalGuardianBoundaryCooldownTicks());
AntarchySettings.setRoyalGuardianBoundaryStrengthAmplifier(AntarchyToolsConfig.royalGuardianBoundaryStrengthAmplifier());
AntarchySettings.setRoyalGuardianBoundaryArrestTicks(AntarchyToolsConfig.royalGuardianBoundaryArrestTicks());
AntarchySettings.setRoyalGuardianBoundaryDropTicks(AntarchyToolsConfig.royalGuardianBoundaryDropTicks());
AntarchySettings.setRoyalGuardianBoundaryProjectileCap(AntarchyToolsConfig.royalGuardianBoundaryProjectileCap());
AntarchySettings.setBattleAxeAttackDamage(AntarchyToolsConfig.battleAxeAttackDamage());
AntarchySettings.setBattleAxeAttackSpeed(AntarchyToolsConfig.battleAxeAttackSpeed());
@@ -389,6 +552,7 @@ public final class AntarchyConfigModuleForge {
AntarchySettings.setKrakensGraspTentacleSlownessAmplifier(AntarchyToolsConfig.krakensGraspTentacleSlownessAmplifier());
AntarchySettings.setKrakensGraspTentacleSlownessRefreshTicks(AntarchyToolsConfig.krakensGraspTentacleSlownessRefreshTicks());
AntarchySettings.setScorpionWhipBaseDamage(AntarchyToolsConfig.scorpionWhipBaseDamage());
AntarchySettings.setScorpionWhipReachBonus(AntarchyToolsConfig.scorpionWhipReachBonus());
AntarchySettings.setScorpionWhipPoisonDurationTicks(AntarchyToolsConfig.scorpionWhipPoisonDurationTicks());
AntarchySettings.setScorpionWhipTetherMaxRange(AntarchyToolsConfig.scorpionWhipTetherMaxRange());
AntarchySettings.setScorpionWhipSnapBonusDamage(AntarchyToolsConfig.scorpionWhipSnapBonusDamage());
@@ -398,6 +562,9 @@ public final class AntarchyConfigModuleForge {
AntarchySettings.setBloodCrystalKatanaAttackDamage(AntarchyToolsConfig.bloodCrystalKatanaAttackDamage());
AntarchySettings.setBloodCrystalKatanaLaunchStrength(AntarchyToolsConfig.bloodCrystalKatanaLaunchStrength());
AntarchySettings.setBloodCrystalKatanaTrailDurationTicks(AntarchyToolsConfig.bloodCrystalKatanaTrailDurationTicks());
AntarchySettings.setBloodCrystalKatanaReachBonus(AntarchyToolsConfig.bloodCrystalKatanaReachBonus());
AntarchySettings.setBloodCrystalKatanaInvulnTicks(AntarchyToolsConfig.bloodCrystalKatanaInvulnTicks());
AntarchySettings.setBloodCrystalKatanaDashCooldownTicks(AntarchyToolsConfig.bloodCrystalKatanaDashCooldownTicks());
AntarchySettings.setNightmareHelmetArmorValue(AntarchyToolsConfig.nightmareHelmetArmorValue());
AntarchySettings.setNightmareChestplateArmorValue(AntarchyToolsConfig.nightmareChestplateArmorValue());
@@ -434,8 +601,6 @@ public final class AntarchyConfigModuleForge {
AntarchySettings.setShrinkingPotionDelta(AntarchyToolsConfig.shrinkingPotionDelta());
AntarchySettings.setGrowthPotionDelta(AntarchyToolsConfig.growthPotionDelta());
AntarchySettings.setInvertProjectilesFromInvertedPlayers(AntarchyToolsConfig.invertProjectilesFromInvertedPlayers());
AntarchySettings.setGravityGunEnabled(AntarchyToolsConfig.gravityGunEnabled());
AntarchySettings.setGravityGunBlocksEnabled(AntarchyToolsConfig.gravityGunBlocksEnabled());
AntarchySettings.setGravityGunEntitiesEnabled(AntarchyToolsConfig.gravityGunEntitiesEnabled());
@@ -444,10 +609,23 @@ public final class AntarchyConfigModuleForge {
AntarchySettings.setGravityGunBlastStrength(AntarchyToolsConfig.gravityGunBlastStrength());
AntarchySettings.setGravityGunCooldownSeconds(AntarchyToolsConfig.gravityGunCooldownSeconds());
AntarchySettings.setGravityGunMaxHoldDistance(AntarchyToolsConfig.gravityGunMaxHoldDistance());
AntarchySettings.setEyeOfTheStormEnabled(AntarchyToolsConfig.eyeOfTheStormEnabled());
AntarchySettings.setEyeOfTheStormUpdraftCooldownTicks(AntarchyToolsConfig.eyeOfTheStormUpdraftCooldownTicks());
AntarchySettings.setEyeOfTheStormUpdraftLaunchStrength(AntarchyToolsConfig.eyeOfTheStormUpdraftLaunchStrength());
AntarchySettings.setEyeOfTheStormUpdraftHeight(AntarchyToolsConfig.eyeOfTheStormUpdraftHeight());
AntarchySettings.setEyeOfTheStormUpdraftRadius(AntarchyToolsConfig.eyeOfTheStormUpdraftRadius());
AntarchySettings.setEyeOfTheStormUpdraftDurationTicks(AntarchyToolsConfig.eyeOfTheStormUpdraftDurationTicks());
AntarchySettings.setEyeOfTheStormSurgeCooldownTicks(AntarchyToolsConfig.eyeOfTheStormSurgeCooldownTicks());
AntarchySettings.setEyeOfTheStormSurgeRange(AntarchyToolsConfig.eyeOfTheStormSurgeRange());
AntarchySettings.setEyeOfTheStormSurgeDurationTicks(AntarchyToolsConfig.eyeOfTheStormSurgeDurationTicks());
AntarchySettings.setEyeOfTheStormSurgeRadius(AntarchyToolsConfig.eyeOfTheStormSurgeRadius());
AntarchySettings.setEyeOfTheStormSurgeHeight(AntarchyToolsConfig.eyeOfTheStormSurgeHeight());
AntarchySettings.setEyeOfTheStormSurgePullStrength(AntarchyToolsConfig.eyeOfTheStormSurgePullStrength());
AntarchySettings.setEyeOfTheStormSurgeReturnStrength(AntarchyToolsConfig.eyeOfTheStormSurgeReturnStrength());
AntarchySettings.setEyeOfTheStormSurgeDamage(AntarchyToolsConfig.eyeOfTheStormSurgeDamage());
AntarchySettings.setCritterCageMaxCapturableWidth(AntarchyToolsConfig.critterCageMaxCapturableWidth());
AntarchySettings.setCritterCageMaxCapturableHeight(AntarchyToolsConfig.critterCageMaxCapturableHeight());
AntarchySettings.setDuctTapeRepairPercentPerUse(AntarchyToolsConfig.ductTapeRepairPercentPerUse());
AntarchySettings.setPotentNyxiteInvertedDurationSeconds(AntarchyToolsConfig.potentNyxiteInvertedDurationSeconds());
AntarchySettings.setCorneaEarNightVisionSeconds(AntarchyToolsConfig.corneaEarNightVisionSeconds());
@@ -474,22 +652,30 @@ public final class AntarchyConfigModuleForge {
AntarchySettings.setDiamondMinecartCoastDeceleration(AntarchyMiscConfig.diamondMinecartCoastDeceleration());
AntarchySettings.setDiamondMinecartMobDamageEnabled(AntarchyMiscConfig.diamondMinecartMobDamageEnabled());
AntarchySettings.setDiamondMinecartMaxMobDamage(AntarchyMiscConfig.diamondMinecartMaxMobDamage());
AntarchySettings.setHoverboardMaxSpeed(AntarchyMiscConfig.hoverboardMaxSpeed());
AntarchySettings.setHoverboardAcceleration(AntarchyMiscConfig.hoverboardAcceleration());
AntarchySettings.setPermanentPortalsEnabled(AntarchyMiscConfig.permanentPortalsEnabled());
AntarchySettings.setPermanentPortalsFlintAndSteelEnabled(AntarchyMiscConfig.permanentPortalsFlintAndSteelEnabled());
AntarchySettings.setElythiaPortalEnabled(AntarchyMiscConfig.elythiaPortalEnabled());
AntarchySettings.setThoraxisPortalEnabled(AntarchyMiscConfig.thoraxisPortalEnabled());
AntarchySettings.setCavarynPortalEnabled(AntarchyMiscConfig.cavarynPortalEnabled());
// Misc
AntarchySettings.setPortalGunCanFireThroughGlass(AntarchyMiscConfig.portalGunCanFireThroughGlass());
AntarchySettings.setPortalGunCanFireThroughLiquid(AntarchyMiscConfig.portalGunCanFireThroughLiquid());
AntarchySettings.setPortalGunCanPortalsResizeWhenCreated(AntarchyMiscConfig.portalGunCanPortalsResizeWhenCreated());
AntarchySettings.setPortalGunCanPortalProjectilesChunkload(AntarchyMiscConfig.portalGunCanPortalProjectilesChunkload());
AntarchySettings.setPortalGunSeeThroughPortals(AntarchyMiscConfig.portalGunSeeThroughPortals());
AntarchySettings.setPortalGunFancyPortals(AntarchyMiscConfig.portalGunFancyPortals());
AntarchySettings.setPortalGunMaxShootDistance(AntarchyMiscConfig.portalGunMaxShootDistance());
AntarchySettings.setPortalGunMinFloorExitSpeed(AntarchyMiscConfig.portalGunMinFloorExitSpeed());
AntarchySettings.setPortalGunMaxLiveViews(AntarchyMiscConfig.portalGunMaxLiveViews());
AntarchySettings.setPortalGunMaxExitSpeed(AntarchyMiscConfig.portalGunMaxExitSpeed());
AntarchySettings.setPortalGunMoonPullsBlocks(AntarchyMiscConfig.portalGunMoonPullsBlocks());
AntarchySettings.setPortalGunMoonPortalSeconds(AntarchyMiscConfig.portalGunMoonPortalSeconds());
AntarchySettings.setPortalGunMoonBlockCap(AntarchyMiscConfig.portalGunMoonBlockCap());
AntarchySettings.setElythiaFireflyParticlesEnabled(AntarchyMiscConfig.elythiaFireflyParticlesEnabled());
AntarchySettings.setDreamSandEnabled(AntarchyMiscConfig.dreamSandEnabled());
AntarchySettings.setDreamSandJumpVelocityMultiplier(AntarchyMiscConfig.dreamSandJumpVelocityMultiplier());
AntarchySettings.setDreamSandGravityMultiplier(AntarchyMiscConfig.dreamSandGravityMultiplier());
AntarchySettings.setDreamSandFallingBlockGravityMultiplier(AntarchyMiscConfig.dreamSandFallingBlockGravityMultiplier());
AntarchySettings.setDreamSandEffectDurationSeconds(AntarchyMiscConfig.dreamSandEffectDurationSeconds());
AntarchySettings.setIchorWitherEnabled(AntarchyMiscConfig.ichorWitherEnabled());
@@ -1,25 +1,28 @@
package com.craisinlord.antarchy.forge;
import com.craisinlord.anthology.effect.AnthologyEffects;
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.enchantment.AntarchyEnchantments;
import com.craisinlord.antarchy.content.advancement.AntarchyAdvancementTriggers;
import com.craisinlord.antarchy.content.item.BloodCrystalKatanaItem;
import com.craisinlord.antarchy.content.item.ScorpionWhipTetherSync;
import com.craisinlord.antarchy.content.network.BloodCrystalKatanaTrailPayload;
import com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync;
import com.craisinlord.antarchy.content.portal.PermanentPortalType;
import com.craisinlord.antarchy.forge.registry.*;
import com.craisinlord.antarchy.forge.network.AntarchyGravityNetworking;
import com.craisinlord.antarchy.content.enchantment.AntarchyEnchantments;
import com.craisinlord.antarchy.forge.network.AntarchyForgeNetworkCore;
import net.minecraftforge.common.ForgeMod;
import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.fml.ModList;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
@Mod(Antarchy.MODID)
public class AntarchyForge {
public static IEventBus modEventBusTempHolder = null;
@@ -27,24 +30,29 @@ public class AntarchyForge {
public AntarchyForge() {
IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus();
modEventBusTempHolder = modEventBus;
AntarchyAdvancementTriggers.register();
bootstrapGameRules();
AntarchyConfigModuleForge.init();
AntarchySoundEvents.bind(
AntarchyForgeSounds.SQUIDZOOKA_FIRE,
AntarchyForgeSounds.SHRINK_RAY_SOUND,
AntarchyForgeSounds.GROWTH_RAY_SOUND,
AntarchyForgeSounds.SIZE_RAY_CHARGE,
AntarchyForgeSounds.SHRINK_RAY_CHARGE,
AntarchyForgeSounds.SHRINK_RAY_LOOP,
AntarchyForgeSounds.GROWTH_RAY_CHARGE,
AntarchyForgeSounds.GROWTH_RAY_LOOP,
AntarchyForgeSounds.SIZE_RAY_WEAKSHOT,
AntarchyForgeSounds.SIZE_RAY_MEDIUMSHOT,
AntarchyForgeSounds.SIZE_RAY_CRITSHOT,
AntarchyForgeSounds.ANT_AMBIENT,
AntarchyForgeSounds.ANT_IDLE,
AntarchyForgeSounds.ANT_HURT,
AntarchyForgeSounds.ANT_BITE,
AntarchyForgeSounds.ANT_GATHER,
AntarchyForgeSounds.ANT_NEST,
AntarchyForgeSounds.CLOUD_SHARK_BITE,
AntarchyForgeSounds.CLOUD_SHARK_IDLE,
AntarchyForgeSounds.CLOUD_SHARK_HURT,
AntarchyForgeSounds.CLOUD_SHARK_DEATH,
AntarchyForgeSounds.CLOUD_SHARK_FLY,
AntarchyForgeSounds.STRATOSHARK_BITE,
AntarchyForgeSounds.STRATOSHARK_IDLE,
AntarchyForgeSounds.STRATOSHARK_HURT,
AntarchyForgeSounds.STRATOSHARK_DEATH,
AntarchyForgeSounds.STRATOSHARK_FLY,
AntarchyForgeSounds.CATERPILLAR_IDLE,
AntarchyForgeSounds.CATERPILLAR_HURT,
AntarchyForgeSounds.CATERPILLAR_CRAWL,
@@ -52,6 +60,7 @@ public class AntarchyForge {
AntarchyForgeSounds.BRUTALFLY_IDLE,
AntarchyForgeSounds.BRUTALFLY_DEATH,
AntarchyForgeSounds.ELYTHIA_FIREFLY_AMBIENT,
AntarchyForgeSounds.ELYTHIA_OURANWOOD_FOREST_AMBIENT,
AntarchyForgeSounds.MISSILE_SQUID_AMBIENT,
AntarchyForgeSounds.MISSILE_SQUID_HURT,
AntarchyForgeSounds.MISSILE_SQUID_DEATH,
@@ -103,16 +112,20 @@ public class AntarchyForge {
AntarchyForgeSounds.NIGHTMARE_DEATH,
AntarchyForgeSounds.NIGHTMARE_BITE,
AntarchyForgeSounds.NIGHTMARE_FLAP,
AntarchyForgeSounds.TRIFFID_ATTACK,
AntarchyForgeSounds.TRIFFID_GRAB,
AntarchyForgeSounds.TRIFFID_HURT,
AntarchyForgeSounds.TRIFFID_DEATH,
AntarchyForgeSounds.TRIFFID_HISS,
AntarchyForgeSounds.TRIFFID_GROWL,
AntarchyForgeSounds.FLYTRAP_ATTACK,
AntarchyForgeSounds.FLYTRAP_GRAB,
AntarchyForgeSounds.FLYTRAP_HURT,
AntarchyForgeSounds.FLYTRAP_DEATH,
AntarchyForgeSounds.FLYTRAP_HISS,
AntarchyForgeSounds.FLYTRAP_GROWL,
AntarchyForgeSounds.MANTIS_AMBIENT,
AntarchyForgeSounds.MANTIS_HURT,
AntarchyForgeSounds.MANTIS_ATTACK,
AntarchyForgeSounds.MANTIS_FLY_LOOP,
AntarchyForgeSounds.MANTICORE_IDLE,
AntarchyForgeSounds.MANTICORE_WALK,
AntarchyForgeSounds.MANTICORE_FLY,
AntarchyForgeSounds.MANTICORE_BITE,
AntarchyForgeSounds.GRAVITY_GUN_PICKUP,
AntarchyForgeSounds.GRAVITY_GUN_DROP,
AntarchyForgeSounds.GRAVITY_GUN_HOLD_LOOP,
@@ -157,13 +170,13 @@ public class AntarchyForge {
AntarchyForgeSounds.STINK_BUG_IDLE,
AntarchyForgeSounds.CAVARYN_HEARTBEAT,
AntarchyForgeSounds.ROLLY_POLLY_IDLE,
AntarchyForgeSounds.CREEPING_HORROR_GROWL,
AntarchyForgeSounds.CREEPING_HORROR_HURT,
AntarchyForgeSounds.CREEPING_HORROR_BITE,
AntarchyForgeSounds.LURKING_TERROR_SNARL,
AntarchyForgeSounds.LURKING_TERROR_HURT,
AntarchyForgeSounds.LURKING_TERROR_BITE,
AntarchyForgeSounds.LURKING_TERROR_FLY_LOOP,
AntarchyForgeSounds.CRAWLING_BLIGHT_GROWL,
AntarchyForgeSounds.CRAWLING_BLIGHT_HURT,
AntarchyForgeSounds.CRAWLING_BLIGHT_BITE,
AntarchyForgeSounds.SKULKING_FRIGHT_SNARL,
AntarchyForgeSounds.SKULKING_FRIGHT_HURT,
AntarchyForgeSounds.SKULKING_FRIGHT_BITE,
AntarchyForgeSounds.SKULKING_FRIGHT_FLY_LOOP,
AntarchyForgeSounds.DUCT_TAPE_USE,
AntarchyForgeSounds.HERCULES_BEETLE_IDLE,
AntarchyForgeSounds.HERCULES_BEETLE_HURT,
@@ -171,10 +184,10 @@ public class AntarchyForge {
AntarchyForgeSounds.HERCULES_BEETLE_CRY,
AntarchyForgeSounds.HERCULES_BEETLE_CHARGE_START,
AntarchyForgeSounds.HERCULES_BEETLE_KNOCKED_DOWN,
AntarchyForgeSounds.JUMPY_BUG_IDLE,
AntarchyForgeSounds.SPRINGBUG_IDLE,
AntarchyForgeSounds.SPIT_BUG_IDLE,
AntarchyForgeSounds.JUMPY_BUG_HURT,
AntarchyForgeSounds.JUMPY_BUG_JUMP,
AntarchyForgeSounds.SPRINGBUG_HURT,
AntarchyForgeSounds.SPRINGBUG_JUMP,
AntarchyForgeSounds.SPIT_BUG_HURT,
AntarchyForgeSounds.SPIT_BUG_SPIT,
AntarchyForgeSounds.BRUTALFLY_SPIT,
@@ -188,33 +201,75 @@ public class AntarchyForge {
AntarchyForgeSounds.JERRY_ADULT_IDLE,
AntarchyForgeSounds.JERRY_ADULT_HURT,
AntarchyForgeSounds.JERRY_ADULT_DEATH,
AntarchyForgeSounds.JERRY_ADULT_ATTACK
AntarchyForgeSounds.JERRY_ADULT_ATTACK,
AntarchyForgeSounds.WORM_HOOK_FLYING,
AntarchyForgeSounds.BLOOD_CRYSTAL_KATANA_DASH,
AntarchyForgeSounds.BLOOD_CRYSTAL_ARMOR_EQUIP,
AntarchyForgeSounds.BLOODGLASS_WARD_HEART_BREAK,
AntarchyForgeSounds.BLOODGLASS_WARD_HEART_REGEN,
AntarchyForgeSounds.KING_IDLE,
AntarchyForgeSounds.KING_HURT,
AntarchyForgeSounds.KING_DEATH,
AntarchyForgeSounds.KING_BITE,
AntarchyForgeSounds.QUEEN_IDLE,
AntarchyForgeSounds.QUEEN_HURT,
AntarchyForgeSounds.QUEEN_DEATH,
AntarchyForgeSounds.QUEEN_BITE,
AntarchyForgeSounds.QUEEN_ROAR,
AntarchyForgeSounds.KING_BEAM_SHOOT,
AntarchyForgeSounds.KING_FIREBALL_SHOOT,
AntarchyForgeSounds.KING_ICE_SPIKES,
AntarchyForgeSounds.KING_DECREE_CAST,
AntarchyForgeSounds.QUEEN_BEAM_SHOOT,
AntarchyForgeSounds.QUEEN_BEAM_START,
AntarchyForgeSounds.QUEEN_BEAM_LOOP,
AntarchyForgeSounds.QUEEN_BEAM_END,
AntarchyForgeSounds.KING_STOMP,
AntarchyForgeSounds.KING_ROAR,
AntarchyForgeSounds.KING_WING_FLAP,
AntarchyForgeSounds.KING_FLY_LOOP,
AntarchyForgeSounds.QUEEN_FLY_LOOP,
AntarchyForgeSounds.PRINCE_IDLE,
AntarchyForgeSounds.PRINCE_BITE,
AntarchyForgeSounds.PRINCE_SHOOT,
AntarchyForgeSounds.PRINCE_FLY,
AntarchyForgeSounds.PRINCE_STEP,
AntarchyForgeSounds.PRINCESS_IDLE,
AntarchyForgeSounds.PRINCESS_BITE,
AntarchyForgeSounds.PRINCESS_SHOOT,
AntarchyForgeSounds.PRINCESS_FLY,
AntarchyForgeSounds.PRINCESS_STEP,
AntarchyForgeSounds.KING_DECREE,
AntarchyForgeSounds.KING_SUCCESS,
AntarchyForgeSounds.KING_JUDGEMENT
);
AntarchySoundEvents.bindDimensionalTearSounds(
AntarchyForgeSounds.DIMENSIONAL_TEAR_OPEN,
AntarchyForgeSounds.DIMENSIONAL_TEAR_IDLE,
AntarchyForgeSounds.DIMENSIONAL_TEAR_CREATURE_LEAVES,
AntarchyForgeSounds.DIMENSIONAL_TEAR_CLOSE
);
AntarchySoundEvents.bindHoverboardSounds(AntarchyForgeSounds.HOVERBOARD_MOUNT, AntarchyForgeSounds.HOVERBOARD_DISMOUNT, AntarchyForgeSounds.HOVERBOARD_IDLE);
bindCommonObjects();
ScorpionWhipTetherSync.setSink((player, targetId) -> com.craisinlord.antarchy.forge.network.AntarchyForgeNetworkCore.sendToTrackingEntity(
ScorpionWhipTetherSync.setSink((player, targetId) -> AntarchyForgeNetworkCore.sendToTrackingEntity(
player,
new com.craisinlord.antarchy.content.network.ScorpionWhipTetherPayload(player.getId(), targetId)
));
BloodCrystalKatanaItem.setTrailCallback((player, durationTicks) -> com.craisinlord.antarchy.forge.network.AntarchyForgeNetworkCore.sendToTrackingEntity(
com.craisinlord.antarchy.content.item.WormHookTetherSync.setSink((player, hookId) -> AntarchyForgeNetworkCore.sendToTrackingEntity(
player,
new com.craisinlord.antarchy.content.network.WormHookTetherPayload(player.getId(), hookId)
));
AntarchyObjects.setWormHookProjectile(() -> AntarchyForgeEntites.WORM_HOOK_PROJECTILE.get());
AntarchyObjects.setWormHook(() -> AntarchyForgeItems.WORM_HOOK.get());
BloodCrystalKatanaItem.setTrailCallback((player, durationTicks) -> AntarchyForgeNetworkCore.sendToTrackingEntity(
player,
new BloodCrystalKatanaTrailPayload(player.getId(), durationTicks)
));
com.craisinlord.antarchy.content.gravity.AntarchyGravityApi.setSyncDispatcher(AntarchyGravityNetworking::syncEntity);
com.craisinlord.antarchy.content.time.TimeDilationApi.setSyncDispatcher(
com.craisinlord.antarchy.forge.network.AntarchyTimeDilationNetworking::syncRate);
com.craisinlord.antarchy.content.time.TimeDilationApi.setFieldSyncDispatcher(
com.craisinlord.antarchy.forge.network.AntarchyTimeDilationNetworking::syncFields);
com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync.setSendToPlayer(
com.craisinlord.antarchy.forge.network.AntarchyForgeNetworkCore::sendToPlayer);
com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync.setSyncSelfAndTracking(player ->
com.craisinlord.antarchy.forge.network.AntarchyForgeNetworkCore.sendToTrackingEntity(
player,
com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync.payload(player)
));
com.craisinlord.antarchy.content.effect.AntarchySizeScaling.register(
com.craisinlord.antarchy.forge.registry.AntarchyForgeMisc.SHRINKING_EFFECT,
com.craisinlord.antarchy.forge.registry.AntarchyForgeMisc.GROWTH_EFFECT
);
TigerEyeCamouflageSync.setSendToPlayer(AntarchyForgeNetworkCore::sendToPlayer);
TigerEyeCamouflageSync.setSyncSelfAndTracking(player -> AntarchyForgeNetworkCore.sendToTrackingEntity(
player,
TigerEyeCamouflageSync.payload(player)
));
if (isSupportedInfinityLoaded()) {
InfinityCompat.bind(new ForgeInfinityCompat());
}
@@ -229,6 +284,10 @@ public class AntarchyForge {
AntarchyForgeCreativeModeTabs.register(modEventBus);
AntarchyForgeEntityAttributes.register(modEventBus);
AntarchyForgePayloadHandlers.register();
com.craisinlord.antarchy.content.network.AntarchyGameNetworking.setSender(payload ->
com.craisinlord.antarchy.forge.network.AntarchyForgeNetworkCore.sendToServer(payload));
com.craisinlord.antarchy.content.network.AntarchyGameNetworkHandler.setResultSender((player, payload) ->
com.craisinlord.antarchy.forge.network.AntarchyForgeNetworkCore.sendToPlayer(player, payload));
Antarchy.init();
}
@@ -242,6 +301,8 @@ public class AntarchyForge {
private static void bindCommonObjects() {
com.craisinlord.antarchy.content.entity.UpwardFallingBlockEntity.TYPE = AntarchyForgeEntites.UPWARD_FALLING_BLOCK;
AntarchyObjects.setLucidAnchor(() -> AntarchyForgeBlocks.LUCID_ANCHOR.get());
AntarchyObjects.setLucidAnchorBlockEntity(() -> AntarchyForgeBlocks.LUCID_ANCHOR_BLOCK_ENTITY.get());
PermanentPortalType.bindBlocks(
() -> AntarchyForgeBlocks.MOSSY_OURANWOOD_WOOD.get(),
() -> AntarchyForgeBlocks.ELYTHIA_PORTAL.get(),
@@ -264,14 +325,14 @@ public class AntarchyForge {
AntarchyForgeEntites.CATERPILLAR,
AntarchyForgeEntites.BUTTERFLY,
AntarchyForgeEntites.REVERIE,
AntarchyForgeEntites.TRIFFID,
AntarchyForgeEntites.FLYTRAP,
AntarchyForgeEntites.BRUTALFLY,
AntarchyForgeEntites.BRUTALFLY_ORB,
AntarchyForgeEntites.HUSH_PROJECTILE,
AntarchyForgeEntites.TORETERROR,
AntarchyForgeEntites.WATER_BOMB,
AntarchyForgeEntites.CREEPING_HORROR,
AntarchyForgeEntites.LURKING_TERROR,
AntarchyForgeEntites.CRAWLING_BLIGHT,
AntarchyForgeEntites.SKULKING_FRIGHT,
AntarchyForgeEntites.STINK_BUG,
AntarchyForgeEntites.CHEEP,
AntarchyForgeEntites.DORRIE,
@@ -300,7 +361,7 @@ public class AntarchyForge {
() -> AntarchyForgeBlocks.SHELLSTONE_BRICK_SLAB.get(),
() -> AntarchyForgeBlocks.SHELLSTONE_BRICK_WALL.get(),
() -> AntarchyForgeBlocks.CLOUD_BLOCK.get(),
() -> AntarchyForgeBlocks.TRIFFID_GOO_BLOCK.get(),
() -> AntarchyForgeBlocks.FLYTRAP_GOO_BLOCK.get(),
() -> AntarchyForgeBlocks.PALE_NYXITE.get(),
() -> AntarchyForgeBlocks.NYXITE_SPIKE.get(),
() -> AntarchyForgeBlocks.CHITIN_BLOCK.get(),
@@ -318,10 +379,10 @@ public class AntarchyForge {
() -> AntarchyForgeItems.MOGGLES.get(),
() -> AntarchyForgeItems.REVERIE_BOTTLE.get(),
() -> AntarchyForgeItems.STINK_BUG.get(),
() -> AntarchyForgeMisc.mobEffectHolder(AntarchyForgeMisc.DREAD),
() -> AntarchyForgeMisc.mobEffectHolder(AntarchyForgeMisc.PARALYZED),
() -> AntarchyForgeMisc.mobEffectHolder(AntarchyForgeMisc.INVERTED),
() -> AntarchyForgeMisc.mobEffectHolder(AntarchyForgeMisc.STINKY),
() -> AntarchyForgeMisc.DREAD.get(),
() -> AntarchyForgeMisc.PARALYZED.get(),
AnthologyEffects::inverted,
() -> AntarchyForgeMisc.STINKY.get(),
() -> AntarchyForgeBlocks.OURANWOOD_ACORN_BLOCK.get(),
() -> AntarchyForgeBlocks.MOSSY_OURANWOOD_LOG.get(),
() -> AntarchyForgeBlocks.MOSSY_OURANWOOD_WOOD.get(),
@@ -332,8 +393,8 @@ public class AntarchyForge {
() -> AntarchyForgeBlocks.ORANGE_MILKWEED.get(),
() -> AntarchyForgeBlocks.PINK_MILKWEED.get(),
() -> AntarchyForgeBlocks.BED_BUG_EGG.get(),
() -> AntarchyForgeBlocks.CREEPING_HORROR_EGG.get(),
() -> AntarchyForgeBlocks.LURKING_TERROR_EGG.get(),
() -> AntarchyForgeBlocks.CRAWLING_BLIGHT_EGG.get(),
() -> AntarchyForgeBlocks.SKULKING_FRIGHT_EGG.get(),
() -> AntarchyForgeBlocks.WASP_NEST.get(),
() -> AntarchyForgeBlocks.HUSHWEED.get(),
() -> AntarchyForgeBlocks.OURANWOOD_SQUIRREL_NEST.get(),
@@ -348,30 +409,52 @@ public class AntarchyForge {
() -> AntarchyForgeMisc.STINKY_GAS.get(),
() -> AntarchyForgeMisc.STINKY_FLY.get(),
() -> AntarchyForgeMisc.PEACH_LEAVES_PARTICLE.get(),
() -> AntarchyForgeMisc.attributeHolder(AntarchyForgeMisc.SCALE),
() -> AntarchyForgeMisc.attributeHolder(AntarchyForgeMisc.DOUBLE_DAMAGE_CHANCE),
() -> AntarchyForgeMisc.attributeHolder(AntarchyForgeMisc.BLOODGLASS_MAX_HEARTS),
() -> AntarchyForgeMisc.mobEffectHolder(AntarchyForgeMisc.BLOODGLASS_WARD)
() -> AntarchyForgeMisc.BLOODGLASS_WARD.get()
);
AntarchyObjects.setEntityReach(() -> ForgeMod.ENTITY_REACH.get());
AntarchyEnchantments.bind(() -> AntarchyForgeMisc.FEATHER_RISING.get(), () -> AntarchyForgeMisc.CHRONOSPHERE.get());
com.craisinlord.antarchy.content.effect.AntarchySizeScaling.register(AntarchyForgeMisc.SHRINKING_EFFECT, AntarchyForgeMisc.GROWTH_EFFECT);
AntarchyObjects.setOctopusBomb(AntarchyForgeEntites.OCTOPUS_BOMB);
AntarchyObjects.setTentacle(AntarchyForgeEntites.TENTACLE);
AntarchyObjects.setNightmare(AntarchyForgeEntites.NIGHTMARE);
AntarchyObjects.setNightmarePortal(AntarchyForgeEntites.NIGHTMARE_PORTAL);
AntarchyObjects.setDimensionalTear(AntarchyForgeEntites.DIMENSIONAL_TEAR);
AntarchyObjects.setNightmareBite(AntarchyForgeEntites.NIGHTMARE_BITE);
AntarchyObjects.setLucid(AntarchyForgeEntites.LUCID);
AntarchyObjects.setVortex(AntarchyForgeEntites.VORTEX);
AntarchyObjects.setWindVortex(() -> AntarchyForgeEntites.WIND_VORTEX.get());
AntarchyObjects.setRoyalBlackHole(() -> AntarchyForgeEntites.ROYAL_BLACK_HOLE.get());
AntarchyObjects.setRoyalAssailantBlackHole(() -> AntarchyForgeEntites.ROYAL_ASSAILANT_BLACK_HOLE.get());
AntarchyObjects.setVortexChargeProjectile(() -> AntarchyForgeEntites.VORTEX_CHARGE_PROJECTILE.get());
AntarchyObjects.setPrince(() -> AntarchyForgeEntites.PRINCE.get());
AntarchyObjects.setPrincess(() -> AntarchyForgeEntites.PRINCESS.get());
AntarchyObjects.setKing(() -> AntarchyForgeEntites.KING.get());
AntarchyObjects.setQueen(() -> AntarchyForgeEntites.QUEEN.get());
AntarchyObjects.setManticore(() -> AntarchyForgeEntites.MANTICORE.get());
AntarchyObjects.setRoyalBolt(() -> AntarchyForgeEntites.ROYAL_BOLT.get());
AntarchyObjects.setRoyalElementalProjectile(() -> AntarchyForgeEntites.ROYAL_ELEMENTAL_PROJECTILE.get());
AntarchyObjects.setRoyalIceSpike(() -> AntarchyForgeEntites.ROYAL_ICE_SPIKE.get());
AntarchyObjects.setPrinceEgg(() -> AntarchyForgeBlocks.PRINCE_EGG.get());
AntarchyObjects.setPrincessEgg(() -> AntarchyForgeBlocks.PRINCESS_EGG.get());
AntarchyObjects.setRoyalEggBlockEntity(() -> AntarchyForgeBlocks.ROYAL_EGG_BLOCK_ENTITY.get());
AntarchyObjects.setVortexLens(() -> AntarchyForgeBlocks.VORTEX_LENS.get());
AntarchyObjects.setVortexLensBlockEntity(() -> AntarchyForgeBlocks.VORTEX_LENS_BLOCK_ENTITY.get());
AntarchyObjects.setDimensionalTearMarker(() -> AntarchyForgeBlocks.DIMENSIONAL_TEAR_MARKER.get());
AntarchyObjects.setDimensionalTearMarkerBlockEntity(() -> AntarchyForgeBlocks.DIMENSIONAL_TEAR_MARKER_BLOCK_ENTITY.get());
AntarchyObjects.setKrakensGraspTrident(AntarchyForgeEntites.KRAKENS_GRASP_TRIDENT);
AntarchyObjects.setLotus(() -> AntarchyForgeBlocks.LOTUS.get());
AntarchyObjects.setKrakenTentacle(() -> AntarchyForgeItems.KRAKEN_TENTACLE.get());
AntarchyObjects.setKrakensGrasp(() -> AntarchyForgeItems.KRAKENS_GRASP.get());
AntarchyObjects.setOuranwoodDeer(AntarchyForgeEntites.OURANWOOD_DEER);
AntarchyObjects.setDimensionalTear(AntarchyForgeEntites.DIMENSIONAL_TEAR);
AntarchyObjects.setGlimmer(AntarchyForgeEntites.GLIMMER);
AntarchyObjects.setRollyPolly(AntarchyForgeEntites.ROLLY_POLLY);
AntarchyObjects.setGlimmer(AntarchyForgeEntites.GLIMMER);
AntarchyObjects.setSpiritApple(() -> AntarchyForgeItems.SPIRIT_APPLE.get());
AntarchyObjects.setGlimmeringEffect(() -> AntarchyForgeMisc.mobEffectHolder(AntarchyForgeMisc.GLIMMERING));
AntarchyObjects.setTimeDilationField(() -> AntarchyForgeEntites.TIME_DILATION_FIELD.get());
AntarchyEnchantments.bind(() -> AntarchyForgeMisc.FEATHER_RISING.get(), () -> AntarchyForgeMisc.CHRONOSPHERE.get());
AntarchyObjects.setRoyalAssailantBlackHole(() -> AntarchyForgeEntites.ROYAL_ASSAILANT_BLACK_HOLE.get());
AntarchyObjects.setDilatedEffect(() -> AntarchyForgeMisc.mobEffectHolder(AntarchyForgeMisc.DILATED));
AntarchyObjects.setContractedEffect(() -> AntarchyForgeMisc.mobEffectHolder(AntarchyForgeMisc.CONTRACTED));
AntarchyObjects.setGlimmeringEffect(() -> AntarchyForgeMisc.GLIMMERING.get());
AntarchyObjects.setRoyalVitalityPenaltyEffect(() -> AntarchyForgeMisc.ROYAL_VITALITY_PENALTY.get());
AntarchyObjects.setBleedingEffect(() -> AntarchyForgeMisc.BLEEDING.get());
AntarchyObjects.setBloodMoonEffect(() -> AntarchyForgeMisc.BLOOD_MOON.get());
AntarchyObjects.setElka(AntarchyForgeEntites.ELKA);
AntarchyObjects.setPeach(() -> AntarchyForgeItems.PEACH.get());
AntarchyObjects.setCorn(() -> AntarchyForgeItems.CORN.get());
@@ -386,17 +469,19 @@ public class AntarchyForge {
AntarchyObjects.setLumenBucket(() -> AntarchyForgeItems.LUMEN_BUCKET.get());
AntarchyObjects.setLumenBlock(() -> AntarchyForgeBlocks.LUMEN_BLOCK.get());
AntarchyObjects.setLumenFroglight(() -> AntarchyForgeBlocks.LUMEN_FROGLIGHT.get());
AntarchyObjects.setGlimmeringReed(() -> AntarchyForgeBlocks.GLIMMERING_REED.get());
AntarchyObjects.setPeachLeavesParticle(() -> AntarchyForgeMisc.PEACH_LEAVES_PARTICLE.get());
AntarchyObjects.setBugSprayParticle(() -> AntarchyForgeMisc.BUG_SPRAY_PARTICLE.get());
AntarchyObjects.setLotusPollen(() -> AntarchyForgeMisc.LOTUS_POLLEN.get());
AntarchyObjects.setNightmareFireFlame(() -> AntarchyForgeMisc.NIGHTMARE_FIRE_FLAME.get());
AntarchyObjects.setLucidBoltImpactSmall(() -> AntarchyForgeMisc.LUCID_BOLT_IMPACT_SMALL.get());
AntarchyObjects.setLucidBoltImpactLarge(() -> AntarchyForgeMisc.LUCID_BOLT_IMPACT_LARGE.get());
AntarchyObjects.setDorrieInventoryMenu(AntarchyForgeMisc.DORRIE_INVENTORY_MENU);
AntarchyObjects.setRoyalJudgmentMenu(AntarchyForgeMisc.ROYAL_JUDGMENT_MENU);
AntarchyObjects.setGiantFryingPanMenu(AntarchyForgeMisc.GIANT_FRYING_PAN_MENU);
AntarchyObjects.setCritterCage(() -> AntarchyForgeItems.CRITTER_CAGE.get());
AntarchyObjects.setCritterCageBlock(() -> AntarchyForgeBlocks.CRITTER_CAGE_BLOCK.get());
AntarchyObjects.setCritterCageBlockEntity(() -> AntarchyForgeBlocks.CRITTER_CAGE_BLOCK_ENTITY.get());
AntarchyObjects.setLucidAnchor(() -> AntarchyForgeBlocks.LUCID_ANCHOR.get());
AntarchyObjects.setLucidAnchorBlockEntity(() -> AntarchyForgeBlocks.LUCID_ANCHOR_BLOCK_ENTITY.get());
AntarchyObjects.setCritterCageProjectile(() -> AntarchyForgeEntites.CRITTER_CAGE_PROJECTILE.get());
}
@@ -3,24 +3,31 @@ package com.craisinlord.antarchy.forge;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.command.CavarynCommand;
import com.craisinlord.antarchy.content.command.CaterpillarCommand;
import com.craisinlord.antarchy.content.command.GravityCommand;
import com.craisinlord.antarchy.content.command.DimensionalTearCommand;
import com.craisinlord.antarchy.content.command.QueenLocateCommand;
import com.craisinlord.antarchy.content.time.TimeDilationCommand;
import net.minecraftforge.event.RegisterCommandsEvent;
import com.craisinlord.antarchy.content.command.RoyalCommand;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.event.RegisterCommandsEvent;
import net.minecraftforge.event.server.ServerStoppingEvent;
@Mod.EventBusSubscriber(modid = Antarchy.MODID)
final class AntarchyForgeCommandEvents {
public final class AntarchyForgeCommandEvents {
private AntarchyForgeCommandEvents() {
}
@SubscribeEvent
public static void onRegisterCommands(RegisterCommandsEvent event) {
CavarynCommand.register(event.getDispatcher());
GravityCommand.register(event.getDispatcher());
QueenLocateCommand.register(event.getDispatcher());
CaterpillarCommand.register(event.getDispatcher());
TimeDilationCommand.register(event.getDispatcher());
DimensionalTearCommand.register(event.getDispatcher());
QueenLocateCommand.register(event.getDispatcher());
RoyalCommand.register(event.getDispatcher());
com.craisinlord.antarchy.content.command.PortalGunCommand.register(event.getDispatcher());
}
@SubscribeEvent
public static void onServerStopping(ServerStoppingEvent event) {
com.craisinlord.antarchy.content.portalgun.PortalGunProjectileEntity.releaseAllProjectileTickets();
}
}
@@ -26,14 +26,16 @@ import org.joml.Vector3f;
import java.util.function.Consumer;
public final class AntarchyForgeFluidTypes {
private static final ResourceLocation WATER_STILL = ResourceLocation.withDefaultNamespace("block/water_still");
private static final ResourceLocation WATER_FLOW = ResourceLocation.withDefaultNamespace("block/water_flow");
private static final ResourceLocation WATER_OVERLAY = ResourceLocation.withDefaultNamespace("block/water_overlay");
private static final ResourceLocation UNDERWATER_OVERLAY = ResourceLocation.withDefaultNamespace("textures/misc/underwater.png");
private static final ResourceLocation WATER_STILL = new ResourceLocation("block/water_still");
private static final ResourceLocation WATER_FLOW = new ResourceLocation("block/water_flow");
private static final ResourceLocation WATER_OVERLAY = new ResourceLocation("block/water_overlay");
private static final ResourceLocation UNDERWATER_OVERLAY = new ResourceLocation("textures/misc/underwater.png");
private static final ResourceLocation ANTIWATER_STILL = new ResourceLocation(Antarchy.MODID, "block/antiwater_still");
private static final ResourceLocation ANTIWATER_FLOW = new ResourceLocation(Antarchy.MODID, "block/antiwater_flow");
private static final ResourceLocation BILE_STILL = new ResourceLocation(Antarchy.MODID, "block/bile/bile_still");
private static final ResourceLocation BILE_FLOW = new ResourceLocation(Antarchy.MODID, "block/bile/bile_flowing");
private static final ResourceLocation ICHOR_STILL = new ResourceLocation(Antarchy.MODID, "block/ichor/ichor_still");
private static final ResourceLocation ICHOR_FLOW = new ResourceLocation(Antarchy.MODID, "block/ichor/ichor_flowing");
private static final DeferredRegister<FluidType> FLUID_TYPES =
DeferredRegister.create(ForgeRegistries.Keys.FLUID_TYPES, Antarchy.MODID);
@@ -167,12 +169,12 @@ public final class AntarchyForgeFluidTypes {
consumer.accept(new IClientFluidTypeExtensions() {
@Override
public ResourceLocation getStillTexture() {
return ANTIWATER_STILL;
return ICHOR_STILL;
}
@Override
public ResourceLocation getFlowingTexture() {
return ANTIWATER_FLOW;
return ICHOR_FLOW;
}
@Override
@@ -187,12 +189,12 @@ public final class AntarchyForgeFluidTypes {
@Override
public int getTintColor() {
return 0xFF2A0306;
return 0xFFFFFFFF;
}
@Override
public int getTintColor(FluidState state, BlockAndTintGetter getter, BlockPos pos) {
return 0xFF2A0306;
return 0xFFFFFFFF;
}
@Override
@@ -5,35 +5,37 @@ import net.minecraftforge.common.ForgeConfigSpec;
public final class AntarchyMiscConfig {
public static final ForgeConfigSpec SPEC;
// Elythia
private static final ForgeConfigSpec.BooleanValue ELYTHIA_FIREFLY_PARTICLES_ENABLED;
// Dream Sand
private static final ForgeConfigSpec.BooleanValue DREAM_SAND_ENABLED;
private static final ForgeConfigSpec.DoubleValue DREAM_SAND_JUMP_VELOCITY_MULTIPLIER;
private static final ForgeConfigSpec.DoubleValue DREAM_SAND_GRAVITY_MULTIPLIER;
private static final ForgeConfigSpec.DoubleValue DREAM_SAND_EFFECT_DURATION_SECONDS;
private static final ForgeConfigSpec.DoubleValue DREAM_SAND_FALLING_BLOCK_GRAVITY_MULTIPLIER;
// Ichor
private static final ForgeConfigSpec.BooleanValue ICHOR_WITHER_ENABLED;
// Hushweed
private static final ForgeConfigSpec.DoubleValue HUSHWEED_SPORE_LIFETIME_SECONDS;
// Infinite Dimensions
private static final ForgeConfigSpec.BooleanValue DISABLE_INFINITY_BOOK_PORTAL_CREATION;
private static final ForgeConfigSpec.BooleanValue RAINBOW_ANTS_LEAD_TO_INFINITY_DIMENSIONS;
private static final ForgeConfigSpec.DoubleValue RAINBOW_ANT_INFINITY_EASTER_EGG_CHANCE;
// Permanent portals
private static final ForgeConfigSpec.BooleanValue PERMANENT_PORTALS_ENABLED;
private static final ForgeConfigSpec.BooleanValue PERMANENT_PORTALS_FLINT_AND_STEEL_ENABLED;
private static final ForgeConfigSpec.BooleanValue ELYTHIA_PORTAL_ENABLED;
private static final ForgeConfigSpec.BooleanValue THORAXIS_PORTAL_ENABLED;
private static final ForgeConfigSpec.BooleanValue CAVARYN_PORTAL_ENABLED;
private static final ForgeConfigSpec.BooleanValue PORTAL_GUN_CAN_FIRE_THROUGH_GLASS;
private static final ForgeConfigSpec.BooleanValue PORTAL_GUN_CAN_FIRE_THROUGH_LIQUID;
private static final ForgeConfigSpec.BooleanValue PORTAL_GUN_CAN_PORTALS_RESIZE_WHEN_CREATED;
private static final ForgeConfigSpec.BooleanValue PORTAL_GUN_CAN_PORTAL_PROJECTILES_CHUNKLOAD;
private static final ForgeConfigSpec.BooleanValue PORTAL_GUN_SEE_THROUGH_PORTALS;
private static final ForgeConfigSpec.BooleanValue PORTAL_GUN_FANCY_PORTALS;
private static final ForgeConfigSpec.IntValue PORTAL_GUN_MAX_SHOOT_DISTANCE;
private static final ForgeConfigSpec.DoubleValue PORTAL_GUN_MIN_FLOOR_EXIT_SPEED;
private static final ForgeConfigSpec.IntValue PORTAL_GUN_MAX_LIVE_VIEWS;
private static final ForgeConfigSpec.DoubleValue PORTAL_GUN_MAX_EXIT_SPEED;
private static final ForgeConfigSpec.BooleanValue PORTAL_GUN_MOON_PULLS_BLOCKS;
private static final ForgeConfigSpec.IntValue PORTAL_GUN_MOON_PORTAL_SECONDS;
private static final ForgeConfigSpec.IntValue PORTAL_GUN_MOON_BLOCK_CAP;
// Diamond Minecart
private static final ForgeConfigSpec.BooleanValue DIAMOND_MINECART_ENABLED;
private static final ForgeConfigSpec.BooleanValue DIAMOND_MINECART_PLACES_RAILS;
private static final ForgeConfigSpec.DoubleValue DIAMOND_MINECART_CRUISE_SPEED;
@@ -44,7 +46,9 @@ public final class AntarchyMiscConfig {
private static final ForgeConfigSpec.BooleanValue DIAMOND_MINECART_MOB_DAMAGE_ENABLED;
private static final ForgeConfigSpec.DoubleValue DIAMOND_MINECART_MAX_MOB_DAMAGE;
// World / misc toggles
private static final ForgeConfigSpec.DoubleValue HOVERBOARD_MAX_SPEED;
private static final ForgeConfigSpec.DoubleValue HOVERBOARD_ACCELERATION;
private static final ForgeConfigSpec.BooleanValue DUPLICATOR_TREE_ENABLED;
private static final ForgeConfigSpec.BooleanValue GLOW_VINES_UNDER_LEAVES;
private static final ForgeConfigSpec.BooleanValue SWING_THROUGH_GRASS_ENABLED;
@@ -55,47 +59,28 @@ public final class AntarchyMiscConfig {
static {
ForgeConfigSpec.Builder b = new ForgeConfigSpec.Builder();
// Elythia
b.push("elythia");
ELYTHIA_FIREFLY_PARTICLES_ENABLED = b
.comment("Whether firefly ambient particles appear at night in the Elythia dimension.")
.define("fireflyParticlesEnabled", true);
b.pop();
// Dream Sand
b.push("dreamSand");
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_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_FALLING_BLOCK_GRAVITY_MULTIPLIER = b.comment("Multiplier applied to dream sand's own falling-block gravity (how slowly it falls as a block, distinct from the player low-gravity effect).").defineInRange("fallingBlockGravityMultiplier", 0.4D, 0.0D, 16.0D);
DREAM_SAND_FALLING_BLOCK_GRAVITY_MULTIPLIER = b.comment("Multiplier applied to dream sand's falling-block gravity, i.e. how slowly it falls as a block.").defineInRange("fallingBlockGravityMultiplier", 0.4D, 0.0D, 16.0D);
b.pop();
// Ichor
b.push("ichor");
ICHOR_WITHER_ENABLED = b
.comment("If true, players submerged in ichor receive a Wither effect.")
.define("witherEnabled", true);
b.pop();
// Hushweed
b.push("hushweed");
HUSHWEED_SPORE_LIFETIME_SECONDS = b
.comment("How long (in seconds) a Hushweed spore projectile stays alive before disappearing.")
.defineInRange("sporeLifetimeSeconds", 5.0D, 0.1D, 120.0D);
b.pop();
// Infinity Dimensions
b.push("infinityDimensions");
DISABLE_INFINITY_BOOK_PORTAL_CREATION = b
.comment("If true, book and quills cannot be thrown into nether portals to create random dimensions.")
@@ -114,9 +99,6 @@ public final class AntarchyMiscConfig {
.defineInRange("rainbowAntInfinityEasterEggChance", 0.01D, 0.0D, 1.0D);
b.pop();
// Permanent Portals
b.push("permanentPortals");
PERMANENT_PORTALS_ENABLED = b.comment("Master toggle for sacrifice-activated permanent portals.").define("permanentPortalsEnabled", true);
PERMANENT_PORTALS_FLINT_AND_STEEL_ENABLED = b.comment("Whether flint and steel can ignite permanent portal frames.").define("permanentPortalsFlintAndSteelEnabled", false);
@@ -125,8 +107,21 @@ public final class AntarchyMiscConfig {
CAVARYN_PORTAL_ENABLED = b.comment("Whether Myrmite portals to Cavaryn can activate and function.").define("cavarynPortalEnabled", true);
b.pop();
// Diamond Minecart
b.push("portalGun");
PORTAL_GUN_CAN_FIRE_THROUGH_GLASS = b.define("canFireThroughGlass", false);
PORTAL_GUN_CAN_FIRE_THROUGH_LIQUID = b.define("canFireThroughLiquid", false);
PORTAL_GUN_CAN_PORTALS_RESIZE_WHEN_CREATED = b.define("canPortalsResizeWhenCreated", true);
PORTAL_GUN_CAN_PORTAL_PROJECTILES_CHUNKLOAD = b.define("canPortalProjectilesChunkload", true);
PORTAL_GUN_SEE_THROUGH_PORTALS = b.define("seeThroughPortals", true);
PORTAL_GUN_FANCY_PORTALS = b.define("fancyPortals", true);
PORTAL_GUN_MAX_SHOOT_DISTANCE = b.defineInRange("maxShootDistance", 10000, 1, Integer.MAX_VALUE);
PORTAL_GUN_MAX_LIVE_VIEWS = b.comment("How many portals can show a live see-through view at once. Each one re-renders the world, so higher values cost frame rate. 0 shows only the animated surface.").defineInRange("maxLiveViews", 8, 0, 32);
PORTAL_GUN_MIN_FLOOR_EXIT_SPEED = b.comment("Minimum speed in blocks/tick when leaving an upward-facing portal, so the traveller clears it. 0 disables.").defineInRange("minFloorExitSpeed", 0.6D, 0.0D, 4.0D);
PORTAL_GUN_MAX_EXIT_SPEED = b.comment("Maximum speed in blocks/tick when leaving a portal. 0 keeps momentum uncapped.").defineInRange("maxExitSpeed", 0.0D, 0.0D, 100.0D);
PORTAL_GUN_MOON_PULLS_BLOCKS = b.comment("Whether a portal opened by shooting the moon rips blocks loose and pulls them into space.").define("moonPullsBlocks", true);
PORTAL_GUN_MOON_PORTAL_SECONDS = b.comment("How long a moon portal stays open, in seconds.").defineInRange("moonPortalSeconds", 10, 1, 120);
PORTAL_GUN_MOON_BLOCK_CAP = b.comment("Maximum number of blocks a single moon portal can pull in.").defineInRange("moonBlockCap", 500, 0, 2000);
b.pop();
b.push("diamondMinecart");
DIAMOND_MINECART_ENABLED = b.comment("Master toggle for the diamond minecart's custom propulsion and rail-laying behavior.") .define("enabled", true);
@@ -140,8 +135,10 @@ public final class AntarchyMiscConfig {
DIAMOND_MINECART_MAX_MOB_DAMAGE = b.comment("Maximum collision damage dealt at full speed if mob damage is enabled.") .defineInRange("maxMobDamage", 4.0D, 0.0D, 200.0D);
b.pop();
// World / visual toggles
b.push("hoverboard");
HOVERBOARD_MAX_SPEED = b.comment("Maximum hoverboard speed in blocks/tick while moving forward.").defineInRange("maxSpeed", 6.0D, 0.05D, 12.0D);
HOVERBOARD_ACCELERATION = b.comment("Hoverboard speed gained per tick while moving forward. Lower values take longer to reach top speed.").defineInRange("acceleration", 0.05D, 0.001D, 1.0D);
b.pop();
b.push("world");
DUPLICATOR_TREE_ENABLED = b.comment("If false, duplicator trees do not generate and duplicator saplings produce nothing.").define("duplicatorTreeEnabled", true);
@@ -159,10 +156,6 @@ public final class AntarchyMiscConfig {
static boolean elythiaFireflyParticlesEnabled() { return ELYTHIA_FIREFLY_PARTICLES_ENABLED.get(); }
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 dreamSandEffectDurationSeconds() { return DREAM_SAND_EFFECT_DURATION_SECONDS.get(); }
static double dreamSandFallingBlockGravityMultiplier() { return DREAM_SAND_FALLING_BLOCK_GRAVITY_MULTIPLIER.get(); }
static boolean ichorWitherEnabled() { return ICHOR_WITHER_ENABLED.get(); }
@@ -184,6 +177,19 @@ public final class AntarchyMiscConfig {
public static boolean elythiaPortalEnabled() { return ELYTHIA_PORTAL_ENABLED.get(); }
public static boolean thoraxisPortalEnabled() { return THORAXIS_PORTAL_ENABLED.get(); }
public static boolean cavarynPortalEnabled() { return CAVARYN_PORTAL_ENABLED.get(); }
public static boolean portalGunCanFireThroughGlass() { return PORTAL_GUN_CAN_FIRE_THROUGH_GLASS.get(); }
public static boolean portalGunCanFireThroughLiquid() { return PORTAL_GUN_CAN_FIRE_THROUGH_LIQUID.get(); }
public static boolean portalGunCanPortalsResizeWhenCreated() { return PORTAL_GUN_CAN_PORTALS_RESIZE_WHEN_CREATED.get(); }
public static boolean portalGunCanPortalProjectilesChunkload() { return PORTAL_GUN_CAN_PORTAL_PROJECTILES_CHUNKLOAD.get(); }
public static boolean portalGunSeeThroughPortals() { return PORTAL_GUN_SEE_THROUGH_PORTALS.get(); }
public static boolean portalGunFancyPortals() { return PORTAL_GUN_FANCY_PORTALS.get(); }
public static int portalGunMaxShootDistance() { return PORTAL_GUN_MAX_SHOOT_DISTANCE.get(); }
public static double portalGunMinFloorExitSpeed() { return PORTAL_GUN_MIN_FLOOR_EXIT_SPEED.get(); }
public static int portalGunMaxLiveViews() { return PORTAL_GUN_MAX_LIVE_VIEWS.get(); }
public static double portalGunMaxExitSpeed() { return PORTAL_GUN_MAX_EXIT_SPEED.get(); }
public static boolean portalGunMoonPullsBlocks() { return PORTAL_GUN_MOON_PULLS_BLOCKS.get(); }
public static int portalGunMoonPortalSeconds() { return PORTAL_GUN_MOON_PORTAL_SECONDS.get(); }
public static int portalGunMoonBlockCap() { return PORTAL_GUN_MOON_BLOCK_CAP.get(); }
static boolean diamondMinecartEnabled() { return DIAMOND_MINECART_ENABLED.get(); }
static boolean diamondMinecartPlacesRails() { return DIAMOND_MINECART_PLACES_RAILS.get(); }
@@ -194,4 +200,6 @@ public final class AntarchyMiscConfig {
static double diamondMinecartCoastDeceleration() { return DIAMOND_MINECART_COAST_DECELERATION.get(); }
static boolean diamondMinecartMobDamageEnabled() { return DIAMOND_MINECART_MOB_DAMAGE_ENABLED.get(); }
static double diamondMinecartMaxMobDamage() { return DIAMOND_MINECART_MAX_MOB_DAMAGE.get(); }
static double hoverboardMaxSpeed() { return HOVERBOARD_MAX_SPEED.get(); }
static double hoverboardAcceleration() { return HOVERBOARD_ACCELERATION.get(); }
}
File diff suppressed because it is too large. Load diff
@@ -5,17 +5,11 @@ import net.minecraftforge.common.ForgeConfigSpec;
public final class AntarchyToolsConfig {
public static final ForgeConfigSpec SPEC;
// Basilisk Dagger
private static final ForgeConfigSpec.DoubleValue BASILISK_DAGGER_ATTACK_DAMAGE;
private static final ForgeConfigSpec.DoubleValue BASILISK_DAGGER_ATTACK_SPEED;
private static final ForgeConfigSpec.IntValue BASILISK_DAGGER_POISON_DURATION_TICKS;
private static final ForgeConfigSpec.IntValue BASILISK_DAGGER_POISON_AMPLIFIER;
// Ultimate Tools
private static final ForgeConfigSpec.DoubleValue ULTIMATE_SWORD_ATTACK_DAMAGE;
private static final ForgeConfigSpec.DoubleValue ULTIMATE_SWORD_ATTACK_SPEED;
private static final ForgeConfigSpec.DoubleValue ULTIMATE_PICKAXE_ATTACK_DAMAGE;
@@ -29,24 +23,19 @@ public final class AntarchyToolsConfig {
private static final ForgeConfigSpec.IntValue ULTIMATE_TOOL_ENCHANTABILITY;
private static final ForgeConfigSpec.BooleanValue ULTIMATE_TOOLS_THREE_BY_THREE_ENABLED;
// Ultimate Bow
private static final ForgeConfigSpec.DoubleValue ULTIMATE_BOW_ATTACK_DAMAGE;
private static final ForgeConfigSpec.DoubleValue ULTIMATE_BOW_PLAYER_HEAL;
private static final ForgeConfigSpec.DoubleValue ULTIMATE_BOW_DRAW_SPEED_MULTIPLIER;
private static final ForgeConfigSpec.BooleanValue ULTIMATE_BOW_COMES_ENCHANTED_WITH_FLAME;
private static final ForgeConfigSpec.IntValue ULTIMATE_BOW_ENCHANTABILITY;
// Ultimate Crossbow
private static final ForgeConfigSpec.DoubleValue ULTIMATE_CROSSBOW_ATTACK_DAMAGE;
private static final ForgeConfigSpec.DoubleValue ULTIMATE_CROSSBOW_CHARGE_SPEED_MULTIPLIER;
private static final ForgeConfigSpec.IntValue ULTIMATE_CROSSBOW_ENCHANTABILITY;
// Ultimate Armor
private static final ForgeConfigSpec.DoubleValue ULTIMATE_MACE_DAMAGE_MULTIPLIER;
private static final ForgeConfigSpec.DoubleValue ULTIMATE_MACE_ATTACK_SPEED;
private static final ForgeConfigSpec.IntValue ULTIMATE_MACE_ENCHANTABILITY;
private static final ForgeConfigSpec.BooleanValue ULTIMATE_ARMOR_COMES_ENCHANTED;
private static final ForgeConfigSpec.IntValue ULTIMATE_ARMOR_ENCHANTABILITY;
@@ -60,15 +49,55 @@ public final class AntarchyToolsConfig {
private static final ForgeConfigSpec.DoubleValue ULTIMATE_BOOTS_ARMOR_TOUGHNESS;
private static final ForgeConfigSpec.DoubleValue ULTIMATE_ARMOR_KNOCKBACK_RESISTANCE;
// Battle Axe
private static final ForgeConfigSpec.BooleanValue ROYAL_ARMOR_COMES_ENCHANTED;
private static final ForgeConfigSpec.IntValue ROYAL_ARMOR_PROTECTION_LEVEL;
private static final ForgeConfigSpec.IntValue ROYAL_ARMOR_ENCHANTABILITY;
private static final ForgeConfigSpec.IntValue ROYAL_ARMOR_DURABILITY_MULTIPLIER;
private static final ForgeConfigSpec.IntValue ROYAL_GUARDIAN_HELMET_ARMOR_VALUE;
private static final ForgeConfigSpec.IntValue ROYAL_GUARDIAN_CHESTPLATE_ARMOR_VALUE;
private static final ForgeConfigSpec.IntValue ROYAL_GUARDIAN_LEGGINGS_ARMOR_VALUE;
private static final ForgeConfigSpec.IntValue ROYAL_GUARDIAN_BOOTS_ARMOR_VALUE;
private static final ForgeConfigSpec.DoubleValue ROYAL_GUARDIAN_ARMOR_TOUGHNESS;
private static final ForgeConfigSpec.DoubleValue ROYAL_GUARDIAN_ARMOR_KNOCKBACK_RESISTANCE;
private static final ForgeConfigSpec.DoubleValue ROYAL_GUARDIAN_HELMET_JUDGMENT_BONUS, ROYAL_GUARDIAN_CHESTPLATE_JUDGMENT_BONUS,
ROYAL_GUARDIAN_LEGGINGS_JUDGMENT_BONUS, ROYAL_GUARDIAN_BOOTS_JUDGMENT_BONUS;
private static final ForgeConfigSpec.IntValue ROYAL_GUARDIAN_JUDGMENT_DURATION_TICKS;
private static final ForgeConfigSpec.IntValue ROYAL_ASSAILANT_HELMET_ARMOR_VALUE;
private static final ForgeConfigSpec.IntValue ROYAL_ASSAILANT_CHESTPLATE_ARMOR_VALUE;
private static final ForgeConfigSpec.IntValue ROYAL_ASSAILANT_LEGGINGS_ARMOR_VALUE;
private static final ForgeConfigSpec.IntValue ROYAL_ASSAILANT_BOOTS_ARMOR_VALUE;
private static final ForgeConfigSpec.DoubleValue ROYAL_ASSAILANT_ARMOR_TOUGHNESS;
private static final ForgeConfigSpec.DoubleValue ROYAL_ASSAILANT_ARMOR_KNOCKBACK_RESISTANCE;
private static final ForgeConfigSpec.DoubleValue ROYAL_ASSAILANT_HELMET_DOUBLE_DAMAGE_CHANCE;
private static final ForgeConfigSpec.DoubleValue ROYAL_ASSAILANT_CHESTPLATE_DOUBLE_DAMAGE_CHANCE;
private static final ForgeConfigSpec.DoubleValue ROYAL_ASSAILANT_LEGGINGS_DOUBLE_DAMAGE_CHANCE;
private static final ForgeConfigSpec.DoubleValue ROYAL_ASSAILANT_BOOTS_DOUBLE_DAMAGE_CHANCE;
private static final ForgeConfigSpec.DoubleValue ROYAL_GUARDIAN_SWORD_ATTACK_DAMAGE;
private static final ForgeConfigSpec.DoubleValue GIANT_FRYING_PAN_ATTACK_DAMAGE;
private static final ForgeConfigSpec.IntValue GIANT_FRYING_PAN_COOK_TIME_TICKS;
private static final ForgeConfigSpec.DoubleValue ROYAL_GUARDIAN_SWORD_ATTACK_SPEED;
private static final ForgeConfigSpec.IntValue ROYAL_GUARDIAN_SWORD_ELEMENTAL_COOLDOWN_TICKS, ROYAL_GUARDIAN_SWORD_STORM_MAX_JUMPS;
private static final ForgeConfigSpec.DoubleValue ROYAL_GUARDIAN_SWORD_FIRE_PRIMARY_DAMAGE, ROYAL_GUARDIAN_SWORD_FIRE_SPLASH_DAMAGE,
ROYAL_GUARDIAN_SWORD_FROST_SPIKE_DAMAGE, ROYAL_GUARDIAN_SWORD_STORM_PRIMARY_DAMAGE,
ROYAL_GUARDIAN_SWORD_STORM_JUMP_DAMAGE, ROYAL_GUARDIAN_SWORD_STORM_JUMP_RANGE;
private static final ForgeConfigSpec.DoubleValue ROYAL_ASSAILANT_BATTLE_AXE_ATTACK_DAMAGE;
private static final ForgeConfigSpec.DoubleValue ROYAL_ASSAILANT_BATTLE_AXE_ATTACK_SPEED;
private static final ForgeConfigSpec.DoubleValue ROYAL_WEAPON_ATTACK_REACH_BONUS;
private static final ForgeConfigSpec.DoubleValue ROYAL_WEAPON_ATTACK_KNOCKBACK_BONUS;
private static final ForgeConfigSpec.IntValue ROYAL_WEAPON_DURABILITY;
private static final ForgeConfigSpec.IntValue ROYAL_WEAPON_ENCHANTABILITY;
private static final ForgeConfigSpec.IntValue ROYAL_GUARDIAN_SHIELD_DURABILITY;
private static final ForgeConfigSpec.DoubleValue ROYAL_GUARDIAN_MUSTER_RANGE, ROYAL_GUARDIAN_MUSTER_DAMAGE_REDUCTION,
ROYAL_GUARDIAN_MUSTER_ATTACK_BONUS, ROYAL_GUARDIAN_MUSTER_SPEED_BONUS, ROYAL_GUARDIAN_MUSTER_PASSIVE_DAMAGE_FLOOR,
ROYAL_GUARDIAN_BOUNDARY_RADIUS;
private static final ForgeConfigSpec.IntValue ROYAL_GUARDIAN_MUSTER_DURATION_TICKS, ROYAL_GUARDIAN_MUSTER_COOLDOWN_TICKS,
ROYAL_GUARDIAN_MUSTER_MOB_CAP, ROYAL_GUARDIAN_BOUNDARY_DURATION_TICKS, ROYAL_GUARDIAN_BOUNDARY_COOLDOWN_TICKS,
ROYAL_GUARDIAN_BOUNDARY_STRENGTH_AMPLIFIER, ROYAL_GUARDIAN_BOUNDARY_ARREST_TICKS,
ROYAL_GUARDIAN_BOUNDARY_DROP_TICKS, ROYAL_GUARDIAN_BOUNDARY_PROJECTILE_CAP;
private static final ForgeConfigSpec.DoubleValue BATTLE_AXE_ATTACK_DAMAGE;
private static final ForgeConfigSpec.DoubleValue BATTLE_AXE_ATTACK_SPEED;
// Big Bertha
private static final ForgeConfigSpec.DoubleValue BIG_BERTHA_ATTACK_DAMAGE;
private static final ForgeConfigSpec.DoubleValue BIG_BERTHA_REACH_BONUS;
private static final ForgeConfigSpec.DoubleValue BIG_BERTHA_ATTACK_SPEED;
@@ -92,6 +121,7 @@ public final class AntarchyToolsConfig {
private static final ForgeConfigSpec.DoubleValue BIG_BERTHA_NONE_MODE_DAMAGE_BONUS_PERCENT;
private static final ForgeConfigSpec.DoubleValue BIG_BERTHA_NIGHTMARE_DAMAGE_BONUS_PERCENT;
private static final ForgeConfigSpec.DoubleValue SCORPION_WHIP_BASE_DAMAGE;
private static final ForgeConfigSpec.DoubleValue SCORPION_WHIP_REACH_BONUS;
private static final ForgeConfigSpec.IntValue SCORPION_WHIP_POISON_DURATION_TICKS;
private static final ForgeConfigSpec.DoubleValue SCORPION_WHIP_TETHER_MAX_RANGE;
private static final ForgeConfigSpec.DoubleValue SCORPION_WHIP_SNAP_BONUS_DAMAGE;
@@ -101,9 +131,9 @@ public final class AntarchyToolsConfig {
private static final ForgeConfigSpec.IntValue BLOOD_CRYSTAL_KATANA_ATTACK_DAMAGE;
private static final ForgeConfigSpec.DoubleValue BLOOD_CRYSTAL_KATANA_LAUNCH_STRENGTH;
private static final ForgeConfigSpec.IntValue BLOOD_CRYSTAL_KATANA_TRAIL_DURATION_TICKS;
// Nightmare Gear
private static final ForgeConfigSpec.DoubleValue BLOOD_CRYSTAL_KATANA_REACH_BONUS;
private static final ForgeConfigSpec.IntValue BLOOD_CRYSTAL_KATANA_INVULN_TICKS;
private static final ForgeConfigSpec.IntValue BLOOD_CRYSTAL_KATANA_DASH_COOLDOWN_TICKS;
private static final ForgeConfigSpec.IntValue NIGHTMARE_HELMET_ARMOR_VALUE;
private static final ForgeConfigSpec.IntValue NIGHTMARE_CHESTPLATE_ARMOR_VALUE;
@@ -123,15 +153,9 @@ public final class AntarchyToolsConfig {
private static final ForgeConfigSpec.DoubleValue NIGHTMARE_SWORD_ATTACK_SPEED;
private static final ForgeConfigSpec.DoubleValue NIGHTMARE_SWORD_SCALING_FACTOR;
// Fallen King's Crown
private static final ForgeConfigSpec.IntValue FALLEN_KING_CROWN_ARMOR_VALUE;
private static final ForgeConfigSpec.DoubleValue FALLEN_KING_CROWN_ARMOR_TOUGHNESS;
// Blood Crystal Armor
private static final ForgeConfigSpec.IntValue BLOOD_CRYSTAL_ARMOR_SHIELD_RECHARGE_TICKS;
private static final ForgeConfigSpec.IntValue BLOOD_CRYSTAL_APPLE_SHIELD_COUNT;
private static final ForgeConfigSpec.IntValue BLOOD_CRYSTAL_APPLE_DURATION_TICKS;
@@ -147,9 +171,6 @@ public final class AntarchyToolsConfig {
private static final ForgeConfigSpec.IntValue BLOOD_CRYSTAL_LEGGINGS_DURABILITY;
private static final ForgeConfigSpec.IntValue BLOOD_CRYSTAL_BOOTS_DURABILITY;
// Squidzooka
private static final ForgeConfigSpec.DoubleValue SQUIDZOOKA_COOLDOWN_SECONDS;
private static final ForgeConfigSpec.DoubleValue SQUIDZOOKA_LAUNCH_VELOCITY;
private static final ForgeConfigSpec.DoubleValue RPO_LAUNCHER_COOLDOWN_SECONDS;
@@ -157,9 +178,6 @@ public final class AntarchyToolsConfig {
private static final ForgeConfigSpec.DoubleValue RPO_LAUNCHER_EXPLOSION_DAMAGE;
private static final ForgeConfigSpec.DoubleValue RPO_LAUNCHER_EXPLOSION_RADIUS;
// Size Rays
private static final ForgeConfigSpec.BooleanValue SIZE_CHANGING_RAYS_ENABLED;
private static final ForgeConfigSpec.DoubleValue SIZE_RAY_COOLDOWN_SECONDS;
private static final ForgeConfigSpec.DoubleValue SIZE_RAY_MIN_SCALE;
@@ -168,9 +186,6 @@ public final class AntarchyToolsConfig {
private static final ForgeConfigSpec.DoubleValue SHRINKING_POTION_DELTA;
private static final ForgeConfigSpec.DoubleValue GROWTH_POTION_DELTA;
// Gravity Gun
private static final ForgeConfigSpec.BooleanValue GRAVITY_GUN_ENABLED;
private static final ForgeConfigSpec.BooleanValue GRAVITY_GUN_BLOCKS_ENABLED;
private static final ForgeConfigSpec.BooleanValue GRAVITY_GUN_ENTITIES_ENABLED;
@@ -179,21 +194,26 @@ public final class AntarchyToolsConfig {
private static final ForgeConfigSpec.DoubleValue GRAVITY_GUN_BLAST_STRENGTH;
private static final ForgeConfigSpec.DoubleValue GRAVITY_GUN_COOLDOWN_SECONDS;
private static final ForgeConfigSpec.DoubleValue GRAVITY_GUN_MAX_HOLD_DISTANCE;
// Critter Cage
private static final ForgeConfigSpec.BooleanValue EYE_OF_THE_STORM_ENABLED;
private static final ForgeConfigSpec.IntValue EYE_OF_THE_STORM_UPDRAFT_COOLDOWN_TICKS;
private static final ForgeConfigSpec.DoubleValue EYE_OF_THE_STORM_UPDRAFT_LAUNCH_STRENGTH;
private static final ForgeConfigSpec.DoubleValue EYE_OF_THE_STORM_UPDRAFT_HEIGHT;
private static final ForgeConfigSpec.DoubleValue EYE_OF_THE_STORM_UPDRAFT_RADIUS;
private static final ForgeConfigSpec.IntValue EYE_OF_THE_STORM_UPDRAFT_DURATION_TICKS;
private static final ForgeConfigSpec.IntValue EYE_OF_THE_STORM_SURGE_COOLDOWN_TICKS;
private static final ForgeConfigSpec.DoubleValue EYE_OF_THE_STORM_SURGE_RANGE;
private static final ForgeConfigSpec.IntValue EYE_OF_THE_STORM_SURGE_DURATION_TICKS;
private static final ForgeConfigSpec.DoubleValue EYE_OF_THE_STORM_SURGE_RADIUS;
private static final ForgeConfigSpec.DoubleValue EYE_OF_THE_STORM_SURGE_HEIGHT;
private static final ForgeConfigSpec.DoubleValue EYE_OF_THE_STORM_SURGE_PULL_STRENGTH;
private static final ForgeConfigSpec.DoubleValue EYE_OF_THE_STORM_SURGE_RETURN_STRENGTH;
private static final ForgeConfigSpec.DoubleValue EYE_OF_THE_STORM_SURGE_DAMAGE;
private static final ForgeConfigSpec.DoubleValue CRITTER_CAGE_MAX_CAPTURABLE_WIDTH;
private static final ForgeConfigSpec.DoubleValue CRITTER_CAGE_MAX_CAPTURABLE_HEIGHT;
// Miner's Dream
// Miscellaneous items / consumables
private static final ForgeConfigSpec.DoubleValue DUCT_TAPE_REPAIR_PERCENT_PER_USE;
private static final ForgeConfigSpec.DoubleValue POTENT_NYXITE_INVERTED_DURATION_SECONDS;
private static final ForgeConfigSpec.BooleanValue INVERT_PROJECTILES_FROM_INVERTED_PLAYERS;
private static final ForgeConfigSpec.IntValue CORNEA_EAR_NIGHT_VISION_SECONDS;
private static final ForgeConfigSpec.BooleanValue AMERICAN_ENABLED;
private static final ForgeConfigSpec.IntValue AMERICAN_BONUS_NUTRITION;
@@ -201,16 +221,11 @@ public final class AntarchyToolsConfig {
private static final ForgeConfigSpec.IntValue AMERICAN_REGENERATION_DURATION_TICKS;
private static final ForgeConfigSpec.IntValue AMERICAN_REGENERATION_AMPLIFIER;
// Moggles
private static final ForgeConfigSpec.DoubleValue MOGGLES_VISION_RADIUS;
static {
ForgeConfigSpec.Builder b = new ForgeConfigSpec.Builder();
// Basilisk Dagger
b.push("basiliskDagger");
BASILISK_DAGGER_ATTACK_DAMAGE = b.comment("Attack damage.") .defineInRange("attackDamage", 6.0D, 0.0D, 1024.0D);
BASILISK_DAGGER_ATTACK_SPEED = b.comment("Attack speed.") .defineInRange("attackSpeed", -1.8D, -10.0D, 10.0D);
@@ -218,9 +233,6 @@ public final class AntarchyToolsConfig {
BASILISK_DAGGER_POISON_AMPLIFIER = b.comment("Poison level applied on hit (0 = I).") .defineInRange("poisonAmplifier", 2, 0, 10);
b.pop();
// Ultimate Tools
b.push("ultimateTools");
ULTIMATE_SWORD_ATTACK_DAMAGE = b.comment("Attack damage of the Ultimate Sword.") .defineInRange("swordAttackDamage", 30.0D, 0.0D, 1024.0D);
ULTIMATE_SWORD_ATTACK_SPEED = b.comment("Attack speed of the Ultimate Sword.") .defineInRange("swordAttackSpeed", -2.4D, -10.0D, 10.0D);
@@ -238,9 +250,6 @@ public final class AntarchyToolsConfig {
.define("threeByThreeEnabled", true);
b.pop();
// Ultimate Bow
b.push("ultimateBow");
ULTIMATE_BOW_ATTACK_DAMAGE = b.comment("Damage dealt to non-player targets.") .defineInRange("attackDamage", 18.0D, 0.0D, 1024.0D);
ULTIMATE_BOW_PLAYER_HEAL = b.comment("Health restored to players hit by arrows from this bow.") .defineInRange("playerHeal", 8.0D, 0.0D, 1024.0D);
@@ -249,9 +258,6 @@ public final class AntarchyToolsConfig {
ULTIMATE_BOW_ENCHANTABILITY = b.comment("Enchantability of the Ultimate Bow.") .defineInRange("enchantability", 20, 0, 100);
b.pop();
// Ultimate Crossbow
b.push("ultimateCrossbow");
ULTIMATE_CROSSBOW_ATTACK_DAMAGE = b.comment("Damage dealt by projectiles fired from the Ultimate Crossbow.").defineInRange("attackDamage", 8.0D, 0.0D, 1024.0D);
ULTIMATE_CROSSBOW_CHARGE_SPEED_MULTIPLIER = b
@@ -263,8 +269,11 @@ public final class AntarchyToolsConfig {
ULTIMATE_CROSSBOW_ENCHANTABILITY = b.comment("Enchantability of the Ultimate Crossbow.").defineInRange("enchantability", 20, 0, 100);
b.pop();
// Ultimate Armor
b.push("ultimateMace");
ULTIMATE_MACE_DAMAGE_MULTIPLIER = b.comment("Multiplier on both base damage and smash bonus. 1.5 = 50% stronger than a normal mace.").defineInRange("damageMultiplier", 1.5D, 0.1D, 16.0D);
ULTIMATE_MACE_ATTACK_SPEED = b.comment("Attack speed of the Ultimate Mace.") .defineInRange("attackSpeed", -3.4D, -10.0D, 10.0D);
ULTIMATE_MACE_ENCHANTABILITY = b.comment("Enchantability of the Ultimate Mace.") .defineInRange("enchantability", 20, 0, 100);
b.pop();
b.push("ultimateArmor");
ULTIMATE_ARMOR_COMES_ENCHANTED = b.comment("If true, newly crafted Ultimate Armor has Protection, Fire Protection, Projectile Protection, and Blast Protection.").define("comesEnchanted", true);
@@ -280,17 +289,73 @@ public final class AntarchyToolsConfig {
ULTIMATE_ARMOR_KNOCKBACK_RESISTANCE = b.comment("Knockback resistance granted by each Ultimate Armor piece.") .defineInRange("knockbackResistance", 0.1D, 0.0D, 1.0D);
b.pop();
// Battle Axe
b.push("royalGear");
ROYAL_ARMOR_COMES_ENCHANTED = b.define("comesEnchanted", true);
ROYAL_ARMOR_PROTECTION_LEVEL = b.defineInRange("protectionLevel", 10, 0, 100);
ROYAL_ARMOR_ENCHANTABILITY = b.defineInRange("enchantability", 30, 0, 100);
ROYAL_ARMOR_DURABILITY_MULTIPLIER = b.defineInRange("durabilityMultiplier", 93, 0, 1000);
ROYAL_GUARDIAN_HELMET_ARMOR_VALUE = b.defineInRange("guardianHelmetArmor", 5, 0, 100);
ROYAL_GUARDIAN_CHESTPLATE_ARMOR_VALUE = b.defineInRange("guardianChestplateArmor", 10, 0, 100);
ROYAL_GUARDIAN_LEGGINGS_ARMOR_VALUE = b.defineInRange("guardianLeggingsArmor", 8, 0, 100);
ROYAL_GUARDIAN_BOOTS_ARMOR_VALUE = b.defineInRange("guardianBootsArmor", 5, 0, 100);
ROYAL_GUARDIAN_ARMOR_TOUGHNESS = b.defineInRange("guardianArmorToughness", 4.0D, 0.0D, 100.0D);
ROYAL_GUARDIAN_ARMOR_KNOCKBACK_RESISTANCE = b.defineInRange("guardianArmorKnockbackResistance", 0.15D, 0.0D, 1.0D);
ROYAL_GUARDIAN_HELMET_JUDGMENT_BONUS = b.defineInRange("guardianHelmetJudgmentBonus", 0.06D, 0.0D, 10.0D);
ROYAL_GUARDIAN_CHESTPLATE_JUDGMENT_BONUS = b.defineInRange("guardianChestplateJudgmentBonus", 0.08D, 0.0D, 10.0D);
ROYAL_GUARDIAN_LEGGINGS_JUDGMENT_BONUS = b.defineInRange("guardianLeggingsJudgmentBonus", 0.07D, 0.0D, 10.0D);
ROYAL_GUARDIAN_BOOTS_JUDGMENT_BONUS = b.defineInRange("guardianBootsJudgmentBonus", 0.05D, 0.0D, 10.0D);
ROYAL_GUARDIAN_JUDGMENT_DURATION_TICKS = b.defineInRange("guardianJudgmentDurationTicks", 160, 1, 72000);
ROYAL_ASSAILANT_HELMET_ARMOR_VALUE = b.defineInRange("assailantHelmetArmor", 5, 0, 100);
ROYAL_ASSAILANT_CHESTPLATE_ARMOR_VALUE = b.defineInRange("assailantChestplateArmor", 10, 0, 100);
ROYAL_ASSAILANT_LEGGINGS_ARMOR_VALUE = b.defineInRange("assailantLeggingsArmor", 8, 0, 100);
ROYAL_ASSAILANT_BOOTS_ARMOR_VALUE = b.defineInRange("assailantBootsArmor", 5, 0, 100);
ROYAL_ASSAILANT_ARMOR_TOUGHNESS = b.defineInRange("assailantArmorToughness", 3.0D, 0.0D, 100.0D);
ROYAL_ASSAILANT_ARMOR_KNOCKBACK_RESISTANCE = b.defineInRange("assailantArmorKnockbackResistance", 0.15D, 0.0D, 1.0D);
ROYAL_ASSAILANT_HELMET_DOUBLE_DAMAGE_CHANCE = b.defineInRange("assailantHelmetDoubleDamageChance", 0.06D, 0.0D, 1.0D);
ROYAL_ASSAILANT_CHESTPLATE_DOUBLE_DAMAGE_CHANCE = b.defineInRange("assailantChestplateDoubleDamageChance", 0.08D, 0.0D, 1.0D);
ROYAL_ASSAILANT_LEGGINGS_DOUBLE_DAMAGE_CHANCE = b.defineInRange("assailantLeggingsDoubleDamageChance", 0.07D, 0.0D, 1.0D);
ROYAL_ASSAILANT_BOOTS_DOUBLE_DAMAGE_CHANCE = b.defineInRange("assailantBootsDoubleDamageChance", 0.05D, 0.0D, 1.0D);
ROYAL_GUARDIAN_SWORD_ATTACK_DAMAGE = b.defineInRange("guardianSwordAttackDamage", 111.0D, 0.0D, 4096.0D);
GIANT_FRYING_PAN_ATTACK_DAMAGE = b.defineInRange("giantFryingPanAttackDamage", 50.0D, 0.0D, 4096.0D);
GIANT_FRYING_PAN_COOK_TIME_TICKS = b.defineInRange("giantFryingPanCookTimeTicks", 200, 1, 72000);
ROYAL_GUARDIAN_SWORD_ATTACK_SPEED = b.defineInRange("guardianSwordAttackSpeed", -2.5D, -10.0D, 10.0D);
ROYAL_GUARDIAN_SWORD_ELEMENTAL_COOLDOWN_TICKS = b.defineInRange("guardianSwordElementalCooldownTicks", 120, 0, 72000);
ROYAL_GUARDIAN_SWORD_FIRE_PRIMARY_DAMAGE = b.defineInRange("guardianSwordFirePrimaryDamage", 22.0D, 0.0D, 4096.0D);
ROYAL_GUARDIAN_SWORD_FIRE_SPLASH_DAMAGE = b.defineInRange("guardianSwordFireSplashDamage", 14.0D, 0.0D, 4096.0D);
ROYAL_GUARDIAN_SWORD_FROST_SPIKE_DAMAGE = b.defineInRange("guardianSwordFrostSpikeDamage", 9.0D, 0.0D, 4096.0D);
ROYAL_GUARDIAN_SWORD_STORM_PRIMARY_DAMAGE = b.defineInRange("guardianSwordStormPrimaryDamage", 16.0D, 0.0D, 4096.0D);
ROYAL_GUARDIAN_SWORD_STORM_JUMP_DAMAGE = b.defineInRange("guardianSwordStormJumpDamage", 14.0D, 0.0D, 4096.0D);
ROYAL_GUARDIAN_SWORD_STORM_MAX_JUMPS = b.defineInRange("guardianSwordStormMaxJumps", 4, 0, 64);
ROYAL_GUARDIAN_SWORD_STORM_JUMP_RANGE = b.defineInRange("guardianSwordStormJumpRange", 9.0D, 0.0D, 128.0D);
ROYAL_ASSAILANT_BATTLE_AXE_ATTACK_DAMAGE = b.defineInRange("assailantBattleAxeAttackDamage", 151.0D, 0.0D, 4096.0D);
ROYAL_ASSAILANT_BATTLE_AXE_ATTACK_SPEED = b.defineInRange("assailantBattleAxeAttackSpeed", -2.9D, -10.0D, 10.0D);
ROYAL_WEAPON_ATTACK_REACH_BONUS = b.defineInRange("weaponAttackReachBonus", 3.2D, 0.0D, 32.0D);
ROYAL_WEAPON_ATTACK_KNOCKBACK_BONUS = b.defineInRange("weaponAttackKnockbackBonus", 1.0D, 0.0D, 32.0D);
ROYAL_WEAPON_DURABILITY = b.defineInRange("weaponDurability", 4608, 1, 100000);
ROYAL_WEAPON_ENCHANTABILITY = b.defineInRange("weaponEnchantability", 30, 0, 100);
ROYAL_GUARDIAN_SHIELD_DURABILITY = b.defineInRange("guardianShieldDurability", 1008, 1, 100000);
ROYAL_GUARDIAN_MUSTER_RANGE = b.defineInRange("guardianMusterRange", 16.0D, 0.0D, 128.0D);
ROYAL_GUARDIAN_MUSTER_DURATION_TICKS = b.defineInRange("guardianMusterDurationTicks", 1200, 1, 72000);
ROYAL_GUARDIAN_MUSTER_COOLDOWN_TICKS = b.defineInRange("guardianMusterCooldownTicks", 500, 0, 72000);
ROYAL_GUARDIAN_MUSTER_MOB_CAP = b.defineInRange("guardianMusterMobCap", 3, 0, 64);
ROYAL_GUARDIAN_MUSTER_DAMAGE_REDUCTION = b.defineInRange("guardianMusterDamageReduction", 0.40D, 0.0D, 1.0D);
ROYAL_GUARDIAN_MUSTER_ATTACK_BONUS = b.defineInRange("guardianMusterAttackBonus", 0.50D, 0.0D, 10.0D);
ROYAL_GUARDIAN_MUSTER_SPEED_BONUS = b.defineInRange("guardianMusterSpeedBonus", 0.25D, 0.0D, 10.0D);
ROYAL_GUARDIAN_MUSTER_PASSIVE_DAMAGE_FLOOR = b.defineInRange("guardianMusterPassiveDamageFloor", 3.0D, 0.0D, 1024.0D);
ROYAL_GUARDIAN_BOUNDARY_RADIUS = b.defineInRange("guardianBoundaryRadius", 9.0D, 0.5D, 128.0D);
ROYAL_GUARDIAN_BOUNDARY_DURATION_TICKS = b.defineInRange("guardianBoundaryDurationTicks", 120, 1, 72000);
ROYAL_GUARDIAN_BOUNDARY_COOLDOWN_TICKS = b.defineInRange("guardianBoundaryCooldownTicks", 700, 0, 72000);
ROYAL_GUARDIAN_BOUNDARY_STRENGTH_AMPLIFIER = b.defineInRange("guardianBoundaryStrengthAmplifier", 1, 0, 255);
ROYAL_GUARDIAN_BOUNDARY_ARREST_TICKS = b.defineInRange("guardianBoundaryArrestTicks", 20, 0, 1200);
ROYAL_GUARDIAN_BOUNDARY_DROP_TICKS = b.defineInRange("guardianBoundaryDropTicks", 8, 0, 1200);
ROYAL_GUARDIAN_BOUNDARY_PROJECTILE_CAP = b.defineInRange("guardianBoundaryProjectileCap", 64, 0, 4096);
b.pop();
b.push("battleAxe");
BATTLE_AXE_ATTACK_DAMAGE = b.comment("Attack damage of the Battle Axe.").defineInRange("attackDamage", 46.0D, 0.0D, 4096.0D);
BATTLE_AXE_ATTACK_SPEED = b.comment("Attack speed of the Battle Axe.") .defineInRange("attackSpeed", -3.1D, -10.0D, 10.0D);
b.pop();
// Big Bertha
b.push("bigBertha");
BIG_BERTHA_ATTACK_DAMAGE = b.comment("Attack damage of Big Bertha.") .defineInRange("attackDamage", 55.0D, 0.0D, 4096.0D);
BIG_BERTHA_REACH_BONUS = b.comment("Extra attack range in blocks while held in main hand.") .defineInRange("reachBonus", 3.0D, 0.0D, 32.0D);
@@ -324,6 +389,7 @@ public final class AntarchyToolsConfig {
b.push("scorpionWhip");
SCORPION_WHIP_BASE_DAMAGE = b.comment("Base lash damage of the Scorpion Stinger Whip.").defineInRange("baseDamage", 10.0D, 0.0D, 4096.0D);
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_SNAP_BONUS_DAMAGE = b.comment("Bonus damage dealt when snapping the tether free.").defineInRange("snapBonusDamage", 6.0D, 0.0D, 4096.0D);
@@ -336,11 +402,11 @@ public final class AntarchyToolsConfig {
BLOOD_CRYSTAL_KATANA_ATTACK_DAMAGE = b.comment("Attack damage of the Blood Crystal Katana.").defineInRange("attackDamage", 7, 0, 1024);
BLOOD_CRYSTAL_KATANA_LAUNCH_STRENGTH = b.comment("Forward launch strength applied to the wielder when the katana hits.").defineInRange("launchStrength", 1.1D, 0.0D, 8.0D);
BLOOD_CRYSTAL_KATANA_TRAIL_DURATION_TICKS = b.comment("How long the crimson trail lingers after a katana hit, in ticks.").defineInRange("trailDurationTicks", 12, 0, 200);
BLOOD_CRYSTAL_KATANA_REACH_BONUS = b.comment("Extra entity interaction range in blocks while held in main hand. Lets a swing reach (and dash toward) a target you are looking at from farther away.").defineInRange("reachBonus", 4.0D, 0.0D, 32.0D);
BLOOD_CRYSTAL_KATANA_INVULN_TICKS = b.comment("Full-immunity window granted after a full-strength swing dash, in ticks (0 disables).").defineInRange("invulnTicks", 8, 0, 200);
BLOOD_CRYSTAL_KATANA_DASH_COOLDOWN_TICKS = b.comment("Minimum ticks between katana dashes.").defineInRange("dashCooldownTicks", 4, 0, 200);
b.pop();
// Nightmare Gear
b.push("nightmareArmor");
NIGHTMARE_HELMET_ARMOR_VALUE = b.comment("Armor points of the Nightmare Helmet. (Netherite default: 3)") .defineInRange("helmetArmor", 3, 0, 100);
NIGHTMARE_CHESTPLATE_ARMOR_VALUE = b.comment("Armor points of the Nightmare Chestplate. (Netherite default: 8)") .defineInRange("chestplateArmor", 8, 0, 100);
@@ -351,10 +417,10 @@ 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_HELMET_DOUBLE_DAMAGE_CHANCE = b.comment("Chance for the Nightmare Helmet to double incoming damage dealt back to attackers.").defineInRange("helmetDoubleDamageChance", 0.04D, 0.0D, 1.0D);
NIGHTMARE_CHESTPLATE_DOUBLE_DAMAGE_CHANCE = b.comment("Chance for the Nightmare Chestplate to double incoming damage dealt back to attackers.").defineInRange("chestplateDoubleDamageChance", 0.06D, 0.0D, 1.0D);
NIGHTMARE_LEGGINGS_DOUBLE_DAMAGE_CHANCE = b.comment("Chance for the Nightmare Leggings to double incoming damage dealt back to attackers.").defineInRange("leggingsDoubleDamageChance", 0.05D, 0.0D, 1.0D);
NIGHTMARE_BOOTS_DOUBLE_DAMAGE_CHANCE = b.comment("Chance for the Nightmare Boots to double incoming damage dealt back to attackers.").defineInRange("bootsDoubleDamageChance", 0.03D, 0.0D, 1.0D);
NIGHTMARE_HELMET_DOUBLE_DAMAGE_CHANCE = b.comment("Chance for the Nightmare Helmet to double an incoming hit's damage.") .defineInRange("helmetDoubleDamageChance", 0.04D, 0.0D, 1.0D);
NIGHTMARE_CHESTPLATE_DOUBLE_DAMAGE_CHANCE = b.comment("Chance for the Nightmare Chestplate to double an incoming hit's damage.") .defineInRange("chestplateDoubleDamageChance", 0.06D, 0.0D, 1.0D);
NIGHTMARE_LEGGINGS_DOUBLE_DAMAGE_CHANCE = b.comment("Chance for the Nightmare Leggings to double an incoming hit's damage.") .defineInRange("leggingsDoubleDamageChance", 0.05D, 0.0D, 1.0D);
NIGHTMARE_BOOTS_DOUBLE_DAMAGE_CHANCE = b.comment("Chance for the Nightmare Boots to double an incoming hit's damage.") .defineInRange("bootsDoubleDamageChance", 0.03D, 0.0D, 1.0D);
PRIMORDIAL_ARMOR_KNOCKBACK_PER_PIECE = b.comment("Attack knockback added by each Primordial Armor piece.") .defineInRange("primordialArmorKnockbackPerPiece", 0.5D, 0.0D, 16.0D);
b.pop();
@@ -379,9 +445,6 @@ public final class AntarchyToolsConfig {
FALLEN_KING_CROWN_ARMOR_TOUGHNESS = b.comment("Armor toughness of the Fallen King's Crown. Default: 0.0 (gold helmet).").defineInRange("armorToughness", 0.0D, 0.0D, 100.0D);
b.pop();
// Blood Crystal Armor
b.push("bloodCrystalArmor");
BLOOD_CRYSTAL_ARMOR_SHIELD_RECHARGE_TICKS = b.comment("Ticks (20/s) for each armor Bloodglass Shield to recharge after shattering. Default: 600 (30s).").defineInRange("armorShieldRechargeTicks", 600, 1, 72000);
BLOOD_CRYSTAL_APPLE_SHIELD_COUNT = b.comment("Number of Bloodglass Shields granted by a Blood Crystal Apple (Bloodglass Ward level). Default: 2.").defineInRange("appleShieldCount", 2, 1, 8);
@@ -393,15 +456,12 @@ public final class AntarchyToolsConfig {
BLOOD_CRYSTAL_LEGGINGS_DEFENSE = b.comment("Armor defense value for Blood Crystal Leggings. Default: 5 (iron).").defineInRange("leggingsDefense", 5, 0, 30);
BLOOD_CRYSTAL_BOOTS_DEFENSE = b.comment("Armor defense value for Blood Crystal Boots. Default: 2 (iron).").defineInRange("bootsDefense", 2, 0, 30);
BLOOD_CRYSTAL_ARMOR_TOUGHNESS = b.comment("Armor toughness for all Blood Crystal armor pieces. Default: 0.0 (iron).").defineInRange("armorToughness", 0.0, 0.0, 20.0);
BLOOD_CRYSTAL_HELMET_DURABILITY = b.comment("Max durability of Blood Crystal Helmet. Default: 77 (gold).").defineInRange("helmetDurability", 77, 1, 2000);
BLOOD_CRYSTAL_CHESTPLATE_DURABILITY = b.comment("Max durability of Blood Crystal Chestplate. Default: 112 (gold).").defineInRange("chestplateDurability", 112, 1, 2000);
BLOOD_CRYSTAL_LEGGINGS_DURABILITY = b.comment("Max durability of Blood Crystal Leggings. Default: 105 (gold).").defineInRange("leggingsDurability", 105, 1, 2000);
BLOOD_CRYSTAL_BOOTS_DURABILITY = b.comment("Max durability of Blood Crystal Boots. Default: 91 (gold).").defineInRange("bootsDurability", 91, 1, 2000);
BLOOD_CRYSTAL_HELMET_DURABILITY = b.comment("Max durability of Blood Crystal Helmet. Default: 92.").defineInRange("helmetDurability", 92, 1, 2000);
BLOOD_CRYSTAL_CHESTPLATE_DURABILITY = b.comment("Max durability of Blood Crystal Chestplate. Default: 134.").defineInRange("chestplateDurability", 134, 1, 2000);
BLOOD_CRYSTAL_LEGGINGS_DURABILITY = b.comment("Max durability of Blood Crystal Leggings. Default: 126.").defineInRange("leggingsDurability", 126, 1, 2000);
BLOOD_CRYSTAL_BOOTS_DURABILITY = b.comment("Max durability of Blood Crystal Boots. Default: 109.").defineInRange("bootsDurability", 109, 1, 2000);
b.pop();
// Squidzooka
b.push("squidzooka");
SQUIDZOOKA_COOLDOWN_SECONDS = b.comment("Cooldown in seconds after firing. Set to 0 to disable.").defineInRange("cooldownSeconds", 1.0D, 0.0D, 3600.0D);
SQUIDZOOKA_LAUNCH_VELOCITY = b.comment("Initial launch velocity applied to the Missile Squid.") .defineInRange("launchVelocity", 2.1D, 0.1D, 20.0D);
@@ -414,9 +474,6 @@ public final class AntarchyToolsConfig {
RPO_LAUNCHER_EXPLOSION_RADIUS = b.comment("Radius in blocks of the ink explosion.") .defineInRange("explosionRadius", 4.0D, 0.5D, 32.0D);
b.pop();
// Size Rays
b.push("sizeRays");
SIZE_CHANGING_RAYS_ENABLED = b
.comment(
@@ -432,21 +489,6 @@ public final class AntarchyToolsConfig {
GROWTH_POTION_DELTA = b.comment("Scale delta per level of Growth Potion. Level II applies double this value.") .defineInRange("growthPotionDelta", 0.5D, 0.001D, 64.0D);
b.pop();
// Gravity
b.push("gravity");
INVERT_PROJECTILES_FROM_INVERTED_PLAYERS = b
.comment(
"If true, projectiles fired by inverted players keep their inverted launch and gravity.",
"Affects bows, crossbows, throwables, and firework boosts."
)
.define("invertProjectilesFromInvertedPlayers", false);
b.pop();
// Gravity Gun
b.push("gravityGun");
GRAVITY_GUN_ENABLED = b.comment("Master toggle for the Gravity Gun.") .define("enabled", true);
GRAVITY_GUN_BLOCKS_ENABLED = b.comment("If false, the Gravity Gun cannot grab blocks.") .define("blocksEnabled", true);
@@ -458,18 +500,28 @@ public final class AntarchyToolsConfig {
GRAVITY_GUN_MAX_HOLD_DISTANCE = b.comment("Maximum distance a held target can be pushed from the player, in blocks.") .defineInRange("maxHoldDistance", 10.0D, 1.5D, 64.0D);
b.pop();
// Critter Cage
b.push("eyeOfTheStorm");
EYE_OF_THE_STORM_ENABLED = b.define("enabled", true);
EYE_OF_THE_STORM_UPDRAFT_COOLDOWN_TICKS = b.defineInRange("updraftCooldownTicks", 40, 0, 20000);
EYE_OF_THE_STORM_UPDRAFT_LAUNCH_STRENGTH = b.defineInRange("updraftLaunchStrength", 1.15D, 0.0D, 16.0D);
EYE_OF_THE_STORM_UPDRAFT_HEIGHT = b.defineInRange("updraftHeight", 4.0D, 0.0D, 128.0D);
EYE_OF_THE_STORM_UPDRAFT_RADIUS = b.defineInRange("updraftRadius", 1.3D, 0.0D, 64.0D);
EYE_OF_THE_STORM_UPDRAFT_DURATION_TICKS = b.defineInRange("updraftDurationTicks", 32, 0, 20000);
EYE_OF_THE_STORM_SURGE_COOLDOWN_TICKS = b.defineInRange("surgeCooldownTicks", 70, 0, 20000);
EYE_OF_THE_STORM_SURGE_RANGE = b.defineInRange("surgeRange", 16.0D, 0.0D, 256.0D);
EYE_OF_THE_STORM_SURGE_DURATION_TICKS = b.defineInRange("surgeDurationTicks", 300, 0, 20000);
EYE_OF_THE_STORM_SURGE_RADIUS = b.defineInRange("surgeRadius", 4.0D, 0.0D, 128.0D);
EYE_OF_THE_STORM_SURGE_HEIGHT = b.defineInRange("surgeHeight", 6.0D, 0.0D, 128.0D);
EYE_OF_THE_STORM_SURGE_PULL_STRENGTH = b.defineInRange("surgePullStrength", 0.85D, 0.0D, 16.0D);
EYE_OF_THE_STORM_SURGE_RETURN_STRENGTH = b.defineInRange("surgeReturnStrength", 1.4D, 0.0D, 16.0D);
EYE_OF_THE_STORM_SURGE_DAMAGE = b.defineInRange("surgeDamage", 5.0F, 0.0F, 1024.0F);
b.pop();
b.push("critterCage");
CRITTER_CAGE_MAX_CAPTURABLE_WIDTH = b.comment("Maximum capturable entity width/depth based on the live hitbox, in blocks.").defineInRange("maxCapturableWidth", 1.65D, 0.1D, 64.0D);
CRITTER_CAGE_MAX_CAPTURABLE_HEIGHT = b.comment("Maximum capturable entity height based on the live hitbox, in blocks.").defineInRange("maxCapturableHeight", 1.65D, 0.1D, 64.0D);
b.pop();
// Miscellaneous items / consumables
b.push("ductTape");
DUCT_TAPE_REPAIR_PERCENT_PER_USE = b
.comment("Fraction of max durability repaired per use. 0.25 = 25% per application.")
@@ -497,7 +549,7 @@ public final class AntarchyToolsConfig {
b.pop();
b.push("moggles");
MOGGLES_VISION_RADIUS = b.comment("Radius used by Moggles cave detection.").defineInRange("visionRadius", 20.0D, 1.0D, 128.0D);
MOGGLES_VISION_RADIUS = b.comment("Search radius (in blocks) used by Moggles cave detection.").defineInRange("visionRadius", 20.0D, 1.0D, 128.0D);
b.pop();
SPEC = b.build();
@@ -533,6 +585,10 @@ public final class AntarchyToolsConfig {
static double ultimateCrossbowChargeSpeedMultiplier() { return ULTIMATE_CROSSBOW_CHARGE_SPEED_MULTIPLIER.get(); }
static int ultimateCrossbowEnchantability() { return ULTIMATE_CROSSBOW_ENCHANTABILITY.get(); }
static double ultimateMaceDamageMultiplier() { return ULTIMATE_MACE_DAMAGE_MULTIPLIER.get(); }
static double ultimateMaceAttackSpeed() { return ULTIMATE_MACE_ATTACK_SPEED.get(); }
static int ultimateMaceEnchantability() { return ULTIMATE_MACE_ENCHANTABILITY.get(); }
static boolean ultimateArmorComesEnchanted() { return ULTIMATE_ARMOR_COMES_ENCHANTED.get(); }
static int ultimateArmorEnchantability() { return ULTIMATE_ARMOR_ENCHANTABILITY.get(); }
static int ultimateHelmetArmorValue() { return ULTIMATE_HELMET_ARMOR_VALUE.get(); }
@@ -572,6 +628,7 @@ public final class AntarchyToolsConfig {
static int krakensGraspTentacleSlownessAmplifier() { return KRAKENS_GRASP_TENTACLE_SLOWNESS_AMPLIFIER.get(); }
static int krakensGraspTentacleSlownessRefreshTicks() { return KRAKENS_GRASP_TENTACLE_SLOWNESS_REFRESH_TICKS.get(); }
static double scorpionWhipBaseDamage() { return SCORPION_WHIP_BASE_DAMAGE.get(); }
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 double scorpionWhipSnapBonusDamage() { return SCORPION_WHIP_SNAP_BONUS_DAMAGE.get(); }
@@ -581,6 +638,9 @@ public final class AntarchyToolsConfig {
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(); }
static double bloodCrystalKatanaReachBonus() { return BLOOD_CRYSTAL_KATANA_REACH_BONUS.get(); }
static int bloodCrystalKatanaInvulnTicks() { return BLOOD_CRYSTAL_KATANA_INVULN_TICKS.get(); }
static int bloodCrystalKatanaDashCooldownTicks() { return BLOOD_CRYSTAL_KATANA_DASH_COOLDOWN_TICKS.get(); }
static int nightmareHelmetArmorValue() { return NIGHTMARE_HELMET_ARMOR_VALUE.get(); }
static int nightmareChestplateArmorValue() { return NIGHTMARE_CHESTPLATE_ARMOR_VALUE.get(); }
@@ -633,8 +693,6 @@ public final class AntarchyToolsConfig {
static double shrinkingPotionDelta() { return SHRINKING_POTION_DELTA.get(); }
static double growthPotionDelta() { return GROWTH_POTION_DELTA.get(); }
static boolean invertProjectilesFromInvertedPlayers() { return INVERT_PROJECTILES_FROM_INVERTED_PLAYERS.get(); }
static boolean gravityGunEnabled() { return GRAVITY_GUN_ENABLED.get(); }
static boolean gravityGunBlocksEnabled() { return GRAVITY_GUN_BLOCKS_ENABLED.get(); }
static boolean gravityGunEntitiesEnabled() { return GRAVITY_GUN_ENTITIES_ENABLED.get(); }
@@ -647,7 +705,6 @@ public final class AntarchyToolsConfig {
static double critterCageMaxCapturableWidth() { return CRITTER_CAGE_MAX_CAPTURABLE_WIDTH.get(); }
static double critterCageMaxCapturableHeight() { return CRITTER_CAGE_MAX_CAPTURABLE_HEIGHT.get(); }
static double ductTapeRepairPercentPerUse() { return DUCT_TAPE_REPAIR_PERCENT_PER_USE.get(); }
static double potentNyxiteInvertedDurationSeconds() { return POTENT_NYXITE_INVERTED_DURATION_SECONDS.get(); }
static int corneaEarNightVisionSeconds() { return CORNEA_EAR_NIGHT_VISION_SECONDS.get(); }
@@ -658,5 +715,79 @@ public final class AntarchyToolsConfig {
static int americanRegenerationAmplifier() { return AMERICAN_REGENERATION_AMPLIFIER.get(); }
static double mogglesVisionRadius() { return MOGGLES_VISION_RADIUS.get(); }
static boolean eyeOfTheStormEnabled() { return EYE_OF_THE_STORM_ENABLED.get(); }
static int eyeOfTheStormUpdraftCooldownTicks() { return EYE_OF_THE_STORM_UPDRAFT_COOLDOWN_TICKS.get(); }
static double eyeOfTheStormUpdraftLaunchStrength() { return EYE_OF_THE_STORM_UPDRAFT_LAUNCH_STRENGTH.get(); }
static double eyeOfTheStormUpdraftHeight() { return EYE_OF_THE_STORM_UPDRAFT_HEIGHT.get(); }
static double eyeOfTheStormUpdraftRadius() { return EYE_OF_THE_STORM_UPDRAFT_RADIUS.get(); }
static int eyeOfTheStormUpdraftDurationTicks() { return EYE_OF_THE_STORM_UPDRAFT_DURATION_TICKS.get(); }
static int eyeOfTheStormSurgeCooldownTicks() { return EYE_OF_THE_STORM_SURGE_COOLDOWN_TICKS.get(); }
static double eyeOfTheStormSurgeRange() { return EYE_OF_THE_STORM_SURGE_RANGE.get(); }
static int eyeOfTheStormSurgeDurationTicks() { return EYE_OF_THE_STORM_SURGE_DURATION_TICKS.get(); }
static double eyeOfTheStormSurgeRadius() { return EYE_OF_THE_STORM_SURGE_RADIUS.get(); }
static double eyeOfTheStormSurgeHeight() { return EYE_OF_THE_STORM_SURGE_HEIGHT.get(); }
static double eyeOfTheStormSurgePullStrength() { return EYE_OF_THE_STORM_SURGE_PULL_STRENGTH.get(); }
static double eyeOfTheStormSurgeReturnStrength() { return EYE_OF_THE_STORM_SURGE_RETURN_STRENGTH.get(); }
static float eyeOfTheStormSurgeDamage() { return EYE_OF_THE_STORM_SURGE_DAMAGE.get().floatValue(); }
static boolean royalArmorComesEnchanted() { return ROYAL_ARMOR_COMES_ENCHANTED.get(); }
static int royalArmorProtectionLevel() { return ROYAL_ARMOR_PROTECTION_LEVEL.get(); }
static int royalArmorEnchantability() { return ROYAL_ARMOR_ENCHANTABILITY.get(); }
static int royalArmorDurabilityMultiplier() { return ROYAL_ARMOR_DURABILITY_MULTIPLIER.get(); }
static int royalGuardianHelmetArmorValue() { return ROYAL_GUARDIAN_HELMET_ARMOR_VALUE.get(); }
static int royalGuardianChestplateArmorValue() { return ROYAL_GUARDIAN_CHESTPLATE_ARMOR_VALUE.get(); }
static int royalGuardianLeggingsArmorValue() { return ROYAL_GUARDIAN_LEGGINGS_ARMOR_VALUE.get(); }
static int royalGuardianBootsArmorValue() { return ROYAL_GUARDIAN_BOOTS_ARMOR_VALUE.get(); }
static double royalGuardianArmorToughness() { return ROYAL_GUARDIAN_ARMOR_TOUGHNESS.get(); }
static double royalGuardianArmorKnockbackResistance() { return ROYAL_GUARDIAN_ARMOR_KNOCKBACK_RESISTANCE.get(); }
static double royalGuardianHelmetJudgmentBonus() { return ROYAL_GUARDIAN_HELMET_JUDGMENT_BONUS.get(); }
static double royalGuardianChestplateJudgmentBonus() { return ROYAL_GUARDIAN_CHESTPLATE_JUDGMENT_BONUS.get(); }
static double royalGuardianLeggingsJudgmentBonus() { return ROYAL_GUARDIAN_LEGGINGS_JUDGMENT_BONUS.get(); }
static double royalGuardianBootsJudgmentBonus() { return ROYAL_GUARDIAN_BOOTS_JUDGMENT_BONUS.get(); }
static int royalGuardianJudgmentDurationTicks() { return ROYAL_GUARDIAN_JUDGMENT_DURATION_TICKS.get(); }
static int royalAssailantHelmetArmorValue() { return ROYAL_ASSAILANT_HELMET_ARMOR_VALUE.get(); }
static int royalAssailantChestplateArmorValue() { return ROYAL_ASSAILANT_CHESTPLATE_ARMOR_VALUE.get(); }
static int royalAssailantLeggingsArmorValue() { return ROYAL_ASSAILANT_LEGGINGS_ARMOR_VALUE.get(); }
static int royalAssailantBootsArmorValue() { return ROYAL_ASSAILANT_BOOTS_ARMOR_VALUE.get(); }
static double royalAssailantArmorToughness() { return ROYAL_ASSAILANT_ARMOR_TOUGHNESS.get(); }
static double royalAssailantArmorKnockbackResistance() { return ROYAL_ASSAILANT_ARMOR_KNOCKBACK_RESISTANCE.get(); }
static double royalAssailantHelmetDoubleDamageChance() { return ROYAL_ASSAILANT_HELMET_DOUBLE_DAMAGE_CHANCE.get(); }
static double royalAssailantChestplateDoubleDamageChance() { return ROYAL_ASSAILANT_CHESTPLATE_DOUBLE_DAMAGE_CHANCE.get(); }
static double royalAssailantLeggingsDoubleDamageChance() { return ROYAL_ASSAILANT_LEGGINGS_DOUBLE_DAMAGE_CHANCE.get(); }
static double royalAssailantBootsDoubleDamageChance() { return ROYAL_ASSAILANT_BOOTS_DOUBLE_DAMAGE_CHANCE.get(); }
static double royalGuardianSwordAttackDamage() { return ROYAL_GUARDIAN_SWORD_ATTACK_DAMAGE.get(); }
static double giantFryingPanAttackDamage() { return GIANT_FRYING_PAN_ATTACK_DAMAGE.get(); }
static int giantFryingPanCookTimeTicks() { return GIANT_FRYING_PAN_COOK_TIME_TICKS.get(); }
static double royalGuardianSwordAttackSpeed() { return ROYAL_GUARDIAN_SWORD_ATTACK_SPEED.get(); }
static int royalGuardianSwordElementalCooldownTicks() { return ROYAL_GUARDIAN_SWORD_ELEMENTAL_COOLDOWN_TICKS.get(); }
static double royalGuardianSwordFirePrimaryDamage() { return ROYAL_GUARDIAN_SWORD_FIRE_PRIMARY_DAMAGE.get(); }
static double royalGuardianSwordFireSplashDamage() { return ROYAL_GUARDIAN_SWORD_FIRE_SPLASH_DAMAGE.get(); }
static double royalGuardianSwordFrostSpikeDamage() { return ROYAL_GUARDIAN_SWORD_FROST_SPIKE_DAMAGE.get(); }
static double royalGuardianSwordStormPrimaryDamage() { return ROYAL_GUARDIAN_SWORD_STORM_PRIMARY_DAMAGE.get(); }
static double royalGuardianSwordStormJumpDamage() { return ROYAL_GUARDIAN_SWORD_STORM_JUMP_DAMAGE.get(); }
static int royalGuardianSwordStormMaxJumps() { return ROYAL_GUARDIAN_SWORD_STORM_MAX_JUMPS.get(); }
static double royalGuardianSwordStormJumpRange() { return ROYAL_GUARDIAN_SWORD_STORM_JUMP_RANGE.get(); }
static double royalAssailantBattleAxeAttackDamage() { return ROYAL_ASSAILANT_BATTLE_AXE_ATTACK_DAMAGE.get(); }
static double royalAssailantBattleAxeAttackSpeed() { return ROYAL_ASSAILANT_BATTLE_AXE_ATTACK_SPEED.get(); }
static double royalWeaponAttackReachBonus() { return ROYAL_WEAPON_ATTACK_REACH_BONUS.get(); }
static double royalWeaponAttackKnockbackBonus() { return ROYAL_WEAPON_ATTACK_KNOCKBACK_BONUS.get(); }
static int royalWeaponDurability() { return ROYAL_WEAPON_DURABILITY.get(); }
static int royalWeaponEnchantability() { return ROYAL_WEAPON_ENCHANTABILITY.get(); }
static int royalGuardianShieldDurability() { return ROYAL_GUARDIAN_SHIELD_DURABILITY.get(); }
static double royalGuardianMusterRange() { return ROYAL_GUARDIAN_MUSTER_RANGE.get(); }
static int royalGuardianMusterDurationTicks() { return ROYAL_GUARDIAN_MUSTER_DURATION_TICKS.get(); }
static int royalGuardianMusterCooldownTicks() { return ROYAL_GUARDIAN_MUSTER_COOLDOWN_TICKS.get(); }
static int royalGuardianMusterMobCap() { return ROYAL_GUARDIAN_MUSTER_MOB_CAP.get(); }
static double royalGuardianMusterDamageReduction() { return ROYAL_GUARDIAN_MUSTER_DAMAGE_REDUCTION.get(); }
static double royalGuardianMusterAttackBonus() { return ROYAL_GUARDIAN_MUSTER_ATTACK_BONUS.get(); }
static double royalGuardianMusterSpeedBonus() { return ROYAL_GUARDIAN_MUSTER_SPEED_BONUS.get(); }
static double royalGuardianMusterPassiveDamageFloor() { return ROYAL_GUARDIAN_MUSTER_PASSIVE_DAMAGE_FLOOR.get(); }
static double royalGuardianBoundaryRadius() { return ROYAL_GUARDIAN_BOUNDARY_RADIUS.get(); }
static int royalGuardianBoundaryDurationTicks() { return ROYAL_GUARDIAN_BOUNDARY_DURATION_TICKS.get(); }
static int royalGuardianBoundaryCooldownTicks() { return ROYAL_GUARDIAN_BOUNDARY_COOLDOWN_TICKS.get(); }
static int royalGuardianBoundaryStrengthAmplifier() { return ROYAL_GUARDIAN_BOUNDARY_STRENGTH_AMPLIFIER.get(); }
static int royalGuardianBoundaryArrestTicks() { return ROYAL_GUARDIAN_BOUNDARY_ARREST_TICKS.get(); }
static int royalGuardianBoundaryDropTicks() { return ROYAL_GUARDIAN_BOUNDARY_DROP_TICKS.get(); }
static int royalGuardianBoundaryProjectileCap() { return ROYAL_GUARDIAN_BOUNDARY_PROJECTILE_CAP.get(); }
}
@@ -8,6 +8,8 @@ public final class AntarchyWoodTypes {
public static final WoodType OURANWOOD = register("ouranwood");
public static final WoodType PEACH = register("peach");
public static final WoodType NADIR = register("nadir");
public static final WoodType ROYAL = register("royal");
public static final WoodType TRUFFALO = register("truffalo");
private AntarchyWoodTypes() {
}
@@ -2,6 +2,7 @@ package com.craisinlord.antarchy.forge;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.compat.infinity.InfinityCompatBridge;
import com.craisinlord.antarchy.compat.infinity.InfinityWarpResult;
import net.lerariemann.infinity.InfinityMod;
import net.lerariemann.infinity.util.InfinityMethods;
import net.lerariemann.infinity.util.teleport.PortalCreator;
@@ -10,6 +11,12 @@ import net.minecraft.core.BlockPos;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.server.MinecraftServer;
import net.minecraft.core.registries.Registries;
import net.minecraft.resources.ResourceKey;
import net.minecraft.world.level.Level;
import net.lerariemann.infinity.access.MinecraftServerAccess;
import net.lerariemann.infinity.access.ServerPlayerEntityAccess;
import net.minecraft.util.RandomSource;
import java.util.ArrayList;
@@ -69,13 +76,71 @@ public final class ForgeInfinityCompat implements InfinityCompatBridge {
}
@Override
public boolean requestWarp(ServerPlayer player, ResourceLocation dimensionId) {
public InfinityWarpResult requestWarp(ServerPlayer player, ResourceLocation dimensionId) {
try {
WarpLogic.requestWarp(player, dimensionId, false);
return true;
requestWarpCountingQueuedAsNew(player, dimensionId);
return InfinityWarpResult.PENDING;
} catch (Throwable throwable) {
Antarchy.LOGGER.error("[Antarchy] Failed to request an Infinity warp to {}", dimensionId, throwable);
return false;
return InfinityGenerationFailure.consume(dimensionId)
? InfinityWarpResult.FAILED_GENERATION
: InfinityWarpResult.REJECTED;
}
}
private static void requestWarpCountingQueuedAsNew(ServerPlayer player, ResourceLocation dimensionId) {
if (player == null) {
return;
}
MinecraftServer server = player.getServer();
if (server == null) {
return;
}
if (((MinecraftServerAccess) server).infinity$needsInvocation()) {
PortalCreator.onInvocationNeedDetected(player);
return;
}
if (queuedDimensionCountsAsNew(server, dimensionId)) {
((ServerPlayerEntityAccess) player).infinity$setWarpTimer(2L, dimensionId);
} else {
WarpLogic.performWarp(player, dimensionId);
}
}
private static boolean queuedDimensionCountsAsNew(MinecraftServer server, ResourceLocation dimensionId) {
ResourceKey<Level> key = ResourceKey.create(Registries.DIMENSION, dimensionId);
if (server instanceof MinecraftServerAccess access && access.infinity$hasToAdd(key)) {
return true;
}
try {
return PortalCreator.tryAddInfinityDimension(server, dimensionId);
} catch (Throwable throwable) {
InfinityGenerationFailure.mark(dimensionId);
throw throwable;
}
}
@Override
public InfinityWarpResult requestDimensionCreation(MinecraftServer server, ResourceLocation dimensionId) {
if (!isAvailable() || server == null || dimensionId == null || !"infinity".equals(dimensionId.getNamespace())) {
return InfinityWarpResult.REJECTED;
}
ResourceKey<Level> key = ResourceKey.create(Registries.DIMENSION, dimensionId);
if (server.getLevel(key) != null) {
return InfinityWarpResult.READY;
}
if (!(server instanceof MinecraftServerAccess access)) {
return InfinityWarpResult.REJECTED;
}
try {
if (access.infinity$hasToAdd(key)) {
return InfinityWarpResult.PENDING;
}
return PortalCreator.tryAddInfinityDimension(server, dimensionId)
? InfinityWarpResult.PENDING : InfinityWarpResult.REJECTED;
} catch (Throwable throwable) {
Antarchy.LOGGER.error("[Antarchy] Failed to request creation of Infinity dimension {}", dimensionId, throwable);
return InfinityWarpResult.FAILED_GENERATION;
}
}
@@ -0,0 +1,20 @@
package com.craisinlord.antarchy.forge;
import net.minecraft.resources.ResourceLocation;
public final class InfinityGenerationFailure {
private static final ThreadLocal<ResourceLocation> FAILURE = new ThreadLocal<>();
private InfinityGenerationFailure() {
}
public static void mark(ResourceLocation dimensionId) {
FAILURE.set(dimensionId);
}
public static boolean consume(ResourceLocation dimensionId) {
ResourceLocation failed = FAILURE.get();
FAILURE.remove();
return dimensionId.equals(failed);
}
}
@@ -1,16 +1,12 @@
package com.craisinlord.antarchy.forge.client;
import net.minecraftforge.fml.common.Mod;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.client.GlimmeringHudRenderer;
import com.craisinlord.antarchy.content.client.GoopedHudRenderer;
import com.craisinlord.antarchy.content.client.HordeHudRenderer;
import com.craisinlord.antarchy.content.client.TigerEyeClientHooks;
import com.craisinlord.antarchy.content.client.hud.BloodglassHudRenderer;
import com.craisinlord.antarchy.content.client.particle.*;
import com.craisinlord.antarchy.content.client.renderer.*;
import com.craisinlord.antarchy.content.client.renderer.CreepingHorrorRenderer;
import com.craisinlord.antarchy.content.client.renderer.LurkingTerrorRenderer;
import com.craisinlord.antarchy.forge.AntarchyForgeFluidTypes;
import com.craisinlord.antarchy.forge.registry.AntarchyForgeBlocks;
import com.craisinlord.antarchy.forge.registry.AntarchyForgeEntites;
@@ -27,6 +23,7 @@ import net.minecraft.client.model.HumanoidModel;
import net.minecraft.client.Minecraft;
import net.minecraft.client.player.AbstractClientPlayer;
import net.minecraft.client.renderer.entity.ThrownItemRenderer;
import com.craisinlord.antarchy.content.client.renderer.UnderVaultRenderer;
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EntityType;
@@ -38,7 +35,6 @@ import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer;
import net.minecraft.client.renderer.ItemBlockRenderTypes;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.blockentity.CampfireRenderer;
import net.minecraft.client.renderer.entity.ArmorStandRenderer;
import net.minecraft.client.renderer.entity.LivingEntityRenderer;
import net.minecraft.client.renderer.item.ItemProperties;
import net.minecraft.resources.ResourceLocation;
@@ -52,18 +48,21 @@ import net.minecraft.world.level.FoliageColor;
import net.minecraft.world.level.material.FluidState;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
import net.minecraftforge.client.event.RegisterParticleProvidersEvent;
import net.minecraftforge.client.event.RegisterColorHandlersEvent;
import net.minecraftforge.client.event.EntityRenderersEvent;
import net.minecraftforge.client.event.RegisterClientReloadListenersEvent;
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
import net.minecraftforge.client.event.RegisterGuiOverlaysEvent;
import net.minecraftforge.client.gui.overlay.VanillaGuiOverlay;
import net.minecraftforge.client.extensions.common.IClientItemExtensions;
import net.minecraftforge.client.extensions.common.IClientFluidTypeExtensions;
import net.minecraftforge.client.model.DynamicFluidContainerModel;
import net.minecraftforge.common.MinecraftForge;
import org.joml.Vector3f;
import software.bernie.geckolib.core.animatable.GeoAnimatable;
import com.craisinlord.antarchy.content.client.AntarchyGeoItem;
import com.craisinlord.antarchy.content.client.AntarchyGeoItemRenderer;
@Mod.EventBusSubscriber(modid = Antarchy.MODID, bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT)
public final class AntarchyForgeClient {
@@ -74,17 +73,36 @@ public final class AntarchyForgeClient {
private static final ResourceLocation PEACH_CHEST_BOAT_TEXTURE = new ResourceLocation(Antarchy.MODID, "textures/entity/chest_boat/peach.png");
private static final ResourceLocation NADIR_BOAT_TEXTURE = new ResourceLocation(Antarchy.MODID, "textures/entity/boat/nadir.png");
private static final ResourceLocation NADIR_CHEST_BOAT_TEXTURE = new ResourceLocation(Antarchy.MODID, "textures/entity/chest_boat/nadir.png");
private static final ResourceLocation WATER_STILL = ResourceLocation.withDefaultNamespace("block/water_still");
private static final ResourceLocation WATER_FLOW = ResourceLocation.withDefaultNamespace("block/water_flow");
private static final ResourceLocation WATER_OVERLAY = ResourceLocation.withDefaultNamespace("block/water_overlay");
private static final ResourceLocation UNDERWATER_OVERLAY = ResourceLocation.withDefaultNamespace("textures/misc/underwater.png");
private static final ResourceLocation ROYAL_BOAT_TEXTURE = new ResourceLocation(Antarchy.MODID, "textures/entity/boat/royal.png");
private static final ResourceLocation ROYAL_CHEST_BOAT_TEXTURE = new ResourceLocation(Antarchy.MODID, "textures/entity/chest_boat/royal.png");
private static final ResourceLocation TRUFFALO_BOAT_TEXTURE = new ResourceLocation(Antarchy.MODID, "textures/entity/boat/truffalo.png");
private static final ResourceLocation TRUFFALO_CHEST_BOAT_TEXTURE = new ResourceLocation(Antarchy.MODID, "textures/entity/chest_boat/truffalo.png");
private static final ResourceLocation WATER_STILL = new ResourceLocation("block/water_still");
private static final ResourceLocation WATER_FLOW = new ResourceLocation("block/water_flow");
private static final ResourceLocation WATER_OVERLAY = new ResourceLocation("block/water_overlay");
private static final ResourceLocation UNDERWATER_OVERLAY = new ResourceLocation("textures/misc/underwater.png");
private static final ResourceLocation ANTIWATER_STILL = new ResourceLocation(Antarchy.MODID, "block/antiwater_still");
private static final ResourceLocation ANTIWATER_FLOW = new ResourceLocation(Antarchy.MODID, "block/antiwater_flow");
private static final ResourceLocation BILE_STILL = new ResourceLocation(Antarchy.MODID, "block/bile/bile_still");
private static final ResourceLocation BILE_FLOW = new ResourceLocation(Antarchy.MODID, "block/bile/bile_flowing");
private static final ResourceLocation ICHOR_STILL = new ResourceLocation(Antarchy.MODID, "block/ichor/ichor_still");
private static final ResourceLocation ICHOR_FLOW = new ResourceLocation(Antarchy.MODID, "block/ichor/ichor_flowing");
private AntarchyForgeClient() {
}
@SubscribeEvent
public static void clientSetup(FMLClientSetupEvent event) {
Antarchy.physicalClient = true;
com.craisinlord.antarchy.content.AntarchyAnthologyHooks.registerClient();
event.enqueueWork(() -> {
com.craisinlord.antarchy.content.client.AntarchyArchivePreviews.register();
com.craisinlord.antarchy.content.client.game.AntarchyComputerGames.register();
net.minecraft.client.gui.screens.MenuScreens.register(AntarchyForgeMisc.DORRIE_INVENTORY_MENU.get(), com.craisinlord.antarchy.content.client.screen.DorrieInventoryScreen::new);
net.minecraft.client.gui.screens.MenuScreens.register(AntarchyForgeMisc.ROYAL_JUDGMENT_MENU.get(), com.craisinlord.antarchy.content.client.screen.RoyalJudgmentScreen::new);
net.minecraft.client.gui.screens.MenuScreens.register(AntarchyForgeMisc.GIANT_FRYING_PAN_MENU.get(), com.craisinlord.antarchy.content.client.screen.GiantFryingPanScreen::new);
});
}
@SubscribeEvent
public static void registerRenderers(EntityRenderersEvent.RegisterRenderers event) {
event.registerBlockEntityRenderer(AntarchyForgeBlocks.DREAM_CAMPFIRE_BLOCK_ENTITY.get(), CampfireRenderer::new);
@@ -103,22 +121,28 @@ public final class AntarchyForgeClient {
event.registerEntityRenderer(AntarchyForgeEntites.BROWN_ANT.get(), context -> withParalyzedGeoLayer(new AntRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.RAINBOW_ANT.get(), context -> withParalyzedGeoLayer(new AntRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.MOLEWORM.get(), context -> withParalyzedGeoLayer(new MolewormRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.WORM.get(), context -> withParalyzedGeoLayer(new WormRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.MANTIS.get(), context -> withParalyzedGeoLayer(new MantisRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.ALPHA_MANTIS.get(), context -> withParalyzedGeoLayer(new AlphaMantisRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.HOVERBOARD.get(), com.craisinlord.antarchy.content.client.renderer.HoverboardRenderer::new);
event.registerEntityRenderer(AntarchyForgeEntites.MOLEVORE.get(), context -> withParalyzedGeoLayer(new MolevoreRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.TRIFFID.get(), context -> withParalyzedGeoLayer(new TriffidRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.FLYTRAP.get(), context -> withParalyzedGeoLayer(new FlytrapRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.OURANWOOD_BOAT_ENTITY.get(), context -> new OuranwoodBoatRenderer<>(context, OURANWOOD_BOAT_TEXTURE, false));
event.registerEntityRenderer(AntarchyForgeEntites.OURANWOOD_CHEST_BOAT_ENTITY.get(), context -> new OuranwoodBoatRenderer<>(context, OURANWOOD_CHEST_BOAT_TEXTURE, true));
event.registerEntityRenderer(AntarchyForgeEntites.PEACH_BOAT_ENTITY.get(), context -> new PeachBoatRenderer<>(context, PEACH_BOAT_TEXTURE, false));
event.registerEntityRenderer(AntarchyForgeEntites.PEACH_CHEST_BOAT_ENTITY.get(), context -> new PeachBoatRenderer<>(context, PEACH_CHEST_BOAT_TEXTURE, true));
event.registerEntityRenderer(AntarchyForgeEntites.NADIR_BOAT_ENTITY.get(), context -> new PeachBoatRenderer<>(context, NADIR_BOAT_TEXTURE, false));
event.registerEntityRenderer(AntarchyForgeEntites.NADIR_CHEST_BOAT_ENTITY.get(), context -> new PeachBoatRenderer<>(context, NADIR_CHEST_BOAT_TEXTURE, true));
event.registerEntityRenderer(AntarchyForgeEntites.ROYAL_BOAT_ENTITY.get(), context -> new PeachBoatRenderer<>(context, ROYAL_BOAT_TEXTURE, false));
event.registerEntityRenderer(AntarchyForgeEntites.ROYAL_CHEST_BOAT_ENTITY.get(), context -> new PeachBoatRenderer<>(context, ROYAL_CHEST_BOAT_TEXTURE, true));
event.registerEntityRenderer(AntarchyForgeEntites.TRUFFALO_BOAT_ENTITY.get(), context -> new PeachBoatRenderer<>(context, TRUFFALO_BOAT_TEXTURE, false));
event.registerEntityRenderer(AntarchyForgeEntites.TRUFFALO_CHEST_BOAT_ENTITY.get(), context -> new PeachBoatRenderer<>(context, TRUFFALO_CHEST_BOAT_TEXTURE, true));
event.registerEntityRenderer(AntarchyForgeEntites.APPLE_COW.get(), context -> withParalyzedGeoLayer(new AppleCowRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.GOLDEN_APPLE_COW.get(), context -> withParalyzedGeoLayer(new AppleCowRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.ENCHANTED_GOLDEN_APPLE_COW.get(), context -> withParalyzedGeoLayer(new AppleCowRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.DIAMOND_MINECART.get(), DiamondMinecartRenderer::new);
event.registerEntityRenderer(AntarchyForgeEntites.DR_TRAYAURUS.get(), context -> new DrTrayaurusRenderer(context, DR_TRAYAURUS_TEXTURE));
event.registerEntityRenderer(AntarchyForgeEntites.CLOUD_SHARK.get(), context -> withParalyzedGeoLayer(new CloudSharkRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.STRATOSHARK.get(), context -> withParalyzedGeoLayer(new StratosharkRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.KRAKEN.get(), context -> withParalyzedGeoLayer(new KrakenRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.TENTACLE.get(), com.craisinlord.antarchy.content.client.renderer.TentacleRenderer::new);
event.registerEntityRenderer(AntarchyForgeEntites.KRAKENS_GRASP_TRIDENT.get(), com.craisinlord.antarchy.content.client.renderer.KrakensGraspThrownTridentRenderer::new);
@@ -126,11 +150,12 @@ public final class AntarchyForgeClient {
event.registerEntityRenderer(AntarchyForgeEntites.OCTOPUS_BOMB.get(), context -> withParalyzedGeoLayer(new OctopusBombRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.NIGHTMARE.get(), context -> withParalyzedGeoLayer(new NightmareRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.NIGHTMARE_PORTAL.get(), NightmarePortalRenderer::new);
event.registerEntityRenderer(AntarchyForgeEntites.NIGHTMARE_BITE.get(), NightmareBiteRenderer::new);
event.registerEntityRenderer(AntarchyForgeEntites.DIMENSIONAL_TEAR.get(), DimensionalTearRenderer::new);
event.registerEntityRenderer(AntarchyForgeEntites.TIME_DILATION_FIELD.get(), TimeDilationFieldRenderer::new);
event.registerEntityRenderer(AntarchyForgeEntites.ROYAL_ASSAILANT_BLACK_HOLE.get(), com.craisinlord.antarchy.content.client.renderer.RoyalAssailantBlackHoleRenderer::new);
event.registerEntityRenderer(AntarchyForgeEntites.PORTAL_GUN_PORTAL.get(), PortalGunPortalRenderer::new);
event.registerEntityRenderer(AntarchyForgeEntites.PORTAL_GUN_PROJECTILE.get(), com.craisinlord.antarchy.content.client.renderer.PortalGunProjectileRenderer::new);
event.registerEntityRenderer(AntarchyForgeEntites.NIGHTMARE_BITE.get(), NightmareBiteRenderer::new);
event.registerEntityRenderer(AntarchyForgeEntites.LUCID.get(), context -> withParalyzedGeoLayer(new LucidRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.VORTEX.get(), context -> withParalyzedGeoLayer(new VortexRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.BED_BUG.get(), context -> withParalyzedGeoLayer(new BedBugRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.WASP.get(), context -> withParalyzedGeoLayer(new WaspRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.BOMBER.get(), context -> withParalyzedGeoLayer(new BomberRenderer(context)));
@@ -139,26 +164,39 @@ public final class AntarchyForgeClient {
event.registerEntityRenderer(AntarchyForgeEntites.GROWTH_RAY_PROJECTILE.get(), SizeRayProjectileRenderer::new);
event.registerEntityRenderer(AntarchyForgeEntites.LUCID_BOLT.get(), LucidBoltRenderer::new);
event.registerEntityRenderer(AntarchyForgeEntites.LUCID_PEARL_PROJECTILE.get(), ThrownItemRenderer::new);
event.registerEntityRenderer(AntarchyForgeEntites.VORTEX_CHARGE_PROJECTILE.get(), ThrownItemRenderer::new);
event.registerEntityRenderer(AntarchyForgeEntites.WIND_VORTEX.get(), WindVortexRenderer::new);
event.registerEntityRenderer(AntarchyForgeEntites.ROYAL_BLACK_HOLE.get(), com.craisinlord.antarchy.content.client.renderer.RoyalBlackHoleRenderer::new);
event.registerEntityRenderer(AntarchyForgeEntites.ROYAL_ASSAILANT_BLACK_HOLE.get(), com.craisinlord.antarchy.content.client.renderer.RoyalAssailantBlackHoleRenderer::new);
event.registerEntityRenderer(AntarchyForgeEntites.CRITTER_CAGE_PROJECTILE.get(), ThrownItemRenderer::new);
event.registerEntityRenderer(AntarchyForgeEntites.WORM_HOOK_PROJECTILE.get(), ThrownItemRenderer::new);
event.registerEntityRenderer(AntarchyForgeEntites.HUSH_PROJECTILE.get(), HushProjectileRenderer::new);
event.registerEntityRenderer(AntarchyForgeEntites.BRUTALFLY_ORB.get(), BrutalflyOrbRenderer::new);
event.registerEntityRenderer(AntarchyForgeEntites.UPWARD_FALLING_BLOCK.get(), com.craisinlord.antarchy.content.client.renderer.UpwardFallingBlockRenderer::new);
event.registerEntityRenderer(AntarchyForgeEntites.SCORPION.get(), context -> withParalyzedGeoLayer(new ScorpionRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.EMPEROR_SCORPION.get(), context -> withParalyzedGeoLayer(new EmperorScorpionRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.TORETERROR.get(), ToreterrorRenderer::new);
event.registerEntityRenderer(AntarchyForgeEntites.TORETERROR.get(), context -> withParalyzedGeoLayer(new ToreterrorRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.WATER_BOMB.get(), WaterBombRenderer::new);
event.registerEntityRenderer(AntarchyForgeEntites.CHEEP.get(), context -> withParalyzedGeoLayer(new com.craisinlord.antarchy.content.client.renderer.CheepRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.DORRIE.get(), context -> new com.craisinlord.antarchy.content.client.renderer.DorrieRenderer(context));
event.registerEntityRenderer(AntarchyForgeEntites.OURANWOOD_DEER.get(), context -> new com.craisinlord.antarchy.content.client.renderer.OuranwoodDeerRenderer(context));
event.registerEntityRenderer(AntarchyForgeEntites.DORRIE.get(), context -> withParalyzedGeoLayer(new com.craisinlord.antarchy.content.client.renderer.DorrieRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.OURANWOOD_DEER.get(), context -> withParalyzedGeoLayer(new com.craisinlord.antarchy.content.client.renderer.OuranwoodDeerRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.GLIMMER.get(), context -> withParalyzedGeoLayer(new com.craisinlord.antarchy.content.client.renderer.glimmer.GlimmerRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.ELKA.get(), context -> new com.craisinlord.antarchy.content.client.renderer.ElkaRenderer(context));
event.registerEntityRenderer(AntarchyForgeEntites.ELKA.get(), context -> withParalyzedGeoLayer(new com.craisinlord.antarchy.content.client.renderer.ElkaRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.ROLLY_POLLY.get(), context -> withParalyzedGeoLayer(new com.craisinlord.antarchy.content.client.renderer.RollyPollyRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.TERMITE.get(), context -> withParalyzedGeoLayer(new com.craisinlord.antarchy.content.client.renderer.TermiteRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.CREEPING_HORROR.get(), context -> withParalyzedGeoLayer(new com.craisinlord.antarchy.content.client.renderer.CreepingHorrorRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.LURKING_TERROR.get(), context -> withParalyzedGeoLayer(new com.craisinlord.antarchy.content.client.renderer.LurkingTerrorRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.CRAWLING_BLIGHT.get(), context -> withParalyzedGeoLayer(new com.craisinlord.antarchy.content.client.renderer.CrawlingBlightRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.SKULKING_FRIGHT.get(), context -> withParalyzedGeoLayer(new com.craisinlord.antarchy.content.client.renderer.SkulkingFrightRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.MANTICORE.get(), context -> withParalyzedGeoLayer(new com.craisinlord.antarchy.content.client.renderer.ManticoreRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.HERCULES_BEETLE.get(), context -> withParalyzedGeoLayer(new com.craisinlord.antarchy.content.client.renderer.HerculesBeetleRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.PRINCE.get(), com.craisinlord.antarchy.content.client.renderer.RoyalMountRenderer::new);
event.registerEntityRenderer(AntarchyForgeEntites.PRINCESS.get(), com.craisinlord.antarchy.content.client.renderer.RoyalMountRenderer::new);
event.registerEntityRenderer(AntarchyForgeEntites.KING.get(), com.craisinlord.antarchy.content.client.renderer.RoyalBossRenderer::new);
event.registerEntityRenderer(AntarchyForgeEntites.QUEEN.get(), com.craisinlord.antarchy.content.client.renderer.RoyalBossRenderer::new);
event.registerEntityRenderer(AntarchyForgeEntites.ROYAL_BOLT.get(), com.craisinlord.antarchy.content.client.renderer.RoyalBoltRenderer::new);
event.registerEntityRenderer(AntarchyForgeEntites.ROYAL_ELEMENTAL_PROJECTILE.get(), com.craisinlord.antarchy.content.client.renderer.RoyalElementalProjectileRenderer::new);
event.registerEntityRenderer(AntarchyForgeEntites.ROYAL_ICE_SPIKE.get(), com.craisinlord.antarchy.content.client.renderer.RoyalIceSpikeRenderer::new);
event.registerEntityRenderer(AntarchyForgeEntites.JERRY.get(), context -> withParalyzedGeoLayer(new com.craisinlord.antarchy.content.client.renderer.JerryRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.JUMPY_BUG.get(), context -> withParalyzedGeoLayer(new com.craisinlord.antarchy.content.client.renderer.JumpyBugRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.SPRINGBUG.get(), context -> withParalyzedGeoLayer(new com.craisinlord.antarchy.content.client.renderer.SpringbugRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.SPIT_BUG.get(), context -> withParalyzedGeoLayer(new com.craisinlord.antarchy.content.client.renderer.SpitBugRenderer(context)));
event.registerEntityRenderer(AntarchyForgeEntites.SPIT_BUG_PROJECTILE.get(), com.craisinlord.antarchy.content.client.renderer.SpitBugProjectileRenderer::new);
event.registerEntityRenderer(AntarchyForgeEntites.STINK_BUG.get(), context -> withParalyzedGeoLayer(new com.craisinlord.antarchy.content.client.renderer.StinkBugRenderer(context)));
@@ -172,13 +210,13 @@ public final class AntarchyForgeClient {
(LivingEntityRenderer<AbstractClientPlayer, PlayerModel<AbstractClientPlayer>>) event.getSkin(skin);
if (renderer != null) {
renderer.addLayer(new ParalyzedStonePlayerLayer(renderer));
renderer.addLayer(new com.craisinlord.antarchy.content.client.renderer.TigerEyeCamouflagePlayerLayer(renderer));
renderer.addLayer(new TigerEyeCamouflagePlayerLayer(renderer));
renderer.addLayer(new GoopedLivingLayer(renderer));
renderer.addLayer(new GlimmeringLivingLayer(renderer));
renderer.addLayer(new com.craisinlord.antarchy.content.client.renderer.RoyalIndicatorLivingLayer<>(renderer));
renderer.addLayer(new BrutalflyElytraLayer(renderer));
renderer.addLayer(new com.craisinlord.antarchy.content.client.renderer.ManticoreWingsLayer(renderer));
renderer.addLayer(new FallenKingCrownLayer(renderer));
renderer.addLayer(new com.craisinlord.antarchy.content.client.renderer.TemporalContractionAfterimageLayer(renderer));
renderer.addLayer(new com.craisinlord.antarchy.content.client.renderer.RoyalAssailantAxeAfterimageLayer(renderer));
}
}
LivingEntityRenderer<net.minecraft.world.entity.decoration.ArmorStand, ArmorStandModel> armorStandRenderer =
@@ -202,27 +240,32 @@ public final class AntarchyForgeClient {
if (entityType == EntityType.PLAYER) {
return;
}
Object renderer = event.getRenderer((EntityType) entityType);
Object renderer;
try {
renderer = event.getRenderer((EntityType) entityType);
} catch (ClassCastException notLiving) {
return;
}
if (renderer == null) {
return;
}
if (renderer instanceof GeoEntityRenderer) {
if (!(renderer instanceof LivingEntityRenderer<?, ?> livingRenderer)) {
return;
}
if (!(renderer instanceof LivingEntityRenderer)) {
if (renderer instanceof GeoEntityRenderer<?>) {
return;
}
LivingEntityRenderer livingRenderer = (LivingEntityRenderer) renderer;
livingRenderer.addLayer(new ParalyzedStoneLivingLayer<>(livingRenderer));
livingRenderer.addLayer(new GoopedLivingLayer<>(livingRenderer));
livingRenderer.addLayer(new GlimmeringLivingLayer<>(livingRenderer));
livingRenderer.addLayer(new com.craisinlord.antarchy.content.client.renderer.TemporalContractionAfterimageLayer(livingRenderer));
((LivingEntityRenderer) livingRenderer).addLayer(new ParalyzedStoneLivingLayer<>(livingRenderer));
((LivingEntityRenderer) livingRenderer).addLayer(new GoopedLivingLayer<>(livingRenderer));
((LivingEntityRenderer) livingRenderer).addLayer(new GlimmeringLivingLayer<>(livingRenderer));
((LivingEntityRenderer) livingRenderer).addLayer(new com.craisinlord.antarchy.content.client.renderer.RoyalIndicatorLivingLayer<>(livingRenderer));
}
private static <T extends LivingEntity & GeoAnimatable> GeoEntityRenderer<T> withParalyzedGeoLayer(GeoEntityRenderer<T> renderer) {
renderer.addRenderLayer(new ParalyzedStoneGeoLayer<>(renderer));
renderer.addRenderLayer(new GoopedGeoLayer<>(renderer));
renderer.addRenderLayer(new com.craisinlord.antarchy.content.client.renderer.TemporalContractionGeoLayer<>(renderer));
renderer.addRenderLayer(new com.craisinlord.antarchy.content.client.renderer.RoyalIndicatorGeoLayer<>(renderer));
renderer.addRenderLayer(new TemporalContractionGeoLayer<>(renderer));
return renderer;
}
@@ -296,6 +339,7 @@ public final class AntarchyForgeClient {
event.registerSpriteSet(AntarchyForgeMisc.STINKY_GAS.get(), HypnoticGasParticle.Provider::new);
event.registerSpriteSet(AntarchyForgeMisc.STINKY_FLY.get(), FireflyParticle.Provider::new);
event.registerSpriteSet(AntarchyForgeMisc.PEACH_LEAVES_PARTICLE.get(), PeachLeavesParticle.Provider::new);
event.registerSpriteSet(AntarchyForgeMisc.BUG_SPRAY_PARTICLE.get(), com.craisinlord.antarchy.content.client.particle.BugSprayParticle.Provider::new);
event.registerSpriteSet(AntarchyForgeMisc.LOTUS_POLLEN.get(), com.craisinlord.antarchy.content.client.particle.LotusPollenParticle.Provider::new);
event.registerSpriteSet(AntarchyForgeMisc.HYPNOTIC_GAS.get(), HypnoticGasParticle.Provider::new);
event.registerSpriteSet(AntarchyForgeMisc.HYPNOTIC_GAS_DOWN.get(), sprites -> new HypnoticGasParticle.Provider(sprites, true));
@@ -314,24 +358,36 @@ public final class AntarchyForgeClient {
event.registerSpriteSet(AntarchyForgeMisc.UNDERVAULT_CONNECTION.get(), UndertrialParticle.OmenProvider::new);
}
@SubscribeEvent
public static void registerGuiLayers(RegisterGuiOverlaysEvent event) {
event.registerAboveAll("dread_darkness",
event.registerAbove(
VanillaGuiOverlay.CROSSHAIR.id(),
"portal_gun_crosshair",
(gui, guiGraphics, partialTick, width, height) -> com.craisinlord.antarchy.content.client.PortalGunCrosshairRenderer.render(guiGraphics)
);
event.registerAboveAll(
"dread_darkness",
(gui, guiGraphics, partialTick, width, height) -> DreadHudRenderer.render(guiGraphics)
);
event.registerAboveAll("horde_intensity",
event.registerAboveAll(
"horde_intensity",
(gui, guiGraphics, partialTick, width, height) -> HordeHudRenderer.render(guiGraphics)
);
event.registerAboveAll("paralyzed_stone",
event.registerAboveAll(
"paralyzed_stone",
(gui, guiGraphics, partialTick, width, height) -> ParalyzedHudRenderer.render(guiGraphics)
);
event.registerAboveAll("gooped_tint",
event.registerAboveAll(
"gooped_tint",
(gui, guiGraphics, partialTick, width, height) -> GoopedHudRenderer.render(guiGraphics)
);
event.registerAboveAll("glimmering_tint",
(gui, guiGraphics, partialTick, width, height) -> GlimmeringHudRenderer.render(guiGraphics)
event.registerAboveAll(
"glimmering_tint",
(gui, guiGraphics, partialTick, width, height) -> com.craisinlord.antarchy.content.client.GlimmeringHudRenderer.render(guiGraphics)
);
event.registerAboveAll("brutalfly_elytra",
event.registerAboveAll(
"brutalfly_elytra",
(gui, guiGraphics, partialTick, width, height) -> BrutalflyElytraHudRenderer.render(guiGraphics)
);
event.registerBelow(
@@ -339,27 +395,35 @@ public final class AntarchyForgeClient {
"bloodglass_hearts",
(gui, guiGraphics, partialTick, width, height) -> BloodglassHudRenderer.render(guiGraphics)
);
event.registerAboveAll("triffid_goo",
(gui, guiGraphics, partialTick, width, height) -> TriffidGooHudRenderer.render(guiGraphics)
event.registerAboveAll(
"flytrap_goo",
(gui, guiGraphics, partialTick, width, height) -> FlytrapGooHudRenderer.render(guiGraphics)
);
event.registerAboveAll("springy_boots",
(gui, guiGraphics, partialTick, width, height) -> JumpyBootsHudRenderer.render(guiGraphics)
event.registerAboveAll(
"springy_boots",
(gui, guiGraphics, partialTick, width, height) -> SpringyBootsHudRenderer.render(guiGraphics)
);
event.registerAboveAll("dorrie_jump",
event.registerAboveAll(
"dorrie_jump",
(gui, guiGraphics, partialTick, width, height) -> DorrieJumpHudRenderer.render(guiGraphics)
);
event.registerAboveAll("hercules_beetle_charge",
event.registerAboveAll(
"hercules_beetle_charge",
(gui, guiGraphics, partialTick, width, height) -> HerculesBeetleChargeHudRenderer.render(guiGraphics)
);
event.registerAboveAll(
"king_judgment_flash",
(gui, guiGraphics, partialTick, width, height) -> com.craisinlord.antarchy.content.client.KingJudgmentFlashHudRenderer.render(guiGraphics)
);
}
@SubscribeEvent
public static void onClientSetup(FMLClientSetupEvent event) {
event.enqueueWork(() -> {
net.minecraft.client.gui.screens.MenuScreens.register(AntarchyForgeMisc.DORRIE_INVENTORY_MENU.get(), com.craisinlord.antarchy.content.client.screen.DorrieInventoryScreen::new);
com.craisinlord.antarchy.content.client.TigerEyeClientHooks.setCamouflageKeyTextSupplier(
() -> AntarchyKeyBindings.TIGERS_EYE_CAMOUFLAGE.getTranslatedKeyMessage());
TigerEyeClientHooks.setCamouflageKeyTextSupplier(() -> AntarchyKeyBindings.TIGERS_EYE_CAMOUFLAGE.getTranslatedKeyMessage());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.UNDERTRIAL_SPAWNER.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.UNDERVAULT.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.ANTIMETAL_RAIL.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.ANTIMETAL_POWERED_RAIL.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.ANTIMETAL_DETECTOR_RAIL.get(), RenderType.cutout());
@@ -380,10 +444,22 @@ public final class AntarchyForgeClient {
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.NADIR_TRAPDOOR.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.NADIR_SAPLING.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.POTTED_NADIR_SAPLING.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.ROYAL_LEAVES.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.ROYAL_FLOWERING_LEAVES.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.ROYAL_DOOR.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.ROYAL_TRAPDOOR.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.ROYAL_SAPLING.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.POTTED_ROYAL_SAPLING.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.TRUFFALO_DOOR.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.TRUFFALO_TRAPDOOR.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.TRUFFALO_SAPLING.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.POTTED_TRUFFALO_SAPLING.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.DUPLICATOR_SAPLING.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.ORANGE_MILKWEED.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.PINK_MILKWEED.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.GLIMMERING_REED.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.AMBER_LICHEN.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.MUCUS.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.CREEPVINE.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.CAMELLIA.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.SPIDER_LILY.get(), RenderType.cutout());
@@ -400,6 +476,15 @@ public final class AntarchyForgeClient {
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.UMBRAL_MOSS_CARPET.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.NYXITE_SPIKE.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.CHITIN_SPIKE.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.TYPHONITE_SPIKE.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.SPIRALING_VINES.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.GOREVINE.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.WHIRLFLOWER.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.NADIR_FERN.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.LARGE_NADIR_FERN.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.DUSKBELL.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.NADIR_ROOTS.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.VERDANT_ROOTS.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.STAR_CORAL.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.STAR_CORAL_FAN.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.STAR_CORAL_WALL_FAN.get(), RenderType.cutout());
@@ -422,18 +507,16 @@ public final class AntarchyForgeClient {
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.DREAM_FIRE.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.DREAM_CEILING_FIRE.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.ANTIWATER_BLOCK.get(), RenderType.translucent());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.LUMEN_BLOCK.get(), RenderType.translucent());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeMisc.ANTIWATER.get(), RenderType.translucent());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeMisc.FLOWING_ANTIWATER.get(), RenderType.translucent());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeMisc.ICHOR.get(), RenderType.translucent());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeMisc.FLOWING_ICHOR.get(), RenderType.translucent());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.LUMEN_BLOCK.get(), RenderType.translucent());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeMisc.LUMEN.get(), RenderType.translucent());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeMisc.FLOWING_LUMEN.get(), RenderType.translucent());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeMisc.BILE.get(), RenderType.translucent());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeMisc.FLOWING_BILE.get(), RenderType.translucent());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.LUCID_ANCHOR.get(), RenderType.translucent());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.ELYTHIA_PORTAL.get(), RenderType.translucent());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.THORAXIS_PORTAL.get(), RenderType.translucent());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.TRIFFID_GOO_BLOCK.get(), RenderType.translucent());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.FLYTRAP_GOO_BLOCK.get(), RenderType.translucent());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.VORTEX_LENS.get(), RenderType.translucent());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.URANIUM_DOOR.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.TITANIUM_DOOR.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.URANIUM_TRAPDOOR.get(), RenderType.cutout());
@@ -441,7 +524,7 @@ public final class AntarchyForgeClient {
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.URANIUM_BARS.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.TITANIUM_BARS.get(), RenderType.cutout());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.CLOUD_BLOCK.get(), RenderType.translucent());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.JUMPY_BUG_EGG.get(), RenderType.translucent());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.SPRINGBUG_EGG.get(), RenderType.translucent());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.SPIT_BUG_EGG.get(), RenderType.translucent());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.JERRY_EGG.get(), RenderType.translucent());
ItemBlockRenderTypes.setRenderLayer(AntarchyForgeBlocks.BIOWART_TENDRILS.get(), RenderType.cutout());
@@ -454,10 +537,25 @@ public final class AntarchyForgeClient {
});
}
@SubscribeEvent
public static void registerClientReloadListeners(RegisterClientReloadListenersEvent event) {
event.registerReloadListener(new net.minecraft.server.packs.resources.SimplePreparableReloadListener<Void>() {
@Override
protected Void prepare(net.minecraft.server.packs.resources.ResourceManager resourceManager, net.minecraft.util.profiling.ProfilerFiller profiler) {
return null;
}
@Override
protected void apply(Void object, net.minecraft.server.packs.resources.ResourceManager resourceManager, net.minecraft.util.profiling.ProfilerFiller profiler) {
TigerEyeCamouflageClientHandler.clearClientCaches();
}
});
}
private static void registerUltimateBowProperties() {
ItemProperties.register(
AntarchyForgeItems.ULTIMATE_BOW.get(),
ResourceLocation.withDefaultNamespace("pull"),
new ResourceLocation("pull"),
(stack, level, entity, seed) -> {
if (entity == null || entity.getUseItem() != stack) {
return 0.0F;
@@ -468,7 +566,7 @@ public final class AntarchyForgeClient {
);
ItemProperties.register(
AntarchyForgeItems.ULTIMATE_BOW.get(),
ResourceLocation.withDefaultNamespace("pulling"),
new ResourceLocation("pulling"),
(stack, level, entity, seed) ->
entity != null && entity.isUsingItem() && entity.getUseItem() == stack ? 1.0F : 0.0F
);
@@ -477,7 +575,7 @@ public final class AntarchyForgeClient {
private static void registerUltimateCrossbowProperties() {
ItemProperties.register(
AntarchyForgeItems.ULTIMATE_CROSSBOW.get(),
ResourceLocation.withDefaultNamespace("pull"),
new ResourceLocation("pull"),
(stack, level, entity, seed) -> {
if (entity == null || CrossbowItem.isCharged(stack) || entity.getUseItem() != stack) {
return 0.0F;
@@ -489,18 +587,18 @@ public final class AntarchyForgeClient {
);
ItemProperties.register(
AntarchyForgeItems.ULTIMATE_CROSSBOW.get(),
ResourceLocation.withDefaultNamespace("pulling"),
new ResourceLocation("pulling"),
(stack, level, entity, seed) ->
entity != null && entity.isUsingItem() && entity.getUseItem() == stack && !CrossbowItem.isCharged(stack) ? 1.0F : 0.0F
);
ItemProperties.register(
AntarchyForgeItems.ULTIMATE_CROSSBOW.get(),
ResourceLocation.withDefaultNamespace("charged"),
new ResourceLocation("charged"),
(stack, level, entity, seed) -> CrossbowItem.isCharged(stack) ? 1.0F : 0.0F
);
ItemProperties.register(
AntarchyForgeItems.ULTIMATE_CROSSBOW.get(),
ResourceLocation.withDefaultNamespace("firework"),
new ResourceLocation("firework"),
(stack, level, entity, seed) -> CrossbowItem.isCharged(stack) && CrossbowItem.containsChargedProjectile(stack, Items.FIREWORK_ROCKET) ? 1.0F : 0.0F
);
ItemProperties.register(
@@ -515,6 +613,9 @@ public final class AntarchyForgeClient {
);
}
private static int bluestoneWireColor(int power) {
float normalized = power / 15.0F;
int red = (int) (6.0F + normalized * 54.0F);
@@ -1,12 +1,11 @@
package com.craisinlord.antarchy.forge.client;
import net.minecraftforge.fml.common.Mod;
import com.craisinlord.antarchy.Antarchy;
import com.mojang.blaze3d.platform.InputConstants;
import net.minecraft.client.KeyMapping;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.client.event.RegisterKeyMappingsEvent;
import net.minecraftforge.client.settings.KeyConflictContext;
@@ -22,24 +21,16 @@ public final class AntarchyKeyBindings {
CATEGORY
);
public static final KeyMapping DORRIE_CHARGE_JUMP = new KeyMapping(
"key.antarchy.dorrie_charge_jump",
public static final KeyMapping MOUNT_SPECIAL = new KeyMapping(
"key.antarchy.mount_special",
KeyConflictContext.IN_GAME,
InputConstants.Type.KEYSYM,
InputConstants.KEY_LCONTROL,
CATEGORY
);
public static final KeyMapping HERCULES_BEETLE_CHARGE = new KeyMapping(
"key.antarchy.hercules_beetle_charge",
KeyConflictContext.IN_GAME,
InputConstants.Type.KEYSYM,
InputConstants.KEY_LCONTROL,
CATEGORY
);
public static final KeyMapping HERCULES_BEETLE_FLIGHT_TOGGLE = new KeyMapping(
"key.antarchy.hercules_beetle_flight_toggle",
public static final KeyMapping MOUNT_FLIGHT_TOGGLE = new KeyMapping(
"key.antarchy.mount_flight_toggle",
KeyConflictContext.IN_GAME,
InputConstants.Type.KEYSYM,
InputConstants.KEY_R,
@@ -53,22 +44,78 @@ public final class AntarchyKeyBindings {
CATEGORY
);
public static final KeyMapping ROYAL_INVERSION_TOGGLE = new KeyMapping(
"key.antarchy.royal_inversion_toggle",
KeyConflictContext.IN_GAME,
InputConstants.Type.KEYSYM,
InputConstants.KEY_V,
CATEGORY
);
public static final KeyMapping ROYAL_BOUNDARY = new KeyMapping(
"key.antarchy.royal_boundary",
KeyConflictContext.IN_GAME,
InputConstants.Type.KEYSYM,
InputConstants.KEY_B,
CATEGORY
);
public static final KeyMapping PORTAL_GUN_ZOOM = new KeyMapping(
"key.antarchy.portal_gun_zoom",
KeyConflictContext.IN_GAME,
InputConstants.Type.MOUSE,
InputConstants.MOUSE_BUTTON_MIDDLE,
CATEGORY
);
public static final KeyMapping PORTAL_GUN_RESET = new KeyMapping(
"key.antarchy.portal_gun_reset",
KeyConflictContext.IN_GAME,
InputConstants.Type.KEYSYM,
InputConstants.KEY_R,
CATEGORY
);
private AntarchyKeyBindings() {}
@SubscribeEvent
public static void onRegisterKeyMappings(RegisterKeyMappingsEvent event) {
event.register(BRUTALFLY_FLAP);
event.register(DORRIE_CHARGE_JUMP);
event.register(HERCULES_BEETLE_CHARGE);
event.register(HERCULES_BEETLE_FLIGHT_TOGGLE);
event.register(MOUNT_SPECIAL);
event.register(MOUNT_FLIGHT_TOGGLE);
event.register(TIGERS_EYE_CAMOUFLAGE);
event.register(ROYAL_INVERSION_TOGGLE);
event.register(ROYAL_BOUNDARY);
event.register(PORTAL_GUN_ZOOM);
event.register(PORTAL_GUN_RESET);
}
public static boolean isHerculesBeetleFlightTogglePressed() {
return HERCULES_BEETLE_FLIGHT_TOGGLE.isDown();
public static boolean isMountFlightTogglePressed() {
return MOUNT_FLIGHT_TOGGLE.isDown();
}
public static boolean isMountSpecialPressed() {
return MOUNT_SPECIAL.isDown();
}
public static boolean consumeTigerEyeCamouflagePressed() {
return TIGERS_EYE_CAMOUFLAGE.consumeClick();
}
public static boolean consumeRoyalInversionTogglePressed() {
return ROYAL_INVERSION_TOGGLE.consumeClick();
}
public static boolean consumeRoyalBoundaryPressed() {
return ROYAL_BOUNDARY.consumeClick();
}
public static boolean consumePortalGunZoomPressed() {
return PORTAL_GUN_ZOOM.consumeClick();
}
public static boolean consumePortalGunResetPressed() {
return PORTAL_GUN_RESET.consumeClick();
}
public static boolean isPortalGunResetDown() {
return PORTAL_GUN_RESET.isDown() || PORTAL_GUN_RESET.consumeClick();
}
}
@@ -1,13 +1,14 @@
package com.craisinlord.antarchy.forge.client;
import net.minecraftforge.fml.common.Mod;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.item.BigBerthaItem;
import com.craisinlord.antarchy.content.item.RoyalGuardianSwordItem;
import com.craisinlord.antarchy.content.network.BigBerthaModeCyclePayload;
import com.craisinlord.antarchy.content.network.RoyalGuardianSwordModeCyclePayload;
import net.minecraft.client.Minecraft;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.event.TickEvent;
import com.craisinlord.antarchy.forge.network.AntarchyForgeNetworkCore;
@@ -27,7 +28,9 @@ public final class BigBerthaClientHandler {
return;
}
if (!(mc.player.getMainHandItem().getItem() instanceof BigBerthaItem)) {
boolean bigBertha = mc.player.getMainHandItem().getItem() instanceof BigBerthaItem;
boolean royalGuardianSword = mc.player.getMainHandItem().getItem() instanceof RoyalGuardianSwordItem;
if (!bigBertha && !royalGuardianSword) {
lastUseDown = false;
return;
}
@@ -36,8 +39,9 @@ public final class BigBerthaClientHandler {
if (useDown
&& !lastUseDown
&& mc.player.isShiftKeyDown()
&& mc.player.getCooldowns().isOnCooldown(mc.player.getMainHandItem().getItem())) {
AntarchyForgeNetworkCore.sendToServer(new BigBerthaModeCyclePayload());
) {
if (bigBertha) AntarchyForgeNetworkCore.sendToServer(new BigBerthaModeCyclePayload());
else AntarchyForgeNetworkCore.sendToServer(new RoyalGuardianSwordModeCyclePayload());
}
lastUseDown = useDown;
}
@@ -1,17 +1,14 @@
package com.craisinlord.antarchy.forge.client;
import net.minecraftforge.fml.common.Mod;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.client.BrutalflyElytraClientState;
import com.craisinlord.antarchy.content.item.BrutalflyElytraFlightHelper;
import com.craisinlord.antarchy.content.item.BrutalflyElytraItem;
import com.craisinlord.antarchy.content.network.BrutalflyElytraFlapPayload;
import net.minecraft.client.Minecraft;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.event.TickEvent;
import net.minecraftforge.client.event.RenderGuiOverlayEvent;
import net.minecraftforge.client.gui.overlay.VanillaGuiOverlay;
@@ -19,7 +16,6 @@ import com.craisinlord.antarchy.forge.network.AntarchyForgeNetworkCore;
@Mod.EventBusSubscriber(modid = Antarchy.MODID, value = Dist.CLIENT)
public final class BrutalflyElytraClientHandler {
private static final Logger LOGGER = LoggerFactory.getLogger("Antarchy/BrutalflyElytra");
private static boolean lastJumpDown;
private static int chargeTicks;
@@ -9,7 +9,7 @@ import net.minecraft.util.Mth;
import net.minecraft.world.entity.player.Player;
public final class BrutalflyElytraHudRenderer {
private static final ResourceLocation GUI_ICONS_LOCATION = ResourceLocation.withDefaultNamespace("textures/gui/icons.png");
private static final ResourceLocation GUI_ICONS_LOCATION = new ResourceLocation("textures/gui/icons.png");
private static final int BAR_WIDTH = 182;
private static final int BAR_HEIGHT = 5;
@@ -1,49 +0,0 @@
package com.craisinlord.antarchy.forge.client;
import net.minecraftforge.fml.common.Mod;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.client.CameraShakeClientState;
import com.craisinlord.antarchy.content.client.HerculesBeetleImpactShakeClientState;
import com.craisinlord.antarchy.content.item.BigBerthaItem;
import net.minecraft.client.Minecraft;
import net.minecraft.util.Mth;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.client.event.ViewportEvent;
@Mod.EventBusSubscriber(modid = Antarchy.MODID, value = Dist.CLIENT)
public final class CameraShakeHandler {
private static final int TORETERROR_SHAKE_TICKS = 25;
private CameraShakeHandler() {
}
@SubscribeEvent
public static void onComputeCameraAngles(ViewportEvent.ComputeCameraAngles event) {
Minecraft mc = Minecraft.getInstance();
if (mc.level == null || mc.player == null) {
CameraShakeClientState.clear();
return;
}
float shakeStrength = CameraShakeClientState.getStrength(event.getCamera().getPosition());
int beetleShakeTicks = HerculesBeetleImpactShakeClientState.getTicks();
if (beetleShakeTicks > 0) {
shakeStrength += (float) beetleShakeTicks / TORETERROR_SHAKE_TICKS * 2.0F;
}
int bigBerthaShakeTicks = BigBerthaItem.clientShakeTicks;
if (bigBerthaShakeTicks > 0) {
shakeStrength += (float) bigBerthaShakeTicks / TORETERROR_SHAKE_TICKS * 2.0F;
}
if (shakeStrength <= 0.0F) return;
float time = (float) (mc.player.tickCount + event.getPartialTick());
event.setYaw(event.getYaw() + Mth.sin(time * 1.5F) * shakeStrength * 2.5F);
event.setPitch(event.getPitch() + Mth.cos(time * 1.8F) * shakeStrength * 2.0F);
event.setRoll(event.getRoll() + Mth.sin(time * 2.2F) * shakeStrength * 1.5F);
}
}
@@ -1,25 +0,0 @@
package com.craisinlord.antarchy.forge.client;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.client.ClientTimeDilationTicker;
import net.minecraft.client.Minecraft;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.event.TickEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
@Mod.EventBusSubscriber(modid = Antarchy.MODID, value = Dist.CLIENT, bus = Mod.EventBusSubscriber.Bus.FORGE)
public final class ClientTimeDilationHandler {
private ClientTimeDilationHandler() {}
@SubscribeEvent
public static void onClientTick(TickEvent.ClientTickEvent event) {
if (event.phase == TickEvent.Phase.END) {
Minecraft mc = Minecraft.getInstance();
if (mc.level != null) {
ClientTimeDilationTicker.tick(mc.level);
com.craisinlord.antarchy.content.client.ContractionAfterimages.tick(mc.level);
}
}
}
}
@@ -1,7 +1,5 @@
package com.craisinlord.antarchy.forge.client;
import net.minecraftforge.fml.common.Mod;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.config.AntarchySettings;
import com.craisinlord.antarchy.content.entity.DiamondMinecartEntity;
@@ -9,6 +7,7 @@ import com.craisinlord.antarchy.content.network.DiamondMinecartInputPayload;
import net.minecraft.client.Minecraft;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.event.TickEvent;
import com.craisinlord.antarchy.forge.network.AntarchyForgeNetworkCore;
@@ -1,7 +1,5 @@
package com.craisinlord.antarchy.forge.client;
import net.minecraftforge.fml.common.Mod;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.entity.DorrieEntity;
import com.craisinlord.antarchy.content.network.DorrieChargeJumpPayload;
@@ -10,6 +8,7 @@ import net.minecraft.client.Minecraft;
import net.minecraft.client.player.LocalPlayer;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.event.TickEvent;
import com.craisinlord.antarchy.forge.network.AntarchyForgeNetworkCore;
@@ -42,7 +41,7 @@ public final class DorrieJumpClientHandler {
wasPressingJump = pressingJump;
}
boolean pressingCharge = AntarchyKeyBindings.DORRIE_CHARGE_JUMP.isDown();
boolean pressingCharge = AntarchyKeyBindings.MOUNT_SPECIAL.isDown();
if (pressingCharge != wasPressingCharge) {
AntarchyForgeNetworkCore.sendToServer(new DorrieChargeJumpPayload(pressingCharge));
if (!pressingCharge && player.getVehicle() instanceof DorrieEntity dorrie) {
@@ -9,7 +9,7 @@ import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.player.Player;
public final class DorrieJumpHudRenderer {
private static final ResourceLocation GUI_ICONS_LOCATION = ResourceLocation.withDefaultNamespace("textures/gui/icons.png");
private static final ResourceLocation GUI_ICONS_LOCATION = new ResourceLocation("textures/gui/icons.png");
private static final int BAR_WIDTH = 182;
private static final int BAR_HEIGHT = 5;
@@ -1,7 +1,5 @@
package com.craisinlord.antarchy.forge.client;
import net.minecraftforge.fml.common.Mod;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.config.AntarchySettings;
import com.craisinlord.antarchy.content.AntarchyTags;
@@ -21,6 +19,7 @@ import net.minecraft.world.entity.player.Player;
import net.minecraft.world.phys.Vec3;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.event.TickEvent;
import java.util.ArrayList;
@@ -1,39 +0,0 @@
package com.craisinlord.antarchy.forge.client;
import net.minecraftforge.fml.common.Mod;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.block.DuctTapeBlock;
import net.minecraft.client.Minecraft;
import net.minecraft.client.player.LocalPlayer;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.client.event.MovementInputUpdateEvent;
@Mod.EventBusSubscriber(modid = Antarchy.MODID, value = Dist.CLIENT)
public final class DuctTapeClientHandler {
private DuctTapeClientHandler() {
}
@SubscribeEvent
public static void onMovementInputUpdate(MovementInputUpdateEvent event) {
if (!(event.getEntity() instanceof LocalPlayer player)) {
return;
}
Minecraft mc = Minecraft.getInstance();
if (mc.level == null || (!player.isNoGravity() && !DuctTapeBlock.isTouchingTape(mc.level, player))) {
return;
}
var input = event.getInput();
input.left = false;
input.right = false;
input.up = false;
input.down = false;
input.leftImpulse = 0.0F;
input.forwardImpulse = 0.0F;
input.jumping = false;
input.shiftKeyDown = false;
}
}
@@ -1,7 +1,5 @@
package com.craisinlord.antarchy.forge.client;
import net.minecraftforge.fml.common.Mod;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.config.AntarchySettings;
import com.craisinlord.antarchy.content.AntarchyTags;
@@ -15,6 +13,7 @@ import net.minecraft.sounds.SoundSource;
import net.minecraft.world.entity.player.Player;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.event.TickEvent;
@Mod.EventBusSubscriber(modid = Antarchy.MODID, value = Dist.CLIENT)
@@ -0,0 +1,41 @@
package com.craisinlord.antarchy.forge.client;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.config.AntarchySettings;
import com.craisinlord.antarchy.content.item.EyeOfTheStormItem;
import com.craisinlord.antarchy.content.network.EyeOfStormPrimaryPayload;
import net.minecraft.client.Minecraft;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.event.TickEvent;
import com.craisinlord.antarchy.forge.network.AntarchyForgeNetworkCore;
@Mod.EventBusSubscriber(modid = Antarchy.MODID, value = Dist.CLIENT)
public final class EyeOfStormClientHandler {
private static boolean lastAttackDown;
private EyeOfStormClientHandler() {
}
@SubscribeEvent
public static void onClientTick(TickEvent.ClientTickEvent event) {
if (event.phase != TickEvent.Phase.END) return;
Minecraft mc = Minecraft.getInstance();
if (mc.player == null || mc.level == null || mc.screen != null || !AntarchySettings.eyeOfTheStormEnabled()) {
lastAttackDown = false;
return;
}
if (!(mc.player.getMainHandItem().getItem() instanceof EyeOfTheStormItem)) {
lastAttackDown = false;
return;
}
boolean attackDown = mc.options.keyAttack.isDown();
if (attackDown && !lastAttackDown) {
AntarchyForgeNetworkCore.sendToServer(new EyeOfStormPrimaryPayload());
}
lastAttackDown = attackDown;
}
}
@@ -8,8 +8,8 @@ import net.minecraft.util.Mth;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.level.block.Block;
public final class TriffidGooHudRenderer {
private TriffidGooHudRenderer() {
public final class FlytrapGooHudRenderer {
private FlytrapGooHudRenderer() {
}
private static float fadeProgress = 0f;
private static final float FADE_SPEED = 0.05f;
@@ -22,7 +22,7 @@ public final class TriffidGooHudRenderer {
fadeProgress = Math.max(0f, fadeProgress - FADE_SPEED);
if (fadeProgress <= 0f) return;
} else {
Block goo = AntarchyForgeBlocks.TRIFFID_GOO_BLOCK.get();
Block goo = AntarchyForgeBlocks.FLYTRAP_GOO_BLOCK.get();
BlockPos feet = player.blockPosition();
boolean inGoo = player.level().getBlockState(feet).is(goo)
|| player.level().getBlockState(feet.above()).is(goo);
@@ -0,0 +1,38 @@
package com.craisinlord.antarchy.forge.client;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.item.GiantFryingPanItem;
import com.craisinlord.antarchy.content.network.OpenGiantFryingPanPayload;
import net.minecraft.client.Minecraft;
import net.minecraft.client.player.LocalPlayer;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.event.TickEvent;
import com.craisinlord.antarchy.forge.network.AntarchyForgeNetworkCore;
@Mod.EventBusSubscriber(modid = Antarchy.MODID, value = Dist.CLIENT)
public final class GiantFryingPanClientHandler {
private static boolean wasUse;
private GiantFryingPanClientHandler() {
}
@SubscribeEvent
public static void onClientTick(TickEvent.ClientTickEvent event) {
if (event.phase != TickEvent.Phase.END) return;
Minecraft mc = Minecraft.getInstance();
LocalPlayer player = mc.player;
if (player == null || mc.screen != null) {
wasUse = false;
return;
}
boolean use = mc.options.keyUse.isDown();
if (use && !wasUse && player.isShiftKeyDown()
&& (player.getMainHandItem().getItem() instanceof GiantFryingPanItem
|| player.getOffhandItem().getItem() instanceof GiantFryingPanItem)) {
AntarchyForgeNetworkCore.sendToServer(OpenGiantFryingPanPayload.INSTANCE);
}
wasUse = use;
}
}
@@ -1,39 +0,0 @@
package com.craisinlord.antarchy.forge.client;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.gravity.AntarchyGravityApi;
import net.minecraft.client.Camera;
import net.minecraft.world.entity.Entity;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.client.event.ViewportEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import org.joml.Vector3f;
@Mod.EventBusSubscriber(modid = Antarchy.MODID, value = Dist.CLIENT)
public final class GravityCameraRollHandler {
private GravityCameraRollHandler() {
}
@SubscribeEvent
public static void onComputeCameraAngles(ViewportEvent.ComputeCameraAngles event) {
Camera camera = event.getCamera();
Entity entity = camera.getEntity();
if (entity == null) {
return;
}
float flipProgress = AntarchyGravityApi.getGravityFlipProgress(entity, (float) event.getPartialTick());
if (flipProgress <= 0.0F) {
return;
}
float gravityRoll = 180.0F * flipProgress;
event.setRoll(event.getRoll() + gravityRoll);
Vector3f look = camera.getLookVector();
float radians = (float) Math.toRadians(gravityRoll);
camera.getUpVector().rotateAxis(radians, look.x(), look.y(), look.z());
camera.getLeftVector().rotateAxis(radians, look.x(), look.y(), look.z());
}
}
@@ -1,17 +1,18 @@
package com.craisinlord.antarchy.forge.client;
import net.minecraftforge.fml.common.Mod;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.config.AntarchySettings;
import com.craisinlord.antarchy.content.item.GravityGunItem;
import com.craisinlord.antarchy.content.network.GravityGunPrimaryPayload;
import com.craisinlord.antarchy.content.network.GravityGunScrollPayload;
import com.craisinlord.antarchy.content.network.TemporalTunerScrollPayload;
import com.craisinlord.antarchy.content.item.TemporalTunerItem;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.util.Mth;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.event.TickEvent;
import net.minecraftforge.client.event.InputEvent;
import com.craisinlord.antarchy.forge.network.AntarchyForgeNetworkCore;
@@ -48,7 +49,20 @@ public final class GravityGunClientHandler {
@SubscribeEvent
public static void onMouseScroll(InputEvent.MouseScrollingEvent event) {
Minecraft mc = Minecraft.getInstance();
if (mc.player == null || mc.level == null || mc.screen != null || !Screen.hasControlDown() || !AntarchySettings.gravityGunEnabled()) {
if (mc.player == null || mc.level == null || mc.screen != null) {
return;
}
if (Screen.hasShiftDown() && TemporalTunerItem.isAvailable(mc.player)) {
double scrollAmount = Mth.clamp(event.getScrollDelta(), -1.0D, 1.0D);
if (Math.abs(scrollAmount) >= 1.0E-4D) {
AntarchyForgeNetworkCore.sendToServer(new TemporalTunerScrollPayload(scrollAmount * TemporalTunerItem.STEP));
event.setCanceled(true);
return;
}
}
if (!Screen.hasControlDown() || !AntarchySettings.gravityGunEnabled()) {
return;
}
@@ -8,7 +8,7 @@ import net.minecraft.util.Mth;
import net.minecraft.world.entity.player.Player;
public final class HerculesBeetleChargeHudRenderer {
private static final ResourceLocation GUI_ICONS_LOCATION = ResourceLocation.withDefaultNamespace("textures/gui/icons.png");
private static final ResourceLocation GUI_ICONS_LOCATION = new ResourceLocation("textures/gui/icons.png");
private static final int BAR_WIDTH = 182;
private static final int BAR_HEIGHT = 5;
@@ -1,11 +1,9 @@
package com.craisinlord.antarchy.forge.client;
import net.minecraftforge.fml.common.Mod;
import com.craisinlord.antarchy.Antarchy;
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.client.KingJudgmentFlashClientState;
import com.craisinlord.antarchy.content.entity.HerculesBeetleEntity;
import com.craisinlord.antarchy.content.network.HerculesBeetleFlightTogglePayload;
import com.craisinlord.antarchy.content.network.HerculesBeetleJumpInputPayload;
@@ -15,6 +13,7 @@ import net.minecraft.client.Minecraft;
import net.minecraft.client.player.LocalPlayer;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.event.TickEvent;
import com.craisinlord.antarchy.forge.network.AntarchyForgeNetworkCore;
@@ -31,8 +30,8 @@ public final class HerculesBeetleClientHandler {
@SubscribeEvent
public static void onClientTick(TickEvent.ClientTickEvent event) {
if (event.phase != TickEvent.Phase.END) return;
CameraShakeClientState.tick();
HerculesBeetleImpactShakeClientState.tick();
KingJudgmentFlashClientState.tick();
HordeClientState.tick();
Minecraft mc = Minecraft.getInstance();
@@ -59,13 +58,13 @@ public final class HerculesBeetleClientHandler {
}
wasPressingAttack = pressingAttack;
boolean charging = AntarchyKeyBindings.HERCULES_BEETLE_CHARGE.isDown();
boolean charging = AntarchyKeyBindings.MOUNT_SPECIAL.isDown();
if (charging != wasCharging) {
AntarchyForgeNetworkCore.sendToServer(new HerculesBeetleMountedChargePayload(charging));
}
wasCharging = charging;
boolean pressingFlightToggle = AntarchyKeyBindings.HERCULES_BEETLE_FLIGHT_TOGGLE.isDown();
boolean pressingFlightToggle = AntarchyKeyBindings.MOUNT_FLIGHT_TOGGLE.isDown();
if (pressingFlightToggle && !wasPressingFlightToggle) {
AntarchyForgeNetworkCore.sendToServer(new HerculesBeetleFlightTogglePayload());
}
@@ -0,0 +1,31 @@
package com.craisinlord.antarchy.forge.client;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.client.HoverboardSoundSystem;
import com.craisinlord.antarchy.content.client.HoverboardTrailSystem;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.event.TickEvent;
import net.minecraftforge.client.event.RenderLevelStageEvent;
@Mod.EventBusSubscriber(modid = Antarchy.MODID, value = Dist.CLIENT)
public final class HoverboardTrailHandler {
private HoverboardTrailHandler() {
}
@SubscribeEvent
public static void onClientTick(TickEvent.ClientTickEvent event) {
if (event.phase != TickEvent.Phase.END) return;
HoverboardTrailSystem.tick();
HoverboardSoundSystem.tick();
}
@SubscribeEvent
public static void onRenderLevelStage(RenderLevelStageEvent event) {
if (event.getStage() != RenderLevelStageEvent.Stage.AFTER_PARTICLES) {
return;
}
HoverboardTrailSystem.render(event.getCamera(), event.getPoseStack().last().pose());
}
}
@@ -1,7 +1,5 @@
package com.craisinlord.antarchy.forge.client;
import net.minecraftforge.fml.common.Mod;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.entity.lucid.LucidEntity;
import com.craisinlord.antarchy.forge.registry.AntarchyForgeSounds;
@@ -14,6 +12,7 @@ import net.minecraft.sounds.SoundSource;
import net.minecraft.util.RandomSource;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.event.TickEvent;
import org.jetbrains.annotations.Nullable;
@@ -26,9 +25,11 @@ import java.util.UUID;
@Mod.EventBusSubscriber(modid = Antarchy.MODID, value = Dist.CLIENT)
public final class LucidSoundHandler {
private static final double START_SCAN_RADIUS = 96.0D;
private static final int DISCOVERY_SCAN_INTERVAL_TICKS = 10;
private static final int ANIM_ATTACK = 2;
private static final int ANIM_DEATH = 3;
private static final Map<UUID, LucidLoopSet> ACTIVE_LOOPS = new HashMap<>();
private static long nextDiscoveryScanTick;
private LucidSoundHandler() {
}
@@ -48,7 +49,21 @@ public final class LucidSoundHandler {
}
pruneStaleLoops(mc);
refreshNearbyLucids(mc);
refreshActiveLoops(mc);
long gameTime = mc.level.getGameTime();
if (gameTime >= nextDiscoveryScanTick) {
nextDiscoveryScanTick = gameTime + DISCOVERY_SCAN_INTERVAL_TICKS;
refreshNearbyLucids(mc);
}
}
private static void refreshActiveLoops(Minecraft mc) {
for (LucidLoopSet set : ACTIVE_LOOPS.values()) {
if (set.isValid()) {
set.refresh(mc, set.entity);
}
}
}
private static void refreshNearbyLucids(Minecraft mc) {
@@ -96,6 +111,7 @@ public final class LucidSoundHandler {
set.stop(mc);
}
ACTIVE_LOOPS.clear();
nextDiscoveryScanTick = 0L;
}
private static final class LucidLoopSet {
@@ -1,7 +1,5 @@
package com.craisinlord.antarchy.forge.client;
import net.minecraftforge.fml.common.Mod;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.item.MogglesCaveDetector;
import com.craisinlord.antarchy.content.item.MogglesLogic;
@@ -13,9 +11,10 @@ import net.minecraft.world.level.Level;
import net.minecraft.world.phys.Vec3;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.event.TickEvent;
@Mod.EventBusSubscriber(modid = Antarchy.MODID, bus = Mod.EventBusSubscriber.Bus.FORGE, value = Dist.CLIENT)
@Mod.EventBusSubscriber(modid = Antarchy.MODID, value = Dist.CLIENT)
public final class MogglesClientRenderer {
private MogglesClientRenderer() {}
@@ -32,13 +31,11 @@ public final class MogglesClientRenderer {
return;
}
// Run cave BFS (internally rate-limited to every 40 ticks).
MogglesCaveDetector.tick(player, level);
BlockPos target = MogglesCaveDetector.getCaveTarget();
if (target == null) return;
// Spawn particle trail toward the cave every 2 ticks.
if (level.getGameTime() % 2 != 0) return;
Vec3 eye = player.getEyePosition();
@@ -1,7 +1,5 @@
package com.craisinlord.antarchy.forge.client;
import net.minecraftforge.fml.common.Mod;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.forge.registry.AntarchyForgeMisc;
import net.minecraft.client.Minecraft;
@@ -14,6 +12,7 @@ import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.event.TickEvent;
import net.minecraftforge.client.event.MovementInputUpdateEvent;
@@ -1,10 +1,9 @@
package com.craisinlord.antarchy.forge.client;
import net.minecraftforge.fml.common.Mod;
import com.craisinlord.antarchy.Antarchy;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import software.bernie.geckolib.event.GeoRenderEvent;
@Mod.EventBusSubscriber(modid = Antarchy.MODID, value = Dist.CLIENT)
@@ -0,0 +1,61 @@
package com.craisinlord.antarchy.forge.client;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.item.PortalGunItem;
import com.craisinlord.antarchy.content.client.PortalGunZoomClientState;
import com.craisinlord.antarchy.content.network.PortalGunPrimaryPayload;
import net.minecraft.client.Minecraft;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.event.TickEvent;
import com.craisinlord.antarchy.forge.network.AntarchyForgeNetworkCore;
@Mod.EventBusSubscriber(modid = Antarchy.MODID, value = Dist.CLIENT)
public final class PortalGunClientHandler {
private static boolean lastAttackDown;
private PortalGunClientHandler() {
}
@SubscribeEvent
public static void onClientTick(TickEvent.ClientTickEvent event) {
if (event.phase != TickEvent.Phase.END) return;
Minecraft mc = Minecraft.getInstance();
if (mc.player == null) {
com.craisinlord.antarchy.content.client.PortalGunResetClientState.clear();
}
com.craisinlord.antarchy.content.client.PortalGunIndicatorClientState.setRequestSender(com.craisinlord.antarchy.forge.network.AntarchyForgeNetworkCore::sendToServer);
com.craisinlord.antarchy.content.client.MoonSkyTracker.setSender(com.craisinlord.antarchy.forge.network.AntarchyForgeNetworkCore::sendToServer);
com.craisinlord.antarchy.content.portalgun.PortalGunMoonAimSync.setClientReporter(com.craisinlord.antarchy.content.client.MoonSkyTracker::report);
boolean hasPortalGun = mc.player != null && (mc.player.getMainHandItem().getItem() instanceof PortalGunItem || mc.player.getOffhandItem().getItem() instanceof PortalGunItem);
boolean gameplayInput = mc.screen == null;
boolean held = hasPortalGun && gameplayInput;
boolean zoomPressed = AntarchyKeyBindings.consumePortalGunZoomPressed();
PortalGunZoomClientState.tick(mc, hasPortalGun, zoomPressed && gameplayInput);
boolean resetActive = com.craisinlord.antarchy.content.client.PortalGunResetClientState.tick(
mc,
held,
AntarchyKeyBindings.isPortalGunResetDown(),
com.craisinlord.antarchy.forge.network.AntarchyForgeNetworkCore::sendToServer
);
if (mc.player == null || mc.level == null || mc.screen != null) {
lastAttackDown = false;
return;
}
boolean offhand = !(mc.player.getMainHandItem().getItem() instanceof PortalGunItem)
&& mc.player.getOffhandItem().getItem() instanceof PortalGunItem;
if (!offhand && !(mc.player.getMainHandItem().getItem() instanceof PortalGunItem)) {
lastAttackDown = false;
return;
}
boolean attackDown = mc.options.keyAttack.isDown();
if (attackDown && !lastAttackDown && !resetActive) {
com.craisinlord.antarchy.content.portalgun.PortalGunMoonAimSync.reportFromClient();
AntarchyForgeNetworkCore.sendToServer(new PortalGunPrimaryPayload(offhand));
}
lastAttackDown = attackDown;
}
}
@@ -0,0 +1,23 @@
package com.craisinlord.antarchy.forge.client;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.client.QueenMusicHandler;
import com.craisinlord.antarchy.forge.registry.AntarchyForgeSounds;
import net.minecraft.client.Minecraft;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.event.TickEvent;
@Mod.EventBusSubscriber(modid = Antarchy.MODID, value = Dist.CLIENT)
public final class QueenMusicClientHandler {
private QueenMusicClientHandler() {
}
@SubscribeEvent
public static void onClientTick(TickEvent.ClientTickEvent event) {
if (event.phase != TickEvent.Phase.END) return;
Minecraft minecraft = Minecraft.getInstance();
QueenMusicHandler.tick(minecraft, AntarchyForgeSounds.THE_QUEEN.get());
}
}
@@ -0,0 +1,26 @@
package com.craisinlord.antarchy.forge.client;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.network.ActivateRoyalBoundaryPayload;
import net.minecraft.client.Minecraft;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.event.TickEvent;
import com.craisinlord.antarchy.forge.network.AntarchyForgeNetworkCore;
@Mod.EventBusSubscriber(modid = Antarchy.MODID, value = Dist.CLIENT)
public final class RoyalBoundaryClientHandler {
private RoyalBoundaryClientHandler() {
}
@SubscribeEvent
public static void onClientTick(TickEvent.ClientTickEvent event) {
if (event.phase != TickEvent.Phase.END) return;
Minecraft minecraft = Minecraft.getInstance();
if (minecraft.player == null || minecraft.level == null) return;
while (AntarchyKeyBindings.consumeRoyalBoundaryPressed()) {
AntarchyForgeNetworkCore.sendToServer(new ActivateRoyalBoundaryPayload());
}
}
}
@@ -0,0 +1,28 @@
package com.craisinlord.antarchy.forge.client;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.network.ToggleRoyalInversionPayload;
import net.minecraft.client.Minecraft;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.event.TickEvent;
import com.craisinlord.antarchy.forge.network.AntarchyForgeNetworkCore;
@Mod.EventBusSubscriber(modid = Antarchy.MODID, value = Dist.CLIENT)
public final class RoyalInversionClientHandler {
private RoyalInversionClientHandler() {
}
@SubscribeEvent
public static void onClientTick(TickEvent.ClientTickEvent event) {
if (event.phase != TickEvent.Phase.END) return;
Minecraft minecraft = Minecraft.getInstance();
if (minecraft.player == null || minecraft.level == null) {
return;
}
while (AntarchyKeyBindings.consumeRoyalInversionTogglePressed()) {
AntarchyForgeNetworkCore.sendToServer(new ToggleRoyalInversionPayload());
}
}
}
@@ -0,0 +1,87 @@
package com.craisinlord.antarchy.forge.client;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.entity.royal.RoyalMountEntity;
import com.craisinlord.antarchy.content.network.RoyalMountActionPayload;
import com.craisinlord.antarchy.content.network.RoyalMountVerticalPayload;
import net.minecraft.client.Minecraft;
import net.minecraft.client.player.LocalPlayer;
import net.minecraft.world.phys.EntityHitResult;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.event.TickEvent;
import com.craisinlord.antarchy.forge.network.AntarchyForgeNetworkCore;
@Mod.EventBusSubscriber(modid = Antarchy.MODID, value = Dist.CLIENT)
public final class RoyalMountClientHandler {
private static boolean wasAttack;
private static boolean wasSpecial;
private static boolean wasFlightToggle;
private static boolean wasAscend;
private static boolean wasDescend;
private static boolean wasUse;
private RoyalMountClientHandler() {
}
@SubscribeEvent
public static void onClientTick(TickEvent.ClientTickEvent event) {
if (event.phase != TickEvent.Phase.END) return;
Minecraft mc = Minecraft.getInstance();
LocalPlayer player = mc.player;
if (player == null || mc.screen != null) {
reset();
wasUse = false;
return;
}
if (!(player.getVehicle() instanceof RoyalMountEntity)) {
reset();
boolean use = mc.options.keyUse.isDown();
if (use && !wasUse && !(mc.hitResult instanceof EntityHitResult)
&& RoyalMountEntity.findAssistedMountTarget(player, 1.0D) != null) {
AntarchyForgeNetworkCore.sendToServer(new RoyalMountActionPayload(RoyalMountActionPayload.MOUNT));
}
wasUse = use;
return;
}
wasUse = mc.options.keyUse.isDown();
boolean attack = mc.options.keyAttack.isDown();
if (attack && !wasAttack) {
AntarchyForgeNetworkCore.sendToServer(new RoyalMountActionPayload(RoyalMountActionPayload.BITE));
}
wasAttack = attack;
boolean special = AntarchyKeyBindings.isMountSpecialPressed();
if (special && !wasSpecial) {
AntarchyForgeNetworkCore.sendToServer(new RoyalMountActionPayload(RoyalMountActionPayload.SPIT));
}
wasSpecial = special;
boolean flightToggle = AntarchyKeyBindings.isMountFlightTogglePressed();
if (flightToggle && !wasFlightToggle) {
AntarchyForgeNetworkCore.sendToServer(new RoyalMountActionPayload(RoyalMountActionPayload.FLIGHT_TOGGLE));
}
wasFlightToggle = flightToggle;
boolean ascend = mc.options.keyJump.isDown();
boolean descend = mc.options.keyShift.isDown();
if (ascend != wasAscend || descend != wasDescend) {
AntarchyForgeNetworkCore.sendToServer(new RoyalMountVerticalPayload(ascend, descend));
wasAscend = ascend;
wasDescend = descend;
}
}
private static void reset() {
if (wasAscend || wasDescend) {
AntarchyForgeNetworkCore.sendToServer(new RoyalMountVerticalPayload(false, false));
}
wasAttack = false;
wasSpecial = false;
wasFlightToggle = false;
wasAscend = false;
wasDescend = false;
}
}
@@ -4,9 +4,9 @@ import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.client.SizeRaySoundHandler;
import net.minecraft.client.Minecraft;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.event.TickEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.event.TickEvent;
@Mod.EventBusSubscriber(modid = Antarchy.MODID, value = Dist.CLIENT)
public final class SizeRaySoundHandlerForge {
@@ -15,9 +15,7 @@ public final class SizeRaySoundHandlerForge {
@SubscribeEvent
public static void onClientTick(TickEvent.ClientTickEvent event) {
if (event.phase != TickEvent.Phase.END) {
return;
}
if (event.phase != TickEvent.Phase.END) return;
SizeRaySoundHandler.tick(Minecraft.getInstance());
}
}
@@ -1,28 +1,27 @@
package com.craisinlord.antarchy.forge.client;
import net.minecraftforge.fml.common.Mod;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.item.JumpyBootsHelper;
import com.craisinlord.antarchy.content.item.JumpyBootsItem;
import com.craisinlord.antarchy.content.network.JumpyBootsLaunchPayload;
import com.craisinlord.antarchy.content.item.SpringyBootsHelper;
import com.craisinlord.antarchy.content.item.SpringyBootsItem;
import com.craisinlord.antarchy.content.network.SpringyBootsLaunchPayload;
import net.minecraft.client.Minecraft;
import net.minecraft.client.player.LocalPlayer;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.event.TickEvent;
import net.minecraftforge.client.event.RenderGuiOverlayEvent;
import net.minecraftforge.client.gui.overlay.VanillaGuiOverlay;
import com.craisinlord.antarchy.forge.network.AntarchyForgeNetworkCore;
@Mod.EventBusSubscriber(modid = Antarchy.MODID, value = Dist.CLIENT)
public final class JumpyBootsClientHandler {
public final class SpringyBootsClientHandler {
private static int chargeTicks = 0;
private static boolean wasCharging = false;
private static int primeWindowTicks = 0;
private static int storedChargeTicks = 0;
private JumpyBootsClientHandler() {
private SpringyBootsClientHandler() {
}
@SubscribeEvent
@@ -36,7 +35,7 @@ public final class JumpyBootsClientHandler {
return;
}
if (!JumpyBootsItem.isWearingJumpyBoots(player)) {
if (!SpringyBootsItem.isWearingSpringyBoots(player)) {
reset();
return;
}
@@ -48,7 +47,7 @@ public final class JumpyBootsClientHandler {
if (primeWindowTicks > 0) {
primeWindowTicks--;
if (jumpPressed) {
AntarchyForgeNetworkCore.sendToServer(new JumpyBootsLaunchPayload(storedChargeTicks, player.isSprinting()));
AntarchyForgeNetworkCore.sendToServer(new SpringyBootsLaunchPayload(storedChargeTicks, player.isSprinting()));
reset();
return;
}
@@ -65,22 +64,22 @@ public final class JumpyBootsClientHandler {
}
if (jumpPressed && wasCharging && chargeTicks > 0) {
AntarchyForgeNetworkCore.sendToServer(new JumpyBootsLaunchPayload(chargeTicks, player.isSprinting()));
AntarchyForgeNetworkCore.sendToServer(new SpringyBootsLaunchPayload(chargeTicks, player.isSprinting()));
reset();
return;
}
if (sneaking) {
chargeTicks = Math.min(chargeTicks + 1, JumpyBootsHelper.CHARGE_TICKS_MAX);
chargeTicks = Math.min(chargeTicks + 1, SpringyBootsHelper.CHARGE_TICKS_MAX);
wasCharging = true;
} else if (wasCharging && chargeTicks > 0) {
storedChargeTicks = chargeTicks;
if (jumpPressed) {
AntarchyForgeNetworkCore.sendToServer(new JumpyBootsLaunchPayload(storedChargeTicks, player.isSprinting()));
AntarchyForgeNetworkCore.sendToServer(new SpringyBootsLaunchPayload(storedChargeTicks, player.isSprinting()));
reset();
return;
}
primeWindowTicks = JumpyBootsHelper.PRIME_WINDOW_TICKS;
primeWindowTicks = SpringyBootsHelper.PRIME_WINDOW_TICKS;
chargeTicks = 0;
wasCharging = false;
} else {
@@ -99,7 +98,7 @@ public final class JumpyBootsClientHandler {
@SubscribeEvent
public static void onRenderGuiLayer(RenderGuiOverlayEvent.Pre event) {
Minecraft mc = Minecraft.getInstance();
if (mc.player == null || !JumpyBootsItem.isWearingJumpyBoots(mc.player) || !isCharging()) {
if (mc.player == null || !SpringyBootsItem.isWearingSpringyBoots(mc.player) || !isCharging()) {
return;
}
if (event.getOverlay().id().equals(VanillaGuiOverlay.EXPERIENCE_BAR.id())) {
@@ -1,19 +1,19 @@
package com.craisinlord.antarchy.forge.client;
import com.craisinlord.antarchy.content.item.JumpyBootsHelper;
import com.craisinlord.antarchy.content.item.JumpyBootsItem;
import com.craisinlord.antarchy.content.item.SpringyBootsHelper;
import com.craisinlord.antarchy.content.item.SpringyBootsItem;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiGraphics;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.player.Player;
public final class JumpyBootsHudRenderer {
private static final ResourceLocation GUI_ICONS_LOCATION = ResourceLocation.withDefaultNamespace("textures/gui/icons.png");
public final class SpringyBootsHudRenderer {
private static final ResourceLocation GUI_ICONS_LOCATION = new ResourceLocation("textures/gui/icons.png");
private static final int BAR_WIDTH = 182;
private static final int BAR_HEIGHT = 5;
private JumpyBootsHudRenderer() {
private SpringyBootsHudRenderer() {
}
public static void render(GuiGraphics guiGraphics) {
@@ -22,10 +22,10 @@ public final class JumpyBootsHudRenderer {
if (player == null || mc.screen != null || player.isDeadOrDying()) {
return;
}
if (!JumpyBootsItem.isWearingJumpyBoots(player)) {
if (!SpringyBootsItem.isWearingSpringyBoots(player)) {
return;
}
if (!JumpyBootsClientHandler.isCharging()) {
if (!SpringyBootsClientHandler.isCharging()) {
return;
}
@@ -36,8 +36,8 @@ public final class JumpyBootsHudRenderer {
guiGraphics.blit(GUI_ICONS_LOCATION, x0, y0, 0, 84, BAR_WIDTH, BAR_HEIGHT);
int chargeTicks = JumpyBootsClientHandler.getChargeTicks();
float chargeRatio = Mth.clamp(chargeTicks / (float) JumpyBootsHelper.CHARGE_TICKS_MAX, 0.0F, 1.0F);
int chargeTicks = SpringyBootsClientHandler.getChargeTicks();
float chargeRatio = Mth.clamp(chargeTicks / (float) SpringyBootsHelper.CHARGE_TICKS_MAX, 0.0F, 1.0F);
int filledWidth = Mth.clamp((int) (chargeRatio * BAR_WIDTH), 0, BAR_WIDTH);
if (filledWidth > 0) {
guiGraphics.setColor(1.0F, 1.0F, 1.0F, 0.35F + chargeRatio * 0.65F);
@@ -1,7 +1,5 @@
package com.craisinlord.antarchy.forge.client;
import net.minecraftforge.fml.common.Mod;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.AntarchyObjects;
import com.craisinlord.antarchy.content.AntarchySoundEvents;
@@ -9,9 +7,10 @@ import net.minecraft.client.Minecraft;
import net.minecraft.sounds.SoundSource;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.event.TickEvent;
@Mod.EventBusSubscriber(modid = Antarchy.MODID, value = Dist.CLIENT, bus = Mod.EventBusSubscriber.Bus.FORGE)
@Mod.EventBusSubscriber(modid = Antarchy.MODID, value = Dist.CLIENT)
public final class StinkySoundHandler {
private static final int FIRST_SOUND_DELAY = 20;
private static final int MIN_INTERVAL = 60;
@@ -0,0 +1,118 @@
package com.craisinlord.antarchy.forge.client;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.AntarchySoundEvents;
import com.craisinlord.antarchy.content.entity.portal.DimensionalTearEntity;
import net.minecraft.client.Minecraft;
import net.minecraft.client.resources.sounds.AbstractTickableSoundInstance;
import net.minecraft.sounds.SoundSource;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.event.TickEvent;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.UUID;
@Mod.EventBusSubscriber(modid = Antarchy.MODID, value = Dist.CLIENT)
public final class TearIdleSoundHandler {
private static final double START_SCAN_RADIUS = 64.0D;
private static final int DISCOVERY_SCAN_INTERVAL_TICKS = 10;
private static final Map<UUID, TearIdleSound> ACTIVE_LOOPS = new HashMap<>();
private static long nextDiscoveryScanTick;
private TearIdleSoundHandler() {
}
@SubscribeEvent
public static void onClientTick(TickEvent.ClientTickEvent event) {
if (event.phase != TickEvent.Phase.END) return;
Minecraft mc = Minecraft.getInstance();
if (mc.level == null || mc.player == null || mc.isPaused()) {
resetAll(mc);
return;
}
pruneStaleLoops(mc);
long gameTime = mc.level.getGameTime();
if (gameTime >= nextDiscoveryScanTick) {
nextDiscoveryScanTick = gameTime + DISCOVERY_SCAN_INTERVAL_TICKS;
discoverNearbyTears(mc);
}
}
private static void discoverNearbyTears(Minecraft mc) {
List<DimensionalTearEntity> tears = mc.level.getEntitiesOfClass(
DimensionalTearEntity.class,
mc.player.getBoundingBox().inflate(START_SCAN_RADIUS)
);
for (DimensionalTearEntity tear : tears) {
if (!tear.shouldPlayIdleSound() || ACTIVE_LOOPS.containsKey(tear.getUUID())) {
continue;
}
TearIdleSound sound = new TearIdleSound(tear);
ACTIVE_LOOPS.put(tear.getUUID(), sound);
mc.getSoundManager().play(sound);
}
}
private static void pruneStaleLoops(Minecraft mc) {
Iterator<Map.Entry<UUID, TearIdleSound>> iterator = ACTIVE_LOOPS.entrySet().iterator();
while (iterator.hasNext()) {
TearIdleSound sound = iterator.next().getValue();
if (!sound.isValid()) {
mc.getSoundManager().stop(sound);
iterator.remove();
}
}
}
private static void resetAll(Minecraft mc) {
for (TearIdleSound sound : ACTIVE_LOOPS.values()) {
mc.getSoundManager().stop(sound);
}
ACTIVE_LOOPS.clear();
nextDiscoveryScanTick = 0L;
}
private static final class TearIdleSound extends AbstractTickableSoundInstance {
private final DimensionalTearEntity tear;
private TearIdleSound(DimensionalTearEntity tear) {
super(AntarchySoundEvents.DIMENSIONAL_TEAR_IDLE.get(), SoundSource.HOSTILE, tear.level().getRandom());
this.tear = tear;
this.looping = true;
this.delay = 0;
this.volume = 0.6F;
this.pitch = 1.0F;
this.x = tear.getX();
this.y = tear.getY();
this.z = tear.getZ();
}
private boolean isValid() {
return !this.tear.isRemoved() && this.tear.shouldPlayIdleSound();
}
@Override
public void tick() {
if (!this.isValid()) {
this.stop();
return;
}
this.x = this.tear.getX();
this.y = this.tear.getY();
this.z = this.tear.getZ();
}
@Override
public boolean canStartSilent() {
return true;
}
}
}
@@ -1,10 +1,9 @@
package com.craisinlord.antarchy.forge.client;
import net.minecraftforge.fml.common.Mod;
import com.craisinlord.antarchy.Antarchy;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.client.event.ViewportEvent;
@Mod.EventBusSubscriber(modid = Antarchy.MODID, value = Dist.CLIENT)
@@ -1,16 +1,15 @@
package com.craisinlord.antarchy.forge.client;
import net.minecraftforge.fml.common.Mod;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.client.TigerEyeCamouflageClientState;
import com.craisinlord.antarchy.content.client.renderer.TigerEyeCamouflageTextureResolver;
import com.craisinlord.antarchy.content.network.ToggleTigerEyeCamouflagePayload;
import com.craisinlord.antarchy.forge.network.AntarchyForgeNetworkCore;
import net.minecraft.client.Minecraft;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.event.TickEvent;
import com.craisinlord.antarchy.forge.network.AntarchyForgeNetworkCore;
@Mod.EventBusSubscriber(modid = Antarchy.MODID, value = Dist.CLIENT)
public final class TigerEyeCamouflageClientHandler {
@@ -20,7 +19,6 @@ public final class TigerEyeCamouflageClientHandler {
@SubscribeEvent
public static void onClientTick(TickEvent.ClientTickEvent event) {
if (event.phase != TickEvent.Phase.END) return;
Minecraft minecraft = Minecraft.getInstance();
if (minecraft.player == null || minecraft.level == null) {
TigerEyeCamouflageClientState.clear();
@@ -1,7 +1,5 @@
package com.craisinlord.antarchy.forge.client;
import net.minecraftforge.fml.common.Mod;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.entity.WaspEntity;
import com.craisinlord.antarchy.forge.registry.AntarchyForgeSounds;
@@ -17,6 +15,7 @@ import net.minecraft.sounds.SoundSource;
import net.minecraft.util.RandomSource;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.event.TickEvent;
import org.jetbrains.annotations.Nullable;
@@ -31,7 +30,6 @@ public final class WaspSoundHandler {
@SubscribeEvent
public static void onClientTick(TickEvent.ClientTickEvent event) {
if (event.phase != TickEvent.Phase.END) return;
// Ambient buzzing now comes from the wasp entity itself.
}
private static void refreshNearbyWasps(Minecraft mc) {
@@ -0,0 +1,175 @@
package com.craisinlord.antarchy.forge.client;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.client.WormHookTetherClientState;
import com.craisinlord.antarchy.content.item.WormHookItem;
import com.craisinlord.antarchy.content.util.WormHookRope;
import com.mojang.blaze3d.systems.RenderSystem;
import com.mojang.blaze3d.vertex.BufferBuilder;
import com.mojang.blaze3d.vertex.BufferUploader;
import com.mojang.blaze3d.vertex.DefaultVertexFormat;
import com.mojang.blaze3d.vertex.Tesselator;
import com.mojang.blaze3d.vertex.VertexFormat;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.minecraft.client.Camera;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.GameRenderer;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.HumanoidArm;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.phys.Vec3;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.event.TickEvent;
import net.minecraftforge.client.event.RenderLevelStageEvent;
import org.joml.Matrix4f;
@Mod.EventBusSubscriber(modid = Antarchy.MODID, value = Dist.CLIENT)
public final class WormHookTetherRenderHandler {
private static final Map<Integer, WormHookRope> ROPES = new HashMap<>();
private WormHookTetherRenderHandler() {
}
@SubscribeEvent
public static void onClientTick(TickEvent.ClientTickEvent event) {
if (event.phase != TickEvent.Phase.END) return;
Minecraft minecraft = Minecraft.getInstance();
if (minecraft.level == null) {
WormHookTetherClientState.clear();
ROPES.clear();
return;
}
Map<Integer, Integer> tethers = WormHookTetherClientState.snapshot();
ROPES.keySet().removeIf(playerId -> !tethers.containsKey(playerId));
for (Map.Entry<Integer, Integer> entry : tethers.entrySet()) {
Entity source = minecraft.level.getEntity(entry.getKey());
Entity hook = minecraft.level.getEntity(entry.getValue());
if (!(source instanceof Player player) || hook == null || hook.isRemoved()) {
continue;
}
Vec3 anchor = hook.position();
Vec3 playerEye = player.getEyePosition();
WormHookRope rope = ROPES.computeIfAbsent(entry.getKey(), id -> new WormHookRope(anchor, playerEye));
rope.update(hook, anchor, playerEye, anchor.distanceTo(playerEye) + 32.0D);
}
}
@SubscribeEvent
public static void onRenderLevelStage(RenderLevelStageEvent event) {
if (event.getStage() != RenderLevelStageEvent.Stage.AFTER_PARTICLES) {
return;
}
Minecraft minecraft = Minecraft.getInstance();
if (minecraft.level == null) {
return;
}
Map<Integer, Integer> tethers = WormHookTetherClientState.snapshot();
if (tethers.isEmpty()) {
return;
}
Camera camera = event.getCamera();
Vec3 cameraPos = camera.getPosition();
Matrix4f pose = event.getPoseStack().last().pose();
RenderSystem.enableBlend();
RenderSystem.defaultBlendFunc();
RenderSystem.depthMask(false);
RenderSystem.disableCull();
RenderSystem.setShader(GameRenderer::getPositionColorShader);
BufferBuilder buffer = Tesselator.getInstance().getBuilder();
buffer.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_COLOR);
for (Map.Entry<Integer, Integer> entry : tethers.entrySet()) {
Entity source = minecraft.level.getEntity(entry.getKey());
Entity hook = minecraft.level.getEntity(entry.getValue());
if (!(source instanceof Player player) || hook == null || hook.isRemoved()) {
continue;
}
WormHookRope rope = ROPES.get(entry.getKey());
List<Vec3> points = rope != null ? rope.points() : List.of(hook.position(), player.getEyePosition());
Vec3 handPos = tetherStart(player, event.getPartialTick());
for (int i = points.size() - 1; i > 0; i--) {
Vec3 start = i == points.size() - 1 ? handPos : points.get(i);
Vec3 end = points.get(i - 1);
buildTether(buffer, pose, start, end, cameraPos);
}
}
BufferUploader.drawWithShader(buffer.end());
RenderSystem.enableCull();
RenderSystem.depthMask(true);
RenderSystem.disableBlend();
}
private static Vec3 tetherStart(Player player, float partialTick) {
Vec3 start = player.getEyePosition(partialTick).add(0.0D, -0.45D, 0.0D);
boolean mainHandHook = player.getMainHandItem().getItem() instanceof WormHookItem;
boolean offHandHook = player.getOffhandItem().getItem() instanceof WormHookItem;
if (!mainHandHook && !offHandHook) {
return start;
}
boolean useMainHand = mainHandHook || !offHandHook;
HumanoidArm arm = useMainHand ? player.getMainArm() : player.getMainArm().getOpposite();
float bodyYaw = Mth.rotLerp(partialTick, player.yBodyRotO, player.yBodyRot);
double radians = Math.toRadians(bodyYaw + 90.0F);
double side = arm == HumanoidArm.RIGHT ? -0.28D : 0.28D;
return start.add(Math.cos(radians) * side, -0.12D, Math.sin(radians) * side);
}
private static void buildTether(BufferBuilder buffer, Matrix4f pose, Vec3 start, Vec3 end, Vec3 cameraPos) {
Vec3 delta = end.subtract(start);
double length = delta.length();
if (length < 0.001D) {
return;
}
Vec3 forward = delta.scale(1.0D / length);
Vec3 right = forward.cross(new Vec3(0.0D, 1.0D, 0.0D));
if (right.lengthSqr() < 1.0E-6D) {
right = forward.cross(new Vec3(1.0D, 0.0D, 0.0D));
}
right = right.normalize();
int segments = Math.max(4, Mth.ceil(length * 8.0D));
for (int i = 0; i < segments; i++) {
double t0 = (double) i / (double) segments;
double t1 = (double) (i + 1) / (double) segments;
Vec3 p0 = ropePoint(start, delta, t0, length);
Vec3 p1 = ropePoint(start, delta, t1, length);
float width = 0.04F;
Vec3 offset = right.scale(width);
Vec3 a = p0.subtract(cameraPos);
Vec3 b = p1.subtract(cameraPos);
float shade = i % 2 == 0 ? 0.85F : 0.65F;
float red = 0.42F * shade;
float green = 0.36F * shade;
float blue = 0.24F * shade;
buffer.vertex(pose, (float) (a.x + offset.x), (float) (a.y + offset.y), (float) (a.z + offset.z)).color(red, green, blue, 1.0F).endVertex();
buffer.vertex(pose, (float) (a.x - offset.x), (float) (a.y - offset.y), (float) (a.z - offset.z)).color(red, green, blue, 1.0F).endVertex();
buffer.vertex(pose, (float) (b.x - offset.x), (float) (b.y - offset.y), (float) (b.z - offset.z)).color(red, green, blue, 1.0F).endVertex();
buffer.vertex(pose, (float) (b.x + offset.x), (float) (b.y + offset.y), (float) (b.z + offset.z)).color(red, green, blue, 1.0F).endVertex();
}
}
private static Vec3 ropePoint(Vec3 start, Vec3 delta, double t, double length) {
double sag = Math.sin(t * Math.PI) * Math.min(0.2D, length * 0.03D);
return start.add(delta.scale(t)).add(0.0D, -sag, 0.0D);
}
}
@@ -1,7 +1,5 @@
package com.craisinlord.antarchy.forge.content.fluid;
import com.craisinlord.antarchy.content.fluid.AntiwaterBubbleColumnUtil;
import com.craisinlord.antarchy.forge.registry.AntarchyForgeBlocks;
import java.util.HashSet;
import java.util.Set;
@@ -117,65 +115,11 @@ public abstract class AntiwaterFluid extends ForgeFlowingFluid {
return net.minecraft.world.level.material.Fluids.EMPTY.defaultFluidState();
}
/*
@Override
protected void spread(Level level, BlockPos pos, FluidState state) {
if (state.isEmpty()) {
return;
}
if (!state.isSource() && !this.isFlowingStateValid(level, pos, state)) {
level.setBlockAndUpdate(pos, net.minecraft.world.level.block.Blocks.AIR.defaultBlockState());
this.scheduleCleanup(level, pos);
return;
}
BlockState blockState = level.getBlockState(pos);
int nextAmount = state.getAmount() - 1;
BlockPos abovePos = pos.above();
BlockState aboveState = level.getBlockState(abovePos);
FluidState aboveFluid = level.getFluidState(abovePos);
if (!aboveState.isSolid() && !aboveFluid.getType().isSame(this)) {
FluidState upwardState = this.getFlowing(8, false);
if (this.canSpreadTo(level, pos, blockState, Direction.UP, abovePos, aboveState, aboveFluid, upwardState.getType())) {
this.spreadTo(level, abovePos, aboveState, Direction.UP, upwardState);
}
}
if (!this.canHangAt(level, pos)) {
return;
}
if (nextAmount <= 0) {
return;
}
for (Direction direction : Direction.Plane.HORIZONTAL) {
BlockPos targetPos = pos.relative(direction);
BlockState targetState = level.getBlockState(targetPos);
FluidState targetFluid = targetState.getFluidState();
if (!this.canSpreadHorizontallyInto(level, targetPos)) {
continue;
}
FluidState horizontalState = this.getFlowing(Math.min(nextAmount, MAX_HORIZONTAL_SPREAD_AMOUNT), false);
if (!this.canSpreadTo(level, pos, blockState, direction, targetPos, targetState, targetFluid, horizontalState.getType())) {
continue;
}
this.spreadTo(level, targetPos, targetState, direction, horizontalState);
}
}
*/
@Override
protected void spread(Level level, BlockPos pos, FluidState state) {
if (state.isEmpty()) {
return;
}
AntiwaterBubbleColumnUtil.update(level, pos, state);
if (!state.isSource() && !this.isFlowingStateValid(level, pos, state)) {
level.setBlockAndUpdate(pos, net.minecraft.world.level.block.Blocks.AIR.defaultBlockState());
@@ -321,7 +265,6 @@ public abstract class AntiwaterFluid extends ForgeFlowingFluid {
BlockState aboveState = level.getBlockState(abovePos);
FluidState aboveFluid = level.getFluidState(abovePos);
// Antiwater flowing into water solidifies rather than displacing it
if (aboveFluid.getFluidType() == ForgeMod.WATER_TYPE.get()) {
BlockState result = state.isSource()
? AntarchyForgeBlocks.ANTIMETAL.get().defaultBlockState()
@@ -1,8 +1,8 @@
package com.craisinlord.antarchy.forge.content.fluid;
import com.craisinlord.antarchy.content.gravity.AntarchyGravityApi;
import com.craisinlord.antarchy.content.gravity.AntarchyGravityDirection;
import com.craisinlord.antarchy.content.gravity.AntarchyGravityRotationUtil;
import com.craisinlord.anthology.gravity.GravityApi;
import com.craisinlord.anthology.gravity.GravityDirection;
import com.craisinlord.anthology.gravity.GravityRotationUtil;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.MoverType;
import net.minecraft.world.entity.item.ItemEntity;
@@ -31,9 +31,9 @@ public class AntiwaterFluidType extends FluidType {
motion = new Vec3(motion.x, 0.2, motion.z);
}
AntarchyGravityDirection gravityDirection = AntarchyGravityApi.getGravityDirection(entity);
GravityDirection gravityDirection = GravityApi.getGravityDirection(entity);
Vec3 worldMotion = gravityDirection.isInverted()
? AntarchyGravityRotationUtil.vecPlayerToWorld(motion, gravityDirection)
? GravityRotationUtil.vecPlayerToWorld(motion, gravityDirection)
: motion;
double drag = entity.isSwimming() ? 0.9 : 0.8;
@@ -45,7 +45,7 @@ public class AntiwaterFluidType extends FluidType {
entity.setDeltaMovement(
gravityDirection.isInverted()
? AntarchyGravityRotationUtil.vecWorldToPlayer(worldMotion, gravityDirection)
? GravityRotationUtil.vecWorldToPlayer(worldMotion, gravityDirection)
: worldMotion
);
if (entity.horizontalCollision && entity.isFree(
@@ -55,7 +55,7 @@ public class AntiwaterFluidType extends FluidType {
Vec3 boostedWorldMotion = new Vec3(worldMotion.x, 0.3D, worldMotion.z);
entity.setDeltaMovement(
gravityDirection.isInverted()
? AntarchyGravityRotationUtil.vecWorldToPlayer(boostedWorldMotion, gravityDirection)
? GravityRotationUtil.vecWorldToPlayer(boostedWorldMotion, gravityDirection)
: boostedWorldMotion
);
}
@@ -1,195 +0,0 @@
package com.craisinlord.antarchy.forge.entity.multipart;
import com.craisinlord.antarchy.content.entity.multipart.MultipartEntityOwner;
import com.craisinlord.antarchy.content.entity.multipart.MultipartFramework;
import com.craisinlord.antarchy.content.entity.multipart.MultipartPartAccess;
import com.craisinlord.antarchy.content.entity.multipart.MultipartPartDefinition;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult;
import net.minecraft.world.damagesource.DamageSource;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EntityDimensions;
import net.minecraft.world.entity.OwnableEntity;
import net.minecraft.world.entity.Pose;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.phys.Vec3;
import net.minecraftforge.entity.PartEntity;
import org.jetbrains.annotations.Nullable;
public class MultipartPartEntity extends PartEntity<Entity> implements OwnableEntity, MultipartPartAccess {
private final MultipartEntityOwner owner;
private final int partIndex;
private final MultipartPartDefinition definition;
public MultipartPartEntity(Entity parent, MultipartEntityOwner owner, int partIndex, MultipartPartDefinition definition) {
super(parent);
this.owner = owner;
this.partIndex = partIndex;
this.definition = definition;
this.setNoGravity(true);
this.refreshDimensions();
this.antarchy$syncFromParent();
}
public int getPartIndex() {
return this.partIndex;
}
public String getPartName() {
return this.definition.name();
}
public float getDamageMultiplier() {
return this.definition.damageMultiplier();
}
public MultipartPartDefinition getPartDefinition() {
return this.definition;
}
@Override
public @Nullable java.util.UUID getOwnerUUID() {
Entity parent = this.getParent();
return parent instanceof OwnableEntity ownable ? ownable.getOwnerUUID() : null;
}
@Override
public EntityDimensions getDimensions(Pose pose) {
return EntityDimensions.scalable(this.definition.width(), this.definition.height());
}
@Override
public void antarchy$syncFromParent() {
Entity parent = this.getParent();
if (parent == null || parent.isRemoved()) {
return;
}
double oldX = this.getX();
double oldY = this.getY();
double oldZ = this.getZ();
double yawRadians = Math.toRadians(parent.getYRot());
Vec3 forward = new Vec3(-Math.sin(yawRadians), 0.0D, Math.cos(yawRadians));
Vec3 right = new Vec3(forward.z, 0.0D, -forward.x);
Vec3 position = new Vec3(
parent.getX() + forward.x * this.definition.forwardOffset() + right.x * this.definition.lateralOffset(),
parent.getY() + this.definition.yOffset(),
parent.getZ() + forward.z * this.definition.forwardOffset() + right.z * this.definition.lateralOffset()
);
this.setPos(position.x, position.y, position.z);
this.setRot(parent.getYRot(), parent.getXRot());
this.xo = oldX;
this.yo = oldY;
this.zo = oldZ;
this.xOld = oldX;
this.yOld = oldY;
this.zOld = oldZ;
}
@Override
public boolean is(Entity entity) {
return entity == this || entity == this.getParent();
}
@Override
public boolean isPickable() {
return true;
}
@Override
public boolean isAttackable() {
return true;
}
@Override
public boolean isPushable() {
return false;
}
@Override
public boolean canBeCollidedWith() {
// Always true so player melee raycasts (ProjectileUtil.getEntityHitResult) can find this part.
// Physical push is prevented separately via isPushable()=false and canCollideWith()=false.
return !this.isRemoved();
}
@Override
public boolean canCollideWith(Entity entity) {
if (!this.definition.collisionEnabled()) {
return false;
}
Entity parent = this.getParent();
if (entity == parent) {
return false;
}
if (entity instanceof PartEntity<?> otherPart && otherPart.getParent() == parent) {
return false;
}
return entity.canBeCollidedWith() && !this.isPassengerOfSameVehicle(entity);
}
@Override
public boolean shouldBeSaved() {
return false;
}
@Override
public ItemStack getPickResult() {
Entity parent = this.getParent();
return parent == null ? ItemStack.EMPTY : parent.getPickResult();
}
@Override
public boolean hurt(DamageSource source, float amount) {
Entity parent = this.getParent();
if (parent == null || parent.isRemoved()) {
return false;
}
if (this.level().isClientSide()) {
if (source.getEntity() instanceof Player) {
MultipartFramework.sendMultipartAttack(parent.getUUID(), this.partIndex, amount * this.definition.damageMultiplier());
}
return true;
}
return this.owner.antarchy$hurtMultipartPart(this, source, amount * this.definition.damageMultiplier());
}
@Override
public boolean isInvulnerableTo(DamageSource source) {
return false;
}
@Override
public InteractionResult interactAt(Player player, Vec3 vec, InteractionHand hand) {
Entity parent = this.getParent();
if (parent == null || parent.isRemoved()) {
return InteractionResult.PASS;
}
if (this.level().isClientSide()) {
MultipartFramework.sendMultipartInteract(parent.getUUID(), this.partIndex, hand.ordinal());
return InteractionResult.SUCCESS;
}
return this.owner.antarchy$interactMultipartPart(this, player, vec, hand);
}
@Override
protected void defineSynchedData() {
}
@Override
protected void readAdditionalSaveData(CompoundTag tag) {
}
@Override
protected void addAdditionalSaveData(CompoundTag tag) {
}
}
@@ -1,64 +0,0 @@
package com.craisinlord.antarchy.forge.entity.multipart;
import com.craisinlord.antarchy.content.entity.multipart.MultipartEntityOwner;
import com.craisinlord.antarchy.forge.mixins.level.ClientLevelPartEntitiesAccessor;
import com.craisinlord.antarchy.forge.mixins.level.ServerLevelPartEntitiesAccessor;
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
import net.minecraft.client.multiplayer.ClientLevel;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.level.Level;
import net.minecraftforge.entity.PartEntity;
public final class MultipartPartLevelRegistry {
private MultipartPartLevelRegistry() {
}
public static void register(MultipartEntityOwner owner) {
Entity[] parts = owner.antarchy$getMultipartParts();
if (parts == null) {
return;
}
Int2ObjectMap<PartEntity<?>> registry = getRegistry(((Entity) owner).level());
if (registry == null) {
return;
}
for (Entity part : parts) {
if (part instanceof PartEntity<?> partEntity) {
registry.put(partEntity.getId(), partEntity);
}
}
}
public static void unregister(MultipartEntityOwner owner) {
Entity[] parts = owner.antarchy$getMultipartParts();
if (parts == null) {
return;
}
Int2ObjectMap<PartEntity<?>> registry = getRegistry(((Entity) owner).level());
if (registry == null) {
return;
}
for (Entity part : parts) {
if (part instanceof PartEntity<?> partEntity) {
registry.remove(partEntity.getId());
}
}
}
private static Int2ObjectMap<PartEntity<?>> getRegistry(Level level) {
if (level instanceof ServerLevel serverLevel) {
return ((ServerLevelPartEntitiesAccessor) serverLevel).antarchy$getPartEntities();
}
if (level instanceof ClientLevel clientLevel) {
return ((ClientLevelPartEntitiesAccessor) clientLevel).antarchy$getPartEntities();
}
return null;
}
}
@@ -1,56 +0,0 @@
package com.craisinlord.antarchy.forge.mixins.entity;
import com.craisinlord.antarchy.content.entity.multipart.MultipartEntityOwner;
import net.minecraft.world.entity.Entity;
import net.minecraftforge.entity.PartEntity;
import org.jetbrains.annotations.Nullable;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Unique;
@Mixin(Entity.class)
/*
* Exposes multipart child lookup from base entities.
*/
public abstract class MultipartEntityBridgeMixin {
@Unique
private Entity[] antarchy$multipartSourceParts;
@Unique
private PartEntity<?>[] antarchy$multipartBridgeParts;
public boolean isMultipartEntity() {
return (Object) this instanceof MultipartEntityOwner;
}
@Nullable
public PartEntity<?>[] getParts() {
if (!((Object) this instanceof MultipartEntityOwner owner)) {
return null;
}
Entity[] parts = owner.antarchy$getMultipartParts();
if (parts == null) {
parts = owner.antarchy$createMultipartParts();
owner.antarchy$setMultipartParts(parts);
owner.antarchy$syncMultipartParts();
}
if (parts.length == 0) {
return new PartEntity<?>[0];
}
if (this.antarchy$multipartSourceParts != parts || this.antarchy$multipartBridgeParts == null || this.antarchy$multipartBridgeParts.length != parts.length) {
PartEntity<?>[] bridgedParts = new PartEntity<?>[parts.length];
for (int i = 0; i < parts.length; i++) {
if (!(parts[i] instanceof PartEntity<?> part)) {
throw new IllegalStateException("Multipart owner returned a non-PartEntity child: " + parts[i]);
}
bridgedParts[i] = part;
}
this.antarchy$multipartSourceParts = parts;
this.antarchy$multipartBridgeParts = bridgedParts;
}
return this.antarchy$multipartBridgeParts;
}
}
@@ -1,34 +0,0 @@
package com.craisinlord.antarchy.forge.mixins.entity;
import com.craisinlord.antarchy.content.entity.multipart.MultipartEntityOwner;
import com.craisinlord.antarchy.forge.entity.multipart.MultipartPartLevelRegistry;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.level.entity.EntityInLevelCallback;
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(Entity.class)
/*
* Keeps multipart child entities registered in NeoForge levels.
*/
public abstract class MultipartEntityLevelRegistryMixin {
@Inject(method = "setLevelCallback", at = @At("TAIL"))
private void antarchy$registerMultipartParts(EntityInLevelCallback entityInLevelCallback, CallbackInfo ci) {
if ((Object) this instanceof MultipartEntityOwner owner
&& entityInLevelCallback != EntityInLevelCallback.NULL) {
if (owner.antarchy$getMultipartParts() == null) {
owner.antarchy$spawnMultipartParts();
}
MultipartPartLevelRegistry.register(owner);
}
}
@Inject(method = "setRemoved", at = @At("HEAD"))
private void antarchy$unregisterMultipartParts(Entity.RemovalReason removalReason, CallbackInfo ci) {
if ((Object) this instanceof MultipartEntityOwner owner) {
MultipartPartLevelRegistry.unregister(owner);
}
}
}
@@ -8,9 +8,7 @@ import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(Mob.class)
/*
* Stops mob AI movement while paralyzed.
*/
public abstract class ParalyzedMobFreezeMixin {
@Inject(method = "serverAiStep", at = @At("HEAD"))
private void antarchy$freezeAiWhileParalyzed(CallbackInfo ci) {
@@ -12,12 +12,7 @@ import java.util.List;
import java.util.Map;
@Mixin(value = Amendment.class, remap = false)
/*
* Makes Antarchy's uranium/titanium ores and blocks much rarer in Infinite Dimensions'
* procedural dimensions. This is done natively via Infinity's own amendment system rather
* than relying on players editing infinity's config, keyed off the antarchy:infinity_dimension_rare_ores
* block tag so the list stays data-driven and native to Antarchy.
*/
public class AmendmentRareOresMixin {
@Inject(method = "getAmendmentList", at = @At("RETURN"), remap = false)
private static void antarchy$addRareOreAmendment(CallbackInfoReturnable<Map<ConfigType, List<Amendment>>> cir) {
@@ -9,11 +9,6 @@ import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Redirect;
@Mixin(value = ConfigGenInvocation.class, remap = false)
/*
* Guards against a NPE in Infinite Dimensions' SurfaceRuleScanner when another mod
* registers a surface rule with a missing "biome_is" field. Without this, the crash
* propagates up through PlayerList.placeNewPlayer and kicks the player on login
*/
public class ConfigGenInvocationMixin {
@Redirect(
@@ -1,43 +0,0 @@
package com.craisinlord.antarchy.forge.mixins.infinity;
import com.craisinlord.antarchy.config.AntarchySettings;
import net.minecraft.core.BlockPos;
import net.minecraft.world.entity.item.ItemEntity;
import net.minecraft.world.item.Items;
import net.minecraft.world.item.ItemStack;
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;
import net.lerariemann.infinity.util.teleport.PortalCreator;
import net.minecraft.server.level.ServerLevel;
@Mixin(value = PortalCreator.class, remap = false)
/*
* Blocks Infinity portal creation when the config says no
*/
public class PortalCreatorMixin {
@Inject(
method = "tryCreatePortalFromItem(Lnet/minecraft/server/level/ServerLevel;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/entity/item/ItemEntity;)V",
at = @At("HEAD"),
cancellable = true,
remap = false
)
private static void antarchy$blockInfinityBookActivation(ServerLevel level, BlockPos pos, ItemEntity itemEntity, CallbackInfo ci) {
if (!AntarchySettings.disableInfinityBookPortalCreation()) {
return;
}
if (itemEntity.isRemoved()) {
return;
}
ItemStack stack = itemEntity.getItem();
if (!stack.is(Items.WRITABLE_BOOK) && !stack.is(Items.WRITTEN_BOOK)) {
return;
}
ci.cancel();
}
}
@@ -1,16 +0,0 @@
package com.craisinlord.antarchy.forge.mixins.level;
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
import net.minecraft.client.multiplayer.ClientLevel;
import net.minecraftforge.entity.PartEntity;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;
@Mixin(ClientLevel.class)
/*
* Accessor for client part-entity storage.
*/
public interface ClientLevelPartEntitiesAccessor {
@Accessor("partEntities")
Int2ObjectMap<PartEntity<?>> antarchy$getPartEntities();
}
@@ -1,24 +0,0 @@
package com.craisinlord.antarchy.forge.mixins.level;
import com.craisinlord.antarchy.Antarchy;
import net.minecraft.core.RegistryAccess;
import net.minecraft.core.registries.Registries;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.world.level.storage.PrimaryLevelData;
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(PrimaryLevelData.class)
public abstract class LevelStemDiagnosticMixin {
@Inject(method = "createTag", at = @At("HEAD"))
private void antarchy$logLevelStems(RegistryAccess registryAccess, CompoundTag playerTag, CallbackInfoReturnable<CompoundTag> cir) {
try {
var registry = registryAccess.registryOrThrow(Registries.LEVEL_STEM);
Antarchy.LOGGER.info("[Antarchy/Diagnostic] createTag LEVEL_STEM size={} keys={}", registry.size(), registry.keySet());
} catch (Throwable t) {
Antarchy.LOGGER.error("[Antarchy/Diagnostic] createTag LEVEL_STEM lookup failed", t);
}
}
}
@@ -1,16 +0,0 @@
package com.craisinlord.antarchy.forge.mixins.level;
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
import net.minecraft.server.level.ServerLevel;
import net.minecraftforge.entity.PartEntity;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;
@Mixin(ServerLevel.class)
/*
* Accessor for server part-entity storage.
*/
public interface ServerLevelPartEntitiesAccessor {
@Accessor("dragonParts")
Int2ObjectMap<PartEntity<?>> antarchy$getPartEntities();
}
@@ -1,81 +1,23 @@
package com.craisinlord.antarchy.forge.network;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.compat.network.CustomPacketPayload;
import com.craisinlord.antarchy.compat.network.StreamCodec;
import io.netty.buffer.ByteBuf;
import java.util.function.BiConsumer;
import java.util.function.Supplier;
import net.minecraft.resources.ResourceLocation;
import com.craisinlord.anthology.network.AnthologyNetwork;
import com.craisinlord.anthology.network.CustomPacketPayload;
import net.minecraft.server.level.ServerPlayer;
import net.minecraftforge.network.NetworkDirection;
import net.minecraftforge.network.NetworkEvent;
import net.minecraftforge.network.NetworkRegistry;
import net.minecraftforge.network.PacketDistributor;
import net.minecraftforge.network.simple.SimpleChannel;
import net.minecraft.world.entity.Entity;
public final class AntarchyForgeNetworkCore {
private static final String PROTOCOL_VERSION = "1";
private static final SimpleChannel CHANNEL = NetworkRegistry.ChannelBuilder
.named(new ResourceLocation(Antarchy.MODID, "main"))
.networkProtocolVersion(() -> PROTOCOL_VERSION)
.clientAcceptedVersions(PROTOCOL_VERSION::equals)
.serverAcceptedVersions(PROTOCOL_VERSION::equals)
.simpleChannel();
private static int nextId = 0;
private AntarchyForgeNetworkCore() {
}
public static <T extends CustomPacketPayload> void registerS2C(Class<T> clazz, StreamCodec<ByteBuf, T> codec, java.util.function.Consumer<T> clientHandler) {
CHANNEL.registerMessage(
nextId++,
clazz,
(msg, buf) -> codec.encode(buf, msg),
codec::decode,
(msg, ctxSupplier) -> {
NetworkEvent.Context ctx = ctxSupplier.get();
ctx.enqueueWork(() -> clientHandler.accept(msg));
ctx.setPacketHandled(true);
},
java.util.Optional.of(NetworkDirection.PLAY_TO_CLIENT)
);
public static void sendToPlayer(ServerPlayer player, CustomPacketPayload payload) {
AnthologyNetwork.sendToPlayer(player, payload);
}
public static <T extends CustomPacketPayload> void registerC2S(Class<T> clazz, StreamCodec<ByteBuf, T> codec, BiConsumer<ServerPlayer, T> serverHandler) {
CHANNEL.registerMessage(
nextId++,
clazz,
(msg, buf) -> codec.encode(buf, msg),
codec::decode,
(msg, ctxSupplier) -> {
NetworkEvent.Context ctx = ctxSupplier.get();
ServerPlayer player = ctx.getSender();
ctx.enqueueWork(() -> {
if (player != null) {
serverHandler.accept(player, msg);
}
});
ctx.setPacketHandled(true);
},
java.util.Optional.of(NetworkDirection.PLAY_TO_SERVER)
);
public static void sendToTrackingEntity(Entity entity, CustomPacketPayload payload) {
AnthologyNetwork.sendToTrackingAndSelf(entity, payload);
}
public static <T> void sendToPlayer(ServerPlayer player, T payload) {
CHANNEL.send(PacketDistributor.PLAYER.with(() -> player), payload);
}
public static <T> void sendToTracking(ServerPlayer player, T payload) {
CHANNEL.send(PacketDistributor.TRACKING_ENTITY_AND_SELF.with(player::getVehicle), payload);
}
public static <T> void sendToTrackingEntity(net.minecraft.world.entity.Entity entity, T payload) {
CHANNEL.send(PacketDistributor.TRACKING_ENTITY_AND_SELF.with(() -> entity), payload);
}
public static <T> void sendToServer(T payload) {
CHANNEL.sendToServer(payload);
public static void sendToServer(CustomPacketPayload payload) {
AnthologyNetwork.sendToServer(payload);
}
}
@@ -0,0 +1,27 @@
package com.craisinlord.antarchy.forge.network;
import com.craisinlord.anthology.network.AnthologyNetwork;
import com.craisinlord.anthology.network.CustomPacketPayload;
import com.craisinlord.anthology.network.StreamCodec;
import java.util.function.BiConsumer;
import net.minecraft.network.FriendlyByteBuf;
public final class AntarchyForgePayloadRegistrar {
public <T extends CustomPacketPayload> AntarchyForgePayloadRegistrar playToServer(
CustomPacketPayload.Type<T> type,
StreamCodec<? super FriendlyByteBuf, T> codec,
BiConsumer<T, AntarchyPayloadContext> handler
) {
AnthologyNetwork.registerServerbound(type, codec, (payload, player) -> handler.accept(payload, new AntarchyPayloadContext(player)));
return this;
}
public <T extends CustomPacketPayload> AntarchyForgePayloadRegistrar playToClient(
CustomPacketPayload.Type<T> type,
StreamCodec<? super FriendlyByteBuf, T> codec,
BiConsumer<T, AntarchyPayloadContext> handler
) {
AnthologyNetwork.registerClientbound(type, codec, (payload, player) -> handler.accept(payload, new AntarchyPayloadContext(player)));
return this;
}
}
@@ -1,116 +1,193 @@
package com.craisinlord.antarchy.forge.network;
import com.craisinlord.antarchy.content.entity.DiamondMinecartEntity;
import com.craisinlord.antarchy.content.gravity.AntarchyGravityApi;
import com.craisinlord.antarchy.content.item.BigBerthaItem;
import com.craisinlord.antarchy.content.item.EyeOfTheStormItem;
import com.craisinlord.antarchy.content.item.GravityGunItem;
import com.craisinlord.antarchy.content.item.PortalGunItem;
import com.craisinlord.antarchy.content.network.BigBerthaModeCyclePayload;
import com.craisinlord.antarchy.content.network.DiamondMinecartInputPayload;
import com.craisinlord.antarchy.content.network.RoyalGuardianSwordModeCyclePayload;
import com.craisinlord.antarchy.content.network.EyeOfStormPrimaryPayload;
import com.craisinlord.antarchy.content.network.GravityGunPrimaryPayload;
import com.craisinlord.antarchy.content.network.GravityGunScrollPayload;
import com.craisinlord.antarchy.content.network.GravityStatePayload;
import com.craisinlord.antarchy.content.network.ImpactShakePayload;
import com.craisinlord.antarchy.content.client.CameraShakeClientState;
import net.minecraft.client.Minecraft;
import net.minecraft.world.entity.Entity;
import com.craisinlord.antarchy.content.network.TemporalTunerScrollPayload;
import com.craisinlord.antarchy.content.item.TemporalTunerItem;
import com.craisinlord.antarchy.content.network.PortalGunPrimaryPayload;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.phys.Vec3;
import net.minecraft.world.item.ItemStack;
import com.craisinlord.antarchy.forge.network.AntarchyForgeNetworkCore;
import com.craisinlord.antarchy.forge.network.AntarchyPayloadContext;
import com.craisinlord.antarchy.forge.network.AntarchyForgePayloadRegistrar;
public final class AntarchyGravityNetworking {
private AntarchyGravityNetworking() {
}
public static void register() {
AntarchyForgeNetworkCore.registerS2C(GravityStatePayload.class, GravityStatePayload.STREAM_CODEC, AntarchyGravityNetworking::handleGravityState);
AntarchyForgeNetworkCore.registerS2C(ImpactShakePayload.class, ImpactShakePayload.STREAM_CODEC, AntarchyGravityNetworking::handleImpactShake);
AntarchyForgeNetworkCore.registerC2S(GravityGunPrimaryPayload.class, GravityGunPrimaryPayload.STREAM_CODEC, AntarchyGravityNetworking::handleGravityGunPrimary);
AntarchyForgeNetworkCore.registerC2S(GravityGunScrollPayload.class, GravityGunScrollPayload.STREAM_CODEC, AntarchyGravityNetworking::handleGravityGunScroll);
AntarchyForgeNetworkCore.registerC2S(BigBerthaModeCyclePayload.class, BigBerthaModeCyclePayload.STREAM_CODEC, AntarchyGravityNetworking::handleBigBerthaModeCycle);
AntarchyForgeNetworkCore.registerC2S(DiamondMinecartInputPayload.class, DiamondMinecartInputPayload.STREAM_CODEC, AntarchyGravityNetworking::handleDiamondMinecartInput);
}
public static void syncToPlayer(ServerPlayer target, Entity entity) {
GravityStatePayload payload = new GravityStatePayload(
entity.getId(),
AntarchyGravityApi.getGravityDirection(entity),
AntarchyGravityApi.getPrevGravityDirection(entity),
AntarchyGravityApi.isGravityForced(entity),
AntarchyGravityApi.getTransitionDuration(entity),
AntarchyGravityApi.getTransitionRemaining(entity)
);
AntarchyForgeNetworkCore.sendToPlayer(target, payload);
}
public static void syncEntity(Entity entity) {
GravityStatePayload payload = new GravityStatePayload(
entity.getId(),
AntarchyGravityApi.getGravityDirection(entity),
AntarchyGravityApi.getPrevGravityDirection(entity),
AntarchyGravityApi.isGravityForced(entity),
AntarchyGravityApi.getTransitionDuration(entity),
AntarchyGravityApi.getTransitionRemaining(entity)
);
AntarchyForgeNetworkCore.sendToTrackingEntity(entity, payload);
}
private static void handleGravityState(GravityStatePayload payload) {
var player = Minecraft.getInstance().player;
if (player == null) {
return;
}
Entity entity = player.level().getEntity(payload.entityId());
if (entity == null && player.getId() == payload.entityId()) {
entity = player;
}
if (entity == null) {
return;
}
AntarchyGravityApi.applySyncedState(
entity,
payload.direction(),
payload.previousDirection(),
payload.forced(),
payload.transitionDuration(),
payload.transitionRemaining()
public static void register(AntarchyForgePayloadRegistrar registrar) {
com.craisinlord.antarchy.content.portalgun.PortalGunIndicatorSync.setSender(AntarchyForgeNetworkCore::sendToPlayer);
registrar.playToClient(
com.craisinlord.antarchy.content.network.PortalGunIndicatorPayload.TYPE,
com.craisinlord.antarchy.content.network.PortalGunIndicatorPayload.STREAM_CODEC,
(payload, context) -> context.enqueueWork(() -> com.craisinlord.antarchy.content.client.PortalGunIndicatorClientState.update(payload))
).playToServer(
com.craisinlord.antarchy.content.network.PortalGunIndicatorRequestPayload.TYPE,
com.craisinlord.antarchy.content.network.PortalGunIndicatorRequestPayload.STREAM_CODEC,
AntarchyGravityNetworking::handlePortalGunIndicatorRequest
).playToServer(
GravityGunPrimaryPayload.TYPE,
GravityGunPrimaryPayload.STREAM_CODEC,
AntarchyGravityNetworking::handleGravityGunPrimary
).playToServer(
PortalGunPrimaryPayload.TYPE,
PortalGunPrimaryPayload.STREAM_CODEC,
AntarchyGravityNetworking::handlePortalGunPrimary
).playToServer(
com.craisinlord.antarchy.content.network.PortalGunMoonAimPayload.TYPE,
com.craisinlord.antarchy.content.network.PortalGunMoonAimPayload.STREAM_CODEC,
(payload, context) -> context.enqueueWork(() -> {
if (context.player() instanceof ServerPlayer serverPlayer) {
com.craisinlord.antarchy.content.portalgun.PortalGunMoonAimSync.handle(serverPlayer, payload);
}
})
).playToServer(
com.craisinlord.antarchy.content.network.PortalGunResetPayload.TYPE,
com.craisinlord.antarchy.content.network.PortalGunResetPayload.STREAM_CODEC,
(payload, context) -> context.enqueueWork(() -> {
if (context.player() instanceof ServerPlayer serverPlayer) {
com.craisinlord.antarchy.content.portalgun.PortalGunResetManager.handleInput(serverPlayer, payload.action());
}
})
).playToServer(
EyeOfStormPrimaryPayload.TYPE,
EyeOfStormPrimaryPayload.STREAM_CODEC,
AntarchyGravityNetworking::handleEyeOfStormPrimary
).playToServer(
GravityGunScrollPayload.TYPE,
GravityGunScrollPayload.STREAM_CODEC,
AntarchyGravityNetworking::handleGravityGunScroll
).playToServer(
TemporalTunerScrollPayload.TYPE,
TemporalTunerScrollPayload.STREAM_CODEC,
AntarchyGravityNetworking::handleTemporalTunerScroll
).playToServer(
BigBerthaModeCyclePayload.TYPE,
BigBerthaModeCyclePayload.STREAM_CODEC,
AntarchyGravityNetworking::handleBigBerthaModeCycle
).playToServer(
RoyalGuardianSwordModeCyclePayload.TYPE,
RoyalGuardianSwordModeCyclePayload.STREAM_CODEC,
AntarchyGravityNetworking::handleRoyalGuardianSwordModeCycle
).playToServer(
com.craisinlord.antarchy.content.network.DiamondMinecartInputPayload.TYPE,
com.craisinlord.antarchy.content.network.DiamondMinecartInputPayload.STREAM_CODEC,
AntarchyGravityNetworking::handleDiamondMinecartInput
);
}
private static void handleImpactShake(ImpactShakePayload payload) {
CameraShakeClientState.triggerImpact(
new Vec3(payload.x(), payload.y(), payload.z()),
payload.intensity(),
payload.durationTicks(),
payload.radius()
);
private static void handleGravityGunScroll(GravityGunScrollPayload payload, AntarchyPayloadContext context) {
context.enqueueWork(() -> {
if (!(context.player() instanceof ServerPlayer serverPlayer)) {
return;
}
if (!(serverPlayer.getMainHandItem().getItem() instanceof GravityGunItem)) {
return;
}
GravityGunItem.adjustHeldDistance(serverPlayer.getMainHandItem(), payload.distanceDelta());
});
}
private static void handleGravityGunScroll(ServerPlayer serverPlayer, GravityGunScrollPayload payload) {
if (!(serverPlayer.getMainHandItem().getItem() instanceof GravityGunItem)) {
return;
}
GravityGunItem.adjustHeldDistance(serverPlayer.getMainHandItem(), payload.distanceDelta());
private static void handleDiamondMinecartInput(com.craisinlord.antarchy.content.network.DiamondMinecartInputPayload payload, AntarchyPayloadContext context) {
context.enqueueWork(() -> {
if (!(context.player() instanceof ServerPlayer serverPlayer)) return;
if (!(serverPlayer.getVehicle() instanceof DiamondMinecartEntity cart)) return;
cart.onInputReceived(payload.inputFlags());
});
}
private static void handleDiamondMinecartInput(ServerPlayer serverPlayer, DiamondMinecartInputPayload payload) {
if (!(serverPlayer.getVehicle() instanceof DiamondMinecartEntity cart)) return;
cart.onInputReceived(payload.inputFlags());
private static void handleBigBerthaModeCycle(BigBerthaModeCyclePayload payload, AntarchyPayloadContext context) {
context.enqueueWork(() -> {
if (!(context.player() instanceof ServerPlayer serverPlayer)) {
return;
}
if (!(serverPlayer.getMainHandItem().getItem() instanceof BigBerthaItem bigBerthaItem)) {
return;
}
bigBerthaItem.tryCycleModeFromInput(serverPlayer.serverLevel(), serverPlayer, serverPlayer.getMainHandItem());
});
}
private static void handleBigBerthaModeCycle(ServerPlayer serverPlayer, BigBerthaModeCyclePayload payload) {
if (!(serverPlayer.getMainHandItem().getItem() instanceof BigBerthaItem bigBerthaItem)) {
return;
}
bigBerthaItem.tryCycleModeWhileCoolingDown(serverPlayer.serverLevel(), serverPlayer, serverPlayer.getMainHandItem());
private static void handleTemporalTunerScroll(TemporalTunerScrollPayload payload, AntarchyPayloadContext context) {
context.enqueueWork(() -> {
if (context.player() instanceof ServerPlayer serverPlayer
&& TemporalTunerItem.isAvailable(serverPlayer)) {
TemporalTunerItem.adjust(serverPlayer, payload.delta());
}
});
}
private static void handleGravityGunPrimary(ServerPlayer serverPlayer, GravityGunPrimaryPayload payload) {
if (!(serverPlayer.getMainHandItem().getItem() instanceof GravityGunItem gravityGunItem)) {
return;
}
private static void handleRoyalGuardianSwordModeCycle(RoyalGuardianSwordModeCyclePayload payload, AntarchyPayloadContext context) {
context.enqueueWork(() -> {
if (!(context.player() instanceof ServerPlayer serverPlayer)
|| !(serverPlayer.getMainHandItem().getItem() instanceof com.craisinlord.antarchy.content.item.RoyalGuardianSwordItem sword)) {
return;
}
sword.tryCycleModeFromInput(serverPlayer.serverLevel(), serverPlayer, serverPlayer.getMainHandItem());
});
}
gravityGunItem.firePrimary(serverPlayer.serverLevel(), serverPlayer, serverPlayer.getMainHandItem());
private static void handleGravityGunPrimary(GravityGunPrimaryPayload payload, AntarchyPayloadContext context) {
context.enqueueWork(() -> {
if (!(context.player() instanceof ServerPlayer serverPlayer)) {
return;
}
if (!(serverPlayer.getMainHandItem().getItem() instanceof GravityGunItem gravityGunItem)) {
return;
}
gravityGunItem.firePrimary(serverPlayer.serverLevel(), serverPlayer, serverPlayer.getMainHandItem());
});
}
private static void handlePortalGunPrimary(PortalGunPrimaryPayload payload, AntarchyPayloadContext context) {
context.enqueueWork(() -> {
if (!(context.player() instanceof ServerPlayer serverPlayer)) {
return;
}
ItemStack stack = payload.offhand() ? serverPlayer.getOffhandItem() : serverPlayer.getMainHandItem();
if (!(stack.getItem() instanceof PortalGunItem portalGunItem)) {
return;
}
portalGunItem.firePrimary(serverPlayer.serverLevel(), serverPlayer, stack, payload.offhand());
});
}
private static void handlePortalGunIndicatorRequest(com.craisinlord.antarchy.content.network.PortalGunIndicatorRequestPayload payload, AntarchyPayloadContext context) {
context.enqueueWork(() -> {
if (context.player() instanceof ServerPlayer serverPlayer) {
com.craisinlord.antarchy.content.portalgun.PortalGunIndicatorSync.handleRequest(serverPlayer, payload);
}
});
}
private static void handleEyeOfStormPrimary(EyeOfStormPrimaryPayload payload, AntarchyPayloadContext context) {
context.enqueueWork(() -> {
if (!(context.player() instanceof ServerPlayer serverPlayer)) {
return;
}
if (!(serverPlayer.getMainHandItem().getItem() instanceof EyeOfTheStormItem eyeOfTheStormItem)) {
return;
}
eyeOfTheStormItem.firePrimary(serverPlayer.serverLevel(), serverPlayer, serverPlayer.getMainHandItem());
});
}
}
@@ -0,0 +1,9 @@
package com.craisinlord.antarchy.forge.network;
import net.minecraft.world.entity.player.Player;
public record AntarchyPayloadContext(Player player) {
public void enqueueWork(Runnable work) {
work.run();
}
}
@@ -1,31 +0,0 @@
package com.craisinlord.antarchy.forge.network;
import com.craisinlord.antarchy.content.network.TimeDilationFieldsPayload;
import com.craisinlord.antarchy.content.network.TimeDilationRatePayload;
import com.craisinlord.antarchy.content.time.TimeDilationFieldSnapshot;
import java.util.List;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.entity.Entity;
public final class AntarchyTimeDilationNetworking {
private AntarchyTimeDilationNetworking() {}
public static void register() {
AntarchyForgeNetworkCore.registerS2C(TimeDilationRatePayload.class, TimeDilationRatePayload.STREAM_CODEC,
payload -> com.craisinlord.antarchy.content.time.TimeDilationApi.applySyncedRate(payload.entityUuid(), payload.rate()));
AntarchyForgeNetworkCore.registerS2C(TimeDilationFieldsPayload.class, TimeDilationFieldsPayload.STREAM_CODEC,
payload -> com.craisinlord.antarchy.content.client.ClientTimeDilationTicker.applyFields(payload.fields()));
}
public static void syncRate(Entity entity, double rate) {
AntarchyForgeNetworkCore.sendToTrackingEntity(entity, new TimeDilationRatePayload(entity.getUUID(), rate));
}
public static void syncRateToPlayer(ServerPlayer player, Entity entity, double rate) {
AntarchyForgeNetworkCore.sendToPlayer(player, new TimeDilationRatePayload(entity.getUUID(), rate));
}
public static void syncFields(ServerPlayer player, List<TimeDilationFieldSnapshot> fields) {
AntarchyForgeNetworkCore.sendToPlayer(player, new TimeDilationFieldsPayload(fields));
}
}
@@ -12,67 +12,83 @@ import net.minecraft.sounds.SoundSource;
import net.minecraft.world.entity.EquipmentSlot;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.phys.Vec3;
import com.craisinlord.antarchy.forge.network.AntarchyForgeNetworkCore;
import com.craisinlord.antarchy.forge.network.AntarchyPayloadContext;
import com.craisinlord.antarchy.forge.network.AntarchyForgePayloadRegistrar;
public final class BrutalflyElytraNetworking {
private BrutalflyElytraNetworking() {
}
public static void register() {
AntarchyForgeNetworkCore.registerC2S(BrutalflyElytraFlapPayload.class, BrutalflyElytraFlapPayload.STREAM_CODEC, BrutalflyElytraNetworking::handleFlap);
AntarchyForgeNetworkCore.registerS2C(BrutalflyElytraAnimationPayload.class, BrutalflyElytraAnimationPayload.STREAM_CODEC, BrutalflyElytraNetworking::handleAnimation);
}
private static void handleFlap(ServerPlayer serverPlayer, BrutalflyElytraFlapPayload payload) {
ItemStack chestStack = serverPlayer.getItemBySlot(EquipmentSlot.CHEST);
if (!(chestStack.getItem() instanceof BrutalflyElytraItem)) {
return;
}
if (serverPlayer.isSpectator() || !serverPlayer.isFallFlying() || serverPlayer.isPassenger()) {
return;
}
if (serverPlayer.getCooldowns().isOnCooldown(chestStack.getItem())) {
return;
}
BrutalflyElytraFlightHelper.FlapTier tier = BrutalflyElytraFlightHelper.resolveFlapTier(payload.chargeTicks());
if (tier == BrutalflyElytraFlightHelper.FlapTier.FAIL) {
return;
}
float lift = BrutalflyElytraFlightHelper.liftFor(tier);
float forwardBoost = BrutalflyElytraFlightHelper.forwardBoostFor(tier);
Vec3 look = serverPlayer.getLookAngle();
Vec3 boost = new Vec3(look.x * forwardBoost, lift, look.z * forwardBoost);
serverPlayer.setDeltaMovement(serverPlayer.getDeltaMovement().add(boost));
serverPlayer.hasImpulse = true;
serverPlayer.hurtMarked = true;
serverPlayer.resetFallDistance();
serverPlayer.connection.send(new ClientboundSetEntityMotionPacket(serverPlayer));
chestStack.hurtAndBreak(1, serverPlayer, p -> p.broadcastBreakEvent(EquipmentSlot.CHEST));
serverPlayer.getCooldowns().addCooldown(chestStack.getItem(), BrutalflyElytraFlightHelper.FLAP_COOLDOWN_TICKS);
serverPlayer.level().playSound(
null,
serverPlayer.blockPosition(),
SoundEvents.PHANTOM_FLAP,
SoundSource.PLAYERS,
0.9F,
tier == BrutalflyElytraFlightHelper.FlapTier.PERFECT ? 0.8F : tier == BrutalflyElytraFlightHelper.FlapTier.GOOD ? 0.95F : 1.1F
);
AntarchyForgeNetworkCore.sendToTrackingEntity(
serverPlayer,
new BrutalflyElytraAnimationPayload(
serverPlayer.getId(),
BrutalflyElytraFlightHelper.animationTicksFor(tier),
lift
)
public static void register(AntarchyForgePayloadRegistrar registrar) {
registrar.playToServer(
BrutalflyElytraFlapPayload.TYPE,
BrutalflyElytraFlapPayload.STREAM_CODEC,
BrutalflyElytraNetworking::handleFlap
).playToClient(
BrutalflyElytraAnimationPayload.TYPE,
BrutalflyElytraAnimationPayload.STREAM_CODEC,
BrutalflyElytraNetworking::handleAnimation
);
}
private static void handleAnimation(BrutalflyElytraAnimationPayload payload) {
BrutalflyElytraClientState.trigger(
private static void handleFlap(com.craisinlord.antarchy.content.network.BrutalflyElytraFlapPayload payload, AntarchyPayloadContext context) {
context.enqueueWork(() -> {
if (!(context.player() instanceof ServerPlayer serverPlayer)) {
return;
}
ItemStack chestStack = serverPlayer.getItemBySlot(EquipmentSlot.CHEST);
if (!(chestStack.getItem() instanceof BrutalflyElytraItem)) {
return;
}
if (serverPlayer.isSpectator() || !serverPlayer.isFallFlying() || serverPlayer.isPassenger()) {
return;
}
if (serverPlayer.getCooldowns().isOnCooldown(chestStack.getItem())) {
return;
}
BrutalflyElytraFlightHelper.FlapTier tier = BrutalflyElytraFlightHelper.resolveFlapTier(payload.chargeTicks());
if (tier == BrutalflyElytraFlightHelper.FlapTier.FAIL) {
return;
}
float lift = BrutalflyElytraFlightHelper.liftFor(tier);
float forwardBoost = BrutalflyElytraFlightHelper.forwardBoostFor(tier);
Vec3 look = serverPlayer.getLookAngle();
Vec3 boost = new Vec3(look.x * forwardBoost, lift, look.z * forwardBoost);
serverPlayer.setDeltaMovement(serverPlayer.getDeltaMovement().add(boost));
serverPlayer.hasImpulse = true;
serverPlayer.hurtMarked = true;
serverPlayer.resetFallDistance();
serverPlayer.connection.send(new ClientboundSetEntityMotionPacket(serverPlayer));
chestStack.hurtAndBreak(1, serverPlayer, player -> player.broadcastBreakEvent(EquipmentSlot.CHEST));
serverPlayer.getCooldowns().addCooldown(chestStack.getItem(), BrutalflyElytraFlightHelper.FLAP_COOLDOWN_TICKS);
serverPlayer.level().playSound(
null,
serverPlayer.blockPosition(),
SoundEvents.PHANTOM_FLAP,
SoundSource.PLAYERS,
0.9F,
tier == BrutalflyElytraFlightHelper.FlapTier.PERFECT ? 0.8F : tier == BrutalflyElytraFlightHelper.FlapTier.GOOD ? 0.95F : 1.1F
);
AntarchyForgeNetworkCore.sendToTrackingEntity(
serverPlayer,
new BrutalflyElytraAnimationPayload(
serverPlayer.getId(),
BrutalflyElytraFlightHelper.animationTicksFor(tier),
lift
)
);
});
}
private static void handleAnimation(BrutalflyElytraAnimationPayload payload, AntarchyPayloadContext context) {
context.enqueueWork(() -> BrutalflyElytraClientState.trigger(
payload.entityId(),
payload.durationTicks(),
payload.strength()
);
));
}
}
@@ -4,26 +4,42 @@ import com.craisinlord.antarchy.content.entity.DorrieEntity;
import com.craisinlord.antarchy.content.network.DorrieChargeJumpPayload;
import com.craisinlord.antarchy.content.network.DorrieJumpInputPayload;
import net.minecraft.server.level.ServerPlayer;
import com.craisinlord.antarchy.forge.network.AntarchyPayloadContext;
import com.craisinlord.antarchy.forge.network.AntarchyForgePayloadRegistrar;
public final class DorrieJumpNetworking {
private DorrieJumpNetworking() {}
public static void register() {
AntarchyForgeNetworkCore.registerC2S(DorrieJumpInputPayload.class, DorrieJumpInputPayload.STREAM_CODEC, DorrieJumpNetworking::handleJumpInput);
AntarchyForgeNetworkCore.registerC2S(DorrieChargeJumpPayload.class, DorrieChargeJumpPayload.STREAM_CODEC, DorrieJumpNetworking::handleChargeInput);
public static void register(AntarchyForgePayloadRegistrar registrar) {
registrar.playToServer(
DorrieJumpInputPayload.TYPE,
DorrieJumpInputPayload.STREAM_CODEC,
DorrieJumpNetworking::handleJumpInput
);
registrar.playToServer(
DorrieChargeJumpPayload.TYPE,
DorrieChargeJumpPayload.STREAM_CODEC,
DorrieJumpNetworking::handleChargeInput
);
}
private static void handleJumpInput(ServerPlayer player, DorrieJumpInputPayload payload) {
if (!(player.getVehicle() instanceof DorrieEntity dorrie)) return;
dorrie.setPressingJump(payload.pressing());
private static void handleJumpInput(DorrieJumpInputPayload payload, AntarchyPayloadContext context) {
context.enqueueWork(() -> {
if (!(context.player() instanceof ServerPlayer player)) return;
if (!(player.getVehicle() instanceof DorrieEntity dorrie)) return;
dorrie.setPressingJump(payload.pressing());
});
}
private static void handleChargeInput(ServerPlayer player, DorrieChargeJumpPayload payload) {
if (!(player.getVehicle() instanceof DorrieEntity dorrie)) return;
if (payload.pressing()) {
dorrie.startJumpCharge();
} else {
dorrie.releaseJump();
}
private static void handleChargeInput(DorrieChargeJumpPayload payload, AntarchyPayloadContext context) {
context.enqueueWork(() -> {
if (!(context.player() instanceof ServerPlayer player)) return;
if (!(player.getVehicle() instanceof DorrieEntity dorrie)) return;
if (payload.pressing()) {
dorrie.startJumpCharge();
} else {
dorrie.releaseJump();
}
});
}
}
@@ -8,48 +8,86 @@ import com.craisinlord.antarchy.content.network.HerculesBeetleJumpInputPayload;
import com.craisinlord.antarchy.content.network.HerculesBeetleMountedAttackPayload;
import com.craisinlord.antarchy.content.network.HerculesBeetleMountedChargePayload;
import net.minecraft.server.level.ServerPlayer;
import com.craisinlord.antarchy.forge.network.AntarchyPayloadContext;
import com.craisinlord.antarchy.forge.network.AntarchyForgePayloadRegistrar;
public final class HerculesBeetleNetworking {
private HerculesBeetleNetworking() {
}
public static void register() {
AntarchyForgeNetworkCore.registerC2S(HerculesBeetleJumpInputPayload.class, HerculesBeetleJumpInputPayload.STREAM_CODEC, HerculesBeetleNetworking::handleJumpInput);
AntarchyForgeNetworkCore.registerC2S(HerculesBeetleFlightTogglePayload.class, HerculesBeetleFlightTogglePayload.STREAM_CODEC, HerculesBeetleNetworking::handleFlightToggle);
AntarchyForgeNetworkCore.registerC2S(HerculesBeetleMountedAttackPayload.class, HerculesBeetleMountedAttackPayload.STREAM_CODEC, HerculesBeetleNetworking::handleMountedAttack);
AntarchyForgeNetworkCore.registerC2S(HerculesBeetleMountedChargePayload.class, HerculesBeetleMountedChargePayload.STREAM_CODEC, HerculesBeetleNetworking::handleMountedCharge);
AntarchyForgeNetworkCore.registerS2C(HerculesBeetleImpactShakePayload.class, HerculesBeetleImpactShakePayload.STREAM_CODEC, HerculesBeetleNetworking::handleImpactShake);
public static void register(AntarchyForgePayloadRegistrar registrar) {
registrar.playToServer(
HerculesBeetleJumpInputPayload.TYPE,
HerculesBeetleJumpInputPayload.STREAM_CODEC,
HerculesBeetleNetworking::handleJumpInput
).playToServer(
HerculesBeetleFlightTogglePayload.TYPE,
HerculesBeetleFlightTogglePayload.STREAM_CODEC,
HerculesBeetleNetworking::handleFlightToggle
).playToServer(
HerculesBeetleMountedAttackPayload.TYPE,
HerculesBeetleMountedAttackPayload.STREAM_CODEC,
HerculesBeetleNetworking::handleMountedAttack
).playToServer(
HerculesBeetleMountedChargePayload.TYPE,
HerculesBeetleMountedChargePayload.STREAM_CODEC,
HerculesBeetleNetworking::handleMountedCharge
).playToClient(
HerculesBeetleImpactShakePayload.TYPE,
HerculesBeetleImpactShakePayload.STREAM_CODEC,
HerculesBeetleNetworking::handleImpactShake
);
}
private static void handleJumpInput(ServerPlayer player, HerculesBeetleJumpInputPayload payload) {
if (player.getVehicle() instanceof HerculesBeetleEntity beetle) {
beetle.setRiderJumpPressed(payload.pressing());
}
}
private static void handleMountedAttack(ServerPlayer player, HerculesBeetleMountedAttackPayload payload) {
if (player.getVehicle() instanceof HerculesBeetleEntity beetle) {
beetle.handleMountedRegularAttack(player);
}
}
private static void handleFlightToggle(ServerPlayer player, HerculesBeetleFlightTogglePayload payload) {
if (player.getVehicle() instanceof HerculesBeetleEntity beetle) {
beetle.toggleMountedFlight(player);
}
}
private static void handleMountedCharge(ServerPlayer player, HerculesBeetleMountedChargePayload payload) {
if (player.getVehicle() instanceof HerculesBeetleEntity beetle) {
if (payload.pressing()) {
beetle.startMountedCharge(player);
} else {
beetle.releaseMountedCharge(player);
private static void handleJumpInput(HerculesBeetleJumpInputPayload payload, AntarchyPayloadContext context) {
context.enqueueWork(() -> {
if (!(context.player() instanceof ServerPlayer player)) {
return;
}
}
if (player.getVehicle() instanceof HerculesBeetleEntity beetle) {
beetle.setRiderJumpPressed(payload.pressing());
}
});
}
private static void handleImpactShake(HerculesBeetleImpactShakePayload payload) {
HerculesBeetleImpactShakeClientState.trigger(payload.durationTicks());
private static void handleMountedAttack(HerculesBeetleMountedAttackPayload payload, AntarchyPayloadContext context) {
context.enqueueWork(() -> {
if (!(context.player() instanceof ServerPlayer player)) {
return;
}
if (player.getVehicle() instanceof HerculesBeetleEntity beetle) {
beetle.handleMountedRegularAttack(player);
}
});
}
private static void handleFlightToggle(HerculesBeetleFlightTogglePayload payload, AntarchyPayloadContext 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, AntarchyPayloadContext context) {
context.enqueueWork(() -> {
if (!(context.player() instanceof ServerPlayer player)) {
return;
}
if (player.getVehicle() instanceof HerculesBeetleEntity beetle) {
if (payload.pressing()) {
beetle.startMountedCharge(player);
} else {
beetle.releaseMountedCharge(player);
}
}
});
}
private static void handleImpactShake(HerculesBeetleImpactShakePayload payload, AntarchyPayloadContext context) {
context.enqueueWork(() -> HerculesBeetleImpactShakeClientState.trigger(payload.durationTicks()));
}
}
@@ -1,78 +0,0 @@
package com.craisinlord.antarchy.forge.network;
import com.craisinlord.antarchy.content.entity.multipart.MultipartEntityOwner;
import com.craisinlord.antarchy.content.entity.multipart.network.MultipartAttackPayload;
import com.craisinlord.antarchy.content.entity.multipart.network.MultipartInteractPayload;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.damagesource.DamageSource;
import net.minecraft.world.entity.Entity;
public final class MultipartNetworking {
private MultipartNetworking() {
}
public static void register() {
AntarchyForgeNetworkCore.registerC2S(MultipartAttackPayload.class, MultipartAttackPayload.STREAM_CODEC, MultipartNetworking::handleAttack);
AntarchyForgeNetworkCore.registerC2S(MultipartInteractPayload.class, MultipartInteractPayload.STREAM_CODEC, MultipartNetworking::handleInteract);
}
private static void handleAttack(ServerPlayer serverPlayer, MultipartAttackPayload payload) {
{
Entity entity = serverPlayer.serverLevel().getEntity(payload.parentId());
if (!(entity instanceof MultipartEntityOwner owner)) {
return;
}
Entity[] parts = owner.antarchy$getMultipartParts();
if (parts == null) {
parts = owner.antarchy$createMultipartParts();
owner.antarchy$setMultipartParts(parts);
owner.antarchy$syncMultipartParts();
}
if (payload.partIndex() < 0 || payload.partIndex() >= parts.length) {
return;
}
Entity part = parts[payload.partIndex()];
if (part == null || part.isRemoved()) {
return;
}
if (serverPlayer.distanceToSqr(part) > 10000.0D) {
return;
}
DamageSource source = serverPlayer.level().damageSources().playerAttack(serverPlayer);
owner.antarchy$hurtMultipartPart(part, source, payload.damage());
}
}
private static void handleInteract(ServerPlayer serverPlayer, MultipartInteractPayload payload) {
{
Entity entity = serverPlayer.serverLevel().getEntity(payload.parentId());
if (!(entity instanceof MultipartEntityOwner owner)) {
return;
}
Entity[] parts = owner.antarchy$getMultipartParts();
if (parts == null) {
parts = owner.antarchy$createMultipartParts();
owner.antarchy$setMultipartParts(parts);
owner.antarchy$syncMultipartParts();
}
if (payload.partIndex() < 0 || payload.partIndex() >= parts.length) {
return;
}
Entity part = parts[payload.partIndex()];
if (part == null || part.isRemoved()) {
return;
}
InteractionHand hand = payload.handId() == 0 ? InteractionHand.MAIN_HAND : InteractionHand.OFF_HAND;
owner.antarchy$interactMultipartPart(part, serverPlayer, part.position(), hand);
}
}
}
@@ -1,11 +1,9 @@
package com.craisinlord.antarchy.forge.network;
import net.minecraftforge.fml.common.Mod;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.item.JumpyBootsHelper;
import com.craisinlord.antarchy.content.item.JumpyBootsItem;
import com.craisinlord.antarchy.content.network.JumpyBootsLaunchPayload;
import com.craisinlord.antarchy.content.item.SpringyBootsHelper;
import com.craisinlord.antarchy.content.item.SpringyBootsItem;
import com.craisinlord.antarchy.content.network.SpringyBootsLaunchPayload;
import net.minecraft.network.protocol.game.ClientboundSetEntityMotionPacket;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.sounds.SoundEvents;
@@ -14,29 +12,37 @@ import net.minecraft.world.entity.EquipmentSlot;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.phys.Vec3;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.event.entity.living.LivingFallEvent;
import com.craisinlord.antarchy.forge.network.AntarchyPayloadContext;
import com.craisinlord.antarchy.forge.network.AntarchyForgePayloadRegistrar;
@Mod.EventBusSubscriber(modid = Antarchy.MODID)
public final class JumpyBootsNetworking {
private JumpyBootsNetworking() {
public final class SpringyBootsNetworking {
private SpringyBootsNetworking() {
}
public static void register() {
AntarchyForgeNetworkCore.registerC2S(JumpyBootsLaunchPayload.class, JumpyBootsLaunchPayload.STREAM_CODEC, JumpyBootsNetworking::handleLaunch);
public static void register(AntarchyForgePayloadRegistrar registrar) {
registrar.playToServer(
SpringyBootsLaunchPayload.TYPE,
SpringyBootsLaunchPayload.STREAM_CODEC,
SpringyBootsNetworking::handleLaunch
);
}
private static void handleLaunch(ServerPlayer player, JumpyBootsLaunchPayload payload) {
{
if (!JumpyBootsItem.isWearingJumpyBoots(player)) return;
private static void handleLaunch(SpringyBootsLaunchPayload payload, AntarchyPayloadContext context) {
context.enqueueWork(() -> {
if (!(context.player() instanceof ServerPlayer player)) return;
if (!SpringyBootsItem.isWearingSpringyBoots(player)) return;
if (player.isSpectator() || player.isPassenger()) return;
ItemStack boots = player.getItemBySlot(EquipmentSlot.FEET);
if (player.getCooldowns().isOnCooldown(boots.getItem())) return;
int clampedCharge = Math.min(payload.chargeTicks(), JumpyBootsHelper.CHARGE_TICKS_MAX);
int clampedCharge = Math.min(payload.chargeTicks(), SpringyBootsHelper.CHARGE_TICKS_MAX);
if (clampedCharge <= 0) return;
float verticalBoost = JumpyBootsHelper.verticalBoostFor(clampedCharge);
float verticalBoost = SpringyBootsHelper.verticalBoostFor(clampedCharge);
Vec3 current = player.getDeltaMovement();
double newY = verticalBoost;
@@ -45,8 +51,8 @@ public final class JumpyBootsNetworking {
if (payload.sprinting()) {
Vec3 look = player.getLookAngle();
newX += look.x * JumpyBootsHelper.SPRINT_FORWARD_BOOST;
newZ += look.z * JumpyBootsHelper.SPRINT_FORWARD_BOOST;
newX += look.x * SpringyBootsHelper.SPRINT_FORWARD_BOOST;
newZ += look.z * SpringyBootsHelper.SPRINT_FORWARD_BOOST;
}
player.setDeltaMovement(newX, newY, newZ);
@@ -56,19 +62,19 @@ public final class JumpyBootsNetworking {
player.resetFallDistance();
player.connection.send(new ClientboundSetEntityMotionPacket(player));
player.level().playSound(null, player.blockPosition(), SoundEvents.SLIME_JUMP, SoundSource.PLAYERS, 1.0F, 0.6F + (clampedCharge / (float) JumpyBootsHelper.CHARGE_TICKS_MAX) * 0.6F);
player.level().playSound(null, player.blockPosition(), SoundEvents.SLIME_JUMP, SoundSource.PLAYERS, 1.0F, 0.6F + (clampedCharge / (float) SpringyBootsHelper.CHARGE_TICKS_MAX) * 0.6F);
player.getPersistentData().putLong(JumpyBootsHelper.FALL_PROTECTION_NBT_KEY, player.level().getGameTime() + JumpyBootsHelper.FALL_PROTECTION_TICKS);
player.getPersistentData().putLong(SpringyBootsHelper.FALL_PROTECTION_NBT_KEY, player.level().getGameTime() + SpringyBootsHelper.FALL_PROTECTION_TICKS);
player.getCooldowns().addCooldown(boots.getItem(), JumpyBootsHelper.COOLDOWN_TICKS);
}
player.getCooldowns().addCooldown(boots.getItem(), SpringyBootsHelper.COOLDOWN_TICKS);
});
}
@SubscribeEvent
public static void onLivingFall(LivingFallEvent event) {
if (!(event.getEntity() instanceof ServerPlayer player)) return;
if (!JumpyBootsItem.isWearingJumpyBoots(player)) return;
long protectionUntil = player.getPersistentData().getLong(JumpyBootsHelper.FALL_PROTECTION_NBT_KEY);
if (!SpringyBootsItem.isWearingSpringyBoots(player)) return;
long protectionUntil = player.getPersistentData().getLong(SpringyBootsHelper.FALL_PROTECTION_NBT_KEY);
if (player.level().getGameTime() < protectionUntil) {
event.setDamageMultiplier(event.getDamageMultiplier() * 0.25F);
}
@@ -1,59 +0,0 @@
package com.craisinlord.antarchy.forge.network;
import com.craisinlord.antarchy.content.client.ThoraxisWeatherClientState;
import com.craisinlord.antarchy.content.weather.ThoraxisWeatherKind;
import com.craisinlord.antarchy.content.weather.ThoraxisWeatherSnapshot;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.server.level.ServerPlayer;
public final class ThoraxisWeatherNetworking {
private ThoraxisWeatherNetworking() {
}
public static void register() {
AntarchyForgeNetworkCore.registerS2C(
com.craisinlord.antarchy.content.network.ThoraxisWeatherPayload.class,
com.craisinlord.antarchy.content.network.ThoraxisWeatherPayload.STREAM_CODEC,
ThoraxisWeatherNetworking::handleWeatherPayload
);
}
public static void syncLevel(ServerLevel level, ThoraxisWeatherSnapshot snapshot) {
com.craisinlord.antarchy.content.network.ThoraxisWeatherPayload payload = new com.craisinlord.antarchy.content.network.ThoraxisWeatherPayload(
snapshot.dimension(),
snapshot.kind(),
snapshot.expiresAt(),
snapshot.anchor().getX(),
snapshot.anchor().getY(),
snapshot.anchor().getZ()
);
for (ServerPlayer player : level.players()) {
AntarchyForgeNetworkCore.sendToPlayer(player, payload);
}
}
public static void syncPlayer(ServerPlayer player, ThoraxisWeatherSnapshot snapshot) {
com.craisinlord.antarchy.content.network.ThoraxisWeatherPayload payload = new com.craisinlord.antarchy.content.network.ThoraxisWeatherPayload(
snapshot.dimension(),
snapshot.kind(),
snapshot.expiresAt(),
snapshot.anchor().getX(),
snapshot.anchor().getY(),
snapshot.anchor().getZ()
);
AntarchyForgeNetworkCore.sendToPlayer(player, payload);
}
private static void handleWeatherPayload(com.craisinlord.antarchy.content.network.ThoraxisWeatherPayload payload) {
ThoraxisWeatherClientState.apply(
new ResourceLocation(payload.dimensionId()),
ThoraxisWeatherKind.byId(payload.weatherId()),
payload.expiresAt(),
payload.anchorX(),
payload.anchorY(),
payload.anchorZ()
);
}
}
@@ -1,39 +0,0 @@
package com.craisinlord.antarchy.forge.network;
import com.craisinlord.antarchy.content.item.TigerEyeArmorUtil;
import com.craisinlord.antarchy.content.network.TigerEyeCamouflageStatePayload;
import com.craisinlord.antarchy.content.network.ToggleTigerEyeCamouflagePayload;
import com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageController;
import net.minecraft.network.chat.Component;
import net.minecraft.server.level.ServerPlayer;
public final class TigerEyeNetworking {
private TigerEyeNetworking() {
}
public static void register() {
AntarchyForgeNetworkCore.registerS2C(TigerEyeCamouflageStatePayload.class, TigerEyeCamouflageStatePayload.STREAM_CODEC, payload ->
com.craisinlord.antarchy.content.client.TigerEyeCamouflageClientState.update(payload.entityId(), payload.active(), payload.blockStateId()));
AntarchyForgeNetworkCore.registerC2S(ToggleTigerEyeCamouflagePayload.class, ToggleTigerEyeCamouflagePayload.STREAM_CODEC, (player, payload) -> handleToggle(player));
}
private static void handleToggle(ServerPlayer player) {
TigerEyeCamouflageController.ToggleResult result = TigerEyeCamouflageController.toggle(player);
if (result != TigerEyeCamouflageController.ToggleResult.NO_CHANGE) {
AntarchyForgeNetworkCore.sendToTrackingEntity(player,
com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync.payload(player));
}
String messageKey = switch (result) {
case ACTIVATED -> "message.antarchy.tiger_eye_camouflage.activated";
case DEACTIVATED -> "message.antarchy.tiger_eye_camouflage.disabled";
case FULL_SET_REQUIRED -> TigerEyeArmorUtil.countEquippedPieces(player) > 0
? "message.antarchy.tiger_eye_camouflage.full_set_required"
: null;
case INVALID_BLOCK -> "message.antarchy.tiger_eye_camouflage.invalid_block";
case NO_CHANGE -> null;
};
if (messageKey != null) {
player.displayClientMessage(Component.translatable(messageKey), true);
}
}
}
@@ -6,26 +6,32 @@ import com.craisinlord.antarchy.content.AntarchyObjects;
import com.craisinlord.antarchy.content.block.*;
import com.craisinlord.antarchy.content.block.entity.AntNestBlockEntity;
import com.craisinlord.antarchy.content.block.entity.CritterCageBlockEntity;
import com.craisinlord.antarchy.content.block.entity.DimensionalTearMarkerBlockEntity;
import com.craisinlord.antarchy.content.block.entity.DreamCampfireBlockEntity;
import com.craisinlord.antarchy.content.block.entity.HushweedBlockEntity;
import com.craisinlord.antarchy.content.block.entity.LucidAnchorBlockEntity;
import com.craisinlord.antarchy.content.block.entity.PortalGunPortalBaseBlockEntity;
import com.craisinlord.antarchy.content.block.entity.PortalGunPortalMasterBlockEntity;
import com.craisinlord.antarchy.content.block.entity.PotentNyxiteBlockEntity;
import com.craisinlord.antarchy.content.block.entity.QueenTrailSpawnMarkerBlockEntity;
import com.craisinlord.antarchy.content.block.entity.SeashellBlockEntity;
import com.craisinlord.antarchy.content.block.entity.UpperBlockEntity;
import com.craisinlord.antarchy.content.block.entity.WaspNestBlockEntity;
import com.craisinlord.antarchy.content.block.entity.UndertrialSpawnerBlockEntity;
import com.craisinlord.antarchy.content.block.entity.UnderVaultBlockEntity;
import com.craisinlord.antarchy.content.block.entity.QueenTrailSpawnMarkerBlockEntity;
import com.craisinlord.antarchy.content.block.entity.VortexLensBlockEntity;
import com.craisinlord.antarchy.content.block.entity.WaspNestBlockEntity;
import com.craisinlord.antarchy.content.fluid.BileLiquidBlock;
import com.craisinlord.antarchy.content.fluid.LumenLiquidBlock;
import com.craisinlord.antarchy.content.portal.PermanentPortalType;
import com.craisinlord.antarchy.forge.content.block.WildCornBlock;
import com.craisinlord.antarchy.forge.AntarchyWoodTypes;
import com.craisinlord.antarchy.forge.content.fluid.AntiwaterFluidType;
import com.mojang.serialization.MapCodec;
import net.minecraft.core.Direction;
import net.minecraft.core.registries.Registries;
import net.minecraft.sounds.SoundEvent;
import net.minecraft.util.valueproviders.UniformInt;
import net.minecraft.world.item.context.BlockPlaceContext;
import net.minecraft.world.item.context.UseOnContext;
import net.minecraft.world.level.block.*;
import net.minecraft.world.level.block.entity.BlockEntityType;
import net.minecraft.world.level.block.state.BlockBehaviour;
@@ -37,12 +43,23 @@ import net.minecraft.world.level.block.state.properties.WoodType;
import net.minecraft.world.level.material.FlowingFluid;
import net.minecraft.world.level.material.FluidState;
import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.common.ToolAction;
import net.minecraftforge.common.ToolActions;
import net.minecraftforge.fluids.ForgeFlowingFluid;
import net.minecraftforge.registries.RegistryObject;
public final class AntarchyForgeBlocks {
private static final DeferredRegister.Blocks BLOCKS = DeferredRegister.createBlocks(Antarchy.MODID);
private static final DeferredRegister<BlockEntityType<?>> BLOCK_ENTITY_TYPES = DeferredRegister.create(Registries.BLOCK_ENTITY_TYPE, Antarchy.MODID);
public static final RegistryObject<UndertrialSpawnerBlock> UNDERTRIAL_SPAWNER = BLOCKS.register("undertrial_spawner",
() -> new UndertrialSpawnerBlock(AntarchyForgeBlocks::undertrialSpawnerBlockEntityType,
BlockBehaviour.Properties.of().mapColor(MapColor.STONE).instrument(net.minecraft.world.level.block.state.properties.NoteBlockInstrument.BASEDRUM).strength(50.0F).noOcclusion().isViewBlocking((state, level, pos) -> false)));
public static final RegistryObject<UnderVaultBlock> UNDERVAULT = BLOCKS.register("undervault",
() -> new UnderVaultBlock(AntarchyForgeBlocks::underVaultBlockEntityType,
BlockBehaviour.Properties.of().mapColor(MapColor.STONE).instrument(net.minecraft.world.level.block.state.properties.NoteBlockInstrument.BASEDRUM).strength(50.0F).noOcclusion().isViewBlocking((state, level, pos) -> false)));
public static final RegistryObject<QueenTrailSpawnMarkerBlock> QUEEN_TRAIL_SPAWN_MARKER = BLOCKS.register("queen_trail_spawn_marker",
() -> new QueenTrailSpawnMarkerBlock(AntarchyForgeBlocks::queenTrailSpawnMarkerBlockEntityType,
BlockBehaviour.Properties.copy(Blocks.BEDROCK).noLootTable()));
public static final RegistryObject<DuplicatorLogBlock> DUPLICATOR_LOG = BLOCKS.register("duplicator_log",
() -> new DuplicatorLogBlock(BlockBehaviour.Properties.copy(Blocks.OAK_LOG).randomTicks()));
public static final RegistryObject<OuranwoodLogBlock> OURANWOOD_LOG = BLOCKS.register("ouranwood_log",
@@ -74,7 +91,7 @@ public final class AntarchyForgeBlocks {
public static final RegistryObject<PressurePlateBlock> OURANWOOD_PRESSURE_PLATE = BLOCKS.register("ouranwood_pressure_plate",
() -> new PressurePlateBlock(PressurePlateBlock.Sensitivity.EVERYTHING, BlockBehaviour.Properties.copy(Blocks.JUNGLE_PRESSURE_PLATE), BlockSetType.JUNGLE));
public static final RegistryObject<ButtonBlock> OURANWOOD_BUTTON = BLOCKS.register("ouranwood_button",
() -> new ButtonBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_BUTTON), BlockSetType.JUNGLE, 30, false));
() -> new ButtonBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_BUTTON), BlockSetType.JUNGLE, 30, true));
public static final RegistryObject<OuranwoodLeavesBlock> OURANWOOD_LEAVES = BLOCKS.register("ouranwood_leaves",
() -> new OuranwoodLeavesBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_LEAVES).randomTicks()));
public static final RegistryObject<OuranwoodAcornBlock> OURANWOOD_ACORN_BLOCK = BLOCKS.register("ouranwood_acorn",
@@ -85,6 +102,8 @@ public final class AntarchyForgeBlocks {
() -> new MilkweedBlock(BlockBehaviour.Properties.copy(Blocks.PEONY)));
public static final RegistryObject<MilkweedBlock> PINK_MILKWEED = BLOCKS.register("pink_milkweed",
() -> new MilkweedBlock(BlockBehaviour.Properties.copy(Blocks.PEONY)));
public static final RegistryObject<GlimmeringReedBlock> GLIMMERING_REED = BLOCKS.register("glimmering_reed",
() -> new GlimmeringReedBlock(BlockBehaviour.Properties.copy(Blocks.SUNFLOWER).lightLevel(state -> 8)));
public static final RegistryObject<com.craisinlord.antarchy.content.block.CamelliaBlock> CAMELLIA = BLOCKS.register("camellia",
() -> new com.craisinlord.antarchy.content.block.CamelliaBlock(BlockBehaviour.Properties.copy(Blocks.PEONY)));
public static final RegistryObject<com.craisinlord.antarchy.content.block.SpiderLilyBlock> SPIDER_LILY = BLOCKS.register("spider_lily",
@@ -103,6 +122,14 @@ public final class AntarchyForgeBlocks {
() -> new LucidAnchorBlock(BlockBehaviour.Properties.copy(Blocks.BEACON).strength(3.0F)));
public static final RegistryObject<CritterCageBlock> CRITTER_CAGE_BLOCK = BLOCKS.register("critter_cage_block",
() -> new CritterCageBlock(BlockBehaviour.Properties.of().strength(5.0F, 6.0F).sound(net.minecraft.world.level.block.SoundType.METAL).noOcclusion()));
public static final RegistryObject<PortalGunPortalMasterBlock> PORTAL_GUN_PORTAL_MASTER = BLOCKS.register("portal_gun_portal_master",
() -> new PortalGunPortalMasterBlock(AntarchyForgeBlocks::portalGunPortalMasterBlockEntityType, portalProperties()));
public static final RegistryObject<PortalGunPortalBaseBlock> PORTAL_GUN_PORTAL_BASE = BLOCKS.register("portal_gun_portal_base",
() -> new PortalGunPortalBaseBlock(AntarchyForgeBlocks::portalGunPortalBaseBlockEntityType, portalProperties()));
public static final RegistryObject<DimensionalTearMarkerBlock> DIMENSIONAL_TEAR_MARKER = BLOCKS.register("dimensional_tear_marker",
() -> new DimensionalTearMarkerBlock(AntarchyForgeBlocks::dimensionalTearMarkerBlockEntityType,
BlockBehaviour.Properties.of().noCollission().noOcclusion().noLootTable().instabreak()
.pushReaction(net.minecraft.world.level.material.PushReaction.DESTROY)));
public static final RegistryObject<StandingSignBlock> OURANWOOD_SIGN = BLOCKS.register("ouranwood_sign",
() -> new StandingSignBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_SIGN), AntarchyWoodTypes.OURANWOOD));
public static final RegistryObject<WallSignBlock> OURANWOOD_WALL_SIGN = BLOCKS.register("ouranwood_wall_sign",
@@ -136,7 +163,7 @@ public final class AntarchyForgeBlocks {
public static final RegistryObject<PressurePlateBlock> PEACH_PRESSURE_PLATE = BLOCKS.register("peach_pressure_plate",
() -> new PressurePlateBlock(PressurePlateBlock.Sensitivity.EVERYTHING, BlockBehaviour.Properties.copy(Blocks.JUNGLE_PRESSURE_PLATE), BlockSetType.JUNGLE));
public static final RegistryObject<ButtonBlock> PEACH_BUTTON = BLOCKS.register("peach_button",
() -> new ButtonBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_BUTTON), BlockSetType.JUNGLE, 30, false));
() -> new ButtonBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_BUTTON), BlockSetType.JUNGLE, 30, true));
public static final RegistryObject<PeachLeavesBlock> PEACH_LEAVES = BLOCKS.register("peach_leaves",
() -> new PeachLeavesBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_LEAVES).randomTicks()));
public static final RegistryObject<HangingPeachBlock> PEACH_HANGING_PEACH = BLOCKS.register("hanging_peach",
@@ -178,11 +205,11 @@ public final class AntarchyForgeBlocks {
public static final RegistryObject<PressurePlateBlock> NADIR_PRESSURE_PLATE = BLOCKS.register("nadir_pressure_plate",
() -> new PressurePlateBlock(PressurePlateBlock.Sensitivity.EVERYTHING, BlockBehaviour.Properties.copy(Blocks.JUNGLE_PRESSURE_PLATE), BlockSetType.JUNGLE));
public static final RegistryObject<ButtonBlock> NADIR_BUTTON = BLOCKS.register("nadir_button",
() -> new ButtonBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_BUTTON), BlockSetType.JUNGLE, 30, false));
public static final RegistryObject<Block> NADIR_VEIL = BLOCKS.register("nadir_veil",
() -> new Block(BlockBehaviour.Properties.copy(Blocks.MANGROVE_LEAVES).noCollission().noOcclusion()));
public static final RegistryObject<com.craisinlord.antarchy.content.block.NadirSaplingBlock> NADIR_SAPLING = BLOCKS.register("nadir_sapling",
() -> new com.craisinlord.antarchy.content.block.NadirSaplingBlock(BlockBehaviour.Properties.copy(Blocks.OAK_SAPLING).randomTicks().noCollission()));
() -> new ButtonBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_BUTTON), BlockSetType.JUNGLE, 30, true));
public static final RegistryObject<com.craisinlord.antarchy.content.block.NadirVeilBlock> NADIR_VEIL = BLOCKS.register("nadir_veil",
() -> new com.craisinlord.antarchy.content.block.NadirVeilBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_LEAVES).sound(SoundType.SLIME_BLOCK).noOcclusion()));
public static final RegistryObject<NadirSaplingBlock> NADIR_SAPLING = BLOCKS.register("nadir_sapling",
() -> new NadirSaplingBlock(BlockBehaviour.Properties.copy(Blocks.OAK_SAPLING).randomTicks().noCollission()));
public static final RegistryObject<FlowerPotBlock> POTTED_NADIR_SAPLING = BLOCKS.register("potted_nadir_sapling",
() -> new FlowerPotBlock(NADIR_SAPLING.get(), BlockBehaviour.Properties.copy(Blocks.POTTED_DANDELION)));
public static final RegistryObject<StandingSignBlock> NADIR_SIGN = BLOCKS.register("nadir_sign",
@@ -195,6 +222,134 @@ public final class AntarchyForgeBlocks {
() -> new WallHangingSignBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_WALL_HANGING_SIGN), AntarchyWoodTypes.NADIR));
public static final RegistryObject<DuplicatorSaplingBlock> DUPLICATOR_SAPLING = BLOCKS.register("duplicator_sapling",
() -> new DuplicatorSaplingBlock(BlockBehaviour.Properties.copy(Blocks.OAK_SAPLING).randomTicks().noCollission()));
public static final RegistryObject<RotatedPillarBlock> ROYAL_LOG = BLOCKS.register("royal_log",
() -> new RotatedPillarBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_LOG)));
public static final RegistryObject<RotatedPillarBlock> ROYAL_WOOD = BLOCKS.register("royal_wood",
() -> new RotatedPillarBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_WOOD)));
public static final RegistryObject<RotatedPillarBlock> STRIPPED_ROYAL_LOG = BLOCKS.register("stripped_royal_log",
() -> new RotatedPillarBlock(BlockBehaviour.Properties.copy(Blocks.STRIPPED_JUNGLE_LOG)));
public static final RegistryObject<RotatedPillarBlock> STRIPPED_ROYAL_WOOD = BLOCKS.register("stripped_royal_wood",
() -> new RotatedPillarBlock(BlockBehaviour.Properties.copy(Blocks.STRIPPED_JUNGLE_WOOD)));
public static final RegistryObject<Block> ROYAL_PLANKS = BLOCKS.register("royal_planks",
() -> new Block(BlockBehaviour.Properties.copy(Blocks.JUNGLE_PLANKS)));
public static final RegistryObject<StairBlock> ROYAL_STAIRS = BLOCKS.register("royal_stairs",
() -> new StairBlock(ROYAL_PLANKS.get().defaultBlockState(), BlockBehaviour.Properties.copy(Blocks.JUNGLE_STAIRS)));
public static final RegistryObject<SlabBlock> ROYAL_SLAB = BLOCKS.register("royal_slab",
() -> new SlabBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_SLAB)));
public static final RegistryObject<FenceBlock> ROYAL_FENCE = BLOCKS.register("royal_fence",
() -> new FenceBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_FENCE)));
public static final RegistryObject<FenceGateBlock> ROYAL_FENCE_GATE = BLOCKS.register("royal_fence_gate",
() -> new FenceGateBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_FENCE_GATE), WoodType.JUNGLE));
public static final RegistryObject<DoorBlock> ROYAL_DOOR = BLOCKS.register("royal_door",
() -> new DoorBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_DOOR), BlockSetType.JUNGLE));
public static final RegistryObject<TrapDoorBlock> ROYAL_TRAPDOOR = BLOCKS.register("royal_trapdoor",
() -> new TrapDoorBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_TRAPDOOR), BlockSetType.JUNGLE));
public static final RegistryObject<PressurePlateBlock> ROYAL_PRESSURE_PLATE = BLOCKS.register("royal_pressure_plate",
() -> new PressurePlateBlock(PressurePlateBlock.Sensitivity.EVERYTHING, BlockBehaviour.Properties.copy(Blocks.JUNGLE_PRESSURE_PLATE), BlockSetType.JUNGLE));
public static final RegistryObject<ButtonBlock> ROYAL_BUTTON = BLOCKS.register("royal_button",
() -> new ButtonBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_BUTTON), BlockSetType.JUNGLE, 30, true));
public static final RegistryObject<RoyalLeavesBlock> ROYAL_LEAVES = BLOCKS.register("royal_leaves",
() -> new RoyalLeavesBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_LEAVES).randomTicks()));
public static final RegistryObject<RoyalLeavesBlock> ROYAL_FLOWERING_LEAVES = BLOCKS.register("royal_flowering_leaves",
() -> new RoyalLeavesBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_LEAVES).randomTicks().lightLevel(state -> 12)));
public static final RegistryObject<RoyalSaplingBlock> ROYAL_SAPLING = BLOCKS.register("royal_sapling",
() -> new RoyalSaplingBlock(BlockBehaviour.Properties.copy(Blocks.OAK_SAPLING).noCollission()));
public static final RegistryObject<FlowerPotBlock> POTTED_ROYAL_SAPLING = BLOCKS.register("potted_royal_sapling",
() -> new FlowerPotBlock(ROYAL_SAPLING.get(), BlockBehaviour.Properties.copy(Blocks.POTTED_DANDELION)));
public static final RegistryObject<StandingSignBlock> ROYAL_SIGN = BLOCKS.register("royal_sign",
() -> new StandingSignBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_SIGN), AntarchyWoodTypes.ROYAL));
public static final RegistryObject<WallSignBlock> ROYAL_WALL_SIGN = BLOCKS.register("royal_wall_sign",
() -> new WallSignBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_WALL_SIGN), AntarchyWoodTypes.ROYAL));
public static final RegistryObject<CeilingHangingSignBlock> ROYAL_HANGING_SIGN = BLOCKS.register("royal_hanging_sign",
() -> new CeilingHangingSignBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_HANGING_SIGN), AntarchyWoodTypes.ROYAL));
public static final RegistryObject<WallHangingSignBlock> ROYAL_WALL_HANGING_SIGN = BLOCKS.register("royal_wall_hanging_sign",
() -> new WallHangingSignBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_WALL_HANGING_SIGN), AntarchyWoodTypes.ROYAL));
public static final RegistryObject<TruffaloLogBlock> TRUFFALO_LOG = BLOCKS.register("truffalo_log",
() -> new TruffaloLogBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_LOG)) {
@Override
public BlockState getToolModifiedState(BlockState state, UseOnContext context, ToolAction itemAbility, boolean simulate) {
if (itemAbility == ToolActions.AXE_STRIP) {
return STRIPPED_TRUFFALO_LOG.get().withPropertiesOf(state);
}
return super.getToolModifiedState(state, context, itemAbility, simulate);
}
});
public static final RegistryObject<RotatedPillarBlock> TRUFFALO_WOOD = BLOCKS.register("truffalo_wood",
() -> new RotatedPillarBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_WOOD)) {
@Override
public BlockState getToolModifiedState(BlockState state, UseOnContext context, ToolAction itemAbility, boolean simulate) {
if (itemAbility == ToolActions.AXE_STRIP) {
return STRIPPED_TRUFFALO_WOOD.get().withPropertiesOf(state);
}
return super.getToolModifiedState(state, context, itemAbility, simulate);
}
});
public static final RegistryObject<TruffaloLogBlock> STRIPPED_TRUFFALO_LOG = BLOCKS.register("stripped_truffalo_log",
() -> new TruffaloLogBlock(BlockBehaviour.Properties.copy(Blocks.STRIPPED_JUNGLE_LOG)));
public static final RegistryObject<RotatedPillarBlock> STRIPPED_TRUFFALO_WOOD = BLOCKS.register("stripped_truffalo_wood",
() -> new RotatedPillarBlock(BlockBehaviour.Properties.copy(Blocks.STRIPPED_JUNGLE_WOOD)));
public static final RegistryObject<Block> TRUFFALO_PLANKS = BLOCKS.register("truffalo_planks",
() -> new Block(BlockBehaviour.Properties.copy(Blocks.JUNGLE_PLANKS)));
public static final RegistryObject<StairBlock> TRUFFALO_STAIRS = BLOCKS.register("truffalo_stairs",
() -> new StairBlock(TRUFFALO_PLANKS.get().defaultBlockState(), BlockBehaviour.Properties.copy(Blocks.JUNGLE_STAIRS)));
public static final RegistryObject<SlabBlock> TRUFFALO_SLAB = BLOCKS.register("truffalo_slab",
() -> new SlabBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_SLAB)));
public static final RegistryObject<FenceBlock> TRUFFALO_FENCE = BLOCKS.register("truffalo_fence",
() -> new FenceBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_FENCE)));
public static final RegistryObject<FenceGateBlock> TRUFFALO_FENCE_GATE = BLOCKS.register("truffalo_fence_gate",
() -> new FenceGateBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_FENCE_GATE), WoodType.JUNGLE));
public static final RegistryObject<DoorBlock> TRUFFALO_DOOR = BLOCKS.register("truffalo_door",
() -> new DoorBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_DOOR), BlockSetType.JUNGLE));
public static final RegistryObject<TrapDoorBlock> TRUFFALO_TRAPDOOR = BLOCKS.register("truffalo_trapdoor",
() -> new TrapDoorBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_TRAPDOOR), BlockSetType.JUNGLE));
public static final RegistryObject<PressurePlateBlock> TRUFFALO_PRESSURE_PLATE = BLOCKS.register("truffalo_pressure_plate",
() -> new PressurePlateBlock(PressurePlateBlock.Sensitivity.EVERYTHING, BlockBehaviour.Properties.copy(Blocks.JUNGLE_PRESSURE_PLATE), BlockSetType.JUNGLE));
public static final RegistryObject<ButtonBlock> TRUFFALO_BUTTON = BLOCKS.register("truffalo_button",
() -> new ButtonBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_BUTTON), BlockSetType.JUNGLE, 30, true));
public static final RegistryObject<TruffaloSaplingBlock> TRUFFALO_SAPLING = BLOCKS.register("truffalo_sapling",
() -> new TruffaloSaplingBlock(BlockBehaviour.Properties.copy(Blocks.OAK_SAPLING).randomTicks().noCollission()));
public static final RegistryObject<FlowerPotBlock> POTTED_TRUFFALO_SAPLING = BLOCKS.register("potted_truffalo_sapling",
() -> new FlowerPotBlock(TRUFFALO_SAPLING.get(), BlockBehaviour.Properties.copy(Blocks.POTTED_DANDELION)));
public static final RegistryObject<StandingSignBlock> TRUFFALO_SIGN = BLOCKS.register("truffalo_sign",
() -> new StandingSignBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_SIGN), AntarchyWoodTypes.TRUFFALO));
public static final RegistryObject<WallSignBlock> TRUFFALO_WALL_SIGN = BLOCKS.register("truffalo_wall_sign",
() -> new WallSignBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_WALL_SIGN), AntarchyWoodTypes.TRUFFALO));
public static final RegistryObject<CeilingHangingSignBlock> TRUFFALO_HANGING_SIGN = BLOCKS.register("truffalo_hanging_sign",
() -> new CeilingHangingSignBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_HANGING_SIGN), AntarchyWoodTypes.TRUFFALO));
public static final RegistryObject<WallHangingSignBlock> TRUFFALO_WALL_HANGING_SIGN = BLOCKS.register("truffalo_wall_hanging_sign",
() -> new WallHangingSignBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_WALL_HANGING_SIGN), AntarchyWoodTypes.TRUFFALO));
public static final RegistryObject<TruffaloTuftBlock> TRUFFALO_TUFT_WHITE = BLOCKS.register("white_truffalo_tuft",
() -> new TruffaloTuftBlock(BlockBehaviour.Properties.copy(Blocks.WHITE_WOOL)));
public static final RegistryObject<TruffaloTuftBlock> TRUFFALO_TUFT_ORANGE = BLOCKS.register("orange_truffalo_tuft",
() -> new TruffaloTuftBlock(BlockBehaviour.Properties.copy(Blocks.ORANGE_WOOL)));
public static final RegistryObject<TruffaloTuftBlock> TRUFFALO_TUFT_MAGENTA = BLOCKS.register("magenta_truffalo_tuft",
() -> new TruffaloTuftBlock(BlockBehaviour.Properties.copy(Blocks.MAGENTA_WOOL)));
public static final RegistryObject<TruffaloTuftBlock> TRUFFALO_TUFT_LIGHT_BLUE = BLOCKS.register("light_blue_truffalo_tuft",
() -> new TruffaloTuftBlock(BlockBehaviour.Properties.copy(Blocks.LIGHT_BLUE_WOOL)));
public static final RegistryObject<TruffaloTuftBlock> TRUFFALO_TUFT_YELLOW = BLOCKS.register("yellow_truffalo_tuft",
() -> new TruffaloTuftBlock(BlockBehaviour.Properties.copy(Blocks.YELLOW_WOOL)));
public static final RegistryObject<TruffaloTuftBlock> TRUFFALO_TUFT_LIME = BLOCKS.register("lime_truffalo_tuft",
() -> new TruffaloTuftBlock(BlockBehaviour.Properties.copy(Blocks.LIME_WOOL)));
public static final RegistryObject<TruffaloTuftBlock> TRUFFALO_TUFT_PINK = BLOCKS.register("pink_truffalo_tuft",
() -> new TruffaloTuftBlock(BlockBehaviour.Properties.copy(Blocks.PINK_WOOL)));
public static final RegistryObject<TruffaloTuftBlock> TRUFFALO_TUFT_GRAY = BLOCKS.register("gray_truffalo_tuft",
() -> new TruffaloTuftBlock(BlockBehaviour.Properties.copy(Blocks.GRAY_WOOL)));
public static final RegistryObject<TruffaloTuftBlock> TRUFFALO_TUFT_LIGHT_GRAY = BLOCKS.register("light_gray_truffalo_tuft",
() -> new TruffaloTuftBlock(BlockBehaviour.Properties.copy(Blocks.LIGHT_GRAY_WOOL)));
public static final RegistryObject<TruffaloTuftBlock> TRUFFALO_TUFT_CYAN = BLOCKS.register("cyan_truffalo_tuft",
() -> new TruffaloTuftBlock(BlockBehaviour.Properties.copy(Blocks.CYAN_WOOL)));
public static final RegistryObject<TruffaloTuftBlock> TRUFFALO_TUFT_PURPLE = BLOCKS.register("purple_truffalo_tuft",
() -> new TruffaloTuftBlock(BlockBehaviour.Properties.copy(Blocks.PURPLE_WOOL)));
public static final RegistryObject<TruffaloTuftBlock> TRUFFALO_TUFT_BLUE = BLOCKS.register("blue_truffalo_tuft",
() -> new TruffaloTuftBlock(BlockBehaviour.Properties.copy(Blocks.BLUE_WOOL)));
public static final RegistryObject<TruffaloTuftBlock> TRUFFALO_TUFT_BROWN = BLOCKS.register("brown_truffalo_tuft",
() -> new TruffaloTuftBlock(BlockBehaviour.Properties.copy(Blocks.BROWN_WOOL)));
public static final RegistryObject<TruffaloTuftBlock> TRUFFALO_TUFT_GREEN = BLOCKS.register("green_truffalo_tuft",
() -> new TruffaloTuftBlock(BlockBehaviour.Properties.copy(Blocks.GREEN_WOOL)));
public static final RegistryObject<TruffaloTuftBlock> TRUFFALO_TUFT_RED = BLOCKS.register("red_truffalo_tuft",
() -> new TruffaloTuftBlock(BlockBehaviour.Properties.copy(Blocks.RED_WOOL)));
public static final RegistryObject<TruffaloTuftBlock> TRUFFALO_TUFT_BLACK = BLOCKS.register("black_truffalo_tuft",
() -> new TruffaloTuftBlock(BlockBehaviour.Properties.copy(Blocks.BLACK_WOOL)));
public static final RegistryObject<DuctTapeBlock> DUCT_TAPE = BLOCKS.register("duct_tape",
() -> new DuctTapeBlock(BlockBehaviour.Properties.of()
.strength(0.2F)
@@ -213,6 +368,8 @@ public final class AntarchyForgeBlocks {
() -> new Block(nyxiteProperties()));
public static final RegistryObject<Block> NYXITE_BRICKS = BLOCKS.register("nyxite_bricks",
() -> new Block(nyxiteProperties()));
public static final RegistryObject<Block> MOSSY_NYXITE_BRICKS = BLOCKS.register("mossy_nyxite_bricks",
() -> new Block(nyxiteProperties()));
public static final RegistryObject<StairBlock> NYXITE_STAIRS = BLOCKS.register("nyxite_stairs",
() -> new StairBlock(NYXITE.get().defaultBlockState(), nyxiteProperties()));
public static final RegistryObject<SlabBlock> NYXITE_SLAB = BLOCKS.register("nyxite_slab",
@@ -228,13 +385,19 @@ public final class AntarchyForgeBlocks {
public static final RegistryObject<com.craisinlord.antarchy.content.block.PolishedNyxitePressurePlateBlock> POLISHED_NYXITE_PRESSURE_PLATE = BLOCKS.register("polished_nyxite_pressure_plate",
() -> new com.craisinlord.antarchy.content.block.PolishedNyxitePressurePlateBlock(BlockSetType.STONE, BlockBehaviour.Properties.copy(Blocks.STONE_PRESSURE_PLATE)));
public static final RegistryObject<ButtonBlock> POLISHED_NYXITE_BUTTON = BLOCKS.register("polished_nyxite_button",
() -> new ButtonBlock(BlockBehaviour.Properties.copy(Blocks.STONE_BUTTON), BlockSetType.STONE, 20, true));
() -> new ButtonBlock(BlockBehaviour.Properties.copy(Blocks.STONE_BUTTON), BlockSetType.STONE, 20, false));
public static final RegistryObject<StairBlock> NYXITE_BRICK_STAIRS = BLOCKS.register("nyxite_brick_stairs",
() -> new StairBlock(NYXITE_BRICKS.get().defaultBlockState(), nyxiteProperties()));
public static final RegistryObject<SlabBlock> NYXITE_BRICK_SLAB = BLOCKS.register("nyxite_brick_slab",
() -> new SlabBlock(nyxiteProperties()));
public static final RegistryObject<WallBlock> NYXITE_BRICK_WALL = BLOCKS.register("nyxite_brick_wall",
() -> new WallBlock(nyxiteProperties()));
public static final RegistryObject<StairBlock> MOSSY_NYXITE_BRICK_STAIRS = BLOCKS.register("mossy_nyxite_brick_stairs",
() -> new StairBlock(MOSSY_NYXITE_BRICKS.get().defaultBlockState(), nyxiteProperties()));
public static final RegistryObject<SlabBlock> MOSSY_NYXITE_BRICK_SLAB = BLOCKS.register("mossy_nyxite_brick_slab",
() -> new SlabBlock(nyxiteProperties()));
public static final RegistryObject<WallBlock> MOSSY_NYXITE_BRICK_WALL = BLOCKS.register("mossy_nyxite_brick_wall",
() -> new WallBlock(nyxiteProperties()));
public static final RegistryObject<RotatedPillarBlock> NYXITE_PILLAR = BLOCKS.register("nyxite_pillar",
() -> new RotatedPillarBlock(nyxiteProperties()));
public static final RegistryObject<Block> SHELLSTONE = BLOCKS.register("shellstone",
@@ -275,12 +438,12 @@ public final class AntarchyForgeBlocks {
() -> new WallBlock(AntarchyObjects.shellstoneProperties()));
public static final RegistryObject<RotatedPillarBlock> SHELLSTONE_PILLAR = BLOCKS.register("shellstone_pillar",
() -> new RotatedPillarBlock(AntarchyObjects.shellstoneProperties()));
public static final RegistryObject<com.craisinlord.antarchy.content.block.TriffidGooBlock> TRIFFID_GOO_BLOCK = BLOCKS.register("flytrap_goo_block",
() -> new com.craisinlord.antarchy.content.block.TriffidGooBlock(BlockBehaviour.Properties.copy(Blocks.SLIME_BLOCK).noOcclusion().isViewBlocking((s, l, p) -> false).isSuffocating((s, l, p) -> false)));
public static final RegistryObject<com.craisinlord.antarchy.content.block.FlytrapGooBlock> FLYTRAP_GOO_BLOCK = BLOCKS.register("flytrap_goo_block",
() -> new com.craisinlord.antarchy.content.block.FlytrapGooBlock(BlockBehaviour.Properties.copy(Blocks.SLIME_BLOCK).noOcclusion().isViewBlocking((s, l, p) -> false).isSuffocating((s, l, p) -> false)));
public static final RegistryObject<com.craisinlord.antarchy.content.block.CloudBlock> CLOUD_BLOCK = BLOCKS.register("cloud_block",
() -> new com.craisinlord.antarchy.content.block.CloudBlock(
AntarchyForgeItems::cloudBucketItem,
BlockBehaviour.Properties.copy(Blocks.POWDER_SNOW).noLootTable().noOcclusion()
BlockBehaviour.Properties.copy(Blocks.POWDER_SNOW).noLootTable().noOcclusion().emissiveRendering((state, level, pos) -> true)
));
public static final RegistryObject<AntDimensionPortalBlock> ELYTHIA_PORTAL = BLOCKS.register("elythia_portal",
() -> new AntDimensionPortalBlock(PermanentPortalType.ELYTHIA, portalProperties()));
@@ -301,6 +464,40 @@ public final class AntarchyForgeBlocks {
));
public static final RegistryObject<Block> MYRMITE = BLOCKS.register("myrmite",
() -> new Block(nyxiteProperties()));
public static final RegistryObject<StairBlock> MYRMITE_STAIRS = BLOCKS.register("myrmite_stairs",
() -> new StairBlock(MYRMITE.get().defaultBlockState(), nyxiteProperties()));
public static final RegistryObject<SlabBlock> MYRMITE_SLAB = BLOCKS.register("myrmite_slab",
() -> new SlabBlock(nyxiteProperties()));
public static final RegistryObject<WallBlock> MYRMITE_WALL = BLOCKS.register("myrmite_wall",
() -> new WallBlock(nyxiteProperties()));
public static final RegistryObject<Block> POLISHED_MYRMITE = BLOCKS.register("polished_myrmite",
() -> new Block(nyxiteProperties()));
public static final RegistryObject<StairBlock> POLISHED_MYRMITE_STAIRS = BLOCKS.register("polished_myrmite_stairs",
() -> new StairBlock(POLISHED_MYRMITE.get().defaultBlockState(), nyxiteProperties()));
public static final RegistryObject<SlabBlock> POLISHED_MYRMITE_SLAB = BLOCKS.register("polished_myrmite_slab",
() -> new SlabBlock(nyxiteProperties()));
public static final RegistryObject<WallBlock> POLISHED_MYRMITE_WALL = BLOCKS.register("polished_myrmite_wall",
() -> new WallBlock(nyxiteProperties()));
public static final RegistryObject<Block> CHISELED_MYRMITE = BLOCKS.register("chiseled_myrmite",
() -> new Block(nyxiteProperties()));
public static final RegistryObject<Block> MYRMITE_BRICKS = BLOCKS.register("myrmite_bricks",
() -> new Block(nyxiteProperties()));
public static final RegistryObject<StairBlock> MYRMITE_BRICK_STAIRS = BLOCKS.register("myrmite_brick_stairs",
() -> new StairBlock(MYRMITE_BRICKS.get().defaultBlockState(), nyxiteProperties()));
public static final RegistryObject<SlabBlock> MYRMITE_BRICK_SLAB = BLOCKS.register("myrmite_brick_slab",
() -> new SlabBlock(nyxiteProperties()));
public static final RegistryObject<WallBlock> MYRMITE_BRICK_WALL = BLOCKS.register("myrmite_brick_wall",
() -> new WallBlock(nyxiteProperties()));
public static final RegistryObject<Block> MOSSY_MYRMITE_BRICKS = BLOCKS.register("mossy_myrmite_bricks",
() -> new Block(nyxiteProperties()));
public static final RegistryObject<StairBlock> MOSSY_MYRMITE_BRICK_STAIRS = BLOCKS.register("mossy_myrmite_brick_stairs",
() -> new StairBlock(MOSSY_MYRMITE_BRICKS.get().defaultBlockState(), nyxiteProperties()));
public static final RegistryObject<SlabBlock> MOSSY_MYRMITE_BRICK_SLAB = BLOCKS.register("mossy_myrmite_brick_slab",
() -> new SlabBlock(nyxiteProperties()));
public static final RegistryObject<WallBlock> MOSSY_MYRMITE_BRICK_WALL = BLOCKS.register("mossy_myrmite_brick_wall",
() -> new WallBlock(nyxiteProperties()));
public static final RegistryObject<RotatedPillarBlock> MYRMITE_PILLAR = BLOCKS.register("myrmite_pillar",
() -> new RotatedPillarBlock(nyxiteProperties()));
public static final RegistryObject<Block> BIOMITE = BLOCKS.register("biomite",
() -> new Block(BlockBehaviour.Properties.copy(Blocks.NETHERRACK)));
public static final RegistryObject<Block> BIOMITE_TURF = BLOCKS.register("biomite_turf",
@@ -319,6 +516,8 @@ public final class AntarchyForgeBlocks {
() -> new Block(broodstoneProperties()));
public static final RegistryObject<Block> BROODSTONE_BRICKS = BLOCKS.register("broodstone_bricks",
() -> new Block(broodstoneProperties()));
public static final RegistryObject<Block> MOSSY_BROODSTONE_BRICKS = BLOCKS.register("mossy_broodstone_bricks",
() -> new Block(broodstoneProperties()));
public static final RegistryObject<StairBlock> BROODSTONE_STAIRS = BLOCKS.register("broodstone_stairs",
() -> new StairBlock(BROODSTONE.get().defaultBlockState(), broodstoneProperties()));
public static final RegistryObject<SlabBlock> BROODSTONE_SLAB = BLOCKS.register("broodstone_slab",
@@ -337,12 +536,18 @@ public final class AntarchyForgeBlocks {
() -> new SlabBlock(broodstoneProperties()));
public static final RegistryObject<WallBlock> BROODSTONE_BRICK_WALL = BLOCKS.register("broodstone_brick_wall",
() -> new WallBlock(broodstoneProperties()));
public static final RegistryObject<StairBlock> MOSSY_BROODSTONE_BRICK_STAIRS = BLOCKS.register("mossy_broodstone_brick_stairs",
() -> new StairBlock(MOSSY_BROODSTONE_BRICKS.get().defaultBlockState(), broodstoneProperties()));
public static final RegistryObject<SlabBlock> MOSSY_BROODSTONE_BRICK_SLAB = BLOCKS.register("mossy_broodstone_brick_slab",
() -> new SlabBlock(broodstoneProperties()));
public static final RegistryObject<WallBlock> MOSSY_BROODSTONE_BRICK_WALL = BLOCKS.register("mossy_broodstone_brick_wall",
() -> new WallBlock(broodstoneProperties()));
public static final RegistryObject<RotatedPillarBlock> BROODSTONE_PILLAR = BLOCKS.register("broodstone_pillar",
() -> new RotatedPillarBlock(broodstoneProperties()));
public static final RegistryObject<Block> BROODSTONE_URANIUM_ORE = BLOCKS.register("broodstone_uranium_ore",
() -> createOre(Blocks.DEEPSLATE_EMERALD_ORE, 4, 8, MapColor.COLOR_YELLOW));
public static final RegistryObject<Block> BROODSTONE_TITANIUM_ORE = BLOCKS.register("broodstone_titanium_ore",
() -> createOre(Blocks.DEEPSLATE_DIAMOND_ORE, 4, 8, MapColor.COLOR_LIGHT_BLUE));
public static final RegistryObject<RotatedPillarBlock> BROODSTONE_PILLAR = BLOCKS.register("broodstone_pillar",
() -> new RotatedPillarBlock(broodstoneProperties()));
public static final RegistryObject<RotatedPillarBlock> CHITIN_BLOCK = BLOCKS.register("chitin_block",
() -> new RotatedPillarBlock(BlockBehaviour.Properties.copy(Blocks.BONE_BLOCK).requiresCorrectToolForDrops()));
public static final RegistryObject<UmbralMossBlock> UMBRAL_MOSS_BLOCK = BLOCKS.register("umbral_moss_block",
@@ -385,16 +590,20 @@ public final class AntarchyForgeBlocks {
.noOcclusion()
.noCollission()
.replaceable()));
public static final RegistryObject<CreepingHorrorEggBlock> CREEPING_HORROR_EGG = BLOCKS.register("crawling_blight_egg",
() -> new CreepingHorrorEggBlock(BlockBehaviour.Properties.copy(Blocks.TURTLE_EGG)));
public static final RegistryObject<JumpyBugEggBlock> JUMPY_BUG_EGG = BLOCKS.register("springbug_egg",
() -> new JumpyBugEggBlock(BlockBehaviour.Properties.copy(Blocks.TURTLE_EGG)));
public static final RegistryObject<CrawlingBlightEggBlock> CRAWLING_BLIGHT_EGG = BLOCKS.register("crawling_blight_egg",
() -> new CrawlingBlightEggBlock(BlockBehaviour.Properties.copy(Blocks.TURTLE_EGG)));
public static final RegistryObject<com.craisinlord.antarchy.content.block.PrinceEggBlock> PRINCE_EGG = BLOCKS.register("prince_egg",
() -> new com.craisinlord.antarchy.content.block.PrinceEggBlock(BlockBehaviour.Properties.copy(Blocks.DRAGON_EGG).randomTicks().noOcclusion()));
public static final RegistryObject<com.craisinlord.antarchy.content.block.PrincessEggBlock> PRINCESS_EGG = BLOCKS.register("princess_egg",
() -> new com.craisinlord.antarchy.content.block.PrincessEggBlock(BlockBehaviour.Properties.copy(Blocks.DRAGON_EGG).randomTicks().noOcclusion()));
public static final RegistryObject<SpringbugEggBlock> SPRINGBUG_EGG = BLOCKS.register("springbug_egg",
() -> new SpringbugEggBlock(BlockBehaviour.Properties.copy(Blocks.TURTLE_EGG)));
public static final RegistryObject<SpitBugEggBlock> SPIT_BUG_EGG = BLOCKS.register("spit_bug_egg",
() -> new SpitBugEggBlock(BlockBehaviour.Properties.copy(Blocks.TURTLE_EGG)));
public static final RegistryObject<JerryEggBlock> JERRY_EGG = BLOCKS.register("jerry_egg",
() -> new JerryEggBlock(BlockBehaviour.Properties.copy(Blocks.TURTLE_EGG).randomTicks()));
public static final RegistryObject<LurkingTerrorEggBlock> LURKING_TERROR_EGG = BLOCKS.register("skulking_fright_egg",
() -> new LurkingTerrorEggBlock(BlockBehaviour.Properties.copy(Blocks.TURTLE_EGG)));
public static final RegistryObject<SkulkingFrightEggBlock> SKULKING_FRIGHT_EGG = BLOCKS.register("skulking_fright_egg",
() -> new SkulkingFrightEggBlock(BlockBehaviour.Properties.copy(Blocks.TURTLE_EGG)));
static {
BiowartBlock.bindTendrils(BIOWART_TENDRILS);
@@ -438,6 +647,11 @@ public final class AntarchyForgeBlocks {
() -> new AntNestBlock(AntarchyForgeEntites.RAINBOW_ANT, AntarchyForgeItems::antNestBlockEntityType, BlockBehaviour.Properties.copy(Blocks.DIRT).noLootTable()));
public static final RegistryObject<AntNestBlock> TERMITE_NEST = BLOCKS.register("termite_nest",
() -> new AntNestBlock(AntarchyForgeEntites.TERMITE, AntarchyForgeItems::antNestBlockEntityType, BlockBehaviour.Properties.copy(Blocks.DIRT).noLootTable()));
public static final RegistryObject<com.craisinlord.antarchy.content.block.AntTrapBlock> ANT_TRAP = BLOCKS.register("ant_trap",
() -> new com.craisinlord.antarchy.content.block.AntTrapBlock(
() -> java.util.List.of(AntarchyForgeEntites.RED_ANT.get(), AntarchyForgeEntites.BROWN_ANT.get(), AntarchyForgeEntites.RAINBOW_ANT.get(), AntarchyForgeEntites.TERMITE.get()),
AntarchyForgeItems::antNestBlockEntityType, BlockBehaviour.Properties.copy(Blocks.OAK_PRESSURE_PLATE).noOcclusion()));
public static final RegistryObject<Block> URANIUM_ORE = BLOCKS.register("uranium_ore",
() -> createOre(Blocks.EMERALD_ORE, 4, 8, MapColor.COLOR_YELLOW));
public static final RegistryObject<Block> DEEPSLATE_URANIUM_ORE = BLOCKS.register("deepslate_uranium_ore",
@@ -452,6 +666,9 @@ public final class AntarchyForgeBlocks {
() -> new BluestoneWireBlock(BlockBehaviour.Properties.copy(Blocks.REDSTONE_WIRE).mapColor(MapColor.COLOR_BLUE).noCollission().instabreak()));
public static final RegistryObject<BluestoneBlock> BLUESTONE_BLOCK = BLOCKS.register("bluestone_block",
() -> new BluestoneBlock(BlockBehaviour.Properties.copy(Blocks.REDSTONE_BLOCK).mapColor(MapColor.COLOR_BLUE)));
public static final RegistryObject<VortexLensBlock> VORTEX_LENS = BLOCKS.register("vortex_lens",
() -> new VortexLensBlock(AntarchyForgeBlocks::vortexLensBlockEntityType,
BlockBehaviour.Properties.copy(Blocks.COPPER_BLOCK).mapColor(MapColor.COLOR_GREEN).strength(3.0F, 6.0F).requiresCorrectToolForDrops().noOcclusion()));
public static final RegistryObject<BluestoneRepeaterBlock> BLUESTONE_REPEATER = BLOCKS.register("bluestone_repeater",
() -> new BluestoneRepeaterBlock(BlockBehaviour.Properties.copy(Blocks.REPEATER).mapColor(MapColor.COLOR_BLUE).noCollission()));
public static final RegistryObject<BluestoneComparatorBlock> BLUESTONE_COMPARATOR = BLOCKS.register("bluestone_comparator",
@@ -460,6 +677,8 @@ public final class AntarchyForgeBlocks {
() -> new BluestoneTorchBlock(BlockBehaviour.Properties.copy(Blocks.REDSTONE_TORCH).mapColor(MapColor.COLOR_BLUE).lightLevel(state -> state.getValue(BluestoneTorchBlock.LIT) ? 7 : 0).noCollission().instabreak()));
public static final RegistryObject<BluestoneLampBlock> BLUESTONE_LAMP = BLOCKS.register("bluestone_lamp",
() -> new BluestoneLampBlock(BlockBehaviour.Properties.copy(Blocks.REDSTONE_LAMP).mapColor(MapColor.COLOR_BLUE)));
public static final RegistryObject<Block> TIGERS_EYE_BLOCK = BLOCKS.register("tigers_eye_block",
() -> createStorageBlock(Blocks.EMERALD_BLOCK, MapColor.COLOR_ORANGE));
public static final RegistryObject<Block> URANIUM_BLOCK = BLOCKS.register("uranium_block",
() -> createStorageBlock(Blocks.EMERALD_BLOCK, MapColor.COLOR_YELLOW));
public static final RegistryObject<Block> TITANIUM_BLOCK = BLOCKS.register("titanium_block",
@@ -481,13 +700,13 @@ public final class AntarchyForgeBlocks {
public static final RegistryObject<StairBlock> CUT_TITANIUM_STAIRS = BLOCKS.register("cut_titanium_stairs",
() -> new StairBlock(CUT_TITANIUM.get().defaultBlockState(), BlockBehaviour.Properties.copy(Blocks.CUT_COPPER_STAIRS).mapColor(MapColor.COLOR_LIGHT_BLUE)));
public static final RegistryObject<Block> CHISELED_URANIUM = BLOCKS.register("chiseled_uranium",
() -> createHorizontalFacingStorageBlock(Blocks.CHISELED_STONE_BRICKS, MapColor.COLOR_YELLOW));
() -> createHorizontalFacingStorageBlock(Blocks.COPPER_BLOCK, MapColor.COLOR_YELLOW));
public static final RegistryObject<Block> CHISELED_TITANIUM = BLOCKS.register("chiseled_titanium",
() -> createHorizontalFacingStorageBlock(Blocks.CHISELED_STONE_BRICKS, MapColor.COLOR_LIGHT_BLUE));
() -> createHorizontalFacingStorageBlock(Blocks.COPPER_BLOCK, MapColor.COLOR_LIGHT_BLUE));
public static final RegistryObject<SignalSavingBulbBlock> URANIUM_BULB = BLOCKS.register("uranium_bulb",
() -> new SignalSavingBulbBlock(BlockBehaviour.Properties.copy(Blocks.REDSTONE_LAMP).mapColor(MapColor.COLOR_YELLOW)));
() -> new SignalSavingBulbBlock(BlockBehaviour.Properties.copy(Blocks.COPPER_BLOCK).isRedstoneConductor((state, level, pos) -> false).mapColor(MapColor.COLOR_YELLOW)));
public static final RegistryObject<SignalSavingBulbBlock> TITANIUM_BULB = BLOCKS.register("titanium_bulb",
() -> new SignalSavingBulbBlock(BlockBehaviour.Properties.copy(Blocks.REDSTONE_LAMP).mapColor(MapColor.COLOR_LIGHT_BLUE)));
() -> new SignalSavingBulbBlock(BlockBehaviour.Properties.copy(Blocks.COPPER_BLOCK).isRedstoneConductor((state, level, pos) -> false).mapColor(MapColor.COLOR_LIGHT_BLUE)));
public static final RegistryObject<DoorBlock> URANIUM_DOOR = BLOCKS.register("uranium_door",
() -> new DoorBlock(BlockBehaviour.Properties.copy(Blocks.IRON_DOOR).mapColor(MapColor.COLOR_YELLOW), BlockSetType.IRON));
public static final RegistryObject<DoorBlock> TITANIUM_DOOR = BLOCKS.register("titanium_door",
@@ -501,19 +720,19 @@ public final class AntarchyForgeBlocks {
public static final RegistryObject<IronBarsBlock> TITANIUM_BARS = BLOCKS.register("titanium_bars",
() -> new IronBarsBlock(BlockBehaviour.Properties.copy(Blocks.IRON_BARS).mapColor(MapColor.COLOR_LIGHT_BLUE)));
public static final RegistryObject<RotatedPillarBlock> ANTIMETAL = BLOCKS.register("antimetal",
() -> new RotatedPillarBlock(BlockBehaviour.Properties.copy(Blocks.BASALT)));
() -> new RotatedPillarBlock(BlockBehaviour.Properties.copy(Blocks.BASALT).sound(antimetalSoundType())));
public static final RegistryObject<RotatedPillarBlock> POLISHED_ANTIMETAL = BLOCKS.register("polished_antimetal",
() -> new RotatedPillarBlock(BlockBehaviour.Properties.copy(Blocks.POLISHED_BASALT)));
() -> new RotatedPillarBlock(BlockBehaviour.Properties.copy(Blocks.POLISHED_BASALT).sound(antimetalSoundType())));
public static final RegistryObject<StairBlock> ANTIMETAL_STAIRS = BLOCKS.register("antimetal_stairs",
() -> new StairBlock(ANTIMETAL.get().defaultBlockState(), BlockBehaviour.Properties.copy(Blocks.BASALT)));
() -> new StairBlock(ANTIMETAL.get().defaultBlockState(), BlockBehaviour.Properties.copy(Blocks.BASALT).sound(antimetalSoundType())));
public static final RegistryObject<SlabBlock> ANTIMETAL_SLAB = BLOCKS.register("antimetal_slab",
() -> new SlabBlock(BlockBehaviour.Properties.copy(Blocks.BASALT)));
() -> new SlabBlock(BlockBehaviour.Properties.copy(Blocks.BASALT).sound(antimetalSoundType())));
public static final RegistryObject<StairBlock> POLISHED_ANTIMETAL_STAIRS = BLOCKS.register("polished_antimetal_stairs",
() -> new StairBlock(POLISHED_ANTIMETAL.get().defaultBlockState(), BlockBehaviour.Properties.copy(Blocks.POLISHED_BASALT)));
() -> new StairBlock(POLISHED_ANTIMETAL.get().defaultBlockState(), BlockBehaviour.Properties.copy(Blocks.POLISHED_BASALT).sound(antimetalSoundType())));
public static final RegistryObject<SlabBlock> POLISHED_ANTIMETAL_SLAB = BLOCKS.register("polished_antimetal_slab",
() -> new SlabBlock(BlockBehaviour.Properties.copy(Blocks.POLISHED_BASALT)));
() -> new SlabBlock(BlockBehaviour.Properties.copy(Blocks.POLISHED_BASALT).sound(antimetalSoundType())));
public static final RegistryObject<com.craisinlord.antarchy.content.block.AntimetalScaffoldingBlock> ANTIMETAL_SCAFFOLDING = BLOCKS.register("antimetal_scaffolding",
() -> new com.craisinlord.antarchy.content.block.AntimetalScaffoldingBlock(BlockBehaviour.Properties.copy(Blocks.SCAFFOLDING)));
() -> new com.craisinlord.antarchy.content.block.AntimetalScaffoldingBlock(BlockBehaviour.Properties.copy(Blocks.SCAFFOLDING).sound(antimetalScaffoldingSoundType())));
public static final RegistryObject<com.craisinlord.antarchy.content.block.AntimetalRailBlock> ANTIMETAL_RAIL = BLOCKS.register("antimetal_rail",
() -> new com.craisinlord.antarchy.content.block.AntimetalRailBlock(BlockBehaviour.Properties.copy(Blocks.RAIL)));
public static final RegistryObject<UpperBlock> UPPER = BLOCKS.register("upper",
@@ -567,10 +786,22 @@ public final class AntarchyForgeBlocks {
() -> new AntigravelBlock(BlockBehaviour.Properties.copy(Blocks.GRAVEL)));
public static final RegistryObject<Block> LOAM = BLOCKS.register("loam",
() -> new Block(BlockBehaviour.Properties.copy(Blocks.MUD)));
public static final RegistryObject<Block> PACKED_LOAM = BLOCKS.register("packed_loam",
() -> new Block(BlockBehaviour.Properties.copy(Blocks.PACKED_MUD)));
public static final RegistryObject<Block> LOAM_BRICKS = BLOCKS.register("loam_bricks",
() -> new Block(BlockBehaviour.Properties.copy(Blocks.MUD_BRICKS)));
public static final RegistryObject<StairBlock> LOAM_BRICK_STAIRS = BLOCKS.register("loam_brick_stairs",
() -> new StairBlock(LOAM_BRICKS.get().defaultBlockState(), BlockBehaviour.Properties.copy(Blocks.MUD_BRICK_STAIRS)));
public static final RegistryObject<SlabBlock> LOAM_BRICK_SLAB = BLOCKS.register("loam_brick_slab",
() -> new SlabBlock(BlockBehaviour.Properties.copy(Blocks.MUD_BRICK_SLAB)));
public static final RegistryObject<WallBlock> LOAM_BRICK_WALL = BLOCKS.register("loam_brick_wall",
() -> new WallBlock(BlockBehaviour.Properties.copy(Blocks.MUD_BRICK_WALL)));
public static final RegistryObject<Block> CHISELED_LOAM_BRICKS = BLOCKS.register("chiseled_loam_bricks",
() -> new Block(BlockBehaviour.Properties.copy(Blocks.MUD_BRICKS)));
public static final RegistryObject<MucusBlock> MUCUS = BLOCKS.register("mucus",
() -> new MucusBlock(BlockBehaviour.Properties.copy(Blocks.GLOW_LICHEN).friction(0.98F).lightLevel(state -> 0).sound(net.minecraft.world.level.block.SoundType.SLIME_BLOCK)));
public static final RegistryObject<Block> DREAM_SANDSTONE = BLOCKS.register("dream_sandstone",
() -> new Block(BlockBehaviour.Properties.copy(Blocks.SANDSTONE)));
() -> new MucusBlock(BlockBehaviour.Properties.copy(Blocks.GLOW_LICHEN).friction(0.995F).lightLevel(state -> 0).sound(SoundType.SLIME_BLOCK)));
public static final RegistryObject<DreamSandstoneBlock> DREAM_SANDSTONE = BLOCKS.register("dream_sandstone",
() -> new DreamSandstoneBlock(BlockBehaviour.Properties.copy(Blocks.SANDSTONE)));
public static final RegistryObject<Block> CHISELED_DREAM_SANDSTONE = BLOCKS.register("chiseled_dream_sandstone",
() -> new Block(BlockBehaviour.Properties.copy(Blocks.CHISELED_SANDSTONE)));
public static final RegistryObject<Block> CUT_DREAM_SANDSTONE = BLOCKS.register("cut_dream_sandstone",
@@ -589,6 +820,58 @@ public final class AntarchyForgeBlocks {
() -> new SlabBlock(BlockBehaviour.Properties.copy(Blocks.SMOOTH_SANDSTONE_SLAB)));
public static final RegistryObject<SlabBlock> CUT_DREAM_SANDSTONE_SLAB = BLOCKS.register("cut_dream_sandstone_slab",
() -> new SlabBlock(BlockBehaviour.Properties.copy(Blocks.CUT_SANDSTONE_SLAB)));
public static final RegistryObject<Block> TYPHONITE = BLOCKS.register("typhonite",
() -> new Block(BlockBehaviour.Properties.copy(Blocks.BLACKSTONE)));
public static final RegistryObject<DirectionalNyxiumBlock> NADIR_NYXIUM = BLOCKS.register("nadir_nyxium",
() -> new DirectionalNyxiumBlock(nyxiteProperties(), DirectionalNyxiumBlock.Type.NADIR));
public static final RegistryObject<DirectionalNyxiumBlock> VERDANT_NYXIUM = BLOCKS.register("verdant_nyxium",
() -> new DirectionalNyxiumBlock(nyxiteProperties(), DirectionalNyxiumBlock.Type.VERDANT));
public static final RegistryObject<RotatedPillarBlock> TYPHONITE_PILLAR = BLOCKS.register("typhonite_pillar",
() -> new RotatedPillarBlock(BlockBehaviour.Properties.copy(Blocks.BLACKSTONE)));
public static final RegistryObject<Block> TYPHONITE_BRICKS = BLOCKS.register("typhonite_bricks",
() -> new Block(BlockBehaviour.Properties.copy(Blocks.BLACKSTONE)));
public static final RegistryObject<Block> CHISELED_TYPHONITE = BLOCKS.register("chiseled_typhonite",
() -> new Block(BlockBehaviour.Properties.copy(Blocks.BLACKSTONE)));
public static final RegistryObject<Block> POLISHED_TYPHONITE = BLOCKS.register("polished_typhonite",
() -> new Block(BlockBehaviour.Properties.copy(Blocks.BLACKSTONE)));
public static final RegistryObject<Block> VEINED_TYPHONITE = BLOCKS.register("veined_typhonite",
() -> new Block(BlockBehaviour.Properties.copy(Blocks.BLACKSTONE).lightLevel(state -> 8)));
public static final RegistryObject<TyphoniteSpikeBlock> TYPHONITE_SPIKE = BLOCKS.register("typhonite_spike",
() -> new TyphoniteSpikeBlock(BlockBehaviour.Properties.copy(Blocks.POINTED_DRIPSTONE)));
public static final RegistryObject<StairBlock> TYPHONITE_STAIRS = BLOCKS.register("typhonite_stairs",
() -> new StairBlock(TYPHONITE.get().defaultBlockState(), BlockBehaviour.Properties.copy(Blocks.BLACKSTONE_STAIRS)));
public static final RegistryObject<SlabBlock> TYPHONITE_SLAB = BLOCKS.register("typhonite_slab",
() -> new SlabBlock(BlockBehaviour.Properties.copy(Blocks.BLACKSTONE_SLAB)));
public static final RegistryObject<WallBlock> TYPHONITE_WALL = BLOCKS.register("typhonite_wall",
() -> new WallBlock(BlockBehaviour.Properties.copy(Blocks.BLACKSTONE_WALL)));
public static final RegistryObject<StairBlock> TYPHONITE_BRICK_STAIRS = BLOCKS.register("typhonite_brick_stairs",
() -> new StairBlock(TYPHONITE_BRICKS.get().defaultBlockState(), BlockBehaviour.Properties.copy(Blocks.BLACKSTONE_STAIRS)));
public static final RegistryObject<SlabBlock> TYPHONITE_BRICK_SLAB = BLOCKS.register("typhonite_brick_slab",
() -> new SlabBlock(BlockBehaviour.Properties.copy(Blocks.BLACKSTONE_SLAB)));
public static final RegistryObject<WallBlock> TYPHONITE_BRICK_WALL = BLOCKS.register("typhonite_brick_wall",
() -> new WallBlock(BlockBehaviour.Properties.copy(Blocks.BLACKSTONE_WALL)));
public static final RegistryObject<StairBlock> POLISHED_TYPHONITE_STAIRS = BLOCKS.register("polished_typhonite_stairs",
() -> new StairBlock(POLISHED_TYPHONITE.get().defaultBlockState(), BlockBehaviour.Properties.copy(Blocks.BLACKSTONE_STAIRS)));
public static final RegistryObject<SlabBlock> POLISHED_TYPHONITE_SLAB = BLOCKS.register("polished_typhonite_slab",
() -> new SlabBlock(BlockBehaviour.Properties.copy(Blocks.BLACKSTONE_SLAB)));
public static final RegistryObject<WallBlock> POLISHED_TYPHONITE_WALL = BLOCKS.register("polished_typhonite_wall",
() -> new WallBlock(BlockBehaviour.Properties.copy(Blocks.BLACKSTONE_WALL)));
public static final RegistryObject<SpiralingVinesBlock> SPIRALING_VINES = BLOCKS.register("spiraling_vines",
() -> new SpiralingVinesBlock(BlockBehaviour.Properties.copy(Blocks.TWISTING_VINES)));
public static final RegistryObject<GorevineBlock> GOREVINE = BLOCKS.register("gorevine",
() -> new GorevineBlock(BlockBehaviour.Properties.copy(Blocks.WEEPING_VINES).lightLevel(state -> 4)));
public static final RegistryObject<WhirlflowerBlock> WHIRLFLOWER = BLOCKS.register("whirlflower",
() -> new WhirlflowerBlock(BlockBehaviour.Properties.copy(Blocks.ALLIUM)));
public static final RegistryObject<NadirFernBlock> NADIR_FERN = BLOCKS.register("nadir_fern",
() -> new NadirFernBlock(BlockBehaviour.Properties.copy(Blocks.FERN)));
public static final RegistryObject<LargeNadirFernBlock> LARGE_NADIR_FERN = BLOCKS.register("large_nadir_fern",
() -> new LargeNadirFernBlock(BlockBehaviour.Properties.copy(Blocks.LARGE_FERN).noCollission()));
public static final RegistryObject<DirectionalThoraxisFlowerBlock> DUSKBELL = BLOCKS.register("duskbell",
() -> new DirectionalThoraxisFlowerBlock(BlockBehaviour.Properties.copy(Blocks.ALLIUM).lightLevel(state -> 4)));
public static final RegistryObject<DirectionalThoraxisFlowerBlock> NADIR_ROOTS = BLOCKS.register("nadir_roots",
() -> new DirectionalThoraxisFlowerBlock(BlockBehaviour.Properties.copy(Blocks.CRIMSON_ROOTS)));
public static final RegistryObject<DirectionalThoraxisFlowerBlock> VERDANT_ROOTS = BLOCKS.register("verdant_roots",
() -> new DirectionalThoraxisFlowerBlock(BlockBehaviour.Properties.copy(Blocks.WARPED_ROOTS)));
public static final RegistryObject<Block> DEAD_STAR_CORAL_BLOCK = BLOCKS.register("dead_star_coral_block",
() -> new Block(BlockBehaviour.Properties.copy(Blocks.TUBE_CORAL_BLOCK)));
public static final RegistryObject<net.minecraft.world.level.block.BaseCoralPlantBlock> DEAD_STAR_CORAL = BLOCKS.register("dead_star_coral",
@@ -606,24 +889,20 @@ public final class AntarchyForgeBlocks {
public static final RegistryObject<com.craisinlord.antarchy.content.block.StarCoralWallFanBlock> STAR_CORAL_WALL_FAN = BLOCKS.register("star_coral_wall_fan",
() -> new com.craisinlord.antarchy.content.block.StarCoralWallFanBlock(DEAD_STAR_CORAL_WALL_FAN.get(), BlockBehaviour.Properties.copy(Blocks.TUBE_CORAL_WALL_FAN).lightLevel(state -> 8)));
public static final RegistryObject<UndertrialSpawnerBlock> UNDERTRIAL_SPAWNER = BLOCKS.register("undertrial_spawner",
() -> new UndertrialSpawnerBlock(AntarchyForgeBlocks::undertrialSpawnerBlockEntityType,
BlockBehaviour.Properties.copy(Blocks.OBSIDIAN).noOcclusion()));
public static final RegistryObject<UnderVaultBlock> UNDERVAULT = BLOCKS.register("undervault",
() -> new UnderVaultBlock(AntarchyForgeBlocks::underVaultBlockEntityType,
BlockBehaviour.Properties.copy(Blocks.OBSIDIAN).noOcclusion()));
public static final RegistryObject<QueenTrailSpawnMarkerBlock> QUEEN_TRAIL_SPAWN_MARKER = BLOCKS.register("queen_trail_spawn_marker",
() -> new QueenTrailSpawnMarkerBlock(AntarchyForgeBlocks::queenTrailSpawnMarkerBlockEntityType,
BlockBehaviour.Properties.of().noCollission().noOcclusion().noLootTable().strength(-1.0F)));
// Block entity types
public static final RegistryObject<BlockEntityType<com.craisinlord.antarchy.content.block.entity.RoyalEggBlockEntity>> ROYAL_EGG_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("royal_egg",
() -> BlockEntityType.Builder.of(
com.craisinlord.antarchy.content.block.entity.RoyalEggBlockEntity::new,
PRINCE_EGG.get(),
PRINCESS_EGG.get()
).build(null));
public static final RegistryObject<BlockEntityType<AntNestBlockEntity>> ANT_NEST_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("ant_nest",
() -> BlockEntityType.Builder.of(
AntNestBlockEntity::new,
RED_ANT_NEST.get(),
BROWN_ANT_NEST.get(),
RAINBOW_ANT_NEST.get(),
TERMITE_NEST.get()
TERMITE_NEST.get(),
ANT_TRAP.get()
).build(null));
public static final RegistryObject<BlockEntityType<DreamCampfireBlockEntity>> DREAM_CAMPFIRE_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("dream_campfire",
() -> BlockEntityType.Builder.of(
@@ -650,9 +929,9 @@ public final class AntarchyForgeBlocks {
SeashellBlockEntity::new,
SEASHELL.get()
).build(null));
public static final RegistryObject<BlockEntityType<com.craisinlord.antarchy.content.block.entity.LucidAnchorBlockEntity>> LUCID_ANCHOR_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("lucid_anchor",
public static final RegistryObject<BlockEntityType<LucidAnchorBlockEntity>> LUCID_ANCHOR_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("lucid_anchor",
() -> BlockEntityType.Builder.of(
com.craisinlord.antarchy.content.block.entity.LucidAnchorBlockEntity::new,
LucidAnchorBlockEntity::new,
LUCID_ANCHOR.get()
).build(null));
public static final RegistryObject<BlockEntityType<CritterCageBlockEntity>> CRITTER_CAGE_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("critter_cage_block",
@@ -670,15 +949,37 @@ public final class AntarchyForgeBlocks {
(pos, state) -> new UpperBlockEntity(pos, state, AntarchyForgeBlocks::upperBlockEntityType),
UPPER.get()
).build(null));
public static final RegistryObject<BlockEntityType<UndertrialSpawnerBlockEntity>> UNDERTRIAL_SPAWNER_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("undertrial_spawner",
() -> BlockEntityType.Builder.of((pos, state) -> new UndertrialSpawnerBlockEntity(pos, state, AntarchyForgeBlocks::undertrialSpawnerBlockEntityType),
UNDERTRIAL_SPAWNER.get()).build(null));
public static final RegistryObject<BlockEntityType<UnderVaultBlockEntity>> UNDERVAULT_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("undervault",
() -> BlockEntityType.Builder.of((pos, state) -> new UnderVaultBlockEntity(pos, state, AntarchyForgeBlocks::underVaultBlockEntityType),
UNDERVAULT.get()).build(null));
public static final RegistryObject<BlockEntityType<VortexLensBlockEntity>> VORTEX_LENS_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("vortex_lens",
() -> BlockEntityType.Builder.of(
(pos, state) -> new VortexLensBlockEntity(pos, state, AntarchyForgeBlocks::vortexLensBlockEntityType),
VORTEX_LENS.get()
).build(null));
public static final RegistryObject<BlockEntityType<PortalGunPortalMasterBlockEntity>> PORTAL_GUN_PORTAL_MASTER_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("portal_gun_portal_master",
() -> BlockEntityType.Builder.of(
(pos, state) -> new PortalGunPortalMasterBlockEntity(pos, state, AntarchyForgeBlocks::portalGunPortalMasterBlockEntityType),
PORTAL_GUN_PORTAL_MASTER.get()
).build(null));
public static final RegistryObject<BlockEntityType<PortalGunPortalBaseBlockEntity>> PORTAL_GUN_PORTAL_BASE_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("portal_gun_portal_base",
() -> BlockEntityType.Builder.of(
(pos, state) -> new PortalGunPortalBaseBlockEntity(pos, state, AntarchyForgeBlocks::portalGunPortalBaseBlockEntityType),
PORTAL_GUN_PORTAL_BASE.get()
).build(null));
public static final RegistryObject<BlockEntityType<DimensionalTearMarkerBlockEntity>> DIMENSIONAL_TEAR_MARKER_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("dimensional_tear_marker",
() -> BlockEntityType.Builder.of(
(pos, state) -> new DimensionalTearMarkerBlockEntity(pos, state, AntarchyForgeBlocks::dimensionalTearMarkerBlockEntityType),
DIMENSIONAL_TEAR_MARKER.get()
).build(null));
public static final RegistryObject<BlockEntityType<QueenTrailSpawnMarkerBlockEntity>> QUEEN_TRAIL_SPAWN_MARKER_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("queen_trail_spawn_marker",
() -> BlockEntityType.Builder.of((pos, state) -> new QueenTrailSpawnMarkerBlockEntity(pos, state, AntarchyForgeBlocks::queenTrailSpawnMarkerBlockEntityType),
QUEEN_TRAIL_SPAWN_MARKER.get()).build(null));
() -> BlockEntityType.Builder.of(
(pos, state) -> new QueenTrailSpawnMarkerBlockEntity(pos, state, AntarchyForgeBlocks::queenTrailSpawnMarkerBlockEntityType),
QUEEN_TRAIL_SPAWN_MARKER.get()
).build(null));
public static final RegistryObject<BlockEntityType<UndertrialSpawnerBlockEntity>> UNDERTRIAL_SPAWNER_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("undertrial_spawner",
() -> BlockEntityType.Builder.of((pos, state) -> new UndertrialSpawnerBlockEntity(pos, state, AntarchyForgeBlocks::undertrialSpawnerBlockEntityType), UNDERTRIAL_SPAWNER.get()).build(null));
public static final RegistryObject<BlockEntityType<UnderVaultBlockEntity>> UNDERVAULT_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("undervault",
() -> BlockEntityType.Builder.of((pos, state) -> new UnderVaultBlockEntity(pos, state, AntarchyForgeBlocks::underVaultBlockEntityType), UNDERVAULT.get()).build(null));
private AntarchyForgeBlocks() {}
private static BlockEntityType<UndertrialSpawnerBlockEntity> undertrialSpawnerBlockEntityType() {
return UNDERTRIAL_SPAWNER_BLOCK_ENTITY.get();
@@ -688,12 +989,6 @@ public final class AntarchyForgeBlocks {
return UNDERVAULT_BLOCK_ENTITY.get();
}
private static BlockEntityType<QueenTrailSpawnMarkerBlockEntity> queenTrailSpawnMarkerBlockEntityType() {
return QUEEN_TRAIL_SPAWN_MARKER_BLOCK_ENTITY.get();
}
private AntarchyForgeBlocks() {}
public static void register(IEventBus modEventBus) {
BLOCKS.register(modEventBus);
BLOCK_ENTITY_TYPES.register(modEventBus);
@@ -734,6 +1029,20 @@ public final class AntarchyForgeBlocks {
return new Block(BlockBehaviour.Properties.copy(copyFrom).mapColor(mapColor).requiresCorrectToolForDrops());
}
private static SoundType antimetalSoundType() {
return new SoundType(1.0F, 1.0F,
AntarchyForgeSounds.ANTIMETAL_PLACE.get(),
AntarchyForgeSounds.ANTIMETAL_STEP.get(),
AntarchyForgeSounds.ANTIMETAL_PLACE.get(),
AntarchyForgeSounds.ANTIMETAL_STEP.get(),
AntarchyForgeSounds.ANTIMETAL_PLACE.get());
}
private static SoundType antimetalScaffoldingSoundType() {
SoundEvent scaffold = AntarchyForgeSounds.ANTIMETAL_SCAFFOLD.get();
return new SoundType(1.0F, 1.0F, scaffold, scaffold, scaffold, scaffold, scaffold);
}
private static Block smallBloodCrystalBudBlock() {
return SMALL_BLOOD_CRYSTAL_BUD.get();
}
@@ -758,8 +1067,28 @@ public final class AntarchyForgeBlocks {
return UPPER_BLOCK_ENTITY.get();
}
private static BlockEntityType<VortexLensBlockEntity> vortexLensBlockEntityType() {
return VORTEX_LENS_BLOCK_ENTITY.get();
}
private static BlockEntityType<PortalGunPortalMasterBlockEntity> portalGunPortalMasterBlockEntityType() {
return PORTAL_GUN_PORTAL_MASTER_BLOCK_ENTITY.get();
}
private static BlockEntityType<PortalGunPortalBaseBlockEntity> portalGunPortalBaseBlockEntityType() {
return PORTAL_GUN_PORTAL_BASE_BLOCK_ENTITY.get();
}
private static BlockEntityType<DimensionalTearMarkerBlockEntity> dimensionalTearMarkerBlockEntityType() {
return DIMENSIONAL_TEAR_MARKER_BLOCK_ENTITY.get();
}
private static BlockEntityType<QueenTrailSpawnMarkerBlockEntity> queenTrailSpawnMarkerBlockEntityType() {
return QUEEN_TRAIL_SPAWN_MARKER_BLOCK_ENTITY.get();
}
private static final class SimpleHorizontalFacingBlock extends HorizontalDirectionalBlock {
private SimpleHorizontalFacingBlock(BlockBehaviour.Properties properties) {
super(properties);
registerDefaultState(stateDefinition.any().setValue(FACING, Direction.NORTH));
@@ -1,6 +1,5 @@
package com.craisinlord.antarchy.forge.registry;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.creative.CreativeTabContents;
import net.minecraft.core.registries.Registries;
import net.minecraft.world.item.*;
@@ -9,9 +8,11 @@ import net.minecraftforge.event.BuildCreativeModeTabContentsEvent;
import net.minecraftforge.registries.RegistryObject;
public class AntarchyForgeCreativeModeTabs {
private static final String MODID = "antarchy";
private AntarchyForgeCreativeModeTabs() {}
private static final DeferredRegister<CreativeModeTab> CREATIVE_MODE_TABS = DeferredRegister.create(Registries.CREATIVE_MODE_TAB, Antarchy.MODID);
private static final DeferredRegister<CreativeModeTab> CREATIVE_MODE_TABS = DeferredRegister.create(Registries.CREATIVE_MODE_TAB, MODID);
public static void register(IEventBus modEventBus) {
CREATIVE_MODE_TABS.register(modEventBus);
@@ -4,7 +4,7 @@ import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.entity.AppleCowEntityVariants.AppleCow;
import com.craisinlord.antarchy.content.entity.AppleCowEntityVariants.EnchantedGoldenAppleCow;
import com.craisinlord.antarchy.content.entity.AppleCowEntityVariants.GoldenAppleCow;
import com.craisinlord.antarchy.content.entity.cloud_shark.CloudSharkEntity;
import com.craisinlord.antarchy.content.entity.stratoshark.StratosharkEntity;
import com.craisinlord.antarchy.content.entity.BedBugEntity;
import com.craisinlord.antarchy.content.entity.BomberEntity;
import com.craisinlord.antarchy.content.entity.ButterflyEntity;
@@ -18,9 +18,11 @@ import com.craisinlord.antarchy.content.entity.OuranwoodDeerEntity;
import com.craisinlord.antarchy.content.entity.glimmer.GlimmerEntity;
import com.craisinlord.antarchy.content.entity.HushProjectileEntity;
import com.craisinlord.antarchy.content.entity.CritterCageProjectileEntity;
import com.craisinlord.antarchy.content.entity.WormHookProjectileEntity;
import com.craisinlord.antarchy.content.entity.HerculesBeetleEntity;
import com.craisinlord.antarchy.content.entity.HoverboardEntity;
import com.craisinlord.antarchy.content.entity.JerryEntity;
import com.craisinlord.antarchy.content.entity.JumpyBugEntity;
import com.craisinlord.antarchy.content.entity.SpringbugEntity;
import com.craisinlord.antarchy.content.entity.AlphaMantisEntity;
import com.craisinlord.antarchy.content.entity.RollyPollyEntity;
import com.craisinlord.antarchy.content.entity.MantisEntity;
@@ -28,10 +30,15 @@ import com.craisinlord.antarchy.content.entity.MissileSquidEntity;
import com.craisinlord.antarchy.content.entity.OctopusBombEntity;
import com.craisinlord.antarchy.content.entity.MolevoreEntity;
import com.craisinlord.antarchy.content.entity.MolewormEntity;
import com.craisinlord.antarchy.content.entity.WormEntity;
import com.craisinlord.antarchy.content.entity.OuranwoodBoatEntity;
import com.craisinlord.antarchy.content.entity.OuranwoodChestBoatEntity;
import com.craisinlord.antarchy.content.entity.NadirBoatEntity;
import com.craisinlord.antarchy.content.entity.NadirChestBoatEntity;
import com.craisinlord.antarchy.content.entity.RoyalBoatEntity;
import com.craisinlord.antarchy.content.entity.RoyalChestBoatEntity;
import com.craisinlord.antarchy.content.entity.TruffaloBoatEntity;
import com.craisinlord.antarchy.content.entity.TruffaloChestBoatEntity;
import com.craisinlord.antarchy.content.entity.PeachBoatEntity;
import com.craisinlord.antarchy.content.entity.PeachChestBoatEntity;
import com.craisinlord.antarchy.content.entity.ReverieEntity;
@@ -40,7 +47,7 @@ import com.craisinlord.antarchy.content.entity.SizeRayProjectileEntity;
import com.craisinlord.antarchy.content.entity.SpitBugEntity;
import com.craisinlord.antarchy.content.entity.SpitBugProjectileEntity;
import com.craisinlord.antarchy.content.entity.StinkBugEntity;
import com.craisinlord.antarchy.content.entity.TriffidEntity;
import com.craisinlord.antarchy.content.entity.FlytrapEntity;
import com.craisinlord.antarchy.content.entity.UpwardFallingBlockEntity;
import com.craisinlord.antarchy.content.entity.WaspEntity;
import com.craisinlord.antarchy.content.entity.ant.BaseAntEntity;
@@ -58,17 +65,22 @@ import com.craisinlord.antarchy.content.entity.kraken.TentacleEntity;
import com.craisinlord.antarchy.content.entity.lucid.LucidBoltEntity;
import com.craisinlord.antarchy.content.entity.lucid.LucidEntity;
import com.craisinlord.antarchy.content.entity.lucid.LucidEyeProjectileEntity;
import com.craisinlord.antarchy.content.entity.vortex.VortexChargeProjectileEntity;
import com.craisinlord.antarchy.content.entity.vortex.VortexEntity;
import com.craisinlord.antarchy.content.entity.vortex.WindVortexEntity;
import com.craisinlord.antarchy.content.entity.nightmare.NightmareEntity;
import com.craisinlord.antarchy.content.entity.nightmare.NightmareBiteEntity;
import com.craisinlord.antarchy.content.entity.nightmare.NightmarePortalEntity;
import com.craisinlord.antarchy.content.entity.nightmare.NightmareBiteEntity;
import com.craisinlord.antarchy.content.entity.portal.DimensionalTearEntity;
import com.craisinlord.antarchy.content.time.TimeDilationFieldEntity;
import com.craisinlord.antarchy.content.entity.CheepEntity;
import com.craisinlord.antarchy.content.entity.CreepingHorrorEntity;
import com.craisinlord.antarchy.content.entity.CrawlingBlightEntity;
import com.craisinlord.antarchy.content.entity.DorrieEntity;
import com.craisinlord.antarchy.content.entity.LurkingTerrorEntity;
import com.craisinlord.antarchy.content.entity.SkulkingFrightEntity;
import com.craisinlord.antarchy.content.entity.ManticoreEntity;
import com.craisinlord.antarchy.content.entity.ToreterrorEntity;
import com.craisinlord.antarchy.content.entity.WaterBombEntity;
import com.craisinlord.antarchy.content.portalgun.PortalGunPortalEntity;
import com.craisinlord.antarchy.content.portalgun.PortalGunProjectileEntity;
import net.minecraft.core.registries.Registries;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.entity.MobCategory;
@@ -103,6 +115,11 @@ public final class AntarchyForgeEntites {
.sized(0.4F, 0.3F)
.clientTrackingRange(8)
.build("moleworm"));
public static final RegistryObject<EntityType<WormEntity>> WORM = ENTITY_TYPES.register("worm",
() -> EntityType.Builder.of(WormEntity::new, MobCategory.MONSTER)
.sized(1.35F, 2.75F)
.clientTrackingRange(10)
.build("worm"));
public static final RegistryObject<EntityType<MantisEntity>> MANTIS = ENTITY_TYPES.register("mantis",
() -> EntityType.Builder.of(MantisEntity::new, MobCategory.MONSTER)
.sized(3.125F, 2.5F)
@@ -154,13 +171,42 @@ public final class AntarchyForgeEntites {
.clientTrackingRange(10)
.updateInterval(10)
.build("nadir_chest_boat"));
public static final RegistryObject<EntityType<RoyalBoatEntity>> ROYAL_BOAT_ENTITY = ENTITY_TYPES.register("royal_boat",
() -> EntityType.Builder.<RoyalBoatEntity>of(RoyalBoatEntity::new, MobCategory.MISC)
.sized(1.375F, 0.5625F)
.clientTrackingRange(10)
.updateInterval(10)
.build("royal_boat"));
public static final RegistryObject<EntityType<RoyalChestBoatEntity>> ROYAL_CHEST_BOAT_ENTITY = ENTITY_TYPES.register("royal_chest_boat",
() -> EntityType.Builder.<RoyalChestBoatEntity>of(RoyalChestBoatEntity::new, MobCategory.MISC)
.sized(1.375F, 0.5625F)
.clientTrackingRange(10)
.updateInterval(10)
.build("royal_chest_boat"));
public static final RegistryObject<EntityType<TruffaloBoatEntity>> TRUFFALO_BOAT_ENTITY = ENTITY_TYPES.register("truffalo_boat",
() -> EntityType.Builder.<TruffaloBoatEntity>of(TruffaloBoatEntity::new, MobCategory.MISC)
.sized(1.375F, 0.5625F)
.clientTrackingRange(10)
.updateInterval(10)
.build("truffalo_boat"));
public static final RegistryObject<EntityType<TruffaloChestBoatEntity>> TRUFFALO_CHEST_BOAT_ENTITY = ENTITY_TYPES.register("truffalo_chest_boat",
() -> EntityType.Builder.<TruffaloChestBoatEntity>of(TruffaloChestBoatEntity::new, MobCategory.MISC)
.sized(1.375F, 0.5625F)
.clientTrackingRange(10)
.updateInterval(10)
.build("truffalo_chest_boat"));
public static final RegistryObject<EntityType<HoverboardEntity>> HOVERBOARD = ENTITY_TYPES.register("hoverboard",
() -> EntityType.Builder.<HoverboardEntity>of(HoverboardEntity::new, MobCategory.MISC)
.sized(1.5F, 0.6875F)
.clientTrackingRange(10)
.build("hoverboard"));
public static final RegistryObject<EntityType<MolevoreEntity>> MOLEVORE = ENTITY_TYPES.register("molevore",
() -> EntityType.Builder.of(MolevoreEntity::new, MobCategory.MONSTER)
.sized(1.95F, 1.1F)
.clientTrackingRange(10)
.build("molevore"));
public static final RegistryObject<EntityType<TriffidEntity>> TRIFFID = ENTITY_TYPES.register("flytrap",
() -> EntityType.Builder.of(TriffidEntity::new, MobCategory.MONSTER)
public static final RegistryObject<EntityType<FlytrapEntity>> FLYTRAP = ENTITY_TYPES.register("flytrap",
() -> EntityType.Builder.of(FlytrapEntity::new, MobCategory.MONSTER)
.sized(2.0F, 5.0F)
.clientTrackingRange(10)
.build("flytrap"));
@@ -184,8 +230,8 @@ public final class AntarchyForgeEntites {
.sized(0.55F, 0.75F)
.clientTrackingRange(8)
.build("bomber"));
public static final RegistryObject<EntityType<JumpyBugEntity>> JUMPY_BUG = ENTITY_TYPES.register("springbug",
() -> EntityType.Builder.of(JumpyBugEntity::new, MobCategory.MONSTER)
public static final RegistryObject<EntityType<SpringbugEntity>> SPRINGBUG = ENTITY_TYPES.register("springbug",
() -> EntityType.Builder.of(SpringbugEntity::new, MobCategory.MONSTER)
.sized(3.0F, 6.0F)
.clientTrackingRange(8)
.build("springbug"));
@@ -258,8 +304,8 @@ public final class AntarchyForgeEntites {
.sized(0.6F, 1.95F)
.clientTrackingRange(10)
.build("dr_trayaurus"));
public static final RegistryObject<EntityType<CloudSharkEntity>> CLOUD_SHARK = ENTITY_TYPES.register("stratoshark",
() -> EntityType.Builder.of(CloudSharkEntity::new, MobCategory.MONSTER)
public static final RegistryObject<EntityType<StratosharkEntity>> STRATOSHARK = ENTITY_TYPES.register("stratoshark",
() -> EntityType.Builder.of(StratosharkEntity::new, MobCategory.MONSTER)
.sized(2.4F, 0.9F)
.clientTrackingRange(10)
.build("stratoshark"));
@@ -289,6 +335,25 @@ public final class AntarchyForgeEntites {
.clientTrackingRange(10)
.updateInterval(1)
.build("nightmare_portal"));
public static final RegistryObject<EntityType<DimensionalTearEntity>> DIMENSIONAL_TEAR = ENTITY_TYPES.register("dimensional_tear",
() -> EntityType.Builder.of(DimensionalTearEntity::new, MobCategory.MISC)
.sized(2.8F, 3.2F)
.clientTrackingRange(12)
.updateInterval(1)
.build("dimensional_tear"));
public static final RegistryObject<EntityType<PortalGunPortalEntity>> PORTAL_GUN_PORTAL = ENTITY_TYPES.register("portal_gun_portal",
() -> EntityType.Builder.of(PortalGunPortalEntity::new, MobCategory.MISC)
.sized(1.0F, 2.0F)
.clientTrackingRange(10)
.updateInterval(1)
.build("portal_gun_portal"));
public static final RegistryObject<EntityType<PortalGunProjectileEntity>> PORTAL_GUN_PROJECTILE = ENTITY_TYPES.register("portal_gun_projectile",
() -> EntityType.Builder.<PortalGunProjectileEntity>of(PortalGunProjectileEntity::new, MobCategory.MISC)
.sized(0.25F, 0.25F)
.clientTrackingRange(8)
.updateInterval(1)
.build("portal_gun_projectile"));
public static final RegistryObject<EntityType<NightmareBiteEntity>> NIGHTMARE_BITE = ENTITY_TYPES.register("nightmare_bite",
() -> EntityType.Builder.of(NightmareBiteEntity::new, MobCategory.MISC)
.sized(2.5F, 2.0F)
@@ -300,6 +365,33 @@ public final class AntarchyForgeEntites {
.sized(2.0F, 2.0F)
.clientTrackingRange(10)
.build("lucid"));
public static final RegistryObject<EntityType<VortexEntity>> VORTEX = ENTITY_TYPES.register("vortex",
() -> EntityType.Builder.of(VortexEntity::new, MobCategory.MONSTER)
.sized(2.0F, 2.0F)
.clientTrackingRange(10)
.fireImmune()
.build("vortex"));
public static final RegistryObject<EntityType<WindVortexEntity>> WIND_VORTEX = ENTITY_TYPES.register("wind_vortex",
() -> EntityType.Builder.<WindVortexEntity>of(WindVortexEntity::new, MobCategory.MISC)
.sized(3.0F, 5.0F)
.clientTrackingRange(10)
.updateInterval(1)
.fireImmune()
.build("wind_vortex"));
public static final RegistryObject<EntityType<com.craisinlord.antarchy.content.entity.royal.RoyalBlackHoleEntity>> ROYAL_BLACK_HOLE = ENTITY_TYPES.register("royal_black_hole",
() -> EntityType.Builder.<com.craisinlord.antarchy.content.entity.royal.RoyalBlackHoleEntity>of(com.craisinlord.antarchy.content.entity.royal.RoyalBlackHoleEntity::new, MobCategory.MISC)
.sized(1.0F, 1.0F)
.clientTrackingRange(16)
.updateInterval(2)
.fireImmune()
.build("royal_black_hole"));
public static final RegistryObject<EntityType<com.craisinlord.antarchy.content.entity.royal.RoyalAssailantBlackHoleEntity>> ROYAL_ASSAILANT_BLACK_HOLE = ENTITY_TYPES.register("royal_assailant_black_hole",
() -> EntityType.Builder.<com.craisinlord.antarchy.content.entity.royal.RoyalAssailantBlackHoleEntity>of(com.craisinlord.antarchy.content.entity.royal.RoyalAssailantBlackHoleEntity::new, MobCategory.MISC)
.sized(1.0F, 1.0F)
.clientTrackingRange(16)
.updateInterval(2)
.fireImmune()
.build("royal_assailant_black_hole"));
public static final RegistryObject<EntityType<LucidBoltEntity>> LUCID_BOLT = ENTITY_TYPES.register("lucid_bolt",
() -> EntityType.Builder.<LucidBoltEntity>of(LucidBoltEntity::new, MobCategory.MISC)
.sized(0.3F, 0.3F)
@@ -325,6 +417,7 @@ public final class AntarchyForgeEntites {
() -> EntityType.Builder.of(ScorpionEntity::new, MobCategory.MONSTER)
.sized(1.5F, 1.0F)
.clientTrackingRange(8)
.fireImmune()
.build("scorpion"));
public static final RegistryObject<EntityType<BasiliskEntity>> BASILISK = ENTITY_TYPES.register("basilisk",
() -> EntityType.Builder.of(BasiliskEntity::new, MobCategory.MONSTER)
@@ -335,6 +428,7 @@ public final class AntarchyForgeEntites {
() -> EntityType.Builder.of(EmperorScorpionEntity::new, MobCategory.MONSTER)
.sized(6.0F, 3.0F)
.clientTrackingRange(12)
.fireImmune()
.build("emperor_scorpion"));
public static final RegistryObject<EntityType<LucidEyeProjectileEntity>> LUCID_PEARL_PROJECTILE = ENTITY_TYPES.register("lucid_pearl_projectile",
() -> EntityType.Builder.<LucidEyeProjectileEntity>of(LucidEyeProjectileEntity::new, MobCategory.MISC)
@@ -342,12 +436,24 @@ public final class AntarchyForgeEntites {
.clientTrackingRange(8)
.updateInterval(1)
.build("lucid_pearl_projectile"));
public static final RegistryObject<EntityType<VortexChargeProjectileEntity>> VORTEX_CHARGE_PROJECTILE = ENTITY_TYPES.register("vortex_charge_projectile",
() -> EntityType.Builder.<VortexChargeProjectileEntity>of(VortexChargeProjectileEntity::new, MobCategory.MISC)
.sized(0.25F, 0.25F)
.clientTrackingRange(8)
.updateInterval(1)
.build("vortex_charge_projectile"));
public static final RegistryObject<EntityType<CritterCageProjectileEntity>> CRITTER_CAGE_PROJECTILE = ENTITY_TYPES.register("critter_cage_projectile",
() -> EntityType.Builder.<CritterCageProjectileEntity>of(CritterCageProjectileEntity::new, MobCategory.MISC)
.sized(0.25F, 0.25F)
.clientTrackingRange(8)
.updateInterval(1)
.build("critter_cage_projectile"));
public static final RegistryObject<EntityType<WormHookProjectileEntity>> WORM_HOOK_PROJECTILE = ENTITY_TYPES.register("worm_hook_projectile",
() -> EntityType.Builder.<WormHookProjectileEntity>of(WormHookProjectileEntity::new, MobCategory.MISC)
.sized(0.25F, 0.25F)
.clientTrackingRange(10)
.updateInterval(1)
.build("worm_hook_projectile"));
public static final RegistryObject<EntityType<HushProjectileEntity>> HUSH_PROJECTILE = ENTITY_TYPES.register("hush_projectile",
() -> EntityType.Builder.<HushProjectileEntity>of(HushProjectileEntity::new, MobCategory.MISC)
.sized(0.35F, 0.35F)
@@ -371,16 +477,22 @@ public final class AntarchyForgeEntites {
.clientTrackingRange(8)
.updateInterval(1)
.build("water_bomb"));
public static final RegistryObject<EntityType<CreepingHorrorEntity>> CREEPING_HORROR = ENTITY_TYPES.register("crawling_blight",
() -> EntityType.Builder.of(CreepingHorrorEntity::new, MobCategory.MONSTER)
public static final RegistryObject<EntityType<CrawlingBlightEntity>> CRAWLING_BLIGHT = ENTITY_TYPES.register("crawling_blight",
() -> EntityType.Builder.of(CrawlingBlightEntity::new, MobCategory.MONSTER)
.sized(1.3F, 1.5F)
.clientTrackingRange(10)
.build("crawling_blight"));
public static final RegistryObject<EntityType<LurkingTerrorEntity>> LURKING_TERROR = ENTITY_TYPES.register("skulking_fright",
() -> EntityType.Builder.of(LurkingTerrorEntity::new, MobCategory.MONSTER)
public static final RegistryObject<EntityType<SkulkingFrightEntity>> SKULKING_FRIGHT = ENTITY_TYPES.register("skulking_fright",
() -> EntityType.Builder.of(SkulkingFrightEntity::new, MobCategory.MONSTER)
.sized(1.3F, 1.5F)
.clientTrackingRange(10)
.build("skulking_fright"));
public static final RegistryObject<EntityType<ManticoreEntity>> MANTICORE = ENTITY_TYPES.register("manticore",
() -> EntityType.Builder.of(ManticoreEntity::new, MobCategory.MONSTER)
.sized(1.95F, 2.75F)
.clientTrackingRange(10)
.fireImmune()
.build("manticore"));
public static final RegistryObject<EntityType<JerryEntity>> JERRY = ENTITY_TYPES.register("jerry",
() -> EntityType.Builder.of(JerryEntity::new, MobCategory.MONSTER)
.sized(1.4F, 1.4F)
@@ -401,6 +513,35 @@ public final class AntarchyForgeEntites {
.sized(3.0F, 4.0F)
.clientTrackingRange(12)
.build("hercules_beetle"));
public static final RegistryObject<EntityType<com.craisinlord.antarchy.content.entity.royal.PrinceEntity>> PRINCE = ENTITY_TYPES.register("prince",
() -> EntityType.Builder.of(com.craisinlord.antarchy.content.entity.royal.PrinceEntity::new, MobCategory.CREATURE)
.sized(2.2F, 1.5F).clientTrackingRange(10).updateInterval(3).fireImmune().build("prince"));
public static final RegistryObject<EntityType<com.craisinlord.antarchy.content.entity.royal.PrincessEntity>> PRINCESS = ENTITY_TYPES.register("princess",
() -> EntityType.Builder.of(com.craisinlord.antarchy.content.entity.royal.PrincessEntity::new, MobCategory.CREATURE)
.sized(2.2F, 1.5F).clientTrackingRange(10).updateInterval(3).fireImmune().build("princess"));
public static final RegistryObject<EntityType<com.craisinlord.antarchy.content.entity.royal.KingEntity>> KING = ENTITY_TYPES.register("king",
() -> EntityType.Builder.of(com.craisinlord.antarchy.content.entity.royal.KingEntity::new, MobCategory.MONSTER)
.sized(com.craisinlord.antarchy.content.entity.royal.RoyalBossEntity.GAMEPLAY_WIDTH, com.craisinlord.antarchy.content.entity.royal.RoyalBossEntity.GAMEPLAY_HEIGHT)
.clientTrackingRange(16)
.updateInterval(3)
.fireImmune()
.build("king"));
public static final RegistryObject<EntityType<com.craisinlord.antarchy.content.entity.royal.QueenEntity>> QUEEN = ENTITY_TYPES.register("queen",
() -> EntityType.Builder.of(com.craisinlord.antarchy.content.entity.royal.QueenEntity::new, MobCategory.MONSTER)
.sized(com.craisinlord.antarchy.content.entity.royal.RoyalBossEntity.GAMEPLAY_WIDTH, com.craisinlord.antarchy.content.entity.royal.RoyalBossEntity.GAMEPLAY_HEIGHT)
.clientTrackingRange(16)
.updateInterval(3)
.fireImmune()
.build("queen"));
public static final RegistryObject<EntityType<com.craisinlord.antarchy.content.entity.royal.RoyalBoltEntity>> ROYAL_BOLT = ENTITY_TYPES.register("royal_bolt",
() -> EntityType.Builder.<com.craisinlord.antarchy.content.entity.royal.RoyalBoltEntity>of(com.craisinlord.antarchy.content.entity.royal.RoyalBoltEntity::new, MobCategory.MISC)
.sized(0.4F, 0.4F).clientTrackingRange(8).updateInterval(1).fireImmune().build("royal_bolt"));
public static final RegistryObject<EntityType<com.craisinlord.antarchy.content.entity.royal.RoyalElementalProjectileEntity>> ROYAL_ELEMENTAL_PROJECTILE = ENTITY_TYPES.register("royal_elemental_projectile",
() -> EntityType.Builder.<com.craisinlord.antarchy.content.entity.royal.RoyalElementalProjectileEntity>of(com.craisinlord.antarchy.content.entity.royal.RoyalElementalProjectileEntity::new, MobCategory.MISC)
.sized(1.0F, 1.0F).clientTrackingRange(16).updateInterval(1).fireImmune().build("royal_elemental_projectile"));
public static final RegistryObject<EntityType<com.craisinlord.antarchy.content.entity.royal.RoyalIceSpikeEntity>> ROYAL_ICE_SPIKE = ENTITY_TYPES.register("royal_ice_spike",
() -> EntityType.Builder.<com.craisinlord.antarchy.content.entity.royal.RoyalIceSpikeEntity>of(com.craisinlord.antarchy.content.entity.royal.RoyalIceSpikeEntity::new, MobCategory.MISC)
.sized(2.0F, 4.0F).clientTrackingRange(16).updateInterval(1).fireImmune().build("royal_ice_spike"));
public static final RegistryObject<EntityType<OuranwoodDeerEntity>> OURANWOOD_DEER = ENTITY_TYPES.register("ouranwood_deer",
() -> EntityType.Builder.of(OuranwoodDeerEntity::new, MobCategory.CREATURE)
.sized(1.125F, 1.75F)
@@ -423,25 +564,6 @@ public final class AntarchyForgeEntites {
.clientTrackingRange(10)
.updateInterval(1)
.build("upward_falling_block"));
public static final RegistryObject<EntityType<DimensionalTearEntity>> DIMENSIONAL_TEAR = ENTITY_TYPES.register("dimensional_tear",
() -> EntityType.Builder.<DimensionalTearEntity>of(DimensionalTearEntity::new, MobCategory.MISC)
.sized(1.0F, 2.75F)
.clientTrackingRange(12)
.updateInterval(2)
.build("dimensional_tear"));
public static final RegistryObject<EntityType<TimeDilationFieldEntity>> TIME_DILATION_FIELD = ENTITY_TYPES.register("time_dilation_field",
() -> EntityType.Builder.<TimeDilationFieldEntity>of(TimeDilationFieldEntity::new, MobCategory.MISC)
.sized(0.5F, 0.5F)
.clientTrackingRange(16)
.updateInterval(20)
.build("time_dilation_field"));
public static final RegistryObject<EntityType<com.craisinlord.antarchy.content.entity.royal.RoyalAssailantBlackHoleEntity>> ROYAL_ASSAILANT_BLACK_HOLE = ENTITY_TYPES.register("royal_assailant_black_hole",
() -> EntityType.Builder.<com.craisinlord.antarchy.content.entity.royal.RoyalAssailantBlackHoleEntity>of(com.craisinlord.antarchy.content.entity.royal.RoyalAssailantBlackHoleEntity::new, MobCategory.MISC)
.sized(1.0F, 1.0F)
.clientTrackingRange(16)
.updateInterval(2)
.fireImmune()
.build("royal_assailant_black_hole"));
private AntarchyForgeEntites() {}
@@ -2,11 +2,12 @@ package com.craisinlord.antarchy.forge.registry;
import com.craisinlord.antarchy.config.AntarchySettings;
import com.craisinlord.antarchy.content.entity.*;
import com.craisinlord.antarchy.content.entity.CreepingHorrorEntity;
import com.craisinlord.antarchy.content.entity.LurkingTerrorEntity;
import com.craisinlord.antarchy.content.entity.CrawlingBlightEntity;
import com.craisinlord.antarchy.content.entity.SkulkingFrightEntity;
import com.craisinlord.antarchy.content.entity.ManticoreEntity;
import com.craisinlord.antarchy.content.entity.basilisk.BasiliskEntity;
import com.craisinlord.antarchy.content.entity.brutalfly.BrutalflyEntity;
import com.craisinlord.antarchy.content.entity.cloud_shark.CloudSharkEntity;
import com.craisinlord.antarchy.content.entity.stratoshark.StratosharkEntity;
import com.craisinlord.antarchy.content.entity.flying_squirrel.FlyingSquirrelEntity;
import com.craisinlord.antarchy.content.entity.kraken.KrakenEntity;
import com.craisinlord.antarchy.content.entity.kraken.TentacleEntity;
@@ -48,7 +49,7 @@ public class AntarchyForgeEntityAttributes {
).build());
event.put(AntarchyForgeEntites.ROLLY_POLLY.get(), RollyPollyEntity.createAttributes().build());
event.put(AntarchyForgeEntites.DR_TRAYAURUS.get(), Villager.createAttributes().build());
event.put(AntarchyForgeEntites.CLOUD_SHARK.get(), CloudSharkEntity.createAttributes().build());
event.put(AntarchyForgeEntites.STRATOSHARK.get(), StratosharkEntity.createAttributes().build());
event.put(AntarchyForgeEntites.KRAKEN.get(), KrakenEntity.createAttributes().build());
event.put(AntarchyForgeEntites.MISSILE_SQUID.get(), MissileSquidEntity.createAttributes().build());
event.put(AntarchyForgeEntites.OCTOPUS_BOMB.get(), OctopusBombEntity.createAttributes().build());
@@ -58,18 +59,20 @@ public class AntarchyForgeEntityAttributes {
event.put(AntarchyForgeEntites.STINK_BUG.get(), StinkBugEntity.createAttributes().build());
event.put(AntarchyForgeEntites.WASP.get(), WaspEntity.createAttributes().build());
event.put(AntarchyForgeEntites.BOMBER.get(), BomberEntity.createAttributes().build());
event.put(AntarchyForgeEntites.JUMPY_BUG.get(), JumpyBugEntity.createAttributes().build());
event.put(AntarchyForgeEntites.SPRINGBUG.get(), SpringbugEntity.createAttributes().build());
event.put(AntarchyForgeEntites.SPIT_BUG.get(), SpitBugEntity.createAttributes().build());
event.put(AntarchyForgeEntites.MANTIS.get(), MantisEntity.createAttributes().build());
event.put(AntarchyForgeEntites.ALPHA_MANTIS.get(), AlphaMantisEntity.createAttributes().build());
event.put(AntarchyForgeEntites.TRIFFID.get(), TriffidEntity.createAttributes().build());
event.put(AntarchyForgeEntites.FLYTRAP.get(), FlytrapEntity.createAttributes().build());
event.put(AntarchyForgeEntites.LUCID.get(), LucidEntity.createAttributes().build());
event.put(AntarchyForgeEntites.VORTEX.get(), com.craisinlord.antarchy.content.entity.vortex.VortexEntity.createAttributes().build());
event.put(AntarchyForgeEntites.SCORPION.get(), ScorpionEntity.createAttributes().build());
event.put(AntarchyForgeEntites.BASILISK.get(), BasiliskEntity.createAttributes().build());
event.put(AntarchyForgeEntites.EMPEROR_SCORPION.get(), EmperorScorpionEntity.createAttributes().build());
event.put(AntarchyForgeEntites.TORETERROR.get(), ToreterrorEntity.createAttributes().build());
event.put(AntarchyForgeEntites.CREEPING_HORROR.get(), CreepingHorrorEntity.createAttributes().build());
event.put(AntarchyForgeEntites.LURKING_TERROR.get(), LurkingTerrorEntity.createAttributes().build());
event.put(AntarchyForgeEntites.CRAWLING_BLIGHT.get(), CrawlingBlightEntity.createAttributes().build());
event.put(AntarchyForgeEntites.SKULKING_FRIGHT.get(), SkulkingFrightEntity.createAttributes().build());
event.put(AntarchyForgeEntites.MANTICORE.get(), ManticoreEntity.createAttributes().build());
event.put(AntarchyForgeEntites.JERRY.get(), JerryEntity.createAttributes().build());
AttributeSupplier redAntAttributes = buildAntAttributes(AntarchySettings.redAntHealth(), AntarchySettings.redAntMovementSpeed(), AntarchySettings.redAntAttackDamage()).build();
@@ -79,13 +82,19 @@ public class AntarchyForgeEntityAttributes {
event.put(AntarchyForgeEntites.BROWN_ANT.get(), brownAntAttributes);
event.put(AntarchyForgeEntites.RAINBOW_ANT.get(), rainbowAntAttributes);
event.put(AntarchyForgeEntites.MOLEWORM.get(), MolewormEntity.createAttributes().build());
event.put(AntarchyForgeEntites.WORM.get(), WormEntity.createAttributes().build());
event.put(AntarchyForgeEntites.MOLEVORE.get(), MolevoreEntity.createAttributes().build());
event.put(AntarchyForgeEntites.CHEEP.get(), com.craisinlord.antarchy.content.entity.CheepEntity.createAttributes().build());
event.put(AntarchyForgeEntites.DORRIE.get(), com.craisinlord.antarchy.content.entity.DorrieEntity.createAttributes().build());
event.put(AntarchyForgeEntites.HERCULES_BEETLE.get(), com.craisinlord.antarchy.content.entity.HerculesBeetleEntity.createAttributes().build());
event.put(AntarchyForgeEntites.PRINCE.get(), com.craisinlord.antarchy.content.entity.royal.PrinceEntity.createAttributes().build());
event.put(AntarchyForgeEntites.PRINCESS.get(), com.craisinlord.antarchy.content.entity.royal.PrincessEntity.createAttributes().build());
event.put(AntarchyForgeEntites.KING.get(), com.craisinlord.antarchy.content.entity.royal.KingEntity.createAttributes().build());
event.put(AntarchyForgeEntites.QUEEN.get(), com.craisinlord.antarchy.content.entity.royal.QueenEntity.createAttributes().build());
event.put(AntarchyForgeEntites.OURANWOOD_DEER.get(), com.craisinlord.antarchy.content.entity.OuranwoodDeerEntity.createAttributes().build());
event.put(AntarchyForgeEntites.GLIMMER.get(), com.craisinlord.antarchy.content.entity.glimmer.GlimmerEntity.createAttributes().build());
event.put(AntarchyForgeEntites.ELKA.get(), ElkaEntity.createAttributes().build());
event.put(AntarchyForgeEntites.HOVERBOARD.get(), com.craisinlord.antarchy.content.entity.HoverboardEntity.createAttributes().build());
}
private static AttributeSupplier.Builder buildAntAttributes(double health, double speed, double attackDamage) {
@@ -1,13 +1,14 @@
package com.craisinlord.antarchy.forge.registry;
import com.craisinlord.anthology.effect.AnthologyEffects;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.config.AntarchySettings;
import com.craisinlord.antarchy.content.AntarchyObjects;
import com.craisinlord.antarchy.content.AntarchySoundEvents;
import com.craisinlord.antarchy.content.recipe.CustomBrewingRecipes;
import com.craisinlord.antarchy.content.block.DuctTapeBlock;
import com.craisinlord.antarchy.content.dispenser.RpoLauncherDispenseBehavior;
import com.craisinlord.antarchy.content.dispenser.SizeRayDispenseBehavior;
import com.craisinlord.antarchy.content.dispenser.BugSprayDispenseBehavior;
import com.craisinlord.antarchy.content.dispenser.SquidzookaDispenseBehavior;
import com.craisinlord.antarchy.content.dispenser.WaterCannonDispenseBehavior;
import com.craisinlord.antarchy.content.dispenser.AntimetalMinecartDispenseBehavior;
@@ -19,18 +20,25 @@ import com.craisinlord.antarchy.content.entity.kraken.KrakenEntity;
import com.craisinlord.antarchy.content.entity.lucid.LucidBoltEntity;
import com.craisinlord.antarchy.content.entity.lucid.LucidEntity;
import com.craisinlord.antarchy.content.entity.lucid.LucidEyeProjectileEntity;
import com.craisinlord.antarchy.content.entity.multipart.MultipartFramework;
import com.craisinlord.antarchy.content.entity.vortex.VortexChargeProjectileEntity;
import com.craisinlord.antarchy.content.entity.vortex.VortexEntity;
import com.craisinlord.antarchy.content.entity.trades.DrTrayaurusTradeManager;
import com.craisinlord.antarchy.content.horde.CavarynHordeManager;
import com.craisinlord.antarchy.content.item.*;
import com.craisinlord.antarchy.content.worldgen.thoraxis.ThoraxisUndersideManager;
import com.craisinlord.antarchy.content.item.ultimate.UltimateGearHelper;
import com.craisinlord.antarchy.content.movement.DreamSandLowGravityAccess;
import com.craisinlord.antarchy.content.AntarchyTags;
import com.craisinlord.antarchy.mixins.PoiTypesAccessor;
import com.craisinlord.antarchy.content.portal.PermanentPortalManager;
import com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageController;
import com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync;
import com.craisinlord.antarchy.forge.AntarchyForgeFluidTypes;
import com.craisinlord.antarchy.forge.entity.multipart.MultipartPartEntity;
import com.craisinlord.antarchy.forge.network.AntarchyGravityNetworking;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Holder;
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.core.registries.Registries;
import net.minecraft.resources.ResourceKey;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.InteractionResult;
@@ -57,6 +65,8 @@ import net.minecraftforge.common.ToolActions;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.common.ForgeMod;
import net.minecraft.world.entity.npc.VillagerProfession;
import net.minecraft.world.entity.ai.village.poi.PoiType;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.entity.npc.VillagerTrades;
import net.minecraft.world.item.trading.MerchantOffer;
import net.minecraftforge.event.AddReloadListenerEvent;
@@ -67,14 +77,17 @@ import net.minecraftforge.event.entity.player.PlayerEvent;
import net.minecraftforge.event.entity.player.PlayerInteractEvent;
import net.minecraftforge.event.level.BlockEvent;
import net.minecraftforge.event.entity.living.LivingEvent;
import net.minecraftforge.event.TickEvent;
import net.minecraftforge.event.village.VillagerTradesEvent;
import net.minecraftforge.event.village.WandererTradesEvent;
import net.minecraftforge.event.TickEvent;
import net.minecraftforge.fluids.FluidInteractionRegistry;
import com.craisinlord.antarchy.forge.network.AntarchyForgeNetworkCore;
import com.craisinlord.antarchy.content.time.TimeDilationManager;
public final class AntarchyForgeEvents {
private static final double OVERHEAD_INVERSION_WARN_MS = 10.0D;
private static final long OVERHEAD_INVERSION_WARN_INTERVAL_TICKS = 100L;
private static long lastOverheadInversionWarnTick = Long.MIN_VALUE / 2L;
private AntarchyForgeEvents() {}
public static void register(IEventBus modEventBus) {
@@ -90,26 +103,27 @@ public final class AntarchyForgeEvents {
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleUltimateBowDamage);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleUltimateCrossbowDamage);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleNightmareArmorDoubleDamage);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleBossMagicBurstMitigation);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleScorpionWhipAttackEntity);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleAttitudeAdjusterAttackEntity);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handlePortalGunAttackEntity);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleScorpionWhipLeftClickBlock);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handlePortalGunLeftClickBlock);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleScorpionWhipRightClickBlock);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleScorpionWhipRightClickItem);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleGiantFryingPanRightClickItem);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleParalyzedAttackEntity);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleParalyzedLeftClickBlock);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleParalyzedRightClickBlock);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleParalyzedRightClickItem);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleParalyzedEntityInteract);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleParalyzedEntityInteractSpecific);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleDreamSandJump);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::tickDreadAndIchor);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::tickScorpionWhips);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::tickDreamSandLowGravity);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::tickWormHooks);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::tickAttitudeAdjusterSlams);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::tickTimeDilation);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleAntiwaterDamage);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleAntiwaterFall);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleDreamSandFall);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleBloodCrystalBootsFall);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleBloodglassShield);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleBloodCrystalArmorEquip);
@@ -117,24 +131,24 @@ public final class AntarchyForgeEvents {
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleBloodglassWardRemoved);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleBloodglassWardExpired);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::tickBloodglassRecharge);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::tickAntArrivals);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleBloodglassPlayerDeath);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleBloodglassRespawn);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleBloodglassLogin);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleCavarynHordeKill);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleCavarynHordeBlockBreak);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::tickCavarynHordes);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::tickThoraxisUnderside);
modEventBus.addListener(AntarchyForgeEvents::modifyEntityAttributes);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::tickOverheadInversion);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::tickDuctTapeStickiness);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleDreadDeath);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleFallenKingCrownKill);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleDreadBedSleep);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleStartTracking);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleDreamSandLogout);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleTigerEyeLogin);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleTigerEyeLogout);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleTigerEyeDeath);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleTigerEyeRespawn);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleTigerEyeLogin);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::handleTigerEyeDimensionChange);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::tickTigerEyeCamouflage);
MinecraftForge.EVENT_BUS.addListener(AntarchyForgeEvents::registerReloadListeners);
@@ -143,7 +157,23 @@ public final class AntarchyForgeEvents {
}
static void onVillagerTrades(VillagerTradesEvent event) {
if (event.getType() == VillagerProfession.FARMER) {
if (event.getType() == AntarchyForgeMisc.COMPUTER_SCIENTIST.get()) {
int[] slots = com.craisinlord.antarchy.content.entity.trades.ComputerScientistTradeManager.slotsPerLevel();
for (int level = 1; level <= slots.length; level++) {
for (int index = 0; index < slots[level - 1]; index++) {
event.getTrades().computeIfAbsent(level, ignored -> new java.util.ArrayList<>())
.add(com.craisinlord.antarchy.content.entity.trades.ComputerScientistTradeManager.listing(level, index));
}
}
} else if (event.getType() == AntarchyForgeMisc.PEST_CONTROL.get()) {
int[] slots = com.craisinlord.antarchy.content.entity.trades.PestControlTradeManager.slotsPerLevel();
for (int level = 1; level <= slots.length; level++) {
for (int index = 0; index < slots[level - 1]; index++) {
event.getTrades().computeIfAbsent(level, ignored -> new java.util.ArrayList<>())
.add(com.craisinlord.antarchy.content.entity.trades.PestControlTradeManager.listing(level, index));
}
}
} else if (event.getType() == VillagerProfession.FARMER) {
event.getTrades().get(1).add(emeraldForItems(AntarchyObjects.CORN.get(), 20, 16, 2));
} else if (event.getType() == VillagerProfession.BUTCHER) {
event.getTrades().get(1).add(emeraldForItems(AntarchyObjects.COOKED_CORNDOG.get(), 5, 16, 2));
@@ -206,16 +236,23 @@ public final class AntarchyForgeEvents {
for (ServerLevel level : event.getServer().getAllLevels()) {
CavarynHordeManager.tick(level);
com.craisinlord.antarchy.content.horde.CavarynCreatureSpawner.tick(level);
com.craisinlord.antarchy.content.entity.glimmer.GlimmerNightSpawner.tick(level);
com.craisinlord.antarchy.content.worldgen.elythia.KingsTreeGridFeature.tickPendingSpawns(level);
}
}
@net.minecraftforge.eventbus.api.SubscribeEvent
static void tickTimeDilation(TickEvent.ServerTickEvent event) {
if (event.phase == TickEvent.Phase.END) {
TimeDilationManager.tickServer(event.getServer());
static void tickThoraxisUnderside(TickEvent.ServerTickEvent event) {
if (event.phase != TickEvent.Phase.END) return;
for (ServerLevel level : event.getServer().getAllLevels()) {
ThoraxisUndersideManager.tick(level);
}
}
static void tickAntArrivals(TickEvent.ServerTickEvent event) {
if (event.phase != TickEvent.Phase.END) return;
com.craisinlord.antarchy.content.entity.ant.AntArrivalScheduler.tick(event.getServer());
}
private static int badOmenLevel(Player player) {
MobEffectInstance effect = player.getEffect(MobEffects.BAD_OMEN);
return effect != null ? effect.getAmplifier() + 1 : 0;
@@ -268,75 +305,56 @@ public final class AntarchyForgeEvents {
static void registerReloadListeners(AddReloadListenerEvent event) {
event.addListener(new DrTrayaurusTradeManager());
event.addListener(new com.craisinlord.antarchy.content.entity.trades.ComputerScientistTradeManager());
event.addListener(new com.craisinlord.antarchy.content.entity.trades.PestControlTradeManager());
}
static void handleDreamSandLogout(PlayerEvent.PlayerLoggedOutEvent event) {
clearDreamSandLowGravity(event.getEntity());
}
private static void clearDreamSandLowGravity(LivingEntity livingEntity) {
DreamSandLowGravityAccess access = dreamSandAccess(livingEntity);
access.antarchy$setDreamSandLowGravityActive(false);
access.antarchy$setDreamSandLowGravityTicksRemaining(0);
access.antarchy$setDreamSandLandingGraceTicks(0);
}
private static DreamSandLowGravityAccess dreamSandAccess(LivingEntity livingEntity) {
return (DreamSandLowGravityAccess) livingEntity;
}
static void handleStartTracking(PlayerEvent.StartTracking event) {
if (event.getTarget().level().isClientSide()) {
return;
}
AntarchyGravityNetworking.syncEntity(event.getTarget());
if (event.getTarget() instanceof com.craisinlord.antarchy.content.time.TimeDilationEntityAccess access
&& event.getEntity() instanceof ServerPlayer trackingPlayer) {
com.craisinlord.antarchy.forge.network.AntarchyTimeDilationNetworking.syncRateToPlayer(
trackingPlayer, event.getTarget(), access.antarchy$getTimeDilationRate()
);
}
if (event.getTarget() instanceof ServerPlayer trackedPlayer && event.getEntity() instanceof ServerPlayer trackingPlayer) {
com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync.syncTo(trackingPlayer, trackedPlayer);
}
}
static void handleTigerEyeLogin(PlayerEvent.PlayerLoggedInEvent event) {
if (event.getEntity() instanceof ServerPlayer player) {
com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync.sync(player);
TigerEyeCamouflageSync.syncTo(trackingPlayer, trackedPlayer);
}
}
static void handleTigerEyeLogout(PlayerEvent.PlayerLoggedOutEvent event) {
if (event.getEntity() instanceof ServerPlayer player) {
com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageController.deactivate(player, false);
TigerEyeCamouflageController.deactivate(player, false);
}
}
static void handleTigerEyeDeath(LivingDeathEvent event) {
if (event.getEntity() instanceof ServerPlayer player) {
com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageController.deactivate(player, false);
com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync.sync(player);
TigerEyeCamouflageController.deactivate(player, false);
TigerEyeCamouflageSync.sync(player);
}
}
static void handleTigerEyeRespawn(PlayerEvent.PlayerRespawnEvent event) {
if (event.getEntity() instanceof ServerPlayer player) {
com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageController.deactivate(player, false);
com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync.sync(player);
TigerEyeCamouflageController.deactivate(player, false);
TigerEyeCamouflageSync.sync(player);
}
}
static void handleTigerEyeLogin(PlayerEvent.PlayerLoggedInEvent event) {
if (event.getEntity() instanceof ServerPlayer player) {
TigerEyeCamouflageSync.sync(player);
}
}
static void handleTigerEyeDimensionChange(PlayerEvent.PlayerChangedDimensionEvent event) {
if (event.getEntity() instanceof ServerPlayer player) {
com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageController.deactivate(player, false);
com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync.sync(player);
TigerEyeCamouflageController.deactivate(player, false);
TigerEyeCamouflageSync.sync(player);
}
}
static void tickTigerEyeCamouflage(TickEvent.PlayerTickEvent event) {
if (event.phase != TickEvent.Phase.END) return;
if (event.player instanceof ServerPlayer player
&& com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageController.validateOrDeactivate(player)) {
com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync.sync(player);
if (event.player instanceof ServerPlayer player && TigerEyeCamouflageController.validateOrDeactivate(player)) {
TigerEyeCamouflageSync.sync(player);
}
}
@@ -346,11 +364,13 @@ public final class AntarchyForgeEvents {
if (!event.getEntity().hasEffect(AntarchyForgeMisc.DREAD.get())) {
return;
}
Player player = event.getEntity();
player.displayClientMessage(net.minecraft.network.chat.Component.translatable("message.antarchy.dread_too_scared_to_sleep"), true);
event.getEntity().displayClientMessage(net.minecraft.network.chat.Component.translatable("message.antarchy.dread_too_scared_to_sleep"), true);
event.setResult(net.minecraft.world.entity.player.Player.BedSleepingProblem.OTHER_PROBLEM);
if (!(player.level() instanceof net.minecraft.server.level.ServerLevel level)) return;
if (!(event.getEntity().level() instanceof net.minecraft.server.level.ServerLevel level)) {
return;
}
Player player = event.getEntity();
long gameTime = level.getGameTime();
long nextSpawnTime = player.getPersistentData().getLong(DREAD_BED_BUG_NEXT_SPAWN_KEY);
if (nextSpawnTime > gameTime) {
@@ -399,15 +419,8 @@ public final class AntarchyForgeEvents {
event.setResult(net.minecraftforge.eventbus.api.Event.Result.DENY);
}
static void tickDuctTapeStickiness(LivingEvent.LivingTickEvent event) {
if (DuctTapeBlock.shouldTickStuckEntity(event.getEntity())) {
DuctTapeBlock.tickStuckEntity(event.getEntity());
}
}
static void handleDreadDeath(LivingDeathEvent event) {
LivingEntity entity = event.getEntity();
clearDreamSandLowGravity(entity);
if (!entity.hasEffect(AntarchyForgeMisc.DREAD.get())) {
return;
}
@@ -433,6 +446,9 @@ public final class AntarchyForgeEvents {
}
private static final int ANTIMETAL_INVERTED_REFRESH_TICKS = 20;
private static final int ANTIMETAL_INVERTED_REFRESH_THRESHOLD_TICKS = 12;
private static final int ANTIMETAL_PLAYER_SCAN_INTERVAL_TICKS = 2;
private static final int ANTIMETAL_MOB_SCAN_INTERVAL_TICKS = 10;
static void tickOverheadInversion(LivingEvent.LivingTickEvent event) {
LivingEntity livingEntity = event.getEntity();
@@ -442,17 +458,47 @@ public final class AntarchyForgeEvents {
if (livingEntity instanceof Player player && player.isSpectator()) {
return;
}
if (!isDirectlyBelowAntimetal(livingEntity)) {
MobEffectInstance existingInverted = livingEntity.getEffect(AnthologyEffects.inverted());
long gameTime = livingEntity.level().getGameTime();
if (!shouldScanOverheadAntimetal(livingEntity, existingInverted, gameTime)) {
return;
}
MobEffectInstance existingInverted = livingEntity.getEffect(AntarchyForgeMisc.INVERTED.get());
if (existingInverted == null || existingInverted.getDuration() <= 5) {
livingEntity.addEffect(new MobEffectInstance(AntarchyForgeMisc.INVERTED.get(), ANTIMETAL_INVERTED_REFRESH_TICKS, 0, false, false, false));
long startNanos = System.nanoTime();
boolean directlyBelowAntimetal = isDirectlyBelowAntimetal(livingEntity);
double elapsedMs = (System.nanoTime() - startNanos) / 1_000_000.0D;
if (elapsedMs >= OVERHEAD_INVERSION_WARN_MS
&& gameTime - lastOverheadInversionWarnTick >= OVERHEAD_INVERSION_WARN_INTERVAL_TICKS) {
lastOverheadInversionWarnTick = gameTime;
Antarchy.LOGGER.warn(
"[antarchy-gravity] slow overhead antimetal scan targetType={} uuid={} pos=({}, {}, {}) dim={} elapsedMs={} inverted={} forced={} gameTime={}",
livingEntity.getType(), livingEntity.getUUID(), livingEntity.getX(), livingEntity.getY(), livingEntity.getZ(),
livingEntity.level().dimension().location(), elapsedMs,
com.craisinlord.anthology.gravity.GravityApi.isGravityInverted(livingEntity),
com.craisinlord.anthology.gravity.GravityApi.isGravityForced(livingEntity),
gameTime
);
}
if (!directlyBelowAntimetal) {
return;
}
if (existingInverted == null || existingInverted.getDuration() <= ANTIMETAL_INVERTED_REFRESH_THRESHOLD_TICKS) {
livingEntity.addEffect(new MobEffectInstance(AnthologyEffects.inverted(), ANTIMETAL_INVERTED_REFRESH_TICKS, 0, false, false, false));
spawnAntimetalInversionParticles(livingEntity);
}
}
private static boolean shouldScanOverheadAntimetal(LivingEntity entity, MobEffectInstance existingInverted, long gameTime) {
if (existingInverted != null && existingInverted.getDuration() <= ANTIMETAL_INVERTED_REFRESH_THRESHOLD_TICKS) {
return true;
}
int interval = entity instanceof Player ? ANTIMETAL_PLAYER_SCAN_INTERVAL_TICKS : ANTIMETAL_MOB_SCAN_INTERVAL_TICKS;
long phase = (long) entity.getUUID().hashCode() + gameTime;
return Math.floorMod(phase, interval) == 0L;
}
private static boolean isInOrBelowAntimetalScaffolding(LivingEntity entity) {
AABB bounds = entity.getBoundingBox().deflate(1.0E-3D);
int minX = net.minecraft.util.Mth.floor(bounds.minX);
@@ -485,18 +531,16 @@ public final class AntarchyForgeEvents {
int minX = net.minecraft.util.Mth.floor(bounds.minX);
int maxX = net.minecraft.util.Mth.floor(bounds.maxX);
int minY = net.minecraft.util.Mth.floor(bounds.minY);
int maxY = net.minecraft.util.Mth.floor(bounds.maxY);
int minZ = net.minecraft.util.Mth.floor(bounds.minZ);
int maxZ = net.minecraft.util.Mth.floor(bounds.maxZ);
net.minecraft.core.BlockPos.MutableBlockPos crystalPos = new net.minecraft.core.BlockPos.MutableBlockPos();
for (int x = minX; x <= maxX; x++) {
for (int y = minY; y <= maxY; y++) {
for (int z = minZ; z <= maxZ; z++) {
net.minecraft.core.BlockPos crystalPos = new net.minecraft.core.BlockPos(x, y + 1, z);
if (entity.level().getBlockState(crystalPos).is(AntarchyTags.Blocks.ANTIMETAL_INVERSION_BLOCKS)) {
return true;
}
for (int z = minZ; z <= maxZ; z++) {
crystalPos.set(x, maxY + 1, z);
if (entity.level().getBlockState(crystalPos).is(com.craisinlord.antarchy.content.AntarchyTags.Blocks.ANTIMETAL_INVERSION_BLOCKS)) {
return true;
}
}
}
@@ -600,9 +644,7 @@ public final class AntarchyForgeEvents {
- access.antarchy$getArmorShieldsActive() - access.antarchy$getArmorShieldLostCount())
);
int currentCap = access.antarchy$getAppleShieldsActive() + access.antarchy$getAppleShieldLostCount();
// Only grant newly-added capacity (e.g. first application, or a higher amplifier).
// A mere duration refresh of an already-active ward must not reset shields that are
// already lost, nor restart their recharge timer.
if (targetCap > currentCap) {
access.antarchy$setAppleShieldsActive(access.antarchy$getAppleShieldsActive() + (targetCap - currentCap));
syncBloodglass((ServerPlayer) player);
@@ -681,8 +723,8 @@ public final class AntarchyForgeEvents {
if (changed && player instanceof ServerPlayer sp) {
syncBloodglass(sp);
sp.playNotifySound(
net.minecraft.sounds.SoundEvents.AMETHYST_BLOCK_CHIME,
net.minecraft.sounds.SoundSource.PLAYERS, 0.6f, 1.6f);
AntarchySoundEvents.BLOODGLASS_WARD_HEART_REGEN.get(),
net.minecraft.sounds.SoundSource.PLAYERS, 1.0f, 1.0f);
}
}
static void handleBloodCrystalArmorEquip(LivingEquipmentChangeEvent event) {
@@ -701,7 +743,7 @@ public final class AntarchyForgeEvents {
BloodglassAccess access = (BloodglassAccess) player;
if (fromIsBC && !toIsBC) {
// Unequipped BC armor, remove one shield slot
if (access.antarchy$getArmorShieldsActive() > 0) {
access.antarchy$setArmorShieldsActive(access.antarchy$getArmorShieldsActive() - 1);
} else if (access.antarchy$getArmorShieldLostCount() > 0) {
@@ -711,7 +753,7 @@ public final class AntarchyForgeEvents {
}
}
} else if (!fromIsBC && toIsBC) {
// Newly equipped BC armor,only add if not already accounted for (by respawn init)
int bcPieces = countBCArmorPieces(player);
int currentTotal = access.antarchy$getArmorShieldsActive() + access.antarchy$getArmorShieldLostCount();
if (currentTotal < bcPieces) {
@@ -719,8 +761,7 @@ public final class AntarchyForgeEvents {
access.antarchy$setArmorRechargeTimer(AntarchySettings.bloodCrystalArmorShieldRechargeTicks());
}
} else if (fromIsBC) {
// BC armor replaced with another BC armor (or same after re-equip sequence)
// Remove old shield, start recharging new one and reset timer
if (access.antarchy$getArmorShieldsActive() > 0) {
access.antarchy$setArmorShieldsActive(access.antarchy$getArmorShieldsActive() - 1);
} else if (access.antarchy$getArmorShieldLostCount() > 0) {
@@ -747,12 +788,12 @@ public final class AntarchyForgeEvents {
static void handleBloodCrystalBootsFall(LivingFallEvent event) {
if (!(event.getEntity() instanceof Player player)) return;
if (!com.craisinlord.antarchy.content.gravity.AntarchyGravityApi.isGravityInverted(player)) return;
if (!(player.getItemBySlot(net.minecraft.world.entity.EquipmentSlot.FEET).getItem() instanceof BloodCrystalArmorItem)) return;
if (!com.craisinlord.anthology.gravity.GravityApi.isGravityInverted(player)) return;
if (com.craisinlord.antarchy.content.enchantment.AntarchyEnchantments.featherRisingLevel(player) <= 0) return;
event.setCanceled(true);
}
static void handleBloodglassShield(LivingHurtEvent event) {
static void handleBloodglassShield(LivingAttackEvent event) {
if (!(event.getEntity() instanceof Player player)) return;
if (player.level().isClientSide()) return;
@@ -764,7 +805,6 @@ public final class AntarchyForgeEvents {
int totalActive = access.antarchy$getTotalShieldsActive();
if (totalActive <= 0) return;
// Consume apple shields first, then armor shields
if (access.antarchy$getAppleShieldsActive() > 0) {
access.antarchy$setAppleShieldsActive(access.antarchy$getAppleShieldsActive() - 1);
access.antarchy$setAppleShieldLostCount(access.antarchy$getAppleShieldLostCount() + 1);
@@ -786,7 +826,7 @@ public final class AntarchyForgeEvents {
serverLevel.broadcastEntityEvent(player, (byte) 2);
serverLevel.playSound(null, player.blockPosition(),
net.minecraft.sounds.SoundEvents.GLASS_BREAK,
AntarchySoundEvents.BLOODGLASS_WARD_HEART_BREAK.get(),
net.minecraft.sounds.SoundSource.PLAYERS, 1.0f, 1.0f);
serverLevel.sendParticles(
@@ -811,8 +851,6 @@ public final class AntarchyForgeEvents {
return;
}
// Shared item code now scales arrow base damage directly so attribute and projectile
// modifiers stay in the damage pipeline. Leave non-player hits untouched here.
}
static void handleUltimateCrossbowDamage(LivingHurtEvent event) {
@@ -821,9 +859,8 @@ public final class AntarchyForgeEvents {
}
}
static void handleNightmareArmorDoubleDamage(LivingHurtEvent event) {
if (com.craisinlord.antarchy.content.item.RoyalGuardianSwordAbilities.isApplyingSecondaryDamage()) return;
net.minecraft.world.damagesource.DamageSource source = event.getSource();
if (!(source.getEntity() instanceof net.minecraft.world.entity.LivingEntity attacker)) return;
if (!attacker.getAttributes().hasAttribute(AntarchyForgeMisc.DOUBLE_DAMAGE_CHANCE.get())) return;
@@ -844,7 +881,39 @@ public final class AntarchyForgeEvents {
}
}
static void handleAntiwaterDamage(LivingHurtEvent event) {
static void handleBossMagicBurstMitigation(LivingHurtEvent event) {
LivingEntity boss = event.getEntity();
if (!boss.getType().is(AntarchyTags.Entities.SPELL_RESISTANT_BOSS)) return;
if (!com.craisinlord.antarchy.content.boss.BossCombatUtil.isMagicBurstSource(event.getSource())) return;
float maxHealth = boss.getMaxHealth();
float amount = event.getAmount();
float perHitCap = maxHealth * (float) AntarchySettings.bossMagicPerHitCapFraction();
if (amount > perHitCap) {
amount = perHitCap;
}
float windowCap = maxHealth * (float) AntarchySettings.bossMagicWindowCapFraction();
float remainingBudget = com.craisinlord.antarchy.content.boss.BossCombatUtil.remainingWindowBudget(boss, windowCap);
boolean breachedWindow = amount > remainingBudget;
if (breachedWindow) {
amount = Math.max(0.0F, remainingBudget);
}
com.craisinlord.antarchy.content.boss.BossCombatUtil.trackMagicBurstWindow(boss, amount, AntarchySettings.bossMagicWindowTicks());
if (breachedWindow) {
int breaches = com.craisinlord.antarchy.content.boss.BossCombatUtil.recordMagicWindowBreach(boss);
if (breaches >= AntarchySettings.bossMagicWardTriggerBreaches()) {
com.craisinlord.antarchy.content.boss.BossCombatUtil.triggerMagicWard(boss, AntarchySettings.bossMagicWardDurationTicks());
}
}
event.setAmount(amount);
}
static void handleAntiwaterDamage(LivingAttackEvent event) {
if (!event.getSource().is(DamageTypes.FALL)) {
return;
}
@@ -884,6 +953,13 @@ public final class AntarchyForgeEvents {
AttitudeAdjusterSlamManager.markSpecialHit(player);
}
static void handlePortalGunAttackEntity(AttackEntityEvent event) {
if (event.getEntity().getMainHandItem().getItem() instanceof com.craisinlord.antarchy.content.item.PortalGunItem
|| event.getEntity().getOffhandItem().getItem() instanceof com.craisinlord.antarchy.content.item.PortalGunItem) {
event.setCanceled(true);
}
}
static void handleScorpionWhipLeftClickBlock(PlayerInteractEvent.LeftClickBlock event) {
if (!(event.getEntity() instanceof ServerPlayer player)) {
return;
@@ -894,6 +970,13 @@ public final class AntarchyForgeEvents {
event.setCanceled(true);
}
static void handlePortalGunLeftClickBlock(PlayerInteractEvent.LeftClickBlock event) {
if (!(event.getEntity().getMainHandItem().getItem() instanceof com.craisinlord.antarchy.content.item.PortalGunItem)) {
return;
}
event.setCanceled(true);
}
static void handleScorpionWhipRightClickBlock(PlayerInteractEvent.RightClickBlock event) {
if (!(event.getEntity() instanceof ServerPlayer player)) {
return;
@@ -910,6 +993,14 @@ public final class AntarchyForgeEvents {
}
}
static void handleGiantFryingPanRightClickItem(PlayerInteractEvent.RightClickItem event) {
InteractionResult result = com.craisinlord.antarchy.content.item.GiantFryingPanItem.handleMainHandUse(event.getLevel(), event.getEntity(), event.getHand());
if (result != InteractionResult.PASS) {
event.setCanceled(true);
event.setCancellationResult(result);
}
}
static void handleScorpionWhipRightClickItem(PlayerInteractEvent.RightClickItem event) {
if (!(event.getEntity() instanceof ServerPlayer player)) {
return;
@@ -970,24 +1061,6 @@ public final class AntarchyForgeEvents {
return player.hasEffect(AntarchyForgeMisc.PARALYZED.get());
}
static void handleDreamSandJump(LivingEvent.LivingJumpEvent event) {
LivingEntity livingEntity = event.getEntity();
if (!AntarchySettings.dreamSandEnabled() || isDreamSandLowGravityBlacklisted(livingEntity)) {
clearDreamSandLowGravity(livingEntity);
} else if (isStandingOnDreamSand(livingEntity)) {
livingEntity.setDeltaMovement(
livingEntity.getDeltaMovement().x,
livingEntity.getDeltaMovement().y * AntarchySettings.dreamSandJumpVelocityMultiplier(),
livingEntity.getDeltaMovement().z
);
DreamSandLowGravityAccess access = dreamSandAccess(livingEntity);
access.antarchy$setDreamSandLowGravityActive(true);
access.antarchy$setDreamSandLowGravityTicksRemaining((int) Math.max(1L, Math.round(AntarchySettings.dreamSandEffectDurationSeconds() * 20.0D)));
access.antarchy$setDreamSandLandingGraceTicks(0);
}
}
static void tickDreadAndIchor(TickEvent.PlayerTickEvent event) {
if (event.phase != TickEvent.Phase.END) return;
Player player = event.player;
@@ -1006,6 +1079,13 @@ public final class AntarchyForgeEvents {
}
}
static void tickWormHooks(TickEvent.PlayerTickEvent event) {
if (event.phase != TickEvent.Phase.END) return;
if (event.player instanceof ServerPlayer player) {
com.craisinlord.antarchy.content.item.WormHookTetherManager.tick(player);
}
}
static void tickAttitudeAdjusterSlams(TickEvent.ServerTickEvent event) {
if (event.phase != TickEvent.Phase.END) return;
for (ServerLevel level : event.getServer().getAllLevels()) {
@@ -1013,49 +1093,6 @@ public final class AntarchyForgeEvents {
}
}
static void tickDreamSandLowGravity(LivingEvent.LivingTickEvent event) {
LivingEntity livingEntity = event.getEntity();
DreamSandLowGravityAccess access = dreamSandAccess(livingEntity);
int landingGraceTicks = access.antarchy$getDreamSandLandingGraceTicks();
if (landingGraceTicks > 0) {
access.antarchy$setDreamSandLandingGraceTicks(landingGraceTicks - 1);
}
if (!AntarchySettings.dreamSandEnabled() || isDreamSandLowGravityBlacklisted(livingEntity) || !access.antarchy$isDreamSandLowGravityActive()) {
return;
}
int remainingTicks = access.antarchy$getDreamSandLowGravityTicksRemaining();
if (remainingTicks > 0) {
access.antarchy$setDreamSandLowGravityTicksRemaining(remainingTicks - 1);
}
if (access.antarchy$getDreamSandLowGravityTicksRemaining() <= 0) {
clearDreamSandLowGravity(livingEntity);
return;
}
if (isOnSolidGround(livingEntity)) {
access.antarchy$setDreamSandLowGravityActive(false);
access.antarchy$setDreamSandLowGravityTicksRemaining(0);
access.antarchy$setDreamSandLandingGraceTicks(2);
} else if (!livingEntity.onGround() && livingEntity.getDeltaMovement().y < 0.0D) {
livingEntity.setDeltaMovement(
livingEntity.getDeltaMovement().x,
livingEntity.getDeltaMovement().y * AntarchySettings.dreamSandGravityMultiplier(),
livingEntity.getDeltaMovement().z
);
}
}
private static boolean isOnSolidGround(LivingEntity livingEntity) {
return livingEntity.onGround() && livingEntity.getBlockStateOn().blocksMotion();
}
private static boolean isStandingOnDreamSand(LivingEntity livingEntity) {
return livingEntity.level().getBlockState(livingEntity.getOnPosLegacy()).is(AntarchyForgeBlocks.DREAM_SAND.get());
}
static void handleAntiwaterFall(LivingFallEvent event) {
LivingEntity livingEntity = event.getEntity();
if (intersectsAntiwater(livingEntity, livingEntity.getBoundingBox().inflate(0.05D))) {
@@ -1063,23 +1100,6 @@ public final class AntarchyForgeEvents {
}
}
static void handleDreamSandFall(LivingFallEvent event) {
LivingEntity livingEntity = event.getEntity();
DreamSandLowGravityAccess access = dreamSandAccess(livingEntity);
if (!AntarchySettings.dreamSandEnabled()
|| isDreamSandLowGravityBlacklisted(livingEntity)
|| (!access.antarchy$isDreamSandLowGravityActive() && access.antarchy$getDreamSandLandingGraceTicks() <= 0)) {
return;
}
event.setCanceled(true);
}
private static boolean isDreamSandLowGravityBlacklisted(LivingEntity livingEntity) {
return livingEntity.getType().is(AntarchyTags.Entities.DREAM_SAND_LOW_GRAVITY_BLACKLIST);
}
private static boolean intersectsAntiwater(Entity entity, AABB box) {
BlockPos.MutableBlockPos cursor = new BlockPos.MutableBlockPos();
BlockPos min = BlockPos.containing(box.minX, box.minY, box.minZ);
@@ -1100,10 +1120,10 @@ public final class AntarchyForgeEvents {
static void onInvertedEffectExpired(MobEffectEvent.Expired event) {
if (event.getEffectInstance() == null) return;
if (event.getEffectInstance().getEffect() != AntarchyForgeMisc.INVERTED.get()) return;
if (event.getEffectInstance().getEffect() != AnthologyEffects.inverted()) return;
LivingEntity entity = event.getEntity();
if (!entity.level().isClientSide()) {
com.craisinlord.antarchy.content.gravity.AntarchyMountedGravityHelper.syncConnectedStackIgnoring(entity, entity);
com.craisinlord.anthology.gravity.MountedGravityHelper.syncConnectedStackIgnoring(entity, entity);
if (entity instanceof Player player) {
notifyNearbyReveriesOfInversionChange(player);
}
@@ -1120,22 +1140,7 @@ public final class AntarchyForgeEvents {
}
private static void addPotionMix(net.minecraft.world.item.alchemy.Potion input, Item ingredient, net.minecraft.world.item.alchemy.Potion output) {
net.minecraftforge.common.brewing.BrewingRecipeRegistry.addRecipe(new net.minecraftforge.common.brewing.IBrewingRecipe() {
@Override
public boolean isInput(ItemStack stack) {
return stack.is(Items.POTION) && net.minecraft.world.item.alchemy.PotionUtils.getPotion(stack) == input;
}
@Override
public boolean isIngredient(ItemStack stack) {
return stack.is(ingredient);
}
@Override
public ItemStack getOutput(ItemStack input1, ItemStack ingredient1) {
return net.minecraft.world.item.alchemy.PotionUtils.setPotion(new ItemStack(input1.getItem()), output);
}
});
com.craisinlord.antarchy.mixins.PotionBrewingInvoker.antarchy$addMix(input, ingredient, output);
}
static void registerBrewingRecipes() {
@@ -1191,8 +1196,8 @@ public final class AntarchyForgeEvents {
addPotionMix(AntarchyForgeMisc.PARALYSIS.get(), Items.REDSTONE, AntarchyForgeMisc.LONG_PARALYSIS.get());
addPotionMix(Potions.AWKWARD, AntarchyForgeItems.MOLEWORM_ITEM.get(), AntarchyForgeMisc.HASTE.get());
addPotionMix(AntarchyForgeMisc.HASTE.get(), Items.GLOWSTONE_DUST, AntarchyForgeMisc.STRONG_HASTE.get());
addPotionMix(Potions.AWKWARD, AntarchyForgeItems.CLOUD_SHARK_FIN.get(), Potions.SLOW_FALLING);
addPotionMix(Potions.AWKWARD, AntarchyForgeItems.JUMPY_BUG_LEG.get(), Potions.LEAPING);
addPotionMix(Potions.AWKWARD, AntarchyForgeItems.STRATOSHARK_FIN.get(), Potions.SLOW_FALLING);
addPotionMix(Potions.AWKWARD, AntarchyForgeItems.SPRINGBUG_LEG.get(), Potions.LEAPING);
addPotionMix(Potions.AWKWARD, AntarchyForgeItems.CORNEA_EAR.get(), Potions.NIGHT_VISION);
addPotionMix(Potions.AWKWARD, AntarchyForgeItems.URANIUM_NUGGET.get(), AntarchyForgeMisc.SHRINKING.get());
addPotionMix(AntarchyForgeMisc.SHRINKING.get(), Items.GLOWSTONE_DUST, AntarchyForgeMisc.STRONG_SHRINKING.get());
@@ -1200,8 +1205,13 @@ public final class AntarchyForgeEvents {
addPotionMix(Potions.AWKWARD, AntarchyForgeItems.TITANIUM_NUGGET.get(), AntarchyForgeMisc.GROWING.get());
addPotionMix(AntarchyForgeMisc.GROWING.get(), Items.GLOWSTONE_DUST, AntarchyForgeMisc.STRONG_GROWING.get());
addPotionMix(AntarchyForgeMisc.STRONG_GROWING.get(), Items.GLOWSTONE_DUST, AntarchyForgeMisc.EXTREME_GROWING.get());
addPotionMix(Potions.AWKWARD, AntarchyForgeItems.KING_SCALE.get(), AntarchyForgeMisc.COMMAND.get());
addPotionMix(AntarchyForgeMisc.COMMAND.get(), Items.REDSTONE, AntarchyForgeMisc.LONG_COMMAND.get());
addPotionMix(Potions.AWKWARD, AntarchyForgeItems.QUEEN_SCALE.get(), AntarchyForgeMisc.TIME_DILATION.get());
addPotionMix(AntarchyForgeMisc.TIME_DILATION.get(), Items.GLOWSTONE_DUST, AntarchyForgeMisc.LONG_TIME_DILATION.get());
addPotionMix(AntarchyForgeMisc.TIME_DILATION.get(), Items.FERMENTED_SPIDER_EYE, AntarchyForgeMisc.TIME_CONTRACTION.get());
addPotionMix(AntarchyForgeMisc.TIME_CONTRACTION.get(), Items.GLOWSTONE_DUST, AntarchyForgeMisc.LONG_TIME_CONTRACTION.get());
}
static void onMobEffectApplicable(MobEffectEvent.Applicable event) {
@@ -1215,7 +1225,7 @@ public final class AntarchyForgeEvents {
}
if (event.getEntity().getType().is(AntarchyTags.Entities.INVERTED_IMMUNE)
&& event.getEffectInstance().getEffect() == AntarchyForgeMisc.INVERTED.get()) {
&& event.getEffectInstance().getEffect() == AnthologyEffects.inverted()) {
event.setResult(net.minecraftforge.eventbus.api.Event.Result.DENY);
return;
}
@@ -1233,18 +1243,17 @@ public final class AntarchyForgeEvents {
}
if (event.getEntity() instanceof Player player
&& event.getEffectInstance().getEffect() == AntarchyForgeMisc.INVERTED.get()
&& !player.hasEffect(AntarchyForgeMisc.INVERTED.get())) {
&& event.getEffectInstance().getEffect() == AnthologyEffects.inverted()
&& !player.hasEffect(AnthologyEffects.inverted())) {
notifyNearbyReveriesOfInversionChange(player);
}
}
static void onInvertedEffectRemoved(MobEffectEvent.Remove event) {
if (event.getEffect() != AntarchyForgeMisc.INVERTED.get()) return;
if (event.getEffect() != AnthologyEffects.inverted()) return;
LivingEntity entity = event.getEntity();
if (!entity.level().isClientSide()) {
com.craisinlord.antarchy.content.gravity.AntarchyMountedGravityHelper.syncConnectedStackIgnoring(entity, entity);
com.craisinlord.anthology.gravity.MountedGravityHelper.syncConnectedStackIgnoring(entity, entity);
if (entity instanceof Player player) {
notifyNearbyReveriesOfInversionChange(player);
}
@@ -1252,7 +1261,7 @@ public final class AntarchyForgeEvents {
}
static void handleBlockToolModification(BlockEvent.BlockToolModificationEvent event) {
if (event.getToolAction() != net.minecraftforge.common.ToolActions.AXE_STRIP) {
if (event.getToolAction() != ToolActions.AXE_STRIP) {
return;
}
@@ -1288,18 +1297,52 @@ public final class AntarchyForgeEvents {
if (state.is(AntarchyForgeBlocks.PEACH_WOOD.get())) {
event.setFinalState(AntarchyForgeBlocks.STRIPPED_PEACH_WOOD.get().defaultBlockState().setValue(RotatedPillarBlock.AXIS, state.getValue(RotatedPillarBlock.AXIS)));
return;
}
if (state.is(AntarchyForgeBlocks.NADIR_LOG.get())) {
event.setFinalState(AntarchyForgeBlocks.STRIPPED_NADIR_LOG.get().defaultBlockState().setValue(RotatedPillarBlock.AXIS, state.getValue(RotatedPillarBlock.AXIS)));
return;
}
if (state.is(AntarchyForgeBlocks.NADIR_WOOD.get())) {
event.setFinalState(AntarchyForgeBlocks.STRIPPED_NADIR_WOOD.get().defaultBlockState().setValue(RotatedPillarBlock.AXIS, state.getValue(RotatedPillarBlock.AXIS)));
return;
}
if (state.is(AntarchyForgeBlocks.ROYAL_LOG.get())) {
event.setFinalState(AntarchyForgeBlocks.STRIPPED_ROYAL_LOG.get().defaultBlockState().setValue(RotatedPillarBlock.AXIS, state.getValue(RotatedPillarBlock.AXIS)));
return;
}
if (state.is(AntarchyForgeBlocks.ROYAL_WOOD.get())) {
event.setFinalState(AntarchyForgeBlocks.STRIPPED_ROYAL_WOOD.get().defaultBlockState().setValue(RotatedPillarBlock.AXIS, state.getValue(RotatedPillarBlock.AXIS)));
}
}
static void onCommonSetup(FMLCommonSetupEvent event) {
BloodCrystalShardItem.SYNC_BLOODGLASS = AntarchyForgeEvents::syncBloodglass;
if (com.craisinlord.antarchy.compat.infinity.InfinityCompat.get().isAvailable()) {
com.craisinlord.antarchy.compat.infinity.InfinityConfigRefresh.refreshIfStale(net.minecraftforge.fml.loading.FMLPaths.CONFIGDIR.get());
}
event.enqueueWork(() -> {
Holder<net.minecraft.world.entity.ai.village.poi.PoiType> computerPoi = BuiltInRegistries.POINT_OF_INTEREST_TYPE.getHolderOrThrow(
net.minecraft.resources.ResourceKey.create(Registries.POINT_OF_INTEREST_TYPE,
new net.minecraft.resources.ResourceLocation(Antarchy.MODID, "computer")));
net.minecraft.world.level.block.Block computerBlock = com.craisinlord.antos.forge.AntOSForgeContent.COMPUTER.get();
for (net.minecraft.world.level.block.state.BlockState state : computerBlock.getStateDefinition().getPossibleStates()) {
PoiTypesAccessor.antarchy$getTypeByState().put(state, computerPoi);
}
registerBrewingRecipes();
DispenserBlock.registerBehavior(AntarchyForgeItems.SHRINK_RAY.get(), new SizeRayDispenseBehavior());
DispenserBlock.registerBehavior(AntarchyForgeItems.GROWTH_RAY.get(), new SizeRayDispenseBehavior());
DispenserBlock.registerBehavior(AntarchyForgeItems.SQUIDZOOKA.get(), new SquidzookaDispenseBehavior());
DispenserBlock.registerBehavior(AntarchyForgeItems.RPO_LAUNCHER.get(), new RpoLauncherDispenseBehavior());
DispenserBlock.registerBehavior(AntarchyForgeItems.WATER_CANNON.get(), new WaterCannonDispenseBehavior());
DispenserBlock.registerBehavior(AntarchyForgeItems.VORTEX_CHARGE.get(), new com.craisinlord.antarchy.content.dispenser.VortexChargeDispenseBehavior());
DispenserBlock.registerBehavior(AntarchyForgeItems.EYE_OF_THE_STORM.get(), new com.craisinlord.antarchy.content.dispenser.EyeOfTheStormDispenseBehavior());
DispenserBlock.registerBehavior(AntarchyForgeItems.BUG_SPRAY.get(), new BugSprayDispenseBehavior());
AntimetalMinecartDispenseBehavior antimetalMinecartDispenseBehavior = new AntimetalMinecartDispenseBehavior();
DispenserBlock.registerBehavior(Items.MINECART, antimetalMinecartDispenseBehavior);
DispenserBlock.registerBehavior(Items.CHEST_MINECART, antimetalMinecartDispenseBehavior);
@@ -1308,7 +1351,7 @@ public final class AntarchyForgeEvents {
DispenserBlock.registerBehavior(Items.HOPPER_MINECART, antimetalMinecartDispenseBehavior);
DispenserBlock.registerBehavior(Items.COMMAND_BLOCK_MINECART, antimetalMinecartDispenseBehavior);
LucidEyeProjectileEntity.defaultItemSupplier = () -> AntarchyForgeItems.LUCID_PEARL.get();
LucidEntity.invertedEffectSupplier = () -> AntarchyForgeMisc.INVERTED.get();
LucidEntity.invertedEffectSupplier = AnthologyEffects::inverted;
FluidInteractionRegistry.addInteraction(
AntarchyForgeFluidTypes.ANTIWATER_TYPE.get(),
new FluidInteractionRegistry.InteractionInformation(
@@ -1319,26 +1362,12 @@ public final class AntarchyForgeEvents {
)
);
LucidEntity.boltEntityTypeSupplier = () -> AntarchyForgeEntites.LUCID_BOLT.get();
LucidBoltEntity.invertedEffectSupplier = () -> AntarchyForgeMisc.INVERTED.get();
LucidEyeProjectileEntity.invertedEffectSupplier = () -> AntarchyForgeMisc.INVERTED.get();
MultipartFramework.bootstrap(
(owner, partIndex, spec) -> new MultipartPartEntity((Entity) owner, owner, partIndex, spec),
new MultipartFramework.NetworkBridge() {
@Override
public void sendAttack(java.util.UUID parentId, int partIndex, float damage) {
AntarchyForgeNetworkCore.sendToServer(
new com.craisinlord.antarchy.content.entity.multipart.network.MultipartAttackPayload(parentId, partIndex, damage)
);
}
@Override
public void sendInteract(java.util.UUID parentId, int partIndex, int handId) {
AntarchyForgeNetworkCore.sendToServer(
new com.craisinlord.antarchy.content.entity.multipart.network.MultipartInteractPayload(parentId, partIndex, handId)
);
}
}
);
LucidBoltEntity.invertedEffectSupplier = AnthologyEffects::inverted;
LucidEyeProjectileEntity.invertedEffectSupplier = AnthologyEffects::inverted;
VortexEntity.windVortexTypeSupplier = () -> AntarchyForgeEntites.WIND_VORTEX.get();
VortexChargeProjectileEntity.defaultItemSupplier = () -> AntarchyForgeItems.VORTEX_CHARGE.get();
VortexChargeProjectileEntity.projectileTypeSupplier = () -> AntarchyForgeEntites.VORTEX_CHARGE_PROJECTILE.get();
VortexChargeProjectileEntity.windVortexTypeSupplier = () -> AntarchyForgeEntites.WIND_VORTEX.get();
ComposterBlock.COMPOSTABLES.put(AntarchyForgeBlocks.UMBRAL_MOSS_BLOCK.get().asItem(), 0.65f);
ComposterBlock.COMPOSTABLES.put(AntarchyForgeBlocks.UMBRAL_MOSS_CARPET.get().asItem(), 0.3f);
ComposterBlock.COMPOSTABLES.put(AntarchyForgeBlocks.BLUSH_MOSS_BLOCK.get().asItem(), 0.65f);
@@ -1348,6 +1377,11 @@ public final class AntarchyForgeEvents {
ComposterBlock.COMPOSTABLES.put(AntarchyForgeBlocks.PEACH_LEAVES.get().asItem(), 0.3f);
ComposterBlock.COMPOSTABLES.put(AntarchyForgeItems.PEACH_SAPLING_ITEM.get(), 0.3f);
ComposterBlock.COMPOSTABLES.put(AntarchyForgeItems.NADIR_SAPLING_ITEM.get(), 0.3f);
ComposterBlock.COMPOSTABLES.put(AntarchyForgeItems.NADIR_FERN_ITEM.get(), 0.3f);
ComposterBlock.COMPOSTABLES.put(AntarchyForgeItems.LARGE_NADIR_FERN_ITEM.get(), 0.5f);
ComposterBlock.COMPOSTABLES.put(AntarchyForgeItems.DUSKBELL_ITEM.get(), 0.65f);
ComposterBlock.COMPOSTABLES.put(AntarchyForgeItems.WHIRLFLOWER_ITEM.get(), 0.65f);
ComposterBlock.COMPOSTABLES.put(AntarchyForgeItems.GOREVINE_ITEM.get(), 0.5f);
ComposterBlock.COMPOSTABLES.put(AntarchyForgeItems.CORN.get(), 0.65f);
ComposterBlock.COMPOSTABLES.put(AntarchyForgeItems.CORN_SEEDS.get(), 0.3f);
ComposterBlock.COMPOSTABLES.put(AntarchyForgeItems.PEACH.get(), 0.65f);
@@ -1,19 +1,18 @@
package com.craisinlord.antarchy.forge.registry;
import com.craisinlord.anthology.effect.AnthologyEffects;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.client.particle.InvertedGeyserBaseParticleOptions;
import com.craisinlord.antarchy.content.client.particle.InvertedGeyserParticleOptions;
import com.craisinlord.antarchy.content.effect.DreadMobEffect;
import com.craisinlord.antarchy.content.effect.BleedingMobEffect;
import com.craisinlord.antarchy.content.effect.BloodMoonMobEffect;
import com.craisinlord.antarchy.content.effect.GoopedMobEffect;
import com.craisinlord.antarchy.content.effect.GrowthMobEffect;
import com.craisinlord.antarchy.content.effect.InvertedMobEffect;
import com.craisinlord.antarchy.content.effect.CommandedMobEffect;
import com.craisinlord.antarchy.content.effect.ParalyzedMobEffect;
import com.craisinlord.antarchy.content.effect.ShrinkMobEffect;
import com.craisinlord.antarchy.content.effect.StinkyMobEffect;
import com.craisinlord.antarchy.content.effect.DilatedMobEffect;
import com.craisinlord.antarchy.content.effect.ContractedMobEffect;
import com.craisinlord.antarchy.content.enchantment.ChronosphereEnchantment;
import com.craisinlord.antarchy.content.enchantment.FeatherRisingEnchantment;
import com.craisinlord.antarchy.content.recipe.AmericanizeRecipe;
import com.craisinlord.antarchy.content.worldgen.ants.BrownAntNestFeature;
import com.craisinlord.antarchy.content.worldgen.ants.RainbowAntNestFeature;
@@ -33,18 +32,21 @@ import com.craisinlord.antarchy.content.worldgen.elythia.*;
import com.craisinlord.antarchy.forge.worldgen.CornPatchFeature;
import com.craisinlord.antarchy.forge.worldgen.LumenLilyPadFeature;
import com.craisinlord.antarchy.content.worldgen.thoraxis.*;
import com.craisinlord.antarchy.content.worldgen.truffalo.*;
import com.craisinlord.antarchy.content.worldgen.royal.*;
import com.craisinlord.antarchy.forge.content.fluid.AntiwaterFluid;
import net.minecraft.core.Holder;
import net.minecraft.core.particles.ParticleType;
import net.minecraft.core.particles.SimpleParticleType;
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.core.particles.SimpleParticleType;
import net.minecraft.core.registries.Registries;
import net.minecraft.world.flag.FeatureFlags;
import net.minecraft.world.effect.MobEffect;
import net.minecraft.world.effect.MobEffectInstance;
import net.minecraft.world.effect.MobEffects;
import net.minecraft.world.entity.ai.attributes.Attribute;
import net.minecraft.world.entity.EquipmentSlot;
import net.minecraft.world.entity.ai.village.poi.PoiType;
import net.minecraft.world.entity.npc.VillagerProfession;
import net.minecraft.world.inventory.MenuType;
import net.minecraft.world.item.alchemy.Potion;
import net.minecraft.world.item.enchantment.Enchantment;
@@ -61,6 +63,39 @@ import net.minecraftforge.registries.RegistryObject;
import net.minecraftforge.registries.ForgeRegistries;
public final class AntarchyForgeMisc {
private static final DeferredRegister<PoiType> POI_TYPES = DeferredRegister.create(Registries.POINT_OF_INTEREST_TYPE, Antarchy.MODID);
private static final DeferredRegister<VillagerProfession> VILLAGER_PROFESSIONS = DeferredRegister.create(Registries.VILLAGER_PROFESSION, Antarchy.MODID);
public static final RegistryObject<PoiType> COMPUTER_POI = POI_TYPES.register("computer",
() -> new PoiType(
java.util.Set.copyOf(com.craisinlord.antos.forge.AntOSForgeContent.COMPUTER.get().getStateDefinition().getPossibleStates()),
1,
1));
public static final RegistryObject<VillagerProfession> COMPUTER_SCIENTIST = VILLAGER_PROFESSIONS.register("computer_scientist",
() -> new VillagerProfession(
"computer_scientist",
holder -> holder.value() == COMPUTER_POI.get(),
holder -> holder.value() == COMPUTER_POI.get(),
com.google.common.collect.ImmutableSet.of(),
com.google.common.collect.ImmutableSet.of(),
net.minecraft.sounds.SoundEvents.VILLAGER_WORK_LIBRARIAN));
public static final RegistryObject<PoiType> PEST_CONTROL_POI = POI_TYPES.register("pest_control",
() -> new PoiType(java.util.Set.copyOf(AntarchyForgeBlocks.ANT_TRAP.get().getStateDefinition().getPossibleStates()), 1, 1));
public static final RegistryObject<PoiType> ELYTHIA_PORTAL_POI = POI_TYPES.register("elythia_portal",
() -> new PoiType(java.util.Set.copyOf(AntarchyForgeBlocks.ELYTHIA_PORTAL.get().getStateDefinition().getPossibleStates()), 0, 1));
public static final RegistryObject<PoiType> THORAXIS_PORTAL_POI = POI_TYPES.register("thoraxis_portal",
() -> new PoiType(java.util.Set.copyOf(AntarchyForgeBlocks.THORAXIS_PORTAL.get().getStateDefinition().getPossibleStates()), 0, 1));
public static final RegistryObject<PoiType> CAVARYN_PORTAL_POI = POI_TYPES.register("cavaryn_portal",
() -> new PoiType(java.util.Set.copyOf(AntarchyForgeBlocks.CAVARYN_PORTAL.get().getStateDefinition().getPossibleStates()), 0, 1));
public static final RegistryObject<VillagerProfession> PEST_CONTROL = VILLAGER_PROFESSIONS.register("pest_control",
() -> new VillagerProfession("pest_control", holder -> holder.value() == PEST_CONTROL_POI.get(),
holder -> holder.value() == PEST_CONTROL_POI.get(), com.google.common.collect.ImmutableSet.of(), com.google.common.collect.ImmutableSet.of(), net.minecraft.sounds.SoundEvents.VILLAGER_WORK_FLETCHER));
private static final DeferredRegister<MobEffect> MOB_EFFECTS = DeferredRegister.create(Registries.MOB_EFFECT, Antarchy.MODID);
private static final DeferredRegister<Potion> POTIONS = DeferredRegister.create(Registries.POTION, Antarchy.MODID);
private static final DeferredRegister<FluidType> FLUID_TYPES = DeferredRegister.create(ForgeRegistries.Keys.FLUID_TYPES, Antarchy.MODID);
@@ -73,9 +108,9 @@ public final class AntarchyForgeMisc {
private static final DeferredRegister<MenuType<?>> MENU_TYPES = DeferredRegister.create(Registries.MENU, Antarchy.MODID);
private static final DeferredRegister<Enchantment> ENCHANTMENTS = DeferredRegister.create(Registries.ENCHANTMENT, Antarchy.MODID);
public static final RegistryObject<Enchantment> FEATHER_RISING = ENCHANTMENTS.register("feather_rising",
() -> new FeatherRisingEnchantment(Enchantment.Rarity.RARE, EquipmentSlot.FEET));
() -> new com.craisinlord.antarchy.content.enchantment.FeatherRisingEnchantment());
public static final RegistryObject<Enchantment> CHRONOSPHERE = ENCHANTMENTS.register("chronosphere",
() -> new ChronosphereEnchantment(Enchantment.Rarity.RARE, EquipmentSlot.CHEST));
() -> new com.craisinlord.antarchy.content.enchantment.ChronosphereEnchantment());
private static final DeferredRegister<net.minecraft.world.entity.animal.FrogVariant> FROG_VARIANTS =
DeferredRegister.create(Registries.FROG_VARIANT, Antarchy.MODID);
public static final RegistryObject<net.minecraft.world.entity.animal.FrogVariant> ELYTHIA_FROG_VARIANT = FROG_VARIANTS.register(
@@ -87,11 +122,9 @@ public final class AntarchyForgeMisc {
public static final RegistryObject<net.minecraft.world.item.crafting.RecipeSerializer<AmericanizeRecipe>> AMERICANIZE_SERIALIZER =
RECIPE_SERIALIZERS.register("americanize", () -> AmericanizeRecipe.SERIALIZER);
public static final RegistryObject<net.minecraft.world.item.crafting.RecipeSerializer<com.craisinlord.antarchy.content.recipe.PortalGunVariantRecipe>> PORTAL_GUN_VARIANT_SERIALIZER =
RECIPE_SERIALIZERS.register("portal_gun_variant", () -> com.craisinlord.antarchy.content.recipe.PortalGunVariantRecipe.SERIALIZER);
public static final RegistryObject<Attribute> SCALE = ATTRIBUTES.register(
"scale",
() -> new net.minecraft.world.entity.ai.attributes.RangedAttribute("attribute.antarchy.scale", 1.0, 0.0625, 16.0).setSyncable(true)
);
public static final RegistryObject<Attribute> DOUBLE_DAMAGE_CHANCE = ATTRIBUTES.register(
"double_damage_chance",
() -> new net.minecraft.world.entity.ai.attributes.RangedAttribute("attribute.antarchy.double_damage_chance", 0.0, 0.0, 1.0).setSyncable(true)
@@ -104,55 +137,70 @@ public final class AntarchyForgeMisc {
"dorrie_inventory",
() -> new MenuType<>(com.craisinlord.antarchy.content.menu.DorrieInventoryMenu::new, FeatureFlags.DEFAULT_FLAGS)
);
public static final RegistryObject<MenuType<com.craisinlord.antarchy.content.menu.RoyalJudgmentMenu>> ROYAL_JUDGMENT_MENU = MENU_TYPES.register(
"royal_judgment",
() -> new MenuType<>(com.craisinlord.antarchy.content.menu.RoyalJudgmentMenu::new, FeatureFlags.DEFAULT_FLAGS)
);
public static final RegistryObject<MenuType<com.craisinlord.antarchy.content.menu.GiantFryingPanMenu>> GIANT_FRYING_PAN_MENU = MENU_TYPES.register(
"giant_frying_pan",
() -> new MenuType<>(com.craisinlord.antarchy.content.menu.GiantFryingPanMenu::new, FeatureFlags.DEFAULT_FLAGS)
);
// Mob effects
public static final RegistryObject<DreadMobEffect> DREAD = MOB_EFFECTS.register("dread", DreadMobEffect::new);
public static final RegistryObject<BleedingMobEffect> BLEEDING = MOB_EFFECTS.register("bleeding", BleedingMobEffect::new);
public static final RegistryObject<BloodMoonMobEffect> BLOOD_MOON = MOB_EFFECTS.register("blood_moon", BloodMoonMobEffect::new);
public static final RegistryObject<ParalyzedMobEffect> PARALYZED = MOB_EFFECTS.register("paralyzed", ParalyzedMobEffect::new);
public static final RegistryObject<InvertedMobEffect> INVERTED = MOB_EFFECTS.register("inverted", InvertedMobEffect::new);
public static final RegistryObject<DilatedMobEffect> DILATED = MOB_EFFECTS.register("dilated", DilatedMobEffect::new);
public static final RegistryObject<ContractedMobEffect> CONTRACTED = MOB_EFFECTS.register("contracted", ContractedMobEffect::new);
public static final RegistryObject<CommandedMobEffect> COMMANDED = MOB_EFFECTS.register("commanded", CommandedMobEffect::new);
public static final RegistryObject<StinkyMobEffect> STINKY = MOB_EFFECTS.register("stinky", StinkyMobEffect::new);
public static final RegistryObject<GoopedMobEffect> GOOPED = MOB_EFFECTS.register("gooped", GoopedMobEffect::new);
public static final RegistryObject<com.craisinlord.antarchy.content.effect.BloodglassWardEffect> BLOODGLASS_WARD = MOB_EFFECTS.register("bloodglass_ward", com.craisinlord.antarchy.content.effect.BloodglassWardEffect::new);
public static final RegistryObject<com.craisinlord.antarchy.content.effect.GlimmeringMobEffect> GLIMMERING = MOB_EFFECTS.register("glimmering", com.craisinlord.antarchy.content.effect.GlimmeringMobEffect::new);
public static final RegistryObject<com.craisinlord.antarchy.content.effect.RoyalVitalityPenaltyEffect> ROYAL_VITALITY_PENALTY = MOB_EFFECTS.register("royal_vitality_penalty", com.craisinlord.antarchy.content.effect.RoyalVitalityPenaltyEffect::new);
public static final RegistryObject<ShrinkMobEffect> SHRINKING_EFFECT = MOB_EFFECTS.register("shrinking", ShrinkMobEffect::new);
public static final RegistryObject<GrowthMobEffect> GROWTH_EFFECT = MOB_EFFECTS.register("growth", GrowthMobEffect::new);
public static final RegistryObject<com.craisinlord.antarchy.content.effect.GlimmeringMobEffect> GLIMMERING = MOB_EFFECTS.register("glimmering", com.craisinlord.antarchy.content.effect.GlimmeringMobEffect::new);
// Potions
public static final RegistryObject<Potion> INVERSION = POTIONS.register("inversion",
() -> new Potion(new MobEffectInstance(mobEffectHolder(INVERTED), 600)));
() -> new Potion(new MobEffectInstance(AnthologyEffects.inverted(), 600)));
public static final RegistryObject<Potion> LONG_INVERSION = POTIONS.register("long_inversion",
() -> new Potion("inversion", new MobEffectInstance(mobEffectHolder(INVERTED), 2400)));
() -> new Potion("inversion", new MobEffectInstance(AnthologyEffects.inverted(), 2400)));
public static final RegistryObject<Potion> COMMAND = POTIONS.register("command",
() -> new Potion(new MobEffectInstance(COMMANDED.get(), 600)));
public static final RegistryObject<Potion> LONG_COMMAND = POTIONS.register("long_command",
() -> new Potion("command", new MobEffectInstance(COMMANDED.get(), 1200)));
public static final RegistryObject<Potion> TIME_DILATION = POTIONS.register("time_dilation",
() -> new Potion(new MobEffectInstance(mobEffectHolder(DILATED), 1200)));
() -> new Potion(new MobEffectInstance(AnthologyEffects.dilated(), 1200)));
public static final RegistryObject<Potion> LONG_TIME_DILATION = POTIONS.register("long_time_dilation",
() -> new Potion("time_dilation", new MobEffectInstance(mobEffectHolder(DILATED), 1200, 1)));
() -> new Potion("time_dilation", new MobEffectInstance(AnthologyEffects.dilated(), 1200, 1)));
public static final RegistryObject<Potion> TIME_CONTRACTION = POTIONS.register("time_contraction",
() -> new Potion(new MobEffectInstance(AnthologyEffects.contracted(), 1200)));
public static final RegistryObject<Potion> LONG_TIME_CONTRACTION = POTIONS.register("long_time_contraction",
() -> new Potion("time_contraction", new MobEffectInstance(AnthologyEffects.contracted(), 1200, 1)));
public static final RegistryObject<Potion> STINKY_POTION = POTIONS.register("stinky",
() -> new Potion(new MobEffectInstance(mobEffectHolder(STINKY), 1200)));
() -> new Potion(new MobEffectInstance(STINKY.get(), 1200)));
public static final RegistryObject<Potion> LONG_STINKY = POTIONS.register("long_stinky",
() -> new Potion("stinky", new MobEffectInstance(mobEffectHolder(STINKY), 2400)));
() -> new Potion("stinky", new MobEffectInstance(STINKY.get(), 2400)));
public static final RegistryObject<Potion> PARALYSIS = POTIONS.register("paralysis",
() -> new Potion(new MobEffectInstance(mobEffectHolder(PARALYZED), 200)));
() -> new Potion(new MobEffectInstance(PARALYZED.get(), 200)));
public static final RegistryObject<Potion> LONG_PARALYSIS = POTIONS.register("long_paralysis",
() -> new Potion("paralysis", new MobEffectInstance(mobEffectHolder(PARALYZED), 400)));
() -> new Potion("paralysis", new MobEffectInstance(PARALYZED.get(), 400)));
public static final RegistryObject<Potion> HASTE = POTIONS.register("haste",
() -> new Potion(new MobEffectInstance(MobEffects.DIG_SPEED, 1200, 0)));
public static final RegistryObject<Potion> STRONG_HASTE = POTIONS.register("strong_haste",
() -> new Potion("haste", new MobEffectInstance(MobEffects.DIG_SPEED, 600, 1)));
public static final RegistryObject<Potion> SHRINKING = POTIONS.register("shrinking",
() -> new Potion(new MobEffectInstance(mobEffectHolder(SHRINKING_EFFECT), 1200, 0)));
() -> new Potion(new MobEffectInstance(SHRINKING_EFFECT.get(), 1200, 0)));
public static final RegistryObject<Potion> STRONG_SHRINKING = POTIONS.register("strong_shrinking",
() -> new Potion("shrinking", new MobEffectInstance(mobEffectHolder(SHRINKING_EFFECT), 900, 1)));
() -> new Potion("shrinking", new MobEffectInstance(SHRINKING_EFFECT.get(), 900, 1)));
public static final RegistryObject<Potion> EXTREME_SHRINKING = POTIONS.register("extreme_shrinking",
() -> new Potion("shrinking", new MobEffectInstance(mobEffectHolder(SHRINKING_EFFECT), 600, 2)));
() -> new Potion("shrinking", new MobEffectInstance(SHRINKING_EFFECT.get(), 600, 2)));
public static final RegistryObject<Potion> GROWING = POTIONS.register("growing",
() -> new Potion(new MobEffectInstance(mobEffectHolder(GROWTH_EFFECT), 1200, 0)));
() -> new Potion(new MobEffectInstance(GROWTH_EFFECT.get(), 1200, 0)));
public static final RegistryObject<Potion> STRONG_GROWING = POTIONS.register("strong_growing",
() -> new Potion("growing", new MobEffectInstance(mobEffectHolder(GROWTH_EFFECT), 900, 1)));
() -> new Potion("growing", new MobEffectInstance(GROWTH_EFFECT.get(), 900, 1)));
public static final RegistryObject<Potion> EXTREME_GROWING = POTIONS.register("extreme_growing",
() -> new Potion("growing", new MobEffectInstance(mobEffectHolder(GROWTH_EFFECT), 600, 2)));
() -> new Potion("growing", new MobEffectInstance(GROWTH_EFFECT.get(), 600, 2)));
// Fluids
public static final RegistryObject<Fluid> BILE = FLUIDS.register("bile",
() -> new ForgeFlowingFluid.Source(bileProperties()));
public static final RegistryObject<Fluid> FLOWING_BILE = FLUIDS.register("flowing_bile",
@@ -170,41 +218,42 @@ public final class AntarchyForgeMisc {
public static final RegistryObject<Fluid> FLOWING_LUMEN = FLUIDS.register("flowing_lumen",
() -> new ForgeFlowingFluid.Flowing(lumenProperties()));
// Particle types
public static final RegistryObject<SimpleParticleType> DREAM_FIRE_FLAME = PARTICLE_TYPES.register("dream_fire_flame",
AntarchyForgeMisc::simpleParticleType);
() -> new SimpleParticleType(true));
public static final RegistryObject<SimpleParticleType> BUG_SPRAY_PARTICLE = PARTICLE_TYPES.register("bug_spray",
() -> new SimpleParticleType(true));
public static final RegistryObject<SimpleParticleType> NIGHTMARE_FIRE_FLAME = PARTICLE_TYPES.register("nightmare_fire_flame",
AntarchyForgeMisc::simpleParticleType);
() -> new SimpleParticleType(true));
public static final RegistryObject<SimpleParticleType> STINKY_GAS = PARTICLE_TYPES.register("stinky_gas",
AntarchyForgeMisc::simpleParticleType);
() -> new SimpleParticleType(true));
public static final RegistryObject<SimpleParticleType> STINKY_FLY = PARTICLE_TYPES.register("stinky_fly",
AntarchyForgeMisc::simpleParticleType);
() -> new SimpleParticleType(true));
public static final RegistryObject<SimpleParticleType> PEACH_LEAVES_PARTICLE = PARTICLE_TYPES.register("peach_leaves_particle",
AntarchyForgeMisc::simpleParticleType);
() -> new SimpleParticleType(true));
public static final RegistryObject<SimpleParticleType> LOTUS_POLLEN = PARTICLE_TYPES.register("lotus_pollen",
AntarchyForgeMisc::simpleParticleType);
() -> new SimpleParticleType(true));
public static final RegistryObject<SimpleParticleType> HYPNOTIC_GAS = PARTICLE_TYPES.register("hypnotic_gas",
AntarchyForgeMisc::simpleParticleType);
() -> new SimpleParticleType(true));
public static final RegistryObject<SimpleParticleType> HYPNOTIC_GAS_CLOUD = PARTICLE_TYPES.register("hypnotic_gas_cloud",
AntarchyForgeMisc::simpleParticleType);
() -> new SimpleParticleType(true));
public static final RegistryObject<SimpleParticleType> HYPNOTIC_GAS_DOWN = PARTICLE_TYPES.register("hypnotic_gas_down",
AntarchyForgeMisc::simpleParticleType);
() -> new SimpleParticleType(true));
public static final RegistryObject<SimpleParticleType> HYPNOTIC_GAS_CLOUD_DOWN = PARTICLE_TYPES.register("hypnotic_gas_cloud_down",
AntarchyForgeMisc::simpleParticleType);
() -> new SimpleParticleType(true));
public static final RegistryObject<SimpleParticleType> FIREFLY = PARTICLE_TYPES.register("firefly",
AntarchyForgeMisc::simpleParticleType);
() -> new SimpleParticleType(true));
public static final RegistryObject<SimpleParticleType> ORANGE_ASH = PARTICLE_TYPES.register("orange_ash",
AntarchyForgeMisc::simpleParticleType);
() -> new SimpleParticleType(true));
public static final RegistryObject<SimpleParticleType> LUCID_BOLT_IMPACT_SMALL = PARTICLE_TYPES.register("lucid_bolt_impact_small",
AntarchyForgeMisc::simpleParticleType);
() -> new SimpleParticleType(true));
public static final RegistryObject<SimpleParticleType> LUCID_BOLT_IMPACT_LARGE = PARTICLE_TYPES.register("lucid_bolt_impact_large",
AntarchyForgeMisc::simpleParticleType);
() -> new SimpleParticleType(true));
public static final RegistryObject<SimpleParticleType> UNDERTRIAL_SPAWNER_DETECTION = PARTICLE_TYPES.register("undertrial_spawner_detection",
AntarchyForgeMisc::simpleParticleType);
() -> new SimpleParticleType(true));
public static final RegistryObject<SimpleParticleType> UNDERTRIAL_OMEN = PARTICLE_TYPES.register("undertrial_omen",
AntarchyForgeMisc::simpleParticleType);
() -> new SimpleParticleType(true));
public static final RegistryObject<SimpleParticleType> UNDERVAULT_CONNECTION = PARTICLE_TYPES.register("undervault_connection",
AntarchyForgeMisc::simpleParticleType);
() -> new SimpleParticleType(true));
public static final RegistryObject<ParticleType<InvertedGeyserBaseParticleOptions>> INVERTED_GEYSER_BASE = PARTICLE_TYPES.register("inverted_geyser_base",
() -> particleType(InvertedGeyserBaseParticleOptions.deserializer()));
public static final RegistryObject<ParticleType<InvertedGeyserParticleOptions>> INVERTED_GEYSER_PLUME = PARTICLE_TYPES.register("inverted_geyser_plume",
@@ -214,7 +263,6 @@ public final class AntarchyForgeMisc {
public static final RegistryObject<ParticleType<InvertedGeyserParticleOptions>> INVERTED_GEYSER_ERUPTION = PARTICLE_TYPES.register("inverted_geyser_eruption",
() -> particleType(InvertedGeyserParticleOptions.deserializer()));
// Features
public static final RegistryObject<RedAntNestFeature> RED_ANT_NEST_FEATURE = FEATURES.register("red_ant_nest",
() -> new RedAntNestFeature(SimpleBlockConfiguration.CODEC));
public static final RegistryObject<BrownAntNestFeature> BROWN_ANT_NEST_FEATURE = FEATURES.register("brown_ant_nest",
@@ -235,11 +283,16 @@ public final class AntarchyForgeMisc {
() -> new PeachTreeFeature(PeachTreeConfiguration.CODEC));
public static final RegistryObject<PeachTreeFeature> PEACH_LARGE_TREE_FEATURE = FEATURES.register("peach_large_tree",
() -> new PeachTreeFeature(PeachTreeConfiguration.CODEC));
public static final RegistryObject<ElythiaFloraFeature> ELYTHIA_FOREST_FLORA = FEATURES.register("elythia_forest_flora",
() -> new ElythiaFloraFeature(NoneFeatureConfiguration.CODEC, ElythiaFloraFeature.Variant.FOREST));
public static final RegistryObject<NadirTreeFeature> NADIR_TREE_FEATURE = FEATURES.register("nadir_tree",
() -> new NadirTreeFeature(NadirTreeConfiguration.CODEC));
public static final RegistryObject<TruffaloTreeFeature> TRUFFALO_TREE_FEATURE = FEATURES.register("truffalo_tree",
() -> new TruffaloTreeFeature(TruffaloTreeConfiguration.CODEC));
public static final RegistryObject<RoyalTreeFeature> ROYAL_TREE_FEATURE = FEATURES.register("royal_tree",
() -> new RoyalTreeFeature(RoyalTreeConfiguration.CODEC));
public static final RegistryObject<KingsTreeGridFeature> KINGS_TREE_GRID = FEATURES.register("kings_tree_grid",
() -> new KingsTreeGridFeature(NoneFeatureConfiguration.CODEC));
public static final RegistryObject<ElythiaFloraFeature> ELYTHIA_FOREST_FLORA = FEATURES.register("elythia_forest_flora",
() -> new ElythiaFloraFeature(NoneFeatureConfiguration.CODEC, ElythiaFloraFeature.Variant.FOREST));
public static final RegistryObject<ElythiaFloraFeature> ELYTHIA_MEADOW_FLORA = FEATURES.register("elythia_meadow_flora",
() -> new ElythiaFloraFeature(NoneFeatureConfiguration.CODEC, ElythiaFloraFeature.Variant.MEADOW));
public static final RegistryObject<ElythiaFloraFeature> PEACH_FOREST_FLORA = FEATURES.register("peach_forest_flora",
@@ -268,14 +321,20 @@ public final class AntarchyForgeMisc {
() -> new MolewormWarrensFeature(NoneFeatureConfiguration.CODEC));
public static final RegistryObject<MolewormSurfaceMoundsFeature> ELYTHIA_MOLEWORM_SURFACE_MOUNDS = FEATURES.register("elythia_moleworm_surface_mounds",
() -> new MolewormSurfaceMoundsFeature(NoneFeatureConfiguration.CODEC));
public static final RegistryObject<TriffidPatchFeature> TRIFFID_PATCH = FEATURES.register("flytrap_patch",
() -> new TriffidPatchFeature(NoneFeatureConfiguration.CODEC));
public static final RegistryObject<FlytrapPatchFeature> FLYTRAP_PATCH = FEATURES.register("flytrap_patch",
() -> new FlytrapPatchFeature(NoneFeatureConfiguration.CODEC));
public static final RegistryObject<ElythiaPondFeature> ELYTHIA_POND = FEATURES.register("elythia_pond",
() -> new ElythiaPondFeature(NoneFeatureConfiguration.CODEC));
public static final RegistryObject<LumenPoolFeature> LUMEN_POOL = FEATURES.register("lumen_pools",
() -> new LumenPoolFeature(NoneFeatureConfiguration.CODEC));
public static final RegistryObject<LumenLilyPadFeature> LUMEN_LILY_PADS = FEATURES.register("lumen_lily_pads",
() -> new LumenLilyPadFeature(NoneFeatureConfiguration.CODEC));
public static final RegistryObject<com.craisinlord.antarchy.content.worldgen.elythia.GlimmeringReedFeature> GLIMMERING_REEDS = FEATURES.register("glimmering_reeds",
() -> new com.craisinlord.antarchy.content.worldgen.elythia.GlimmeringReedFeature(NoneFeatureConfiguration.CODEC));
public static final RegistryObject<NaturalDirectionalVineFeature> SPIRALING_VINES = FEATURES.register("spiraling_vines",
() -> new NaturalDirectionalVineFeature(NoneFeatureConfiguration.CODEC, "spiraling_vines", net.minecraft.core.Direction.UP, 4, 12));
public static final RegistryObject<NaturalDirectionalVineFeature> GOREVINE = FEATURES.register("gorevine",
() -> new NaturalDirectionalVineFeature(NoneFeatureConfiguration.CODEC, "gorevine", net.minecraft.core.Direction.DOWN, 8, 16));
public static final RegistryObject<com.craisinlord.antarchy.content.worldgen.elythia.GiantLilyPadPatchFeature> GIANT_LILY_PAD_PATCH = FEATURES.register("giant_lily_pad_patch",
() -> new com.craisinlord.antarchy.content.worldgen.elythia.GiantLilyPadPatchFeature(NoneFeatureConfiguration.CODEC));
public static final RegistryObject<com.craisinlord.antarchy.content.worldgen.elythia.GiantLilyPadPatchFeature> GIANT_LILY_PAD_PATCH_PEACH_FOREST = FEATURES.register("giant_lily_pad_patch_peach_forest",
@@ -294,24 +353,26 @@ public final class AntarchyForgeMisc {
() -> new PeachForestPondFeature(PeachForestPondConfiguration.CODEC));
public static final RegistryObject<CoralSpikeFeature> ELYTHIA_CORAL_SPIKE = FEATURES.register("elythia_coral_spike",
() -> new CoralSpikeFeature(NoneFeatureConfiguration.CODEC));
public static final RegistryObject<DimensionalTearFeature> DIMENSIONAL_TEAR = FEATURES.register("dimensional_tear",
() -> new DimensionalTearFeature(NoneFeatureConfiguration.CODEC));
public static final RegistryObject<com.craisinlord.antarchy.content.worldgen.elythia.FallenOuranwoodFeature> FALLEN_OURANWOOD_TREE = FEATURES.register("fallen_ouranwood_tree",
() -> new com.craisinlord.antarchy.content.worldgen.elythia.FallenOuranwoodFeature(NoneFeatureConfiguration.CODEC));
public static final RegistryObject<com.craisinlord.antarchy.content.worldgen.elythia.FungalMushroomFeature> FUNGAL_MUSHROOM = FEATURES.register("fungal_mushroom",
() -> new com.craisinlord.antarchy.content.worldgen.elythia.FungalMushroomFeature(NoneFeatureConfiguration.CODEC));
public static final RegistryObject<FallenOuranwoodFeature> FALLEN_OURANWOOD_TREE = FEATURES.register("fallen_ouranwood_tree",
() -> new FallenOuranwoodFeature(NoneFeatureConfiguration.CODEC));
public static final RegistryObject<FungalMushroomFeature> FUNGAL_MUSHROOM = FEATURES.register("fungal_mushroom",
() -> new FungalMushroomFeature(NoneFeatureConfiguration.CODEC));
public static final RegistryObject<ThoraxisFissureFeature> THORAXIS_FISSURE = FEATURES.register("thoraxis_fissure",
() -> new ThoraxisFissureFeature(ThoraxisFissureConfiguration.CODEC));
public static final RegistryObject<QueenHavocTrailFeature> QUEEN_HAVOC_TRAIL = FEATURES.register("queen_havoc_trail",
QueenHavocTrailFeature::new);
public static final RegistryObject<ThoraxisTransitionThroatFeature> THORAXIS_TRANSITION_THROAT = FEATURES.register("thoraxis_transition_throat",
ThoraxisTransitionThroatFeature::new);
public static final RegistryObject<QueenHavocTrailFeature> QUEEN_HAVOC_TRAIL = FEATURES.register("queen_havoc_trail",
QueenHavocTrailFeature::new);
public static final RegistryObject<ThoraxisRibColumnsFeature> THORAXIS_RIB_COLUMNS = FEATURES.register("thoraxis_rib_columns",
() -> new ThoraxisRibColumnsFeature(ThoraxisRibColumnsConfiguration.CODEC));
public static final RegistryObject<ThoraxisSpikeFeature> THORAXIS_SPIKE = FEATURES.register("thoraxis_spike",
() -> new ThoraxisSpikeFeature(ThoraxisSpikeConfiguration.CODEC));
public static final RegistryObject<NyxiteSpikeFeature> NYXITE_SPIKES = FEATURES.register("nyxite_spikes",
() -> new NyxiteSpikeFeature(NyxiteSpikeConfiguration.CODEC));
public static final RegistryObject<TyphoniteSpikeFeature> TYPHONITE_SPIKES = FEATURES.register("typhonite_spikes",
() -> new TyphoniteSpikeFeature(TyphoniteSpikeConfiguration.CODEC));
public static final RegistryObject<TyphoniteSwirlFeature> TYPHONITE_SWIRLS = FEATURES.register("typhonite_swirls",
() -> new TyphoniteSwirlFeature(NoneFeatureConfiguration.CODEC));
public static final RegistryObject<ChitinSpikeFeature> CAVARYN_CHITIN_SPIKES = FEATURES.register("cavaryn_chitin_spikes",
() -> new ChitinSpikeFeature(ChitinSpikeConfiguration.CODEC));
public static final RegistryObject<CavarynBileVeinFeature> CAVARYN_BILE_VEINS = FEATURES.register("cavaryn_bile_veins",
@@ -320,14 +381,16 @@ public final class AntarchyForgeMisc {
() -> new CavarynBileCystFeature(NoneFeatureConfiguration.CODEC));
public static final RegistryObject<CavarynCreepvineFeature> CAVARYN_CREEPVINE = FEATURES.register("cavaryn_creepvine",
() -> new CavarynCreepvineFeature(NoneFeatureConfiguration.CODEC));
public static final RegistryObject<HangingCreeprootsFeature> HANGING_CREEPROOTS = FEATURES.register("hanging_creeproots",
() -> new HangingCreeprootsFeature(NoneFeatureConfiguration.CODEC));
public static final RegistryObject<MoltingVinesFeature> MOLTING_VINES = FEATURES.register("molting_vines",
() -> new MoltingVinesFeature(NoneFeatureConfiguration.CODEC));
public static final RegistryObject<com.craisinlord.antarchy.content.worldgen.cavaryn.GroundMoltingVinesFeature> GROUND_MOLTING_VINES = FEATURES.register("ground_molting_vines",
() -> new com.craisinlord.antarchy.content.worldgen.cavaryn.GroundMoltingVinesFeature(NoneFeatureConfiguration.CODEC));
public static final RegistryObject<com.craisinlord.antarchy.content.worldgen.cavaryn.JumpyBugEggCeilingFeature> JUMPY_BUG_EGG_CEILING = FEATURES.register("springbug_egg_ceiling",
() -> new com.craisinlord.antarchy.content.worldgen.cavaryn.JumpyBugEggCeilingFeature(NoneFeatureConfiguration.CODEC));
public static final RegistryObject<com.craisinlord.antarchy.content.worldgen.cavaryn.SpringbugEggCeilingFeature> SPRINGBUG_EGG_CEILING = FEATURES.register("springbug_egg_ceiling",
() -> new com.craisinlord.antarchy.content.worldgen.cavaryn.SpringbugEggCeilingFeature(NoneFeatureConfiguration.CODEC));
public static final RegistryObject<com.craisinlord.antarchy.content.worldgen.cavaryn.SpitBugEggPatchFeature> SPIT_BUG_EGG_PATCH = FEATURES.register("spit_bug_egg_patch",
() -> new com.craisinlord.antarchy.content.worldgen.cavaryn.SpitBugEggPatchFeature(NoneFeatureConfiguration.CODEC));
public static final RegistryObject<com.craisinlord.antarchy.content.worldgen.cavaryn.RollyCavesGiantCavernFeature> ROLLY_CAVES_GIANT_CAVERN = FEATURES.register("rolly_caves_giant_cavern",
@@ -352,34 +415,29 @@ public final class AntarchyForgeMisc {
() -> new com.craisinlord.antarchy.content.worldgen.mushroom.GlowcapHugeMushroomFeature(NoneFeatureConfiguration.CODEC));
public static final RegistryObject<com.craisinlord.antarchy.content.worldgen.mushroom.GlowcapHugeMushroomWorldgenFeature> HUGE_GLOWCAP_MUSHROOM_WORLDGEN = FEATURES.register("huge_glowcap_mushroom_worldgen",
() -> new com.craisinlord.antarchy.content.worldgen.mushroom.GlowcapHugeMushroomWorldgenFeature(NoneFeatureConfiguration.CODEC));
public static final RegistryObject<ThoraxisAntiwaterPoolFeature> THORAXIS_ANTIWATER_POOL = FEATURES.register("thoraxis_antiwater_pool",
() -> new ThoraxisAntiwaterPoolFeature(ThoraxisAntiwaterPoolConfiguration.CODEC));
public static final RegistryObject<LucidAntiwaterPoolFeature> LUCID_ANTIWATER_POOL = FEATURES.register("lucid_antiwater_pool",
() -> new LucidAntiwaterPoolFeature(ThoraxisAntiwaterPoolConfiguration.CODEC));
public static final RegistryObject<ThoraxisDuneFeature> THORAXIS_DUNE = FEATURES.register("thoraxis_dune",
() -> new ThoraxisDuneFeature(ThoraxisDuneConfiguration.CODEC));
public static final RegistryObject<DimensionalTearFeature> DIMENSIONAL_TEAR = FEATURES.register("dimensional_tear",
() -> new DimensionalTearFeature(NoneFeatureConfiguration.CODEC));
public static final RegistryObject<ThoraxisIchorLakeFeature> THORAXIS_ICHOR_LAKE = FEATURES.register("thoraxis_ichor_lake",
() -> new ThoraxisIchorLakeFeature(NoneFeatureConfiguration.CODEC));
// Biome sources
public static final RegistryObject<com.mojang.serialization.Codec<ElythiaBiomeSource>> ELYTHIA_BIOME_SOURCE = BIOME_SOURCES.register("elythia_biome_source",
() -> ElythiaBiomeSource.CODEC);
public static final RegistryObject<com.mojang.serialization.Codec<ThoraxisBiomeSource>> THORAXIS_BIOME_SOURCE = BIOME_SOURCES.register("thoraxis_biome_source",
() -> ThoraxisBiomeSource.CODEC);
// Density function
public static final RegistryObject<com.mojang.serialization.Codec<ElythiaRiverCarveFunction>> ELYTHIA_RIVER_CARVE = DENSITY_FUNCTION_TYPES.register("elythia_river_carve",
() -> ElythiaRiverCarveFunction.KEY_CODEC.codec());
private AntarchyForgeMisc() {}
public static MobEffect mobEffectHolder(RegistryObject<? extends MobEffect> effect) {
return effect.get();
}
public static Holder<Attribute> attributeHolder(RegistryObject<? extends Attribute> attribute) {
return BuiltInRegistries.ATTRIBUTE.wrapAsHolder(attribute.get());
}
public static void register(IEventBus modEventBus) {
POI_TYPES.register(modEventBus);
VILLAGER_PROFESSIONS.register(modEventBus);
MOB_EFFECTS.register(modEventBus);
POTIONS.register(modEventBus);
FLUID_TYPES.register(modEventBus);
@@ -395,7 +453,6 @@ public final class AntarchyForgeMisc {
RECIPE_SERIALIZERS.register(modEventBus);
}
static ForgeFlowingFluid.Properties ichorProperties() {
return new ForgeFlowingFluid.Properties(com.craisinlord.antarchy.forge.AntarchyForgeFluidTypes.ICHOR_TYPE, ICHOR, FLOWING_ICHOR)
.bucket(() -> AntarchyForgeItems.ICHOR_BUCKET.get())
@@ -432,11 +489,6 @@ public final class AntarchyForgeMisc {
.tickRate(5);
}
private static SimpleParticleType simpleParticleType() {
return new SimpleParticleType(true) {
};
}
private static <T extends net.minecraft.core.particles.ParticleOptions> ParticleType<T> particleType(
net.minecraft.core.particles.ParticleOptions.Deserializer<T> deserializer
) {
@@ -447,4 +499,8 @@ public final class AntarchyForgeMisc {
}
};
}
public static Holder<Attribute> attributeHolder(RegistryObject<? extends Attribute> attribute) {
return BuiltInRegistries.ATTRIBUTE.wrapAsHolder(attribute.get());
}
}
@@ -1,46 +1,178 @@
package com.craisinlord.antarchy.forge.registry;
import com.craisinlord.antarchy.content.network.BloodCrystalKatanaTrailPayload;
import com.craisinlord.antarchy.forge.network.AntarchyForgeNetworkCore;
import com.craisinlord.antarchy.content.network.ToggleTigerEyeCamouflagePayload;
import com.craisinlord.antarchy.content.item.TigerEyeArmorUtil;
import com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageController;
import com.craisinlord.antarchy.forge.network.AntarchyGravityNetworking;
import com.craisinlord.antarchy.forge.network.BrutalflyElytraNetworking;
import com.craisinlord.antarchy.forge.network.DorrieJumpNetworking;
import com.craisinlord.antarchy.forge.network.HerculesBeetleNetworking;
import com.craisinlord.antarchy.forge.network.JumpyBootsNetworking;
import com.craisinlord.antarchy.forge.network.MultipartNetworking;
import com.craisinlord.antarchy.forge.network.TigerEyeNetworking;
import com.craisinlord.antarchy.forge.network.SpringyBootsNetworking;
import com.craisinlord.antarchy.forge.network.AntarchyForgePayloadRegistrar;
public class AntarchyForgePayloadHandlers {
private AntarchyForgePayloadHandlers() {}
public static void register() {
AntarchyGravityNetworking.register();
BrutalflyElytraNetworking.register();
JumpyBootsNetworking.register();
DorrieJumpNetworking.register();
HerculesBeetleNetworking.register();
TigerEyeNetworking.register();
AntarchyForgeNetworkCore.registerS2C(
com.craisinlord.antarchy.content.network.BloodglassStatePayload.class,
registerPayloadHandlers(new AntarchyForgePayloadRegistrar());
}
static void registerPayloadHandlers(AntarchyForgePayloadRegistrar registrar) {
registrar.playToServer(
com.craisinlord.antarchy.content.network.AntarchyGamePayload.TYPE,
com.craisinlord.antarchy.content.network.AntarchyGamePayload.STREAM_CODEC,
(payload, ctx) -> ctx.enqueueWork(() -> {
if (ctx.player() instanceof net.minecraft.server.level.ServerPlayer player) {
com.craisinlord.antarchy.content.network.AntarchyGameNetworkHandler.handle(player, payload);
}
})
);
registrar.playToClient(
com.craisinlord.antarchy.content.network.AntarchyGameResultPayload.TYPE,
com.craisinlord.antarchy.content.network.AntarchyGameResultPayload.STREAM_CODEC,
(payload, ctx) -> ctx.enqueueWork(() -> com.craisinlord.antarchy.content.client.AntarchyGameClientState.update(payload))
);
AntarchyGravityNetworking.register(registrar);
BrutalflyElytraNetworking.register(registrar);
SpringyBootsNetworking.register(registrar);
DorrieJumpNetworking.register(registrar);
HerculesBeetleNetworking.register(registrar);
registrar.playToClient(
com.craisinlord.antarchy.content.network.KingJudgmentFlashPayload.TYPE,
com.craisinlord.antarchy.content.network.KingJudgmentFlashPayload.STREAM_CODEC,
(payload, ctx) -> ctx.enqueueWork(() ->
com.craisinlord.antarchy.content.client.KingJudgmentFlashClientState.trigger(payload.durationTicks()))
);
registrar.playToClient(
com.craisinlord.antarchy.content.network.BloodglassStatePayload.TYPE,
com.craisinlord.antarchy.content.network.BloodglassStatePayload.STREAM_CODEC,
payload -> com.craisinlord.antarchy.content.client.BloodglassClientState.update(payload.shieldsActive(), payload.shieldsMax())
(payload, ctx) -> ctx.enqueueWork(() ->
com.craisinlord.antarchy.content.client.BloodglassClientState.update(payload.shieldsActive(), payload.shieldsMax())
)
);
AntarchyForgeNetworkCore.registerS2C(
BloodCrystalKatanaTrailPayload.class,
registrar.playToClient(
com.craisinlord.antarchy.content.network.TigerEyeCamouflageStatePayload.TYPE,
com.craisinlord.antarchy.content.network.TigerEyeCamouflageStatePayload.STREAM_CODEC,
(payload, ctx) -> ctx.enqueueWork(() ->
com.craisinlord.antarchy.content.client.TigerEyeCamouflageClientState.update(payload.entityId(), payload.active(), payload.blockStateId())
)
);
registrar.playToServer(
com.craisinlord.antarchy.content.network.ActivateRoyalBoundaryPayload.TYPE,
com.craisinlord.antarchy.content.network.ActivateRoyalBoundaryPayload.STREAM_CODEC,
(payload, ctx) -> ctx.enqueueWork(() -> {
if (ctx.player() instanceof net.minecraft.server.level.ServerPlayer player) {
com.craisinlord.antarchy.content.effect.RoyalBoundaryManager.activate(player);
}
})
);
registrar.playToServer(
com.craisinlord.antarchy.content.network.ToggleRoyalInversionPayload.TYPE,
com.craisinlord.antarchy.content.network.ToggleRoyalInversionPayload.STREAM_CODEC,
(payload, ctx) -> ctx.enqueueWork(() -> {
if (ctx.player() instanceof net.minecraft.server.level.ServerPlayer player) {
com.craisinlord.antarchy.content.item.RoyalAssailantArmorItem.toggleInversion(player);
}
})
);
registrar.playToServer(
com.craisinlord.antarchy.content.network.OpenGiantFryingPanPayload.TYPE,
com.craisinlord.antarchy.content.network.OpenGiantFryingPanPayload.STREAM_CODEC,
(payload, ctx) -> ctx.enqueueWork(() -> {
if (ctx.player() instanceof net.minecraft.server.level.ServerPlayer player) {
com.craisinlord.antarchy.content.item.GiantFryingPanItem.openHeldMenu(player);
}
})
);
registrar.playToServer(
com.craisinlord.antarchy.content.network.RoyalMountActionPayload.TYPE,
com.craisinlord.antarchy.content.network.RoyalMountActionPayload.STREAM_CODEC,
(payload, ctx) -> ctx.enqueueWork(() -> {
if (ctx.player() instanceof net.minecraft.server.level.ServerPlayer mountingPlayer
&& payload.action() == com.craisinlord.antarchy.content.network.RoyalMountActionPayload.MOUNT) {
com.craisinlord.antarchy.content.entity.royal.RoyalMountEntity.tryAssistedMount(mountingPlayer);
return;
}
if (!(ctx.player() instanceof net.minecraft.server.level.ServerPlayer player)
|| !(player.getVehicle() instanceof com.craisinlord.antarchy.content.entity.royal.RoyalMountEntity mount)) {
return;
}
switch (payload.action()) {
case com.craisinlord.antarchy.content.network.RoyalMountActionPayload.FLIGHT_TOGGLE -> mount.toggleMountedFlight(player);
case com.craisinlord.antarchy.content.network.RoyalMountActionPayload.BITE -> mount.handleMountedBite(player);
case com.craisinlord.antarchy.content.network.RoyalMountActionPayload.SPIT -> mount.handleMountedSpit(player);
default -> {
}
}
})
);
registrar.playToServer(
com.craisinlord.antarchy.content.network.RoyalMountVerticalPayload.TYPE,
com.craisinlord.antarchy.content.network.RoyalMountVerticalPayload.STREAM_CODEC,
(payload, ctx) -> ctx.enqueueWork(() -> {
if (ctx.player() instanceof net.minecraft.server.level.ServerPlayer player
&& player.getVehicle() instanceof com.craisinlord.antarchy.content.entity.royal.RoyalMountEntity mount) {
mount.setRiderAscend(payload.ascend());
mount.setRiderDescend(payload.descend());
}
})
);
registrar.playToServer(
ToggleTigerEyeCamouflagePayload.TYPE,
ToggleTigerEyeCamouflagePayload.STREAM_CODEC,
(payload, ctx) -> ctx.enqueueWork(() -> {
if (!(ctx.player() instanceof net.minecraft.server.level.ServerPlayer player)) {
return;
}
TigerEyeCamouflageController.ToggleResult result = TigerEyeCamouflageController.toggle(player);
if (result != TigerEyeCamouflageController.ToggleResult.NO_CHANGE) {
com.craisinlord.antarchy.forge.network.AntarchyForgeNetworkCore.sendToTrackingEntity(
player,
com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync.payload(player)
);
}
String messageKey = switch (result) {
case ACTIVATED -> "message.antarchy.tiger_eye_camouflage.activated";
case DEACTIVATED -> "message.antarchy.tiger_eye_camouflage.disabled";
case FULL_SET_REQUIRED -> TigerEyeArmorUtil.countEquippedPieces(player) > 0
? "message.antarchy.tiger_eye_camouflage.full_set_required"
: null;
case INVALID_BLOCK -> "message.antarchy.tiger_eye_camouflage.invalid_block";
case NO_CHANGE -> null;
};
if (messageKey != null) {
player.displayClientMessage(net.minecraft.network.chat.Component.translatable(messageKey), true);
}
})
);
registrar.playToClient(
BloodCrystalKatanaTrailPayload.TYPE,
BloodCrystalKatanaTrailPayload.STREAM_CODEC,
payload -> com.craisinlord.antarchy.content.client.BloodCrystalKatanaTrailClientState.trigger(payload.entityId(), payload.durationTicks())
(payload, ctx) -> ctx.enqueueWork(() ->
com.craisinlord.antarchy.content.client.BloodCrystalKatanaTrailClientState.trigger(payload.entityId(), payload.durationTicks())
)
);
AntarchyForgeNetworkCore.registerS2C(
com.craisinlord.antarchy.content.network.ScorpionWhipTetherPayload.class,
registrar.playToClient(
com.craisinlord.antarchy.content.network.ScorpionWhipTetherPayload.TYPE,
com.craisinlord.antarchy.content.network.ScorpionWhipTetherPayload.STREAM_CODEC,
payload -> com.craisinlord.antarchy.content.client.ScorpionWhipTetherClientState.update(payload.playerId(), payload.targetId())
(payload, ctx) -> ctx.enqueueWork(() ->
com.craisinlord.antarchy.content.client.ScorpionWhipTetherClientState.update(payload.playerId(), payload.targetId())
)
);
AntarchyForgeNetworkCore.registerS2C(
com.craisinlord.antarchy.content.network.HordeIntensityPayload.class,
registrar.playToClient(
com.craisinlord.antarchy.content.network.WormHookTetherPayload.TYPE,
com.craisinlord.antarchy.content.network.WormHookTetherPayload.STREAM_CODEC,
(payload, ctx) -> ctx.enqueueWork(() ->
com.craisinlord.antarchy.content.client.WormHookTetherClientState.update(payload.playerId(), payload.hookId())
)
);
registrar.playToClient(
com.craisinlord.antarchy.content.network.HordeIntensityPayload.TYPE,
com.craisinlord.antarchy.content.network.HordeIntensityPayload.STREAM_CODEC,
payload -> com.craisinlord.antarchy.content.client.HordeClientState.update(payload.intensity())
(payload, ctx) -> ctx.enqueueWork(() ->
com.craisinlord.antarchy.content.client.HordeClientState.update(payload.intensity())
)
);
MultipartNetworking.register();
com.craisinlord.antarchy.forge.network.AntarchyTimeDilationNetworking.register();
}
}
@@ -11,20 +11,24 @@ public final class AntarchyForgeSounds {
private static final DeferredRegister<SoundEvent> SOUND_EVENTS = DeferredRegister.create(Registries.SOUND_EVENT, Antarchy.MODID);
public static final RegistryObject<SoundEvent> SQUIDZOOKA_FIRE = registerSoundEvent("squidzooka_fire");
public static final RegistryObject<SoundEvent> SHRINK_RAY_SOUND = registerSoundEvent("shrink_ray");
public static final RegistryObject<SoundEvent> GROWTH_RAY_SOUND = registerSoundEvent("growth_ray");
public static final RegistryObject<SoundEvent> SIZE_RAY_CHARGE = registerSoundEvent("size_ray_charge");
public static final RegistryObject<SoundEvent> SHRINK_RAY_CHARGE = registerSoundEvent("shrink_ray_charge");
public static final RegistryObject<SoundEvent> SHRINK_RAY_LOOP = registerSoundEvent("shrink_ray_loop");
public static final RegistryObject<SoundEvent> GROWTH_RAY_CHARGE = registerSoundEvent("growth_ray_charge");
public static final RegistryObject<SoundEvent> GROWTH_RAY_LOOP = registerSoundEvent("growth_ray_loop");
public static final RegistryObject<SoundEvent> SIZE_RAY_WEAKSHOT = registerSoundEvent("size_ray_weakshot");
public static final RegistryObject<SoundEvent> SIZE_RAY_MEDIUMSHOT = registerSoundEvent("size_ray_mediumshot");
public static final RegistryObject<SoundEvent> SIZE_RAY_CRITSHOT = registerSoundEvent("size_ray_critshot");
public static final RegistryObject<SoundEvent> ANT_AMBIENT = registerSoundEvent("ant_ambient");
public static final RegistryObject<SoundEvent> ANT_IDLE = registerSoundEvent("ant_idle");
public static final RegistryObject<SoundEvent> ANT_HURT = registerSoundEvent("ant_hurt");
public static final RegistryObject<SoundEvent> ANT_BITE = registerSoundEvent("ant_bite");
public static final RegistryObject<SoundEvent> ANT_GATHER = registerSoundEvent("ant_gather");
public static final RegistryObject<SoundEvent> ANT_NEST = registerSoundEvent("ant_nest");
public static final RegistryObject<SoundEvent> CLOUD_SHARK_BITE = registerSoundEvent("stratoshark_bite");
public static final RegistryObject<SoundEvent> CLOUD_SHARK_IDLE = registerSoundEvent("stratoshark_idle");
public static final RegistryObject<SoundEvent> CLOUD_SHARK_HURT = registerSoundEvent("stratoshark_hurt");
public static final RegistryObject<SoundEvent> CLOUD_SHARK_DEATH = registerSoundEvent("stratoshark_death");
public static final RegistryObject<SoundEvent> CLOUD_SHARK_FLY = registerSoundEvent("stratoshark_fly");
public static final RegistryObject<SoundEvent> STRATOSHARK_BITE = registerSoundEvent("stratoshark_bite");
public static final RegistryObject<SoundEvent> STRATOSHARK_IDLE = registerSoundEvent("stratoshark_idle");
public static final RegistryObject<SoundEvent> STRATOSHARK_HURT = registerSoundEvent("stratoshark_hurt");
public static final RegistryObject<SoundEvent> STRATOSHARK_DEATH = registerSoundEvent("stratoshark_death");
public static final RegistryObject<SoundEvent> STRATOSHARK_FLY = registerSoundEvent("stratoshark_fly");
public static final RegistryObject<SoundEvent> CATERPILLAR_IDLE = registerSoundEvent("caterpillar_idle");
public static final RegistryObject<SoundEvent> CATERPILLAR_HURT = registerSoundEvent("caterpillar_hurt");
public static final RegistryObject<SoundEvent> CATERPILLAR_CRAWL = registerSoundEvent("caterpillar_crawl");
@@ -63,6 +67,16 @@ public final class AntarchyForgeSounds {
public static final RegistryObject<SoundEvent> THORAXIS_LUCID_POOLS_ADDITIONS = registerSoundEvent("thoraxis_lucid_pools_additions");
public static final RegistryObject<SoundEvent> THORAXIS_LUCID_POOLS_BIOME_ADDITIONS = registerSoundEvent("thoraxis_lucid_pools_biome_additions");
public static final RegistryObject<SoundEvent> THORAXIS_LUCID_POOLS_MOOD = registerSoundEvent("thoraxis_lucid_pools_mood");
public static final RegistryObject<SoundEvent> LUCID_LULLABY = registerSoundEvent("lucid_lullaby");
public static final RegistryObject<SoundEvent> WHISTLING_VOID = registerSoundEvent("whistling_void");
public static final RegistryObject<SoundEvent> MUSIC_GAME_THORAXIS = registerSoundEvent("music.game.thoraxis");
public static final RegistryObject<SoundEvent> DIMENSIONAL_TEAR_OPEN = registerSoundEvent("dimensional_tear_open");
public static final RegistryObject<SoundEvent> DIMENSIONAL_TEAR_IDLE = registerSoundEvent("dimensional_tear_idle");
public static final RegistryObject<SoundEvent> DIMENSIONAL_TEAR_CREATURE_LEAVES = registerSoundEvent("dimensional_tear_creature_leaves");
public static final RegistryObject<SoundEvent> DIMENSIONAL_TEAR_CLOSE = registerSoundEvent("dimensional_tear_close");
public static final RegistryObject<SoundEvent> MUSIC_GAME_CAVARYN = registerSoundEvent("music.game.cavaryn");
public static final RegistryObject<SoundEvent> WISTFUL_WANDERINGS = registerSoundEvent("wistful_wanderings");
public static final RegistryObject<SoundEvent> MUSIC_GAME_ELYTHIA = registerSoundEvent("music.game.elythia");
public static final RegistryObject<SoundEvent> LUCID_AMBIENT = registerSoundEvent("lucid_ambient");
public static final RegistryObject<SoundEvent> LUCID_FLYING = registerSoundEvent("lucid_flying");
public static final RegistryObject<SoundEvent> LUCID_ATTACK = registerSoundEvent("lucid_attack");
@@ -87,21 +101,34 @@ public final class AntarchyForgeSounds {
public static final RegistryObject<SoundEvent> NIGHTMARE_DEATH = registerSoundEvent("nightmare_death");
public static final RegistryObject<SoundEvent> NIGHTMARE_BITE = registerSoundEvent("nightmare_bite");
public static final RegistryObject<SoundEvent> NIGHTMARE_FLAP = registerSoundEvent("nightmare_flap");
public static final RegistryObject<SoundEvent> TRIFFID_ATTACK = registerSoundEvent("flytrap_attack");
public static final RegistryObject<SoundEvent> TRIFFID_GRAB = registerSoundEvent("flytrap_grab");
public static final RegistryObject<SoundEvent> TRIFFID_HURT = registerSoundEvent("flytrap_hurt");
public static final RegistryObject<SoundEvent> TRIFFID_DEATH = registerSoundEvent("flytrap_death");
public static final RegistryObject<SoundEvent> TRIFFID_HISS = registerSoundEvent("flytrap_hiss");
public static final RegistryObject<SoundEvent> TRIFFID_GROWL = registerSoundEvent("flytrap_growl");
public static final RegistryObject<SoundEvent> FLYTRAP_ATTACK = registerSoundEvent("flytrap_attack");
public static final RegistryObject<SoundEvent> FLYTRAP_GRAB = registerSoundEvent("flytrap_grab");
public static final RegistryObject<SoundEvent> FLYTRAP_HURT = registerSoundEvent("flytrap_hurt");
public static final RegistryObject<SoundEvent> FLYTRAP_DEATH = registerSoundEvent("flytrap_death");
public static final RegistryObject<SoundEvent> FLYTRAP_HISS = registerSoundEvent("flytrap_hiss");
public static final RegistryObject<SoundEvent> FLYTRAP_GROWL = registerSoundEvent("flytrap_growl");
public static final RegistryObject<SoundEvent> MANTIS_AMBIENT = registerSoundEvent("mantis_ambient");
public static final RegistryObject<SoundEvent> MANTIS_HURT = registerSoundEvent("mantis_hurt");
public static final RegistryObject<SoundEvent> MANTIS_ATTACK = registerSoundEvent("mantis_attack");
public static final RegistryObject<SoundEvent> MANTIS_FLY_LOOP = registerSoundEvent("mantis_fly_loop");
public static final RegistryObject<SoundEvent> MANTICORE_IDLE = registerSoundEvent("manticore_idle");
public static final RegistryObject<SoundEvent> MANTICORE_WALK = registerSoundEvent("manticore_walk");
public static final RegistryObject<SoundEvent> MANTICORE_FLY = registerSoundEvent("manticore_fly");
public static final RegistryObject<SoundEvent> MANTICORE_BITE = registerSoundEvent("manticore_bite");
public static final RegistryObject<SoundEvent> GRAVITY_GUN_PICKUP = registerSoundEvent("gravity_gun_pickup");
public static final RegistryObject<SoundEvent> GRAVITY_GUN_DROP = registerSoundEvent("gravity_gun_drop");
public static final RegistryObject<SoundEvent> GRAVITY_GUN_HOLD_LOOP = registerSoundEvent("gravity_gun_hold_loop");
public static final RegistryObject<SoundEvent> GRAVITY_GUN_LAUNCH = registerSoundEvent("gravity_gun_launch");
public static final RegistryObject<SoundEvent> GRAVITY_GUN_DRYFIRE = registerSoundEvent("gravity_gun_dryfire");
public static final RegistryObject<SoundEvent> PORTAL_GUN_FIRE_BLUE = registerSoundEvent("portal_gun_fire_blue");
public static final RegistryObject<SoundEvent> PORTAL_GUN_FIRE_ORANGE = registerSoundEvent("portal_gun_fire_orange");
public static final RegistryObject<SoundEvent> PORTAL_GUN_INVALID_SURFACE = registerSoundEvent("portal_gun_invalid_surface");
public static final RegistryObject<SoundEvent> PORTAL_OPEN_BLUE = registerSoundEvent("portal_open_blue");
public static final RegistryObject<SoundEvent> PORTAL_OPEN_ORANGE = registerSoundEvent("portal_open_orange");
public static final RegistryObject<SoundEvent> PORTAL_FIZZLE = registerSoundEvent("portal_fizzle");
public static final RegistryObject<SoundEvent> PORTAL_ENTER = registerSoundEvent("portal_enter");
public static final RegistryObject<SoundEvent> PORTAL_EXIT = registerSoundEvent("portal_exit");
public static final RegistryObject<SoundEvent> PORTAL_AMBIENT = registerSoundEvent("portal_ambient");
public static final RegistryObject<SoundEvent> BED_BUG_AMBIENT = registerSoundEvent("bed_bug_ambient");
public static final RegistryObject<SoundEvent> BED_BUG_HURT = registerSoundEvent("bed_bug_hurt");
public static final RegistryObject<SoundEvent> BED_BUG_ATTACK = registerSoundEvent("bed_bug_attack");
@@ -140,27 +167,28 @@ public final class AntarchyForgeSounds {
public static final RegistryObject<SoundEvent> STINK_BUG_FART = registerSoundEvent("stink_bug_fart");
public static final RegistryObject<SoundEvent> STINK_BUG_IDLE = registerSoundEvent("stink_bug_idle");
public static final RegistryObject<SoundEvent> CAVARYN_HEARTBEAT = registerSoundEvent("cavaryn_heartbeat");
public static final RegistryObject<SoundEvent> VENENATUS = registerSoundEvent("venenatus");
public static final RegistryObject<SoundEvent> ROLLY_POLLY_IDLE = registerSoundEvent("rolly_polly_idle");
public static final RegistryObject<SoundEvent> ROLLY_POLLY_WHEEL_MODE = registerSoundEvent("rolly_polly_wheel_mode");
public static final RegistryObject<SoundEvent> ROLLY_POLLY_NORMAL_MODE = registerSoundEvent("rolly_polly_normal_mode");
public static final RegistryObject<SoundEvent> ROLLY_POLLY_ROLL = registerSoundEvent("rolly_polly_roll");
public static final RegistryObject<SoundEvent> CREEPING_HORROR_GROWL = registerSoundEvent("crawling_blight_growl");
public static final RegistryObject<SoundEvent> CREEPING_HORROR_HURT = registerSoundEvent("crawling_blight_hurt");
public static final RegistryObject<SoundEvent> CREEPING_HORROR_BITE = registerSoundEvent("crawling_blight_bite");
public static final RegistryObject<SoundEvent> LURKING_TERROR_SNARL = registerSoundEvent("skulking_fright_snarl");
public static final RegistryObject<SoundEvent> LURKING_TERROR_HURT = registerSoundEvent("skulking_fright_hurt");
public static final RegistryObject<SoundEvent> LURKING_TERROR_BITE = registerSoundEvent("skulking_fright_bite");
public static final RegistryObject<SoundEvent> LURKING_TERROR_FLY_LOOP = registerSoundEvent("skulking_fright_fly_loop");
public static final RegistryObject<SoundEvent> CRAWLING_BLIGHT_GROWL = registerSoundEvent("crawling_blight_growl");
public static final RegistryObject<SoundEvent> CRAWLING_BLIGHT_HURT = registerSoundEvent("crawling_blight_hurt");
public static final RegistryObject<SoundEvent> CRAWLING_BLIGHT_BITE = registerSoundEvent("crawling_blight_bite");
public static final RegistryObject<SoundEvent> SKULKING_FRIGHT_SNARL = registerSoundEvent("skulking_fright_snarl");
public static final RegistryObject<SoundEvent> SKULKING_FRIGHT_HURT = registerSoundEvent("skulking_fright_hurt");
public static final RegistryObject<SoundEvent> SKULKING_FRIGHT_BITE = registerSoundEvent("skulking_fright_bite");
public static final RegistryObject<SoundEvent> SKULKING_FRIGHT_FLY_LOOP = registerSoundEvent("skulking_fright_fly_loop");
public static final RegistryObject<SoundEvent> HERCULES_BEETLE_IDLE = registerSoundEvent("hercules_beetle_idle");
public static final RegistryObject<SoundEvent> HERCULES_BEETLE_HURT = registerSoundEvent("hercules_beetle_hurt");
public static final RegistryObject<SoundEvent> HERCULES_BEETLE_ATTACK = registerSoundEvent("hercules_beetle_attack");
public static final RegistryObject<SoundEvent> HERCULES_BEETLE_CRY = registerSoundEvent("hercules_beetle_cry");
public static final RegistryObject<SoundEvent> HERCULES_BEETLE_CHARGE_START = registerSoundEvent("hercules_beetle_charge_start");
public static final RegistryObject<SoundEvent> HERCULES_BEETLE_KNOCKED_DOWN = registerSoundEvent("hercules_beetle_knocked_down");
public static final RegistryObject<SoundEvent> JUMPY_BUG_IDLE = registerSoundEvent("springbug_idle");
public static final RegistryObject<SoundEvent> SPRINGBUG_IDLE = registerSoundEvent("springbug_idle");
public static final RegistryObject<SoundEvent> SPIT_BUG_IDLE = registerSoundEvent("spit_bug_idle");
public static final RegistryObject<SoundEvent> JUMPY_BUG_HURT = registerSoundEvent("springbug_hurt");
public static final RegistryObject<SoundEvent> JUMPY_BUG_JUMP = registerSoundEvent("springbug_jump");
public static final RegistryObject<SoundEvent> SPRINGBUG_HURT = registerSoundEvent("springbug_hurt");
public static final RegistryObject<SoundEvent> SPRINGBUG_JUMP = registerSoundEvent("springbug_jump");
public static final RegistryObject<SoundEvent> SPIT_BUG_HURT = registerSoundEvent("spit_bug_hurt");
public static final RegistryObject<SoundEvent> SPIT_BUG_SPIT = registerSoundEvent("spit_bug_spit");
public static final RegistryObject<SoundEvent> BRUTALFLY_SPIT = registerSoundEvent("brutalfly_spit");
@@ -178,6 +206,67 @@ public final class AntarchyForgeSounds {
public static final RegistryObject<SoundEvent> POTENT_NYXITE_GEYSER_ERUPTION_ACTIVE = registerSoundEvent("potent_nyxite_geyser_eruption_active");
public static final RegistryObject<SoundEvent> POTENT_NYXITE_GEYSER_CONTINUOUS_START = registerSoundEvent("potent_nyxite_geyser_continuous_start");
public static final RegistryObject<SoundEvent> POTENT_NYXITE_GEYSER_CONTINUOUS_ACTIVE = registerSoundEvent("potent_nyxite_geyser_continuous_active");
public static final RegistryObject<SoundEvent> MUSIC_DISC_UNDERSIDE = registerSoundEvent("music_disc_underside");
public static final RegistryObject<SoundEvent> THE_QUEEN = registerSoundEvent("the_queen");
public static final RegistryObject<SoundEvent> MUSIC_DISC_VERDANCE = registerSoundEvent("music_disc_verdance");
public static final RegistryObject<SoundEvent> MUSIC_DISC_GROTESQUE = registerSoundEvent("music_disc_grotesque");
public static final RegistryObject<SoundEvent> WORM_HOOK_FLYING = registerSoundEvent("worm_hook_flying");
public static final RegistryObject<SoundEvent> BLOOD_CRYSTAL_KATANA_DASH = registerSoundEvent("blood_crystal_katana_dash");
public static final RegistryObject<SoundEvent> BLOOD_CRYSTAL_ARMOR_EQUIP = registerSoundEvent("blood_crystal_armor_equip");
public static final RegistryObject<SoundEvent> BLOODGLASS_WARD_HEART_BREAK = registerSoundEvent("bloodglass_ward_heart_break");
public static final RegistryObject<SoundEvent> BLOODGLASS_WARD_HEART_REGEN = registerSoundEvent("bloodglass_ward_heart_regen");
public static final RegistryObject<SoundEvent> ANTIMETAL_PLACE = registerSoundEvent("antimetal_place");
public static final RegistryObject<SoundEvent> ANTIMETAL_STEP = registerSoundEvent("antimetal_step");
public static final RegistryObject<SoundEvent> ANTIMETAL_SCAFFOLD = registerSoundEvent("antimetal_scaffold");
public static final RegistryObject<SoundEvent> UNDERTRIAL_DETECT_PLAYER1 = registerSoundEvent("undertrial_detect_player1");
public static final RegistryObject<SoundEvent> UNDERTRIAL_DETECT_PLAYER2 = registerSoundEvent("undertrial_detect_player2");
public static final RegistryObject<SoundEvent> KING_IDLE = registerSoundEvent("king_idle");
public static final RegistryObject<SoundEvent> KING_WALK = registerSoundEvent("king_walk");
public static final RegistryObject<SoundEvent> KING_FLY_LOOP = registerSoundEvent("king_fly_loop");
public static final RegistryObject<SoundEvent> KING_WING_FLAP = registerSoundEvent("king_wing_flap");
public static final RegistryObject<SoundEvent> KING_BITE = registerSoundEvent("king_bite");
public static final RegistryObject<SoundEvent> KING_STOMP = registerSoundEvent("king_stomp");
public static final RegistryObject<SoundEvent> KING_ROAR = registerSoundEvent("king_roar");
public static final RegistryObject<SoundEvent> KING_HURT = registerSoundEvent("king_hurt");
public static final RegistryObject<SoundEvent> KING_DEATH = registerSoundEvent("king_death");
public static final RegistryObject<SoundEvent> KING_BEAM_SHOOT = registerSoundEvent("king_beam_shoot");
public static final RegistryObject<SoundEvent> KING_FIREBALL_SHOOT = registerSoundEvent("king_fireball_shoot");
public static final RegistryObject<SoundEvent> KING_ICE_SPIKES = registerSoundEvent("king_ice_spikes");
public static final RegistryObject<SoundEvent> KING_DECREE_CAST = registerSoundEvent("king_decree_cast");
public static final RegistryObject<SoundEvent> KING_DECREE = registerSoundEvent("king_decree");
public static final RegistryObject<SoundEvent> KING_SUCCESS = registerSoundEvent("king_success");
public static final RegistryObject<SoundEvent> KING_JUDGEMENT = registerSoundEvent("king_judgement");
public static final RegistryObject<SoundEvent> QUEEN_IDLE = registerSoundEvent("queen_idle");
public static final RegistryObject<SoundEvent> QUEEN_WALK = registerSoundEvent("queen_walk");
public static final RegistryObject<SoundEvent> QUEEN_FLY_LOOP = registerSoundEvent("queen_fly_loop");
public static final RegistryObject<SoundEvent> QUEEN_WING_FLAP = registerSoundEvent("queen_wing_flap");
public static final RegistryObject<SoundEvent> QUEEN_BITE = registerSoundEvent("queen_bite");
public static final RegistryObject<SoundEvent> QUEEN_STOMP = registerSoundEvent("queen_stomp");
public static final RegistryObject<SoundEvent> QUEEN_ROAR = registerSoundEvent("queen_roar");
public static final RegistryObject<SoundEvent> QUEEN_HURT = registerSoundEvent("queen_hurt");
public static final RegistryObject<SoundEvent> QUEEN_DEATH = registerSoundEvent("queen_death");
public static final RegistryObject<SoundEvent> QUEEN_BEAM_SHOOT = registerSoundEvent("queen_beam_shoot");
public static final RegistryObject<SoundEvent> QUEEN_BEAM_START = registerSoundEvent("queen_beam_start");
public static final RegistryObject<SoundEvent> QUEEN_BEAM_LOOP = registerSoundEvent("queen_beam_loop");
public static final RegistryObject<SoundEvent> QUEEN_BEAM_END = registerSoundEvent("queen_beam_end");
public static final RegistryObject<SoundEvent> QUEEN_BLACK_HOLE_SHOOT = registerSoundEvent("queen_black_hole_shoot");
public static final RegistryObject<SoundEvent> QUEEN_CAST_SHOOT = registerSoundEvent("queen_cast_shoot");
public static final RegistryObject<SoundEvent> PRINCE_IDLE = registerSoundEvent("prince_idle");
public static final RegistryObject<SoundEvent> PRINCE_BITE = registerSoundEvent("prince_bite");
public static final RegistryObject<SoundEvent> PRINCE_SHOOT = registerSoundEvent("prince_shoot");
public static final RegistryObject<SoundEvent> PRINCE_FLY = registerSoundEvent("prince_fly");
public static final RegistryObject<SoundEvent> PRINCE_STEP = registerSoundEvent("prince_step");
public static final RegistryObject<SoundEvent> PRINCESS_IDLE = registerSoundEvent("princess_idle");
public static final RegistryObject<SoundEvent> PRINCESS_BITE = registerSoundEvent("princess_bite");
public static final RegistryObject<SoundEvent> PRINCESS_SHOOT = registerSoundEvent("princess_shoot");
public static final RegistryObject<SoundEvent> PRINCESS_FLY = registerSoundEvent("princess_fly");
public static final RegistryObject<SoundEvent> PRINCESS_STEP = registerSoundEvent("princess_step");
public static final RegistryObject<SoundEvent> HOVERBOARD_MOUNT = registerSoundEvent("hoverboard_mount");
public static final RegistryObject<SoundEvent> HOVERBOARD_DISMOUNT = registerSoundEvent("hoverboard_dismount");
public static final RegistryObject<SoundEvent> HOVERBOARD_IDLE = registerSoundEvent("hoverboard_idle");
private AntarchyForgeSounds() {}
@@ -3,7 +3,7 @@ package com.craisinlord.antarchy.forge.registry;
import com.craisinlord.antarchy.content.entity.*;
import net.minecraft.world.entity.animal.AbstractFish;
import com.craisinlord.antarchy.content.entity.basilisk.BasiliskEntity;
import com.craisinlord.antarchy.content.entity.cloud_shark.CloudSharkEntity;
import com.craisinlord.antarchy.content.entity.stratoshark.StratosharkEntity;
import com.craisinlord.antarchy.content.entity.flying_squirrel.FlyingSquirrelEntity;
import com.craisinlord.antarchy.content.entity.kraken.KrakenEntity;
import com.craisinlord.antarchy.content.entity.lucid.LucidEntity;
@@ -30,30 +30,33 @@ public class AntarchyForgeSpawnPlacements {
event.register(AntarchyForgeEntites.APPLE_COW.get(), net.minecraft.world.entity.SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, Cow::checkAnimalSpawnRules, SpawnPlacementRegisterEvent.Operation.OR);
event.register(AntarchyForgeEntites.GOLDEN_APPLE_COW.get(), net.minecraft.world.entity.SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, Cow::checkAnimalSpawnRules, SpawnPlacementRegisterEvent.Operation.OR);
event.register(AntarchyForgeEntites.ENCHANTED_GOLDEN_APPLE_COW.get(), net.minecraft.world.entity.SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, Cow::checkAnimalSpawnRules, SpawnPlacementRegisterEvent.Operation.OR);
event.register(AntarchyForgeEntites.CLOUD_SHARK.get(), net.minecraft.world.entity.SpawnPlacements.Type.NO_RESTRICTIONS, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, CloudSharkEntity::canSpawn, SpawnPlacementRegisterEvent.Operation.OR);
event.register(AntarchyForgeEntites.STRATOSHARK.get(), net.minecraft.world.entity.SpawnPlacements.Type.NO_RESTRICTIONS, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, StratosharkEntity::canSpawn, SpawnPlacementRegisterEvent.Operation.OR);
event.register(AntarchyForgeEntites.WASP.get(), net.minecraft.world.entity.SpawnPlacements.Type.NO_RESTRICTIONS, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, WaspEntity::canSpawn, SpawnPlacementRegisterEvent.Operation.OR);
event.register(AntarchyForgeEntites.BOMBER.get(), net.minecraft.world.entity.SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, BomberEntity::canSpawn, SpawnPlacementRegisterEvent.Operation.OR);
event.register(AntarchyForgeEntites.JUMPY_BUG.get(), net.minecraft.world.entity.SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, JumpyBugEntity::canSpawn, SpawnPlacementRegisterEvent.Operation.OR);
event.register(AntarchyForgeEntites.SPRINGBUG.get(), net.minecraft.world.entity.SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, SpringbugEntity::canSpawn, SpawnPlacementRegisterEvent.Operation.OR);
event.register(AntarchyForgeEntites.SPIT_BUG.get(), net.minecraft.world.entity.SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, SpitBugEntity::canSpawn, SpawnPlacementRegisterEvent.Operation.OR);
event.register(AntarchyForgeEntites.KRAKEN.get(), net.minecraft.world.entity.SpawnPlacements.Type.IN_WATER, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, KrakenEntity::canSpawn, SpawnPlacementRegisterEvent.Operation.OR);
event.register(AntarchyForgeEntites.MISSILE_SQUID.get(), net.minecraft.world.entity.SpawnPlacements.Type.IN_WATER, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, MissileSquidEntity::canSpawn, SpawnPlacementRegisterEvent.Operation.OR);
event.register(AntarchyForgeEntites.OCTOPUS_BOMB.get(), net.minecraft.world.entity.SpawnPlacements.Type.IN_WATER, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, OctopusBombEntity::canSpawn, SpawnPlacementRegisterEvent.Operation.OR);
event.register(AntarchyForgeEntites.NIGHTMARE.get(), net.minecraft.world.entity.SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, NightmareEntity::canSpawn, SpawnPlacementRegisterEvent.Operation.OR);
event.register(AntarchyForgeEntites.MOLEWORM.get(), net.minecraft.world.entity.SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, MolewormEntity::canSpawn, SpawnPlacementRegisterEvent.Operation.OR);
event.register(AntarchyForgeEntites.WORM.get(), net.minecraft.world.entity.SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, WormEntity::canSpawn, SpawnPlacementRegisterEvent.Operation.OR);
event.register(AntarchyForgeEntites.MANTIS.get(), net.minecraft.world.entity.SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, MantisEntity::canSpawn, SpawnPlacementRegisterEvent.Operation.OR);
event.register(AntarchyForgeEntites.ALPHA_MANTIS.get(), net.minecraft.world.entity.SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, AlphaMantisEntity::checkAlphaMantisSpawnRules, SpawnPlacementRegisterEvent.Operation.OR);
event.register(AntarchyForgeEntites.MOLEVORE.get(), net.minecraft.world.entity.SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, MolevoreEntity::canSpawn, SpawnPlacementRegisterEvent.Operation.OR);
event.register(AntarchyForgeEntites.BED_BUG.get(), net.minecraft.world.entity.SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, BedBugEntity::canSpawn, SpawnPlacementRegisterEvent.Operation.OR);
event.register(AntarchyForgeEntites.STINK_BUG.get(), net.minecraft.world.entity.SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, StinkBugEntity::canSpawn, SpawnPlacementRegisterEvent.Operation.OR);
event.register(AntarchyForgeEntites.STINK_BUG.get(), net.minecraft.world.entity.SpawnPlacements.Type.NO_RESTRICTIONS, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, StinkBugEntity::canSpawn, SpawnPlacementRegisterEvent.Operation.OR);
event.register(AntarchyForgeEntites.LUCID.get(), net.minecraft.world.entity.SpawnPlacements.Type.NO_RESTRICTIONS, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, LucidEntity::canSpawn, SpawnPlacementRegisterEvent.Operation.OR);
event.register(AntarchyForgeEntites.VORTEX.get(), net.minecraft.world.entity.SpawnPlacements.Type.NO_RESTRICTIONS, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, com.craisinlord.antarchy.content.entity.vortex.VortexEntity::canSpawn, SpawnPlacementRegisterEvent.Operation.OR);
event.register(AntarchyForgeEntites.SCORPION.get(), net.minecraft.world.entity.SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, ScorpionEntity::canSpawn, SpawnPlacementRegisterEvent.Operation.OR);
event.register(AntarchyForgeEntites.BASILISK.get(), net.minecraft.world.entity.SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, BasiliskEntity::canSpawn, SpawnPlacementRegisterEvent.Operation.OR);
event.register(AntarchyForgeEntites.EMPEROR_SCORPION.get(), net.minecraft.world.entity.SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, EmperorScorpionEntity::canSpawn, SpawnPlacementRegisterEvent.Operation.OR);
event.register(AntarchyForgeEntites.CREEPING_HORROR.get(), net.minecraft.world.entity.SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, CreepingHorrorEntity::canSpawn, SpawnPlacementRegisterEvent.Operation.OR);
event.register(AntarchyForgeEntites.LURKING_TERROR.get(), net.minecraft.world.entity.SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, LurkingTerrorEntity::canSpawn, SpawnPlacementRegisterEvent.Operation.OR);
event.register(AntarchyForgeEntites.EMPEROR_SCORPION.get(), net.minecraft.world.entity.SpawnPlacements.Type.NO_RESTRICTIONS, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, EmperorScorpionEntity::canSpawn, SpawnPlacementRegisterEvent.Operation.OR);
event.register(AntarchyForgeEntites.CRAWLING_BLIGHT.get(), net.minecraft.world.entity.SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, CrawlingBlightEntity::canSpawn, SpawnPlacementRegisterEvent.Operation.OR);
event.register(AntarchyForgeEntites.SKULKING_FRIGHT.get(), net.minecraft.world.entity.SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, SkulkingFrightEntity::canSpawn, SpawnPlacementRegisterEvent.Operation.OR);
event.register(AntarchyForgeEntites.MANTICORE.get(), net.minecraft.world.entity.SpawnPlacements.Type.NO_RESTRICTIONS, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, com.craisinlord.antarchy.content.entity.ManticoreEntity::canSpawn, SpawnPlacementRegisterEvent.Operation.OR);
event.register(AntarchyForgeEntites.JERRY.get(), net.minecraft.world.entity.SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, JerryEntity::canSpawn, SpawnPlacementRegisterEvent.Operation.OR);
event.register(AntarchyForgeEntites.TERMITE.get(), net.minecraft.world.entity.SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, net.minecraft.world.entity.animal.Animal::checkAnimalSpawnRules, SpawnPlacementRegisterEvent.Operation.OR);
event.register(AntarchyForgeEntites.ROLLY_POLLY.get(), net.minecraft.world.entity.SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, com.craisinlord.antarchy.content.entity.RollyPollyEntity::canSpawn, SpawnPlacementRegisterEvent.Operation.OR);
event.register(AntarchyForgeEntites.ROLLY_POLLY.get(), net.minecraft.world.entity.SpawnPlacements.Type.NO_RESTRICTIONS, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, com.craisinlord.antarchy.content.entity.RollyPollyEntity::canSpawn, SpawnPlacementRegisterEvent.Operation.OR);
event.register(AntarchyForgeEntites.CHEEP.get(), net.minecraft.world.entity.SpawnPlacements.Type.IN_WATER, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, AbstractFish::checkSurfaceWaterAnimalSpawnRules, SpawnPlacementRegisterEvent.Operation.OR);
event.register(AntarchyForgeEntites.DORRIE.get(), net.minecraft.world.entity.SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, net.minecraft.world.entity.animal.Animal::checkAnimalSpawnRules, SpawnPlacementRegisterEvent.Operation.OR);
event.register(AntarchyForgeEntites.OURANWOOD_DEER.get(), net.minecraft.world.entity.SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, net.minecraft.world.entity.animal.Animal::checkAnimalSpawnRules, SpawnPlacementRegisterEvent.Operation.OR);
@@ -0,0 +1,27 @@
package com.craisinlord.antarchy.forge.registry;
import com.craisinlord.antarchy.Antarchy;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.event.server.ServerStoppingEvent;
import net.minecraftforge.event.entity.player.PlayerEvent;
@Mod.EventBusSubscriber(modid = Antarchy.MODID)
public final class PortalGunServerEvents {
private PortalGunServerEvents() {
}
@SubscribeEvent
public static void onServerStopping(ServerStoppingEvent event) {
com.craisinlord.antarchy.content.portalgun.PortalGunResetManager.clear(event.getServer());
com.craisinlord.antarchy.content.entity.ant.AntArrivalScheduler.clear();
com.craisinlord.antarchy.content.portalgun.PortalGunMoonAimSync.clear();
}
@SubscribeEvent
public static void onPlayerLogin(PlayerEvent.PlayerLoggedInEvent event) {
if (event.getEntity() instanceof net.minecraft.server.level.ServerPlayer player) {
com.craisinlord.antarchy.content.portalgun.PortalGunSavedData.clearMissingGuns(player);
}
}
}
@@ -4,27 +4,77 @@ license="${mod_license}"
[[mods]]
modId="${mod_id}"
logoFile="../assets/antarchy/antarchy_logo.png"
logoBlur=false
version="${version}"
displayName="${mod_name}"
displayURL="https://www.curseforge.com/minecraft/mc-mods/antarchy"
authors="${mod_authors}"
description='''${mod_description}'''
displayTest="MATCH_VERSION"
[[mixins]]
config="antarchy-common.mixins.json"
[[mixins]]
config="antarchy-forge.mixins.json"
[[dependencies.${mod_id}]]
modId="forge"
mandatory=true
versionRange="${forge_version_range}"
ordering="NONE"
side="BOTH"
[[dependencies.${mod_id}]]
modId="minecraft"
mandatory=true
versionRange="${minecraft_version_range}"
ordering="NONE"
side="BOTH"
# Antarchy already includes Apple Cows. Forge 1.20.1 has no "incompatible" dependency type,
# so this optional dependency uses a version range no release can satisfy: if the standalone
# Apple Cows mod is installed, Forge refuses to load instead of running both copies.
[[dependencies.${mod_id}]]
modId="anthology"
mandatory=true
versionRange="[1.0.0,)"
ordering="AFTER"
side="BOTH"
[[dependencies.${mod_id}]]
modId="antos"
mandatory=true
versionRange="[1.4.0,)"
ordering="AFTER"
side="BOTH"
[[dependencies.${mod_id}]]
modId="integrated_api"
mandatory=true
versionRange="[1.8.1,)"
ordering="AFTER"
side="BOTH"
[[dependencies.${mod_id}]]
modId="geckolib"
mandatory=true
versionRange="*"
ordering="AFTER"
side="BOTH"
[[dependencies.${mod_id}]]
modId="sizeable_foliage"
mandatory=true
versionRange="*"
ordering="AFTER"
side="BOTH"
[[dependencies.${mod_id}]]
modId="pehkui"
mandatory=true
versionRange="*"
ordering="AFTER"
side="BOTH"
[[dependencies.${mod_id}]]
modId="apple_cows"
mandatory=false
@@ -32,8 +82,9 @@ displayTest="MATCH_VERSION"
ordering="NONE"
side="BOTH"
[[mixins]]
config="antarchy-common.mixins.json"
[[mixins]]
config="antarchy-forge.mixins.json"
[[dependencies.${mod_id}]]
modId="hoverboards"
mandatory=false
versionRange="(,0)"
ordering="NONE"
side="BOTH"
@@ -4,15 +4,11 @@
"refmap": "antarchy-forge.mixins.refmap.json",
"compatibilityLevel": "JAVA_17",
"mixins": [
"entity.MultipartEntityBridgeMixin",
"entity.MultipartEntityLevelRegistryMixin",
"compat.SablePhysicsColliderBlockGetterMixin",
"item.BucketItemThoraxisWaterMixin",
"entity.ParalyzedMobFreezeMixin",
"infinity.AmendmentRareOresMixin",
"infinity.ConfigGenInvocationMixin",
"item.BucketItemThoraxisWaterMixin",
"level.ClientLevelPartEntitiesAccessor",
"level.LevelStemDiagnosticMixin",
"level.ServerLevelPartEntitiesAccessor"
"infinity.ConfigGenInvocationMixin"
],
"client": [
"client.LiquidBlockRendererMixin"
@@ -1,5 +1,5 @@
{
"parent": "neoforge:item/bucket",
"loader": "neoforge:fluid_container",
"parent": "forge:item/bucket",
"loader": "forge:fluid_container",
"fluid": "antarchy:antiwater"
}
@@ -1,5 +1,5 @@
{
"loader": "neoforge:separate_transforms",
"loader": "forge:separate_transforms",
"gui_light": "front",
"textures": {
"layer0": "antarchy:item/attitude_adjuster/attitude_adjuster_item"
@@ -1,5 +1,5 @@
{
"loader": "neoforge:separate_transforms",
"loader": "forge:separate_transforms",
"gui_light": "front",
"textures": {
"layer0": "antarchy:item/battle_axe/battle_axe_item"
@@ -1,5 +1,5 @@
{
"loader": "neoforge:separate_transforms",
"loader": "forge:separate_transforms",
"gui_light": "front",
"textures": {
"layer0": "antarchy:item/big_bertha/big_bertha_item"
@@ -1,5 +1,5 @@
{
"parent": "neoforge:item/bucket",
"loader": "neoforge:fluid_container",
"parent": "forge:item/bucket",
"loader": "forge:fluid_container",
"fluid": "antarchy:bile"
}
@@ -0,0 +1,25 @@
{
"loader": "forge:separate_transforms",
"gui_light": "front",
"textures": {
"layer0": "antarchy:item/eye_of_the_storm/eye_of_the_storm_item"
},
"base": {
"parent": "antarchy:item/eye_of_the_storm_held_geo"
},
"texture_size": [
64,
64
],
"perspectives": {
"gui": {
"parent": "antarchy:item/eye_of_the_storm_gui"
},
"ground": {
"parent": "antarchy:item/eye_of_the_storm_gui"
},
"fixed": {
"parent": "antarchy:item/eye_of_the_storm_gui"
}
}
}
@@ -0,0 +1,25 @@
{
"loader": "forge:separate_transforms",
"gui_light": "front",
"textures": {
"layer0": "antarchy:item/giant_frying_pan/giant_frying_pan_in_hand"
},
"base": {
"parent": "antarchy:item/giant_frying_pan_held"
},
"texture_size": [
128,
128
],
"perspectives": {
"gui": {
"parent": "antarchy:item/giant_frying_pan_gui"
},
"ground": {
"parent": "antarchy:item/giant_frying_pan_gui"
},
"fixed": {
"parent": "antarchy:item/giant_frying_pan_gui"
}
}
}
@@ -1,5 +1,5 @@
{
"loader": "neoforge:separate_transforms",
"loader": "forge:separate_transforms",
"gui_light": "front",
"base": {
"parent": "antarchy:item/gravity_gun_held_geo"
@@ -1,5 +1,5 @@
{
"loader": "neoforge:separate_transforms",
"loader": "forge:separate_transforms",
"gui_light": "front",
"base": {
"parent": "antarchy:item/grow_ray_held_geo"
@@ -1,5 +1,5 @@
{
"parent": "neoforge:item/bucket",
"loader": "neoforge:fluid_container",
"parent": "forge:item/bucket",
"loader": "forge:fluid_container",
"fluid": "antarchy:ichor"
}
@@ -1,5 +1,5 @@
{
"loader": "neoforge:separate_transforms",
"loader": "forge:separate_transforms",
"gui_light": "front",
"textures": {
"layer0": "antarchy:item/krakens_grasp/krakens_grasp_item"
Loaded 100 of 4681 files, more files were not shown because too many files have changed in this diff. Show more