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

+24 -4
View File
@@ -14,9 +14,13 @@ repositories {
maven { url "https://maven.fabricmc.net/" }
mavenCentral()
maven { url "https://www.cursemaven.com" }
maven { url "https://maven.architectury.dev/" }
maven { url "https://api.modrinth.com/maven" }
maven { url "https://maven.blamejared.com" }
maven { url "https://repo.spongepowered.org/repository/maven-public/" }
maven { url "https://jitpack.io" }
maven { url "https://maven.terraformersmc.com/releases/" }
maven { url "https://maven.shedaniel.me/" }
exclusiveContent {
forRepository {
maven {
@@ -55,6 +59,10 @@ sourceSets {
}
}
configurations.configureEach {
resolutionStrategy.force "net.fabricmc:fabric-loader:${fabric_loader_version}"
}
dependencies {
minecraft "com.mojang:minecraft:${minecraft_version}"
mappings loom.officialMojangMappings()
@@ -64,22 +72,34 @@ dependencies {
modImplementation "software.bernie.geckolib:geckolib-fabric-${minecraft_version}:${geckolib_version}"
modImplementation(files("$rootDir/../anthology_jars/anthology-${anthology_version}+1.20.1-fabric.jar"))
modCompileOnly("curse.maven:sizeable_foliage-${sizeable_foliage_curseforge_id}:${sizeable_foliage_curseforge_file_id_fabric}")
modLocalRuntime("curse.maven:sizeable_foliage-${sizeable_foliage_curseforge_id}:${sizeable_foliage_curseforge_file_id_fabric}")
modCompileOnly("curse.maven:intapi-${intapi_curseforge_id}:${intapi_curseforge_file_id_fabric}")
modLocalRuntime("curse.maven:intapi-${intapi_curseforge_id}:${intapi_curseforge_file_id_fabric}")
modCompileOnly(files("$rootDir/../integrated_api_jars/integrated_api-fabric-1.20.1-1.9.1.jar"))
modLocalRuntime(files("$rootDir/../integrated_api_jars/integrated_api-fabric-1.20.1-1.9.1.jar"))
modCompileOnly("curse.maven:pehkui-${pehkui_curseforge_id}:${pehkui_curseforge_file_id_fabric}")
modLocalRuntime("curse.maven:pehkui-${pehkui_curseforge_id}:${pehkui_curseforge_file_id_fabric}")
modCompileOnly(files("$rootDir/../infinite_dimensions_jars/Pehkui-3.7.8+1.14.4-1.20.1.jar"))
modLocalRuntime(files("$rootDir/../infinite_dimensions_jars/Pehkui-3.7.8+1.14.4-1.20.1.jar"))
modCompileOnly(files("$rootDir/../infinite_dimensions_jars/infinity-2.7.2+1.20.1-fabric.jar"))
modLocalRuntime(files("$rootDir/../infinite_dimensions_jars/infinity-2.7.2+1.20.1-fabric.jar"))
modLocalRuntime("dev.architectury:architectury-fabric:9.2.14")
modLocalRuntime("maven.modrinth:midnightlib:1.9.3+1.20.1-fabric")
modLocalRuntime(files("devlibs/KanosConfig-0.4.1.jar"))
compileOnly "mezz.jei:jei-${minecraft_version}-common-api:${jei_version}"
compileOnly "mezz.jei:jei-${minecraft_version}-fabric-api:${jei_version}"
modLocalRuntime "mezz.jei:jei-${minecraft_version}-fabric:${jei_version}"
modCompileOnly("me.shedaniel.cloth:cloth-config-fabric:11.1.136") {
exclude(group: "net.fabricmc.fabric-api")
}
modCompileOnly("com.terraformersmc:modmenu:7.2.2") {
exclude(group: "net.fabricmc.fabric-api")
}
annotationProcessor "org.spongepowered:mixin:0.8.7:processor"
}
Binary file not shown.
+2 -1
View File
@@ -14,11 +14,12 @@ sources_url=
logo_fabric=assets/antarchy/antarchy_logo.png
minecraft_version=1.20.1
fabric_loader_version=0.15.6
fabric_loader_version=0.17.2
fabric_api_version=0.92.0+1.20.1
jei_version=15.20.0.104
geckolib_version=4.8.4
anthology_version=1.0.0
sizeable_foliage_curseforge_id=1601832
sizeable_foliage_curseforge_file_id_fabric=8468698
@@ -1,6 +1,7 @@
package com.craisinlord.antarchy.fabric;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.config.AntarchyConfigCatalog;
import com.craisinlord.antarchy.config.AntarchySettings;
import com.craisinlord.antarchy.config.ConfigResetGuard;
import com.google.gson.Gson;
@@ -19,8 +20,6 @@ import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Arrays;
import java.util.Comparator;
import java.util.LinkedHashMap;
import java.util.Map;
@@ -36,7 +35,7 @@ public final class AntarchyConfigModuleFabric {
}
public static void init() {
ConfigResetGuard.wipeIfNeeded(
ConfigResetGuard.migrateIfNeeded(
CONFIG_DIR,
ConfigSection.MOBS.path,
ConfigSection.TOOLS.path,
@@ -57,6 +56,14 @@ public final class AntarchyConfigModuleFabric {
SettingBinding binding = entry.getValue();
JsonObject loadedSection = loaded.get(binding.section);
JsonElement element = loadedSection != null ? loadedSection.get(key) : null;
if (element == null) {
for (JsonObject otherSection : loaded.values()) {
if (otherSection != loadedSection && otherSection.has(key)) {
element = otherSection.get(key);
break;
}
}
}
if (element == null && legacy != null) {
element = legacy.get(key);
}
@@ -70,6 +77,26 @@ public final class AntarchyConfigModuleFabric {
}
}
public static Map<String, SettingBinding> getBindings() {
return SETTINGS;
}
public static void persist() {
Map<ConfigSection, JsonObject> normalized = new LinkedHashMap<>();
for (ConfigSection section : ConfigSection.values()) {
normalized.put(section, new JsonObject());
}
for (Map.Entry<String, SettingBinding> entry : SETTINGS.entrySet()) {
SettingBinding binding = entry.getValue();
normalized.get(binding.section).add(entry.getKey(), binding.toJson(binding.getCurrentValue()));
}
for (Map.Entry<ConfigSection, JsonObject> entry : normalized.entrySet()) {
writeConfig(entry.getKey().path, entry.getValue());
}
}
private static JsonObject readConfig(Path path) {
if (!Files.exists(path)) {
return null;
@@ -100,52 +127,25 @@ public final class AntarchyConfigModuleFabric {
}
private static Map<String, SettingBinding> buildBindings() {
Map<String, Method> getters = new LinkedHashMap<>();
for (Method method : AntarchySettings.class.getMethods()) {
if (!isPublicStatic(method) || method.getParameterCount() != 0 || method.getReturnType() == Void.TYPE) {
continue;
}
getters.put(method.getName(), method);
}
return Arrays.stream(AntarchySettings.class.getMethods())
.filter(AntarchyConfigModuleFabric::isPublicStatic)
.filter(method -> method.getName().startsWith("set"))
.filter(method -> method.getParameterCount() == 1)
.sorted(Comparator.comparing(Method::getName))
.collect(LinkedHashMap::new, (bindings, setter) -> {
String propertyName = decapitalize(setter.getName().substring(3));
Method getter = getters.get(propertyName);
if (getter == null) {
return;
}
if (!isSupported(setter.getParameterTypes()[0], getter.getReturnType())) {
return;
}
bindings.put(propertyName, new SettingBinding(propertyName, getter, setter, ConfigSection.forProperty(propertyName)));
}, Map::putAll);
return AntarchyConfigCatalog.definitions().stream()
.collect(LinkedHashMap::new, (bindings, definition) -> bindings.put(
definition.name(),
new SettingBinding(
definition.name(),
definition.getter(),
definition.setter(),
toConfigSection(definition.section()))), Map::putAll);
}
private static boolean isPublicStatic(Method method) {
int modifiers = method.getModifiers();
return java.lang.reflect.Modifier.isPublic(modifiers) && java.lang.reflect.Modifier.isStatic(modifiers);
private static ConfigSection toConfigSection(AntarchyConfigCatalog.Section section) {
return switch (section) {
case MOBS -> ConfigSection.MOBS;
case TOOLS -> ConfigSection.TOOLS;
case MISC -> ConfigSection.MISC;
};
}
private static boolean isSupported(Class<?> setterType, Class<?> getterType) {
if (setterType == boolean.class || setterType == int.class || setterType == double.class || setterType == float.class) {
return getterType == setterType;
}
return setterType == String.class && ResourceKey.class.isAssignableFrom(getterType);
}
private static String decapitalize(String value) {
if (value.isEmpty()) {
return value;
}
return Character.toLowerCase(value.charAt(0)) + value.substring(1);
}
private enum ConfigSection {
public enum ConfigSection {
MOBS("antarchy_mobs.json"),
TOOLS("antarchy_tools.json"),
MISC("antarchy_misc.json");
@@ -156,71 +156,9 @@ public final class AntarchyConfigModuleFabric {
this.path = CONFIG_DIR.resolve(fileName);
}
private static ConfigSection forProperty(String name) {
if (isMiscSetting(name)) {
return MISC;
}
if (isToolSetting(name)) {
return TOOLS;
}
return MOBS;
}
private static boolean isMiscSetting(String name) {
return name.equals("disableInfinityBookPortalCreation")
|| name.equals("rainbowAntsLeadToInfinityDimensions")
|| name.equals("permanentPortalsEnabled")
|| name.equals("permanentPortalsFlintAndSteelEnabled")
|| name.equals("elythiaPortalEnabled")
|| name.equals("thoraxisPortalEnabled")
|| name.equals("cavarynPortalEnabled")
|| name.equals("hushweedSporeLifetimeSeconds")
|| name.equals("elythiaFireflyParticlesEnabled")
|| name.equals("duplicatorTreeEnabled")
|| name.equals("glowVinesUnderLeaves")
|| name.equals("swingThroughGrassEnabled")
|| name.equals("fabricKeybindingConflictFixEnabled")
|| name.equals("experimentalSettingsPopupDisabled")
|| name.equals("entitySpecificFireOverlayEnabled")
|| name.equals("dreamSandEnabled")
|| name.startsWith("dreamSand")
|| name.equals("ichorWitherEnabled")
|| name.startsWith("diamondMinecart");
}
private static boolean isToolSetting(String name) {
return name.equals("sizeChangingRaysEnabled")
|| name.startsWith("sizeRay")
|| name.equals("shrinkingPotionDelta")
|| name.equals("growthPotionDelta")
|| name.startsWith("ultimate")
|| name.startsWith("battleAxe")
|| name.startsWith("bigBertha")
|| name.startsWith("attitudeAdjuster")
|| name.startsWith("scorpionWhip")
|| name.startsWith("bloodCrystal")
|| name.startsWith("nightmareHelmet")
|| name.startsWith("nightmareChestplate")
|| name.startsWith("nightmareLeggings")
|| name.startsWith("nightmareBoots")
|| name.startsWith("nightmareArmorDreadAura")
|| name.startsWith("primordialArmor")
|| name.startsWith("nightmareSword")
|| name.startsWith("basiliskDagger")
|| name.startsWith("squidzooka")
|| name.equals("invertProjectilesFromInvertedPlayers")
|| name.startsWith("gravityGun")
|| name.startsWith("critterCage")
|| name.equals("potentNyxiteInvertedDurationSeconds")
|| name.equals("corneaEarNightVisionSeconds")
|| name.startsWith("american")
|| name.startsWith("mogglesVision")
|| name.equals("ductTapeRepairPercentPerUse")
|| name.startsWith("fallenKingCrown");
}
}
private static final class SettingBinding {
public static final class SettingBinding {
private final String name;
private final Method getter;
private final Method setter;
@@ -235,6 +173,26 @@ public final class AntarchyConfigModuleFabric {
this.section = section;
}
public String getName() {
return name;
}
public ConfigSection getSection() {
return section;
}
public Class<?> getType() {
return setterType;
}
public Object getValue() {
return getCurrentValue();
}
public void setValue(Object value) {
apply(value);
}
private Object readValue(JsonElement element) {
Object defaultValue = getCurrentValue();
if (element == null || element.isJsonNull()) {
@@ -3,6 +3,7 @@ import com.craisinlord.antarchy.fabric.registry.AntarchyFabricEntities;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.AntarchyGameRules;
import com.craisinlord.antarchy.content.advancement.AntarchyAdvancementTriggers;
import com.craisinlord.antarchy.content.entity.trades.DrTrayaurusTradeManager;
import com.craisinlord.antarchy.content.item.BloodCrystalShardItem;
import com.craisinlord.antarchy.fabric.network.AntarchyFabricNetworking;
@@ -150,12 +151,12 @@ public final class AntarchyFabric implements ModInitializer {
GameRuleRegistry.register(name, category, GameRuleFactory.createBooleanRule(defaultValue))
);
AntarchyFabricNetworking.register();
AntarchyFabricNetworking.bootstrapMultipartCommon();
AntarchyConfigModuleFabric.init();
AntarchyFabricContent.register();
registerWorldgenFeatures();
AntarchyFabricEvents.register();
BloodglassManager.register();
TigerEyeFabricManager.register();
AntarchyAdvancementTriggers.register();
Antarchy.init();
BloodCrystalShardItem.SYNC_BLOODGLASS = BloodglassManager::syncBloodglass;
registerTradeReloadListener();
@@ -176,6 +177,20 @@ public final class AntarchyFabric implements ModInitializer {
return delegate.reload(barrier, manager, prepareProfiler, applyProfiler, prepareExecutor, applyExecutor);
}
});
com.craisinlord.antarchy.content.entity.trades.PestControlTradeManager pestControlDelegate = new com.craisinlord.antarchy.content.entity.trades.PestControlTradeManager();
ResourceManagerHelper.get(PackType.SERVER_DATA).registerReloadListener(new IdentifiableResourceReloadListener() {
@Override
public ResourceLocation getFabricId() {
return new ResourceLocation(Antarchy.MODID, "pest_control_trades");
}
@Override
public CompletableFuture<Void> reload(PreparableReloadListener.PreparationBarrier barrier, ResourceManager manager,
ProfilerFiller prepareProfiler, ProfilerFiller applyProfiler,
Executor prepareExecutor, Executor applyExecutor) {
return pestControlDelegate.reload(barrier, manager, prepareProfiler, applyProfiler, prepareExecutor, applyExecutor);
}
});
}
private static final TagKey<net.minecraft.world.level.biome.Biome> CAVARYN_BIOMES = TagKey.create(
@@ -1,10 +1,13 @@
package com.craisinlord.antarchy.fabric;
import com.craisinlord.anthology.effect.AnthologyEffects;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.compat.infinity.InfinityCompat;
import com.craisinlord.antarchy.compat.infinity.InfinityConfigRefresh;
import com.craisinlord.antarchy.compat.infinity.InfinityCompatVersion;
import com.craisinlord.antarchy.content.AntarchyObjects;
import com.craisinlord.antarchy.content.enchantment.AntarchyEnchantments;
import com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync;
import com.craisinlord.antarchy.content.block.*;
import com.craisinlord.antarchy.content.AntarchySoundEvents;
import com.craisinlord.antarchy.content.item.BloodCrystalKatanaItem;
@@ -13,8 +16,10 @@ import com.craisinlord.antarchy.fabric.registry.DeferredHolder;
import com.craisinlord.antarchy.content.entity.lucid.LucidEntity;
import com.craisinlord.antarchy.content.entity.lucid.LucidBoltEntity;
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.item.ScorpionWhipTetherSync;
import com.craisinlord.antarchy.content.network.ImpactShakeSync;
import com.craisinlord.antarchy.content.item.WormHookTetherSync;
import com.craisinlord.antarchy.content.network.HerculesBeetleImpactShakeSync;
import com.craisinlord.antarchy.content.network.HordeIntensitySync;
import com.craisinlord.antarchy.content.portal.PermanentPortalType;
@@ -27,6 +32,7 @@ import net.minecraft.world.item.Items;
import net.minecraft.world.item.alchemy.Potions;
import net.minecraft.world.item.crafting.Ingredient;
import net.minecraft.world.level.block.LiquidBlock;
import net.minecraft.world.level.block.DispenserBlock;
import net.fabricmc.loader.api.FabricLoader;
import com.craisinlord.antarchy.fabric.registry.AntarchyFabricBlocks;
import com.craisinlord.antarchy.fabric.registry.AntarchyFabricItems;
@@ -70,8 +76,7 @@ public final class AntarchyFabricContent {
public static void register() {
com.craisinlord.antarchy.content.entity.UpwardFallingBlockEntity.TYPE = AntarchyFabricEntities.UPWARD_FALLING_BLOCK;
private static void registerBrewingRecipes() {
net.fabricmc.fabric.api.registry.FabricBrewingRecipeRegistry.registerPotionRecipe(net.minecraft.world.item.alchemy.Potions.AWKWARD, Ingredient.of(AntarchyFabricItems.LUCID_EYE.get()), potionHolder(AntarchyFabricMisc.INVERSION));
net.fabricmc.fabric.api.registry.FabricBrewingRecipeRegistry.registerPotionRecipe(potionHolder(AntarchyFabricMisc.INVERSION), Ingredient.of(Items.REDSTONE), potionHolder(AntarchyFabricMisc.LONG_INVERSION));
net.fabricmc.fabric.api.registry.FabricBrewingRecipeRegistry.registerPotionRecipe(net.minecraft.world.item.alchemy.Potions.AWKWARD, Ingredient.of(AntarchyFabricItems.STINK_BUG_ITEM.get()), potionHolder(AntarchyFabricMisc.STINKY_POTION));
@@ -86,17 +91,27 @@ public final class AntarchyFabricContent {
net.fabricmc.fabric.api.registry.FabricBrewingRecipeRegistry.registerPotionRecipe(net.minecraft.world.item.alchemy.Potions.AWKWARD, Ingredient.of(AntarchyFabricItems.TITANIUM_NUGGET.get()), potionHolder(AntarchyFabricMisc.GROWING));
net.fabricmc.fabric.api.registry.FabricBrewingRecipeRegistry.registerPotionRecipe(potionHolder(AntarchyFabricMisc.GROWING), Ingredient.of(Items.GLOWSTONE_DUST), potionHolder(AntarchyFabricMisc.STRONG_GROWING));
net.fabricmc.fabric.api.registry.FabricBrewingRecipeRegistry.registerPotionRecipe(potionHolder(AntarchyFabricMisc.STRONG_GROWING), Ingredient.of(Items.GLOWSTONE_DUST), potionHolder(AntarchyFabricMisc.EXTREME_GROWING));
net.fabricmc.fabric.api.registry.FabricBrewingRecipeRegistry.registerPotionRecipe(net.minecraft.world.item.alchemy.Potions.AWKWARD, Ingredient.of(AntarchyFabricItems.CLOUD_SHARK_FIN.get()), net.minecraft.world.item.alchemy.Potions.SLOW_FALLING);
net.fabricmc.fabric.api.registry.FabricBrewingRecipeRegistry.registerPotionRecipe(net.minecraft.world.item.alchemy.Potions.AWKWARD, Ingredient.of(AntarchyFabricItems.JUMPY_BUG_LEG.get()), Potions.LEAPING);
net.fabricmc.fabric.api.registry.FabricBrewingRecipeRegistry.registerPotionRecipe(net.minecraft.world.item.alchemy.Potions.AWKWARD, Ingredient.of(AntarchyFabricItems.CORNEA_EAR.get()), net.minecraft.world.item.alchemy.Potions.NIGHT_VISION);
net.fabricmc.fabric.api.registry.FabricBrewingRecipeRegistry.registerPotionRecipe(net.minecraft.world.item.alchemy.Potions.AWKWARD, Ingredient.of(AntarchyFabricItems.KING_SCALE.get()), potionHolder(AntarchyFabricMisc.COMMAND));
net.fabricmc.fabric.api.registry.FabricBrewingRecipeRegistry.registerPotionRecipe(potionHolder(AntarchyFabricMisc.COMMAND), Ingredient.of(Items.REDSTONE), potionHolder(AntarchyFabricMisc.LONG_COMMAND));
net.fabricmc.fabric.api.registry.FabricBrewingRecipeRegistry.registerPotionRecipe(net.minecraft.world.item.alchemy.Potions.AWKWARD, Ingredient.of(AntarchyFabricItems.QUEEN_SCALE.get()), potionHolder(AntarchyFabricMisc.TIME_DILATION));
net.fabricmc.fabric.api.registry.FabricBrewingRecipeRegistry.registerPotionRecipe(potionHolder(AntarchyFabricMisc.TIME_DILATION), Ingredient.of(Items.GLOWSTONE_DUST), potionHolder(AntarchyFabricMisc.LONG_TIME_DILATION));
net.fabricmc.fabric.api.registry.FabricBrewingRecipeRegistry.registerPotionRecipe(potionHolder(AntarchyFabricMisc.TIME_DILATION), Ingredient.of(Items.FERMENTED_SPIDER_EYE), potionHolder(AntarchyFabricMisc.TIME_CONTRACTION));
net.fabricmc.fabric.api.registry.FabricBrewingRecipeRegistry.registerPotionRecipe(potionHolder(AntarchyFabricMisc.TIME_CONTRACTION), Ingredient.of(Items.GLOWSTONE_DUST), potionHolder(AntarchyFabricMisc.LONG_TIME_CONTRACTION));
net.fabricmc.fabric.api.registry.FabricBrewingRecipeRegistry.registerPotionRecipe(net.minecraft.world.item.alchemy.Potions.AWKWARD, Ingredient.of(AntarchyFabricItems.STRATOSHARK_FIN.get()), net.minecraft.world.item.alchemy.Potions.SLOW_FALLING);
net.fabricmc.fabric.api.registry.FabricBrewingRecipeRegistry.registerPotionRecipe(net.minecraft.world.item.alchemy.Potions.AWKWARD, Ingredient.of(AntarchyFabricItems.SPRINGBUG_LEG.get()), Potions.LEAPING);
net.fabricmc.fabric.api.registry.FabricBrewingRecipeRegistry.registerPotionRecipe(net.minecraft.world.item.alchemy.Potions.AWKWARD, Ingredient.of(AntarchyFabricItems.CORNEA_EAR.get()), net.minecraft.world.item.alchemy.Potions.NIGHT_VISION);
}
public static void register() {
com.craisinlord.antarchy.content.entity.UpwardFallingBlockEntity.TYPE = AntarchyFabricEntities.UPWARD_FALLING_BLOCK;
AntarchyFabricSounds.SOUND_EVENTS.register();
AntarchyFabricMisc.FLUIDS.register();
AntarchyFabricBlocks.BLOCKS.register();
AntarchyFabricBlocks.registerStripping();
AntarchyFabricEntities.ENTITY_TYPES.register();
AntarchyFabricMisc.ATTRIBUTES.register();
AntarchyObjects.setEntityReach(() -> AntarchyFabricMisc.ENTITY_INTERACTION_RANGE.get());
AntarchyFabricEntityAttributes.register();
AntarchyFabricSpawnPlacements.register();
AntarchyFabricBlocks.BLOCK_ENTITY_TYPES.register();
@@ -110,7 +125,11 @@ public final class AntarchyFabricContent {
AntarchyFabricMisc.MENUS.register();
AntarchyFabricMisc.ENCHANTMENTS.register();
AntarchyFabricMisc.RECIPE_SERIALIZERS.register();
AntarchyFabricMisc.FROG_VARIANTS.register();
AntarchyFabricCreativeModeTabs.CREATIVE_MODE_TABS.register();
registerBrewingRecipes();
DispenserBlock.registerBehavior(AntarchyFabricItems.VORTEX_CHARGE.get(), new com.craisinlord.antarchy.content.dispenser.VortexChargeDispenseBehavior());
DispenserBlock.registerBehavior(AntarchyFabricItems.EYE_OF_THE_STORM.get(), new com.craisinlord.antarchy.content.dispenser.EyeOfTheStormDispenseBehavior());
PermanentPortalType.bindBlocks(
() -> AntarchyFabricBlocks.MOSSY_OURANWOOD_WOOD.get(),
@@ -123,20 +142,24 @@ public final class AntarchyFabricContent {
AntarchySoundEvents.bind(
AntarchyFabricSounds.SQUIDZOOKA_FIRE,
AntarchyFabricSounds.SHRINK_RAY_SOUND,
AntarchyFabricSounds.GROWTH_RAY_SOUND,
AntarchyFabricSounds.SIZE_RAY_CHARGE,
AntarchyFabricSounds.SHRINK_RAY_CHARGE,
AntarchyFabricSounds.SHRINK_RAY_LOOP,
AntarchyFabricSounds.GROWTH_RAY_CHARGE,
AntarchyFabricSounds.GROWTH_RAY_LOOP,
AntarchyFabricSounds.SIZE_RAY_WEAKSHOT,
AntarchyFabricSounds.SIZE_RAY_MEDIUMSHOT,
AntarchyFabricSounds.SIZE_RAY_CRITSHOT,
AntarchyFabricSounds.ANT_AMBIENT,
AntarchyFabricSounds.ANT_IDLE,
AntarchyFabricSounds.ANT_HURT,
AntarchyFabricSounds.ANT_BITE,
AntarchyFabricSounds.ANT_GATHER,
AntarchyFabricSounds.ANT_NEST,
AntarchyFabricSounds.CLOUD_SHARK_BITE,
AntarchyFabricSounds.CLOUD_SHARK_IDLE,
AntarchyFabricSounds.CLOUD_SHARK_HURT,
AntarchyFabricSounds.CLOUD_SHARK_DEATH,
AntarchyFabricSounds.CLOUD_SHARK_FLY,
AntarchyFabricSounds.STRATOSHARK_BITE,
AntarchyFabricSounds.STRATOSHARK_IDLE,
AntarchyFabricSounds.STRATOSHARK_HURT,
AntarchyFabricSounds.STRATOSHARK_DEATH,
AntarchyFabricSounds.STRATOSHARK_FLY,
AntarchyFabricSounds.CATERPILLAR_IDLE,
AntarchyFabricSounds.CATERPILLAR_HURT,
AntarchyFabricSounds.CATERPILLAR_CRAWL,
@@ -144,6 +167,7 @@ public final class AntarchyFabricContent {
AntarchyFabricSounds.BRUTALFLY_IDLE,
AntarchyFabricSounds.BRUTALFLY_DEATH,
AntarchyFabricSounds.ELYTHIA_FIREFLY_AMBIENT,
AntarchyFabricSounds.ELYTHIA_OURANWOOD_FOREST_AMBIENT,
AntarchyFabricSounds.MISSILE_SQUID_AMBIENT,
AntarchyFabricSounds.MISSILE_SQUID_HURT,
AntarchyFabricSounds.MISSILE_SQUID_DEATH,
@@ -195,16 +219,20 @@ public final class AntarchyFabricContent {
AntarchyFabricSounds.NIGHTMARE_DEATH,
AntarchyFabricSounds.NIGHTMARE_BITE,
AntarchyFabricSounds.NIGHTMARE_FLAP,
AntarchyFabricSounds.TRIFFID_ATTACK,
AntarchyFabricSounds.TRIFFID_GRAB,
AntarchyFabricSounds.TRIFFID_HURT,
AntarchyFabricSounds.TRIFFID_DEATH,
AntarchyFabricSounds.TRIFFID_HISS,
AntarchyFabricSounds.TRIFFID_GROWL,
AntarchyFabricSounds.FLYTRAP_ATTACK,
AntarchyFabricSounds.FLYTRAP_GRAB,
AntarchyFabricSounds.FLYTRAP_HURT,
AntarchyFabricSounds.FLYTRAP_DEATH,
AntarchyFabricSounds.FLYTRAP_HISS,
AntarchyFabricSounds.FLYTRAP_GROWL,
AntarchyFabricSounds.MANTIS_AMBIENT,
AntarchyFabricSounds.MANTIS_HURT,
AntarchyFabricSounds.MANTIS_ATTACK,
AntarchyFabricSounds.MANTIS_FLY_LOOP,
AntarchyFabricSounds.MANTICORE_IDLE,
AntarchyFabricSounds.MANTICORE_WALK,
AntarchyFabricSounds.MANTICORE_FLY,
AntarchyFabricSounds.MANTICORE_BITE,
AntarchyFabricSounds.GRAVITY_GUN_PICKUP,
AntarchyFabricSounds.GRAVITY_GUN_DROP,
AntarchyFabricSounds.GRAVITY_GUN_HOLD_LOOP,
@@ -249,13 +277,13 @@ public final class AntarchyFabricContent {
AntarchyFabricSounds.STINK_BUG_IDLE,
AntarchyFabricSounds.CAVARYN_HEARTBEAT,
AntarchyFabricSounds.ROLLY_POLLY_IDLE,
AntarchyFabricSounds.CREEPING_HORROR_GROWL,
AntarchyFabricSounds.CREEPING_HORROR_HURT,
AntarchyFabricSounds.CREEPING_HORROR_BITE,
AntarchyFabricSounds.LURKING_TERROR_SNARL,
AntarchyFabricSounds.LURKING_TERROR_HURT,
AntarchyFabricSounds.LURKING_TERROR_BITE,
AntarchyFabricSounds.LURKING_TERROR_FLY_LOOP,
AntarchyFabricSounds.CRAWLING_BLIGHT_GROWL,
AntarchyFabricSounds.CRAWLING_BLIGHT_HURT,
AntarchyFabricSounds.CRAWLING_BLIGHT_BITE,
AntarchyFabricSounds.SKULKING_FRIGHT_SNARL,
AntarchyFabricSounds.SKULKING_FRIGHT_HURT,
AntarchyFabricSounds.SKULKING_FRIGHT_BITE,
AntarchyFabricSounds.SKULKING_FRIGHT_FLY_LOOP,
AntarchyFabricSounds.DUCT_TAPE_USE,
AntarchyFabricSounds.HERCULES_BEETLE_IDLE,
AntarchyFabricSounds.HERCULES_BEETLE_HURT,
@@ -263,10 +291,10 @@ public final class AntarchyFabricContent {
AntarchyFabricSounds.HERCULES_BEETLE_CRY,
AntarchyFabricSounds.HERCULES_BEETLE_CHARGE_START,
AntarchyFabricSounds.HERCULES_BEETLE_KNOCKED_DOWN,
AntarchyFabricSounds.JUMPY_BUG_IDLE,
AntarchyFabricSounds.SPRINGBUG_IDLE,
AntarchyFabricSounds.SPIT_BUG_IDLE,
AntarchyFabricSounds.JUMPY_BUG_HURT,
AntarchyFabricSounds.JUMPY_BUG_JUMP,
AntarchyFabricSounds.SPRINGBUG_HURT,
AntarchyFabricSounds.SPRINGBUG_JUMP,
AntarchyFabricSounds.SPIT_BUG_HURT,
AntarchyFabricSounds.SPIT_BUG_SPIT,
AntarchyFabricSounds.BRUTALFLY_SPIT,
@@ -280,23 +308,95 @@ public final class AntarchyFabricContent {
AntarchyFabricSounds.JERRY_ADULT_IDLE,
AntarchyFabricSounds.JERRY_ADULT_HURT,
AntarchyFabricSounds.JERRY_ADULT_DEATH,
AntarchyFabricSounds.JERRY_ADULT_ATTACK
AntarchyFabricSounds.JERRY_ADULT_ATTACK,
AntarchyFabricSounds.WORM_HOOK_FLYING,
AntarchyFabricSounds.BLOOD_CRYSTAL_KATANA_DASH,
AntarchyFabricSounds.BLOOD_CRYSTAL_ARMOR_EQUIP,
AntarchyFabricSounds.BLOODGLASS_WARD_HEART_BREAK,
AntarchyFabricSounds.BLOODGLASS_WARD_HEART_REGEN,
AntarchyFabricSounds.KING_IDLE,
AntarchyFabricSounds.KING_HURT,
AntarchyFabricSounds.KING_DEATH,
AntarchyFabricSounds.KING_BITE,
AntarchyFabricSounds.QUEEN_IDLE,
AntarchyFabricSounds.QUEEN_HURT,
AntarchyFabricSounds.QUEEN_DEATH,
AntarchyFabricSounds.QUEEN_BITE,
AntarchyFabricSounds.QUEEN_ROAR,
AntarchyFabricSounds.KING_BEAM_SHOOT,
AntarchyFabricSounds.KING_FIREBALL_SHOOT,
AntarchyFabricSounds.KING_ICE_SPIKES,
AntarchyFabricSounds.KING_DECREE_CAST,
AntarchyFabricSounds.QUEEN_BEAM_SHOOT,
AntarchyFabricSounds.QUEEN_BEAM_START,
AntarchyFabricSounds.QUEEN_BEAM_LOOP,
AntarchyFabricSounds.QUEEN_BEAM_END,
AntarchyFabricSounds.KING_STOMP,
AntarchyFabricSounds.KING_ROAR,
AntarchyFabricSounds.KING_WING_FLAP,
AntarchyFabricSounds.KING_FLY_LOOP,
AntarchyFabricSounds.QUEEN_FLY_LOOP,
AntarchyFabricSounds.PRINCE_IDLE,
AntarchyFabricSounds.PRINCE_BITE,
AntarchyFabricSounds.PRINCE_SHOOT,
AntarchyFabricSounds.PRINCE_FLY,
AntarchyFabricSounds.PRINCE_STEP,
AntarchyFabricSounds.PRINCESS_IDLE,
AntarchyFabricSounds.PRINCESS_BITE,
AntarchyFabricSounds.PRINCESS_SHOOT,
AntarchyFabricSounds.PRINCESS_FLY,
AntarchyFabricSounds.PRINCESS_STEP,
AntarchyFabricSounds.KING_DECREE,
AntarchyFabricSounds.KING_SUCCESS,
AntarchyFabricSounds.KING_JUDGEMENT
);
AntarchySoundEvents.bindDimensionalTearSounds(
AntarchyFabricSounds.DIMENSIONAL_TEAR_OPEN,
AntarchyFabricSounds.DIMENSIONAL_TEAR_IDLE,
AntarchyFabricSounds.DIMENSIONAL_TEAR_CREATURE_LEAVES,
AntarchyFabricSounds.DIMENSIONAL_TEAR_CLOSE
);
AntarchySoundEvents.bindHoverboardSounds(AntarchyFabricSounds.HOVERBOARD_MOUNT, AntarchyFabricSounds.HOVERBOARD_DISMOUNT, AntarchyFabricSounds.HOVERBOARD_IDLE);
AntarchyObjects.setOctopusBomb(AntarchyFabricEntities.OCTOPUS_BOMB);
AntarchyObjects.setTentacle(AntarchyFabricEntities.TENTACLE);
AntarchyObjects.setNightmare(AntarchyFabricEntities.NIGHTMARE);
AntarchyObjects.setNightmarePortal(AntarchyFabricEntities.NIGHTMARE_PORTAL);
AntarchyObjects.setDimensionalTear(AntarchyFabricEntities.DIMENSIONAL_TEAR);
AntarchyObjects.setNightmareBite(AntarchyFabricEntities.NIGHTMARE_BITE);
AntarchyObjects.setLucid(AntarchyFabricEntities.LUCID);
AntarchyObjects.setVortex(AntarchyFabricEntities.VORTEX);
AntarchyObjects.setWindVortex(() -> AntarchyFabricEntities.WIND_VORTEX.get());
AntarchyObjects.setRoyalBlackHole(() -> AntarchyFabricEntities.ROYAL_BLACK_HOLE.get());
AntarchyObjects.setRoyalAssailantBlackHole(() -> AntarchyFabricEntities.ROYAL_ASSAILANT_BLACK_HOLE.get());
AntarchyObjects.setVortexChargeProjectile(() -> AntarchyFabricEntities.VORTEX_CHARGE_PROJECTILE.get());
AntarchyObjects.setPrince(() -> AntarchyFabricEntities.PRINCE.get());
AntarchyObjects.setPrincess(() -> AntarchyFabricEntities.PRINCESS.get());
AntarchyObjects.setKing(() -> AntarchyFabricEntities.KING.get());
AntarchyObjects.setQueen(() -> AntarchyFabricEntities.QUEEN.get());
AntarchyObjects.setManticore(() -> AntarchyFabricEntities.MANTICORE.get());
AntarchyObjects.setRoyalBolt(() -> AntarchyFabricEntities.ROYAL_BOLT.get());
AntarchyObjects.setRoyalElementalProjectile(() -> AntarchyFabricEntities.ROYAL_ELEMENTAL_PROJECTILE.get());
AntarchyObjects.setRoyalIceSpike(() -> AntarchyFabricEntities.ROYAL_ICE_SPIKE.get());
AntarchyObjects.setPrinceEgg(() -> AntarchyFabricBlocks.PRINCE_EGG.get());
AntarchyObjects.setPrincessEgg(() -> AntarchyFabricBlocks.PRINCESS_EGG.get());
AntarchyObjects.setRoyalEggBlockEntity(() -> AntarchyFabricBlocks.ROYAL_EGG_BLOCK_ENTITY.get());
AntarchyObjects.setVortexLens(() -> AntarchyFabricBlocks.VORTEX_LENS.get());
AntarchyObjects.setVortexLensBlockEntity(() -> AntarchyFabricBlocks.VORTEX_LENS_BLOCK_ENTITY.get());
AntarchyObjects.setDimensionalTearMarker(() -> AntarchyFabricBlocks.DIMENSIONAL_TEAR_MARKER.get());
AntarchyObjects.setDimensionalTearMarkerBlockEntity(() -> AntarchyFabricBlocks.DIMENSIONAL_TEAR_MARKER_BLOCK_ENTITY.get());
AntarchyObjects.setKrakensGraspTrident(AntarchyFabricEntities.KRAKENS_GRASP_TRIDENT);
AntarchyObjects.setLotus(() -> AntarchyFabricBlocks.LOTUS.get());
AntarchyObjects.setKrakenTentacle(() -> AntarchyFabricItems.KRAKEN_TENTACLE.get());
AntarchyObjects.setKrakensGrasp(() -> AntarchyFabricItems.KRAKENS_GRASP.get());
AntarchyObjects.setOuranwoodDeer(AntarchyFabricEntities.OURANWOOD_DEER);
AntarchyObjects.setDimensionalTear(AntarchyFabricEntities.DIMENSIONAL_TEAR);
AntarchyObjects.setGlimmer(AntarchyFabricEntities.GLIMMER);
AntarchyObjects.setRollyPolly(AntarchyFabricEntities.ROLLY_POLLY);
AntarchyObjects.setGlimmer(AntarchyFabricEntities.GLIMMER);
AntarchyObjects.setSpiritApple(() -> AntarchyFabricItems.SPIRIT_APPLE.get());
AntarchyObjects.setGlimmeringEffect(() -> AntarchyFabricMisc.mobEffectHolder(AntarchyFabricMisc.GLIMMERING));
AntarchyObjects.setRoyalVitalityPenaltyEffect(() -> AntarchyFabricMisc.mobEffectHolder(AntarchyFabricMisc.ROYAL_VITALITY_PENALTY));
AntarchyObjects.setBleedingEffect(() -> AntarchyFabricMisc.mobEffectHolder(AntarchyFabricMisc.BLEEDING));
AntarchyObjects.setBloodMoonEffect(() -> AntarchyFabricMisc.mobEffectHolder(AntarchyFabricMisc.BLOOD_MOON));
AntarchyObjects.setElka(AntarchyFabricEntities.ELKA);
AntarchyObjects.setPeach(() -> AntarchyFabricItems.PEACH.get());
AntarchyObjects.setCorn(() -> AntarchyFabricItems.CORN.get());
@@ -312,18 +412,24 @@ public final class AntarchyFabricContent {
AntarchyObjects.setLumenBucket(() -> AntarchyFabricItems.LUMEN_BUCKET.get());
AntarchyObjects.setLumenBlock(() -> AntarchyFabricBlocks.LUMEN_BLOCK.get());
AntarchyObjects.setLumenFroglight(() -> AntarchyFabricBlocks.LUMEN_FROGLIGHT.get());
AntarchyObjects.setGlimmeringReed(() -> AntarchyFabricBlocks.GLIMMERING_REED.get());
AntarchyObjects.setPeachLeavesParticle(() -> AntarchyFabricMisc.PEACH_LEAVES_PARTICLE.get());
AntarchyObjects.setBugSprayParticle(() -> AntarchyFabricMisc.BUG_SPRAY_PARTICLE.get());
AntarchyObjects.setLotusPollen(() -> AntarchyFabricMisc.LOTUS_POLLEN.get());
AntarchyObjects.setNightmareFireFlame(() -> AntarchyFabricMisc.NIGHTMARE_FIRE_FLAME.get());
AntarchyObjects.setLucidBoltImpactSmall(() -> AntarchyFabricMisc.LUCID_BOLT_IMPACT_SMALL.get());
AntarchyObjects.setLucidBoltImpactLarge(() -> AntarchyFabricMisc.LUCID_BOLT_IMPACT_LARGE.get());
AntarchyObjects.setDorrieInventoryMenu(AntarchyFabricMisc.DORRIE_INVENTORY_MENU);
AntarchyObjects.setRoyalJudgmentMenu(AntarchyFabricMisc.ROYAL_JUDGMENT_MENU);
AntarchyObjects.setGiantFryingPanMenu(AntarchyFabricMisc.GIANT_FRYING_PAN_MENU);
AntarchyObjects.setCritterCage(() -> AntarchyFabricItems.CRITTER_CAGE.get());
AntarchyObjects.setCritterCageBlock(() -> AntarchyFabricBlocks.CRITTER_CAGE_BLOCK.get());
AntarchyObjects.setCritterCageBlockEntity(() -> AntarchyFabricBlocks.CRITTER_CAGE_BLOCK_ENTITY.get());
AntarchyObjects.setLucidAnchor(() -> AntarchyFabricBlocks.LUCID_ANCHOR.get());
AntarchyObjects.setLucidAnchorBlockEntity(() -> AntarchyFabricBlocks.LUCID_ANCHOR_BLOCK_ENTITY.get());
AntarchyObjects.setCritterCageProjectile(() -> AntarchyFabricEntities.CRITTER_CAGE_PROJECTILE.get());
AntarchyObjects.setWormHookProjectile(() -> AntarchyFabricEntities.WORM_HOOK_PROJECTILE.get());
AntarchyObjects.setWormHook(() -> AntarchyFabricItems.WORM_HOOK.get());
AntarchyObjects.bind(
AntarchyFabricEntities.EASTER_BUNNY,
AntarchyFabricEntities.FLYING_SQUIRREL,
@@ -338,14 +444,14 @@ public final class AntarchyFabricContent {
AntarchyFabricEntities.CATERPILLAR,
AntarchyFabricEntities.BUTTERFLY,
AntarchyFabricEntities.REVERIE,
AntarchyFabricEntities.TRIFFID,
AntarchyFabricEntities.FLYTRAP,
AntarchyFabricEntities.BRUTALFLY,
AntarchyFabricEntities.BRUTALFLY_ORB,
AntarchyFabricEntities.HUSH_PROJECTILE,
AntarchyFabricEntities.TORETERROR,
AntarchyFabricEntities.WATER_BOMB,
AntarchyFabricEntities.CREEPING_HORROR,
AntarchyFabricEntities.LURKING_TERROR,
AntarchyFabricEntities.CRAWLING_BLIGHT,
AntarchyFabricEntities.SKULKING_FRIGHT,
AntarchyFabricEntities.STINK_BUG,
AntarchyFabricEntities.CHEEP,
AntarchyFabricEntities.DORRIE,
@@ -374,7 +480,7 @@ public final class AntarchyFabricContent {
() -> AntarchyFabricBlocks.SHELLSTONE_BRICK_SLAB.get(),
() -> AntarchyFabricBlocks.SHELLSTONE_BRICK_WALL.get(),
() -> AntarchyFabricBlocks.CLOUD_BLOCK.get(),
() -> AntarchyFabricBlocks.TRIFFID_GOO_BLOCK.get(),
() -> AntarchyFabricBlocks.FLYTRAP_GOO_BLOCK.get(),
() -> AntarchyFabricBlocks.PALE_NYXITE.get(),
() -> AntarchyFabricBlocks.NYXITE_SPIKE.get(),
() -> AntarchyFabricBlocks.CHITIN_BLOCK.get(),
@@ -394,7 +500,7 @@ public final class AntarchyFabricContent {
() -> AntarchyFabricItems.STINK_BUG_ITEM.get(),
() -> AntarchyFabricMisc.mobEffectHolder(AntarchyFabricMisc.DREAD),
() -> AntarchyFabricMisc.mobEffectHolder(AntarchyFabricMisc.PARALYZED),
() -> AntarchyFabricMisc.mobEffectHolder(AntarchyFabricMisc.INVERTED),
AnthologyEffects::inverted,
() -> AntarchyFabricMisc.mobEffectHolder(AntarchyFabricMisc.STINKY),
() -> AntarchyFabricBlocks.OURANWOOD_ACORN_BLOCK.get(),
() -> AntarchyFabricBlocks.MOSSY_OURANWOOD_LOG.get(),
@@ -406,8 +512,8 @@ public final class AntarchyFabricContent {
() -> AntarchyFabricBlocks.ORANGE_MILKWEED.get(),
() -> AntarchyFabricBlocks.PINK_MILKWEED.get(),
() -> AntarchyFabricBlocks.BED_BUG_EGG.get(),
() -> AntarchyFabricBlocks.CREEPING_HORROR_EGG.get(),
() -> AntarchyFabricBlocks.LURKING_TERROR_EGG.get(),
() -> AntarchyFabricBlocks.CRAWLING_BLIGHT_EGG.get(),
() -> AntarchyFabricBlocks.SKULKING_FRIGHT_EGG.get(),
() -> AntarchyFabricBlocks.WASP_NEST.get(),
() -> AntarchyFabricBlocks.HUSHWEED.get(),
() -> AntarchyFabricBlocks.OURANWOOD_SQUIRREL_NEST.get(),
@@ -422,48 +528,41 @@ public final class AntarchyFabricContent {
() -> AntarchyFabricMisc.STINKY_GAS.get(),
() -> AntarchyFabricMisc.STINKY_FLY.get(),
() -> AntarchyFabricMisc.PEACH_LEAVES_PARTICLE.get(),
() -> AntarchyFabricMisc.attributeHolder(AntarchyFabricMisc.SCALE),
() -> AntarchyFabricMisc.attributeHolder(AntarchyFabricMisc.DOUBLE_DAMAGE_CHANCE),
() -> AntarchyFabricMisc.attributeHolder(AntarchyFabricMisc.BLOODGLASS_MAX_HEARTS),
() -> AntarchyFabricMisc.mobEffectHolder(AntarchyFabricMisc.BLOODGLASS_WARD)
);
LucidEyeProjectileEntity.defaultItemSupplier = () -> AntarchyFabricItems.LUCID_PEARL.get();
LucidEntity.invertedEffectSupplier = () -> AntarchyFabricMisc.mobEffectHolder(AntarchyFabricMisc.INVERTED);
LucidEntity.invertedEffectSupplier = AnthologyEffects::inverted;
LucidEntity.boltEntityTypeSupplier = () -> AntarchyFabricEntities.LUCID_BOLT.get();
LucidBoltEntity.invertedEffectSupplier = () -> AntarchyFabricMisc.mobEffectHolder(AntarchyFabricMisc.INVERTED);
LucidEyeProjectileEntity.invertedEffectSupplier = () -> AntarchyFabricMisc.mobEffectHolder(AntarchyFabricMisc.INVERTED);
LucidBoltEntity.invertedEffectSupplier = AnthologyEffects::inverted;
LucidEyeProjectileEntity.invertedEffectSupplier = AnthologyEffects::inverted;
VortexEntity.windVortexTypeSupplier = () -> AntarchyFabricEntities.WIND_VORTEX.get();
VortexChargeProjectileEntity.defaultItemSupplier = () -> AntarchyFabricItems.VORTEX_CHARGE.get();
VortexChargeProjectileEntity.projectileTypeSupplier = () -> AntarchyFabricEntities.VORTEX_CHARGE_PROJECTILE.get();
VortexChargeProjectileEntity.windVortexTypeSupplier = () -> AntarchyFabricEntities.WIND_VORTEX.get();
ScorpionWhipTetherSync.setSink(AntarchyFabricNetworking::syncScorpionWhipTether);
HerculesBeetleImpactShakeSync.setSink((player, ticks) -> {
com.craisinlord.antarchy.content.network.HerculesBeetleImpactShakePayload payload = new com.craisinlord.antarchy.content.network.HerculesBeetleImpactShakePayload(ticks);
com.craisinlord.antarchy.fabric.network.AntarchyFabricNetworking.sendToPlayer(player, payload, com.craisinlord.antarchy.content.network.HerculesBeetleImpactShakePayload.STREAM_CODEC, com.craisinlord.antarchy.content.network.HerculesBeetleImpactShakePayload.TYPE);
});
ImpactShakeSync.setSink((player, payload) ->
com.craisinlord.antarchy.fabric.network.AntarchyFabricNetworking.sendToPlayer(player, payload, com.craisinlord.antarchy.content.network.ImpactShakePayload.STREAM_CODEC, com.craisinlord.antarchy.content.network.ImpactShakePayload.TYPE));
HordeIntensitySync.setSink((player, payload) ->
com.craisinlord.antarchy.fabric.network.AntarchyFabricNetworking.sendToPlayer(player, payload, com.craisinlord.antarchy.content.network.HordeIntensityPayload.STREAM_CODEC, com.craisinlord.antarchy.content.network.HordeIntensityPayload.TYPE));
WormHookTetherSync.setSink(AntarchyFabricNetworking::syncWormHookTether);
HerculesBeetleImpactShakeSync.setSink((player, ticks) -> com.craisinlord.antarchy.fabric.network.AntarchyFabricNetworking.send(player, new com.craisinlord.antarchy.content.network.HerculesBeetleImpactShakePayload(ticks)));
com.craisinlord.antarchy.content.network.KingJudgmentFlashSync.setSink((player, ticks) -> com.craisinlord.antarchy.fabric.network.AntarchyFabricNetworking.send(player, new com.craisinlord.antarchy.content.network.KingJudgmentFlashPayload(ticks)));
HordeIntensitySync.setSink((player, payload) -> com.craisinlord.antarchy.fabric.network.AntarchyFabricNetworking.send(player, payload));
TigerEyeCamouflageSync.setSendToPlayer((player, payload) -> com.craisinlord.antarchy.fabric.network.AntarchyFabricNetworking.send(player, payload));
TigerEyeCamouflageSync.setSyncSelfAndTracking(AntarchyFabricNetworking::syncTigerEyeCamouflage);
BloodCrystalKatanaItem.setTrailCallback(AntarchyFabricNetworking::syncKatanaTrail);
com.craisinlord.antarchy.content.gravity.AntarchyGravityApi.setSyncDispatcher(AntarchyFabricNetworking::syncGravityEntity);
com.craisinlord.antarchy.content.time.TimeDilationApi.setSyncDispatcher(
com.craisinlord.antarchy.fabric.network.AntarchyFabricTimeDilationNetworking::syncRate);
com.craisinlord.antarchy.content.time.TimeDilationApi.setFieldSyncDispatcher(
com.craisinlord.antarchy.fabric.network.AntarchyFabricTimeDilationNetworking::syncFields);
AntarchyObjects.setTimeDilationField(() -> AntarchyFabricEntities.TIME_DILATION_FIELD.get());
AntarchyEnchantments.bind(() -> AntarchyFabricMisc.FEATHER_RISING.get(), () -> AntarchyFabricMisc.CHRONOSPHERE.get());
AntarchyObjects.setRoyalAssailantBlackHole(() -> AntarchyFabricEntities.ROYAL_ASSAILANT_BLACK_HOLE.get());
AntarchyObjects.setDilatedEffect(() -> AntarchyFabricMisc.mobEffectHolder(AntarchyFabricMisc.DILATED));
AntarchyObjects.setContractedEffect(() -> AntarchyFabricMisc.mobEffectHolder(AntarchyFabricMisc.CONTRACTED));
com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync.setSendToPlayer((player, payload) ->
AntarchyFabricNetworking.sendToPlayer(player, payload,
com.craisinlord.antarchy.content.network.TigerEyeCamouflageStatePayload.STREAM_CODEC,
com.craisinlord.antarchy.content.network.TigerEyeCamouflageStatePayload.TYPE));
com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync.setSyncSelfAndTracking(AntarchyFabricNetworking::syncTigerEyeCamouflage);
com.craisinlord.antarchy.fabric.TigerEyeFabricManager.register();
com.craisinlord.antarchy.content.effect.AntarchySizeScaling.register(AntarchyFabricMisc.SHRINKING_EFFECT, AntarchyFabricMisc.GROWTH_EFFECT);
AntarchyObjects.setHerculesBeetle(AntarchyFabricEntities.HERCULES_BEETLE);
AntarchyObjects.setRawVenison(() -> AntarchyFabricItems.RAW_VENISON.get());
AntarchyObjects.setCookedVenison(() -> AntarchyFabricItems.COOKED_VENISON.get());
AntarchyFabricMisc.POI_TYPES.register();
AntarchyFabricMisc.VILLAGER_PROFESSIONS.register();
AntarchyFabricEvents.register();
if (isSupportedInfinityLoaded()) {
InfinityCompat.bind(new FabricInfinityCompat());
InfinityConfigRefresh.refreshIfStale(FabricLoader.getInstance().getConfigDir());
}
}
@@ -1,31 +1,36 @@
package com.craisinlord.antarchy.fabric;
import com.craisinlord.antarchy.fabric.registry.AntarchyFabricBlocks;
import com.craisinlord.antarchy.fabric.registry.AntarchyFabricItems;
import com.craisinlord.antarchy.fabric.registry.AntarchyFabricMisc;
import com.craisinlord.antarchy.content.entity.ReverieEntity;
import com.craisinlord.antarchy.content.entity.ant.RainbowAntEntity;
import com.craisinlord.antarchy.config.AntarchySettings;
import com.craisinlord.antarchy.content.AntarchyObjects;
import com.craisinlord.antarchy.content.block.DuctTapeBlock;
import com.craisinlord.antarchy.content.item.AttitudeAdjusterItem;
import com.craisinlord.antarchy.content.item.AttitudeAdjusterSlamManager;
import com.craisinlord.antarchy.content.fluid.AntarchyFluidChecks;
import com.craisinlord.antarchy.content.entity.MissileSquidEntity;
import com.craisinlord.antarchy.content.entity.kraken.KrakenEntity;
import com.craisinlord.antarchy.content.gravity.AntarchyGravityApi;
import com.craisinlord.antarchy.content.gravity.AntarchyGravityDirection;
import com.craisinlord.antarchy.content.gravity.AntarchyGravityTransition;
import com.craisinlord.anthology.gravity.GravityApi;
import com.craisinlord.anthology.gravity.GravityDirection;
import com.craisinlord.anthology.gravity.GravityTransition;
import com.craisinlord.antarchy.content.horde.CavarynHordeManager;
import com.craisinlord.antarchy.content.portal.PermanentPortalManager;
import com.craisinlord.antarchy.content.portalgun.PortalGunProjectileEntity;
import com.craisinlord.antarchy.content.portalgun.PortalGunSavedData;
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 com.craisinlord.antarchy.content.time.TimeDilationManager;
import com.craisinlord.antarchy.content.command.RoyalCommand;
import com.craisinlord.antarchy.content.item.WormHookTetherManager;
import com.craisinlord.antarchy.content.worldgen.thoraxis.ThoraxisUndersideManager;
import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback;
import net.fabricmc.fabric.api.entity.event.v1.ServerLivingEntityEvents;
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerTickEvents;
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents;
import net.fabricmc.fabric.api.networking.v1.ServerPlayConnectionEvents;
import net.fabricmc.fabric.api.object.builder.v1.trade.TradeOfferHelper;
import net.fabricmc.fabric.api.event.player.AttackEntityCallback;
import net.fabricmc.fabric.api.event.player.PlayerBlockBreakEvents;
@@ -34,6 +39,7 @@ import com.craisinlord.antarchy.content.dispenser.SquidzookaDispenseBehavior;
import com.craisinlord.antarchy.content.dispenser.RpoLauncherDispenseBehavior;
import com.craisinlord.antarchy.content.dispenser.SizeRayDispenseBehavior;
import com.craisinlord.antarchy.content.dispenser.WaterCannonDispenseBehavior;
import com.craisinlord.antarchy.content.dispenser.BugSprayDispenseBehavior;
import net.minecraft.world.level.block.ComposterBlock;
import net.minecraft.world.level.block.DispenserBlock;
import net.minecraft.core.BlockPos;
@@ -55,26 +61,27 @@ import java.util.Set;
import java.util.UUID;
public final class AntarchyFabricEvents {
private static final AntarchyGravityTransition INVERTED_CLEAR_TRANSITION = new AntarchyGravityTransition(12);
private static final GravityTransition INVERTED_CLEAR_TRANSITION = new GravityTransition(12);
private static final Set<UUID> invertedPlayers = new HashSet<>();
private AntarchyFabricEvents() {
}
public static void register() {
net.fabricmc.fabric.api.networking.v1.EntityTrackingEvents.START_TRACKING.register((trackedEntity, player) -> {
if (trackedEntity instanceof com.craisinlord.antarchy.content.time.TimeDilationEntityAccess access) {
com.craisinlord.antarchy.fabric.network.AntarchyFabricTimeDilationNetworking.syncRateToPlayer(
player, trackedEntity, access.antarchy$getTimeDilationRate()
);
}
ServerLifecycleEvents.SERVER_STOPPING.register(server -> PortalGunProjectileEntity.releaseAllProjectileTickets());
ServerLifecycleEvents.SERVER_STOPPING.register(com.craisinlord.antarchy.content.portalgun.PortalGunResetManager::clear);
ServerLifecycleEvents.SERVER_STOPPING.register(server -> com.craisinlord.antarchy.content.entity.ant.AntArrivalScheduler.clear());
ServerLifecycleEvents.SERVER_STOPPING.register(server -> com.craisinlord.antarchy.content.portalgun.PortalGunMoonAimSync.clear());
ServerPlayConnectionEvents.JOIN.register((handler, sender, server) -> {
PortalGunSavedData.clearMissingGuns(handler.player);
});
CommandRegistrationCallback.EVENT.register((dispatcher, registryAccess, environment) -> {
CavarynCommand.register(dispatcher);
GravityCommand.register(dispatcher);
QueenLocateCommand.register(dispatcher);
CaterpillarCommand.register(dispatcher);
TimeDilationCommand.register(dispatcher);
DimensionalTearCommand.register(dispatcher);
QueenLocateCommand.register(dispatcher);
RoyalCommand.register(dispatcher);
com.craisinlord.antarchy.content.command.PortalGunCommand.register(dispatcher);
});
DispenserBlock.registerBehavior(AntarchyFabricItems.SQUIDZOOKA.get(), new SquidzookaDispenseBehavior());
@@ -82,6 +89,7 @@ public final class AntarchyFabricEvents {
DispenserBlock.registerBehavior(AntarchyFabricItems.WATER_CANNON.get(), new WaterCannonDispenseBehavior());
DispenserBlock.registerBehavior(AntarchyFabricItems.SHRINK_RAY.get(), new SizeRayDispenseBehavior());
DispenserBlock.registerBehavior(AntarchyFabricItems.GROWTH_RAY.get(), new SizeRayDispenseBehavior());
DispenserBlock.registerBehavior(AntarchyFabricItems.BUG_SPRAY.get(), new BugSprayDispenseBehavior());
AntarchyFabricDispenserBehaviors.register();
registerTrades();
@@ -94,6 +102,11 @@ public final class AntarchyFabricEvents {
ComposterBlock.COMPOSTABLES.put(AntarchyFabricBlocks.PEACH_LEAVES.get().asItem(), 0.3f);
ComposterBlock.COMPOSTABLES.put(AntarchyFabricItems.PEACH_SAPLING_ITEM.get(), 0.3f);
ComposterBlock.COMPOSTABLES.put(AntarchyFabricItems.NADIR_SAPLING_ITEM.get(), 0.3f);
ComposterBlock.COMPOSTABLES.put(AntarchyFabricItems.NADIR_FERN_ITEM.get(), 0.3f);
ComposterBlock.COMPOSTABLES.put(AntarchyFabricItems.LARGE_NADIR_FERN_ITEM.get(), 0.5f);
ComposterBlock.COMPOSTABLES.put(AntarchyFabricItems.DUSKBELL_ITEM.get(), 0.65f);
ComposterBlock.COMPOSTABLES.put(AntarchyFabricItems.WHIRLFLOWER_ITEM.get(), 0.65f);
ComposterBlock.COMPOSTABLES.put(AntarchyFabricItems.GOREVINE_ITEM.get(), 0.5f);
ComposterBlock.COMPOSTABLES.put(AntarchyFabricItems.CORN.get(), 0.65f);
ComposterBlock.COMPOSTABLES.put(AntarchyFabricItems.CORN_SEEDS.get(), 0.3f);
ComposterBlock.COMPOSTABLES.put(AntarchyFabricItems.PEACH.get(), 0.65f);
@@ -141,12 +154,31 @@ public final class AntarchyFabricEvents {
}
});
net.fabricmc.fabric.api.event.player.UseItemCallback.EVENT.register((player, world, hand) -> {
InteractionResult result = com.craisinlord.antarchy.content.item.GiantFryingPanItem.handleMainHandUse(world, player, hand);
if (result == InteractionResult.PASS) {
return net.minecraft.world.InteractionResultHolder.pass(ItemStack.EMPTY);
}
ItemStack held = player.getItemInHand(hand);
return result.consumesAction()
? net.minecraft.world.InteractionResultHolder.sidedSuccess(held, world.isClientSide)
: net.minecraft.world.InteractionResultHolder.fail(held);
});
AttackEntityCallback.EVENT.register((player, world, hand, entity, hitResult) -> {
if (player.getItemInHand(hand).getItem() instanceof com.craisinlord.antarchy.content.item.PortalGunItem) {
return InteractionResult.FAIL;
}
if (!world.isClientSide && player.getItemInHand(hand).getItem() instanceof AttitudeAdjusterItem && player.getAttackStrengthScale(0.5F) >= 0.95F) {
AttitudeAdjusterSlamManager.markSpecialHit(player);
}
return InteractionResult.PASS;
});
net.fabricmc.fabric.api.event.player.AttackBlockCallback.EVENT.register((player, world, hand, pos, direction) -> {
if (player.getItemInHand(hand).getItem() instanceof com.craisinlord.antarchy.content.item.PortalGunItem) {
return InteractionResult.FAIL;
}
return InteractionResult.PASS;
});
PlayerBlockBreakEvents.AFTER.register((world, player, pos, state, blockEntity) -> {
if (!world.isClientSide && player instanceof ServerPlayer serverPlayer) {
CavarynHordeManager.recordBlockBreak(serverPlayer, state, pos);
@@ -158,18 +190,32 @@ public final class AntarchyFabricEvents {
for (ServerLevel level : server.getAllLevels()) {
CavarynHordeManager.tick(level);
com.craisinlord.antarchy.content.horde.CavarynCreatureSpawner.tick(level);
com.craisinlord.antarchy.content.entity.glimmer.GlimmerNightSpawner.tick(level);
ThoraxisUndersideManager.tick(level);
com.craisinlord.antarchy.content.worldgen.elythia.KingsTreeGridFeature.tickPendingSpawns(level);
tickInvertedPlayers(level, activeThisTick);
tickDuctTapePlayers(level);
tickIchorPlayers(level);
tickBloodglassRecharge(level);
AttitudeAdjusterSlamManager.tick(level);
for (ServerPlayer player : level.players()) {
WormHookTetherManager.tick(player);
}
}
TimeDilationManager.tickServer(server);
com.craisinlord.antarchy.content.entity.ant.AntArrivalScheduler.tick(server);
invertedPlayers.retainAll(activeThisTick);
});
}
private static void registerTrades() {
int[] pestControlSlots = com.craisinlord.antarchy.content.entity.trades.PestControlTradeManager.slotsPerLevel();
for (int level = 1; level <= pestControlSlots.length; level++) {
final int tradeLevel = level;
for (int index = 0; index < pestControlSlots[level - 1]; index++) {
final int tradeIndex = index;
TradeOfferHelper.registerVillagerOffers(AntarchyFabricMisc.PEST_CONTROL.get(), tradeLevel,
factories -> factories.add(com.craisinlord.antarchy.content.entity.trades.PestControlTradeManager.listing(tradeLevel, tradeIndex)));
}
}
TradeOfferHelper.registerVillagerOffers(VillagerProfession.FARMER, 1, factories ->
factories.add((trader, random) -> new MerchantOffer(
new ItemStack(AntarchyFabricItems.CORN.get(), 20),
@@ -243,9 +289,9 @@ public final class AntarchyFabricEvents {
continue;
}
if (AntarchyGravityApi.getGravityDirection(player) == AntarchyGravityDirection.UP
|| AntarchyGravityApi.isGravityForced(player)) {
AntarchyGravityApi.setGravityDirection(player, AntarchyGravityDirection.DOWN, INVERTED_CLEAR_TRANSITION);
if (GravityApi.getGravityDirection(player) == GravityDirection.UP
|| GravityApi.isGravityForced(player)) {
GravityApi.setGravityDirection(player, GravityDirection.DOWN, INVERTED_CLEAR_TRANSITION);
}
notifyNearbyReveriesOfInversionChange(player);
}
@@ -260,14 +306,6 @@ public final class AntarchyFabricEvents {
}
}
private static void tickDuctTapePlayers(ServerLevel level) {
for (Player player : level.players()) {
if (DuctTapeBlock.shouldTickStuckEntity(player)) {
DuctTapeBlock.tickStuckEntity(player);
}
}
}
private static void tickIchorPlayers(ServerLevel level) {
if (!AntarchySettings.ichorWitherEnabled()) {
return;
@@ -9,6 +9,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.fabric;
import com.craisinlord.antarchy.config.AntarchySettings;
import com.craisinlord.antarchy.content.AntarchyObjects;
import com.craisinlord.antarchy.content.AntarchySoundEvents;
import com.craisinlord.antarchy.content.bloodglass.BloodglassAccess;
import com.craisinlord.antarchy.content.item.BloodCrystalArmorItem;
import com.craisinlord.antarchy.fabric.network.AntarchyFabricNetworking;
@@ -10,7 +11,6 @@ import net.fabricmc.fabric.api.networking.v1.ServerPlayConnectionEvents;
import net.minecraft.core.particles.DustParticleOptions;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.sounds.SoundEvents;
import net.minecraft.sounds.SoundSource;
import net.minecraft.tags.TagKey;
import net.minecraft.world.damagesource.DamageType;
@@ -55,7 +55,7 @@ public final class BloodglassManager {
ServerLevel serverLevel = (ServerLevel) player.level();
serverLevel.broadcastEntityEvent(player, (byte) 2);
serverLevel.playSound(null, player.blockPosition(), SoundEvents.GLASS_BREAK, SoundSource.PLAYERS, 1.0f, 1.0f);
serverLevel.playSound(null, player.blockPosition(), AntarchySoundEvents.BLOODGLASS_WARD_HEART_BREAK.get(), SoundSource.PLAYERS, 1.0f, 1.0f);
serverLevel.sendParticles(
new DustParticleOptions(new Vector3f(0.85f, 0.18f, 0.38f), 1.2f),
player.getX(), player.getEyeY(), player.getZ(),
@@ -97,9 +97,7 @@ public final class BloodglassManager {
}
}
} else if (!fromIsBC) {
// Count BC pieces: explicitly include the new piece (to) since getItemBySlot(slot)
// may not reflect the new item yet when onEquipItem fires on Fabric.
int bcPieces = 1; // the piece being equipped now
int bcPieces = 1;
for (EquipmentSlot s : new EquipmentSlot[]{EquipmentSlot.HEAD, EquipmentSlot.CHEST, EquipmentSlot.LEGS, EquipmentSlot.FEET}) {
if (s == slot) continue;
if (player.getItemBySlot(s).getItem() instanceof BloodCrystalArmorItem) bcPieces++;
@@ -110,7 +108,6 @@ public final class BloodglassManager {
access.antarchy$setArmorRechargeTimer(AntarchySettings.bloodCrystalArmorShieldRechargeTicks());
}
} else {
// BC → BC swap: remove old slot, queue new one
if (access.antarchy$getArmorShieldsActive() > 0) {
access.antarchy$setArmorShieldsActive(access.antarchy$getArmorShieldsActive() - 1);
} else if (access.antarchy$getArmorShieldLostCount() > 0) {
@@ -131,9 +128,6 @@ public final class BloodglassManager {
- access.antarchy$getArmorShieldLostCount());
int targetCap = Math.min(amplifier + 1, cap);
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));
if (player instanceof ServerPlayer sp) syncBloodglass(sp);
@@ -186,7 +180,7 @@ public final class BloodglassManager {
if (changed) {
syncBloodglass(player);
player.playNotifySound(SoundEvents.AMETHYST_BLOCK_CHIME, SoundSource.PLAYERS, 0.6f, 1.6f);
player.playNotifySound(AntarchySoundEvents.BLOODGLASS_WARD_HEART_REGEN.get(), SoundSource.PLAYERS, 1.0f, 1.0f);
}
}
@@ -2,6 +2,7 @@ package com.craisinlord.antarchy.fabric;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.compat.infinity.InfinityCompatBridge;
import com.craisinlord.antarchy.compat.infinity.InfinityWarpResult;
import net.lerariemann.infinity.util.InfinityMethods;
import net.lerariemann.infinity.util.teleport.PortalCreator;
import net.lerariemann.infinity.util.teleport.WarpLogic;
@@ -38,13 +39,15 @@ public final class FabricInfinityCompat 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;
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;
}
}
@@ -0,0 +1,20 @@
package com.craisinlord.antarchy.fabric;
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);
}
}
@@ -0,0 +1,68 @@
package com.craisinlord.antarchy.fabric.client;
import com.craisinlord.antarchy.fabric.AntarchyConfigModuleFabric;
import com.craisinlord.antarchy.fabric.AntarchyConfigModuleFabric.ConfigSection;
import com.craisinlord.antarchy.fabric.AntarchyConfigModuleFabric.SettingBinding;
import me.shedaniel.clothconfig2.api.ConfigBuilder;
import me.shedaniel.clothconfig2.api.ConfigCategory;
import me.shedaniel.clothconfig2.api.ConfigEntryBuilder;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.network.chat.Component;
import java.util.EnumMap;
import java.util.Map;
public final class AntarchyClothConfigScreenBuilder {
private AntarchyClothConfigScreenBuilder() {
}
public static Screen build(Screen parent) {
ConfigBuilder builder = ConfigBuilder.create()
.setParentScreen(parent)
.setTitle(Component.translatable("antarchy.config.title"));
builder.setSavingRunnable(AntarchyConfigModuleFabric::persist);
ConfigEntryBuilder entryBuilder = builder.entryBuilder();
Map<ConfigSection, ConfigCategory> categories = new EnumMap<>(ConfigSection.class);
for (ConfigSection section : ConfigSection.values()) {
categories.put(section, builder.getOrCreateCategory(Component.literal(displayName(section))));
}
for (SettingBinding binding : AntarchyConfigModuleFabric.getBindings().values()) {
addEntry(entryBuilder, categories.get(binding.getSection()), binding);
}
return builder.build();
}
private static void addEntry(ConfigEntryBuilder entryBuilder, ConfigCategory category, SettingBinding binding) {
Class<?> type = binding.getType();
Component label = Component.literal(binding.getName());
if (type == boolean.class) {
category.addEntry(entryBuilder.startBooleanToggle(label, (Boolean) binding.getValue())
.setSaveConsumer(binding::setValue)
.build());
} else if (type == int.class) {
category.addEntry(entryBuilder.startIntField(label, (Integer) binding.getValue())
.setSaveConsumer(binding::setValue)
.build());
} else if (type == double.class) {
category.addEntry(entryBuilder.startDoubleField(label, (Double) binding.getValue())
.setSaveConsumer(binding::setValue)
.build());
} else if (type == float.class) {
category.addEntry(entryBuilder.startFloatField(label, (Float) binding.getValue())
.setSaveConsumer(binding::setValue)
.build());
}
}
private static String displayName(ConfigSection section) {
return switch (section) {
case MOBS -> "Mobs";
case TOOLS -> "Tools";
case MISC -> "Misc";
};
}
}
@@ -1,14 +1,45 @@
package com.craisinlord.antarchy.fabric.client;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.content.client.QueenMusicHandler;
import com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking;
import com.craisinlord.antarchy.fabric.client.SeparateLargeItemModels;
import com.craisinlord.antarchy.fabric.registry.AntarchyFabricSounds;
import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.fabric.api.client.model.loading.v1.ModelLoadingPlugin;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
import net.fabricmc.fabric.api.resource.IdentifiableResourceReloadListener;
import net.fabricmc.fabric.api.resource.ResourceManagerHelper;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.packs.PackType;
import net.minecraft.server.packs.resources.PreparableReloadListener;
import net.minecraft.server.packs.resources.ResourceManager;
import net.minecraft.util.profiling.ProfilerFiller;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.Executor;
public final class AntarchyFabricClient implements ClientModInitializer {
@Override
public void onInitializeClient() {
com.craisinlord.antarchy.Antarchy.physicalClient = true;
com.craisinlord.antarchy.content.AntarchyAnthologyHooks.registerClient();
ModelLoadingPlugin.register(plugin -> plugin.addModels(SeparateLargeItemModels.all()));
ClientTickEvents.END_CLIENT_TICK.register(client -> QueenMusicHandler.tick(client, AntarchyFabricSounds.THE_QUEEN.get()));
AntarchyFabricClientNetworking.register();
AntarchyFabricClientNetworking.bootstrapMultipartClient();
AntarchyFabricClientBootstrap.register();
ResourceManagerHelper.get(PackType.CLIENT_RESOURCES).registerReloadListener(new IdentifiableResourceReloadListener() {
@Override
public ResourceLocation getFabricId() {
return new ResourceLocation(Antarchy.MODID, "tiger_eye_camouflage_client_cache");
}
@Override
public CompletableFuture<Void> reload(PreparableReloadListener.PreparationBarrier barrier, ResourceManager manager,
ProfilerFiller prepareProfiler, ProfilerFiller applyProfiler,
Executor prepareExecutor, Executor applyExecutor) {
return barrier.wait(null).thenRunAsync(TigerEyeCamouflageClientHandler::clearClientCaches, applyExecutor);
}
});
}
}
@@ -5,16 +5,18 @@ import com.craisinlord.antarchy.fabric.registry.AntarchyFabricItems;
import com.craisinlord.antarchy.fabric.registry.AntarchyFabricMisc;
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.client.SizeRaySoundHandler;
import com.craisinlord.antarchy.content.client.TigerEyeClientHooks;
import com.craisinlord.antarchy.content.client.renderer.*;
import com.craisinlord.antarchy.content.client.particle.*;
import com.craisinlord.antarchy.content.client.renderer.AntiwaterFluidRenderer;
import com.craisinlord.antarchy.fabric.AntarchyFabricContent;
import com.craisinlord.antarchy.fabric.client.renderer.MultipartPartRenderer;
import net.fabricmc.fabric.api.client.rendering.v1.LivingEntityFeatureRendererRegistrationCallback;
import net.minecraft.world.entity.EntityType;
import com.craisinlord.antarchy.content.client.renderer.UnderVaultRenderer;
import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
import net.fabricmc.fabric.api.client.render.fluid.v1.FluidRenderHandlerRegistry;
@@ -50,6 +52,8 @@ import net.minecraft.world.level.material.FluidState;
import net.minecraft.world.level.BlockAndTintGetter;
import com.mojang.blaze3d.vertex.VertexConsumer;
import java.util.function.Function;
import software.bernie.geckolib.core.animatable.GeoAnimatable;
import software.bernie.geckolib.renderer.GeoEntityRenderer;
public final class AntarchyFabricClientBootstrap {
private AntarchyFabricClientBootstrap() {
@@ -57,9 +61,9 @@ public final class AntarchyFabricClientBootstrap {
public static void register() {
AntarchyKeyBindings.register();
com.craisinlord.antarchy.content.client.TigerEyeClientHooks.setCamouflageKeyTextSupplier(
() -> AntarchyKeyBindings.TIGERS_EYE_CAMOUFLAGE.getTranslatedKeyMessage());
MenuScreens.register(AntarchyFabricMisc.DORRIE_INVENTORY_MENU.get(), com.craisinlord.antarchy.content.client.screen.DorrieInventoryScreen::new);
MenuScreens.register(AntarchyFabricMisc.ROYAL_JUDGMENT_MENU.get(), com.craisinlord.antarchy.content.client.screen.RoyalJudgmentScreen::new);
MenuScreens.register(AntarchyFabricMisc.GIANT_FRYING_PAN_MENU.get(), com.craisinlord.antarchy.content.client.screen.GiantFryingPanScreen::new);
registerRenderers();
registerEntityLayers();
registerColors();
@@ -96,74 +100,93 @@ public final class AntarchyFabricClientBootstrap {
(BlockEntityRendererProvider) UnderVaultRenderer::new
);
EntityRendererRegistry.register(AntarchyFabricEntities.EASTER_BUNNY.get(), EasterBunnyRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.FLYING_SQUIRREL.get(), FlyingSquirrelRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.CATERPILLAR.get(), CaterpillarRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.BUTTERFLY.get(), ButterflyRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.REVERIE.get(), ReverieRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.BRUTALFLY.get(), BrutalflyRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.RED_ANT.get(), AntRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.BROWN_ANT.get(), AntRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.RAINBOW_ANT.get(), AntRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.MOLEWORM.get(), MolewormRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.MANTIS.get(), MantisRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.ALPHA_MANTIS.get(), AlphaMantisRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.MOLEVORE.get(), MolevoreRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.TRIFFID.get(), TriffidRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.EASTER_BUNNY.get(), context -> withTemporalGeoLayer(new EasterBunnyRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.FLYING_SQUIRREL.get(), context -> withTemporalGeoLayer(new FlyingSquirrelRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.CATERPILLAR.get(), context -> withTemporalGeoLayer(new CaterpillarRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.BUTTERFLY.get(), context -> withTemporalGeoLayer(new ButterflyRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.REVERIE.get(), context -> withTemporalGeoLayer(new ReverieRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.BRUTALFLY.get(), context -> withTemporalGeoLayer(new BrutalflyRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.RED_ANT.get(), context -> withTemporalGeoLayer(new AntRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.BROWN_ANT.get(), context -> withTemporalGeoLayer(new AntRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.RAINBOW_ANT.get(), context -> withTemporalGeoLayer(new AntRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.MOLEWORM.get(), context -> withTemporalGeoLayer(new MolewormRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.WORM.get(), context -> withTemporalGeoLayer(new WormRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.MANTIS.get(), context -> withTemporalGeoLayer(new MantisRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.ALPHA_MANTIS.get(), context -> withTemporalGeoLayer(new AlphaMantisRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.MOLEVORE.get(), context -> withTemporalGeoLayer(new MolevoreRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.FLYTRAP.get(), context -> withTemporalGeoLayer(new FlytrapRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.OURANWOOD_BOAT_ENTITY.get(), context -> new OuranwoodBoatRenderer<>(context, new ResourceLocation(Antarchy.MODID, "textures/entity/boat/ouranwood.png"), false));
EntityRendererRegistry.register(AntarchyFabricEntities.OURANWOOD_CHEST_BOAT_ENTITY.get(), context -> new OuranwoodBoatRenderer<>(context, new ResourceLocation(Antarchy.MODID, "textures/entity/chest_boat/ouranwood.png"), true));
EntityRendererRegistry.register(AntarchyFabricEntities.PEACH_BOAT_ENTITY.get(), context -> new PeachBoatRenderer<>(context, new ResourceLocation(Antarchy.MODID, "textures/entity/boat/peach.png"), false));
EntityRendererRegistry.register(AntarchyFabricEntities.PEACH_CHEST_BOAT_ENTITY.get(), context -> new PeachBoatRenderer<>(context, new ResourceLocation(Antarchy.MODID, "textures/entity/chest_boat/peach.png"), true));
EntityRendererRegistry.register(AntarchyFabricEntities.NADIR_BOAT_ENTITY.get(), context -> new PeachBoatRenderer<>(context, new ResourceLocation(Antarchy.MODID, "textures/entity/boat/nadir.png"), false));
EntityRendererRegistry.register(AntarchyFabricEntities.NADIR_CHEST_BOAT_ENTITY.get(), context -> new PeachBoatRenderer<>(context, new ResourceLocation(Antarchy.MODID, "textures/entity/chest_boat/nadir.png"), true));
EntityRendererRegistry.register(AntarchyFabricEntities.APPLE_COW.get(), AppleCowRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.GOLDEN_APPLE_COW.get(), AppleCowRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.ENCHANTED_GOLDEN_APPLE_COW.get(), AppleCowRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.ROYAL_BOAT_ENTITY.get(), context -> new PeachBoatRenderer<>(context, new ResourceLocation(Antarchy.MODID, "textures/entity/boat/royal.png"), false));
EntityRendererRegistry.register(AntarchyFabricEntities.ROYAL_CHEST_BOAT_ENTITY.get(), context -> new PeachBoatRenderer<>(context, new ResourceLocation(Antarchy.MODID, "textures/entity/chest_boat/royal.png"), true));
EntityRendererRegistry.register(AntarchyFabricEntities.TRUFFALO_BOAT_ENTITY.get(), context -> new PeachBoatRenderer<>(context, new ResourceLocation(Antarchy.MODID, "textures/entity/boat/truffalo.png"), false));
EntityRendererRegistry.register(AntarchyFabricEntities.TRUFFALO_CHEST_BOAT_ENTITY.get(), context -> new PeachBoatRenderer<>(context, new ResourceLocation(Antarchy.MODID, "textures/entity/chest_boat/truffalo.png"), true));
EntityRendererRegistry.register(AntarchyFabricEntities.APPLE_COW.get(), context -> withTemporalGeoLayer(new AppleCowRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.GOLDEN_APPLE_COW.get(), context -> withTemporalGeoLayer(new AppleCowRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.ENCHANTED_GOLDEN_APPLE_COW.get(), context -> withTemporalGeoLayer(new AppleCowRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.DIAMOND_MINECART.get(), DiamondMinecartRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.DR_TRAYAURUS.get(), context -> new DrTrayaurusRenderer(context, new ResourceLocation(Antarchy.MODID, "textures/entity/dr_trayaurus.png")));
EntityRendererRegistry.register(AntarchyFabricEntities.CLOUD_SHARK.get(), CloudSharkRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.KRAKEN.get(), KrakenRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.KRAKEN_PART.get(), MultipartPartRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.STRATOSHARK.get(), context -> withTemporalGeoLayer(new StratosharkRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.KRAKEN.get(), context -> withTemporalGeoLayer(new KrakenRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.TENTACLE.get(), com.craisinlord.antarchy.content.client.renderer.TentacleRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.KRAKENS_GRASP_TRIDENT.get(), com.craisinlord.antarchy.content.client.renderer.KrakensGraspThrownTridentRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.MISSILE_SQUID.get(), MissileSquidRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.OCTOPUS_BOMB.get(), OctopusBombRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.NIGHTMARE.get(), NightmareRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.MISSILE_SQUID.get(), context -> withTemporalGeoLayer(new MissileSquidRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.OCTOPUS_BOMB.get(), context -> withTemporalGeoLayer(new OctopusBombRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.NIGHTMARE.get(), context -> withTemporalGeoLayer(new NightmareRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.NIGHTMARE_PORTAL.get(), NightmarePortalRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.NIGHTMARE_BITE.get(), NightmareBiteRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.DIMENSIONAL_TEAR.get(), DimensionalTearRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.TIME_DILATION_FIELD.get(), TimeDilationFieldRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.ROYAL_ASSAILANT_BLACK_HOLE.get(), com.craisinlord.antarchy.content.client.renderer.RoyalAssailantBlackHoleRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.LUCID.get(), LucidRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.BED_BUG.get(), BedBugRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.WASP.get(), WaspRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.BOMBER.get(), BomberRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.BASILISK.get(), BasiliskRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.PORTAL_GUN_PORTAL.get(), PortalGunPortalRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.HOVERBOARD.get(), com.craisinlord.antarchy.content.client.renderer.HoverboardRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.PORTAL_GUN_PROJECTILE.get(), com.craisinlord.antarchy.content.client.renderer.PortalGunProjectileRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.NIGHTMARE_BITE.get(), NightmareBiteRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.LUCID.get(), context -> withTemporalGeoLayer(new LucidRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.VORTEX.get(), context -> withTemporalGeoLayer(new VortexRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.BED_BUG.get(), context -> withTemporalGeoLayer(new BedBugRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.WASP.get(), context -> withTemporalGeoLayer(new WaspRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.BOMBER.get(), context -> withTemporalGeoLayer(new BomberRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.BASILISK.get(), context -> withTemporalGeoLayer(new BasiliskRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.SHRINK_RAY_PROJECTILE.get(), SizeRayProjectileRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.GROWTH_RAY_PROJECTILE.get(), SizeRayProjectileRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.LUCID_BOLT.get(), LucidBoltRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.LUCID_PEARL_PROJECTILE.get(), ThrownItemRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.VORTEX_CHARGE_PROJECTILE.get(), ThrownItemRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.WIND_VORTEX.get(), WindVortexRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.ROYAL_BLACK_HOLE.get(), com.craisinlord.antarchy.content.client.renderer.RoyalBlackHoleRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.ROYAL_ASSAILANT_BLACK_HOLE.get(), com.craisinlord.antarchy.content.client.renderer.RoyalAssailantBlackHoleRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.CRITTER_CAGE_PROJECTILE.get(), ThrownItemRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.WORM_HOOK_PROJECTILE.get(), ThrownItemRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.HUSH_PROJECTILE.get(), HushProjectileRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.BRUTALFLY_ORB.get(), BrutalflyOrbRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.UPWARD_FALLING_BLOCK.get(), UpwardFallingBlockRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.SCORPION.get(), ScorpionRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.EMPEROR_SCORPION.get(), EmperorScorpionRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.TORETERROR.get(), ToreterrorRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.SCORPION.get(), context -> withTemporalGeoLayer(new ScorpionRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.EMPEROR_SCORPION.get(), context -> withTemporalGeoLayer(new EmperorScorpionRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.TORETERROR.get(), context -> withTemporalGeoLayer(new ToreterrorRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.WATER_BOMB.get(), WaterBombRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.CHEEP.get(), com.craisinlord.antarchy.content.client.renderer.CheepRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.DORRIE.get(), com.craisinlord.antarchy.content.client.renderer.DorrieRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.OURANWOOD_DEER.get(), com.craisinlord.antarchy.content.client.renderer.OuranwoodDeerRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.GLIMMER.get(), com.craisinlord.antarchy.content.client.renderer.glimmer.GlimmerRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.ELKA.get(), com.craisinlord.antarchy.content.client.renderer.ElkaRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.ROLLY_POLLY.get(), com.craisinlord.antarchy.content.client.renderer.RollyPollyRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.TERMITE.get(), TermiteRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.CREEPING_HORROR.get(), CreepingHorrorRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.LURKING_TERROR.get(), LurkingTerrorRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.HERCULES_BEETLE.get(), HerculesBeetleRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.JERRY.get(), JerryRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.JUMPY_BUG.get(), JumpyBugRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.SPIT_BUG.get(), SpitBugRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.CHEEP.get(), context -> withTemporalGeoLayer(new com.craisinlord.antarchy.content.client.renderer.CheepRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.DORRIE.get(), context -> withTemporalGeoLayer(new com.craisinlord.antarchy.content.client.renderer.DorrieRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.OURANWOOD_DEER.get(), context -> withTemporalGeoLayer(new com.craisinlord.antarchy.content.client.renderer.OuranwoodDeerRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.GLIMMER.get(), context -> withTemporalGeoLayer(new com.craisinlord.antarchy.content.client.renderer.glimmer.GlimmerRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.ELKA.get(), context -> withTemporalGeoLayer(new com.craisinlord.antarchy.content.client.renderer.ElkaRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.ROLLY_POLLY.get(), context -> withTemporalGeoLayer(new com.craisinlord.antarchy.content.client.renderer.RollyPollyRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.TERMITE.get(), context -> withTemporalGeoLayer(new TermiteRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.CRAWLING_BLIGHT.get(), context -> withTemporalGeoLayer(new CrawlingBlightRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.SKULKING_FRIGHT.get(), context -> withTemporalGeoLayer(new SkulkingFrightRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.MANTICORE.get(), context -> withTemporalGeoLayer(new com.craisinlord.antarchy.content.client.renderer.ManticoreRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.HERCULES_BEETLE.get(), context -> withTemporalGeoLayer(new HerculesBeetleRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.PRINCE.get(), com.craisinlord.antarchy.content.client.renderer.RoyalMountRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.PRINCESS.get(), com.craisinlord.antarchy.content.client.renderer.RoyalMountRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.KING.get(), com.craisinlord.antarchy.content.client.renderer.RoyalBossRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.QUEEN.get(), com.craisinlord.antarchy.content.client.renderer.RoyalBossRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.ROYAL_BOLT.get(), com.craisinlord.antarchy.content.client.renderer.RoyalBoltRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.ROYAL_ELEMENTAL_PROJECTILE.get(), com.craisinlord.antarchy.content.client.renderer.RoyalElementalProjectileRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.ROYAL_ICE_SPIKE.get(), com.craisinlord.antarchy.content.client.renderer.RoyalIceSpikeRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.JERRY.get(), context -> withTemporalGeoLayer(new JerryRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.SPRINGBUG.get(), context -> withTemporalGeoLayer(new SpringbugRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.SPIT_BUG.get(), context -> withTemporalGeoLayer(new SpitBugRenderer(context)));
EntityRendererRegistry.register(AntarchyFabricEntities.SPIT_BUG_PROJECTILE.get(), SpitBugProjectileRenderer::new);
EntityRendererRegistry.register(AntarchyFabricEntities.STINK_BUG.get(), StinkBugRenderer::new);
@@ -173,6 +196,11 @@ public final class AntarchyFabricClientBootstrap {
EntityModelLayerRegistry.registerModelLayer(PeachBoatRenderer.chestBoatLayer(), ChestBoatModel::createBodyModel);
}
private static <T extends net.minecraft.world.entity.Entity & GeoAnimatable, R extends GeoEntityRenderer<T>> R withTemporalGeoLayer(R renderer) {
renderer.addRenderLayer(new TemporalContractionGeoLayer<>(renderer));
return renderer;
}
private static void registerColors() {
ColorProviderRegistry.BLOCK.register(
(state, level, pos, tintIndex) -> tintIndex == 0 ? bluestoneWireColor(state.getValue(com.craisinlord.antarchy.content.block.BluestoneWireBlock.POWER)) : -1,
@@ -238,10 +266,10 @@ public final class AntarchyFabricClientBootstrap {
AntarchyFabricMisc.ICHOR.get(),
AntarchyFabricMisc.FLOWING_ICHOR.get(),
new SimpleFluidRenderHandler(
new ResourceLocation(Antarchy.MODID, "block/bile/bile_still"),
new ResourceLocation(Antarchy.MODID, "block/bile/bile_flowing"),
new ResourceLocation(Antarchy.MODID, "block/ichor/ichor_still"),
new ResourceLocation(Antarchy.MODID, "block/ichor/ichor_flowing"),
new ResourceLocation("block/water_overlay"),
0xFF3D0408
0xFFFFFFFF
)
);
@@ -291,6 +319,7 @@ public final class AntarchyFabricClientBootstrap {
registry.register(AntarchyFabricMisc.STINKY_GAS.get(), HypnoticGasParticle.Provider::new);
registry.register(AntarchyFabricMisc.STINKY_FLY.get(), FireflyParticle.Provider::new);
registry.register(AntarchyFabricMisc.PEACH_LEAVES_PARTICLE.get(), PeachLeavesParticle.Provider::new);
registry.register(AntarchyFabricMisc.BUG_SPRAY_PARTICLE.get(), com.craisinlord.antarchy.content.client.particle.BugSprayParticle.Provider::new);
registry.register(AntarchyFabricMisc.LOTUS_POLLEN.get(), com.craisinlord.antarchy.content.client.particle.LotusPollenParticle.Provider::new);
registry.register(AntarchyFabricMisc.HYPNOTIC_GAS.get(), HypnoticGasParticle.Provider::new);
registry.register(AntarchyFabricMisc.HYPNOTIC_GAS_DOWN.get(), sprites -> new HypnoticGasParticle.Provider(sprites, true));
@@ -330,10 +359,22 @@ public final class AntarchyFabricClientBootstrap {
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.NADIR_TRAPDOOR.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.NADIR_SAPLING.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.POTTED_NADIR_SAPLING.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.ROYAL_LEAVES.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.ROYAL_FLOWERING_LEAVES.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.ROYAL_DOOR.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.ROYAL_TRAPDOOR.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.ROYAL_SAPLING.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.POTTED_ROYAL_SAPLING.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.TRUFFALO_DOOR.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.TRUFFALO_TRAPDOOR.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.TRUFFALO_SAPLING.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.POTTED_TRUFFALO_SAPLING.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.DUPLICATOR_SAPLING.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.ORANGE_MILKWEED.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.PINK_MILKWEED.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.GLIMMERING_REED.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.AMBER_LICHEN.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.MUCUS.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.CREEPVINE.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.CAMELLIA.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.SPIDER_LILY.get(), RenderType.cutout());
@@ -352,6 +393,15 @@ public final class AntarchyFabricClientBootstrap {
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.UMBRAL_MOSS_CARPET.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.NYXITE_SPIKE.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.CHITIN_SPIKE.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.TYPHONITE_SPIKE.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.SPIRALING_VINES.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.GOREVINE.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.WHIRLFLOWER.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.NADIR_FERN.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.LARGE_NADIR_FERN.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.DUSKBELL.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.NADIR_ROOTS.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.VERDANT_ROOTS.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.STAR_CORAL.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.STAR_CORAL_FAN.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.STAR_CORAL_WALL_FAN.get(), RenderType.cutout());
@@ -377,7 +427,8 @@ public final class AntarchyFabricClientBootstrap {
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.LUMEN_BLOCK.get(), RenderType.translucent());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.ELYTHIA_PORTAL.get(), RenderType.translucent());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.THORAXIS_PORTAL.get(), RenderType.translucent());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.TRIFFID_GOO_BLOCK.get(), RenderType.translucent());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.FLYTRAP_GOO_BLOCK.get(), RenderType.translucent());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.VORTEX_LENS.get(), RenderType.translucent());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.URANIUM_DOOR.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.TITANIUM_DOOR.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.URANIUM_TRAPDOOR.get(), RenderType.cutout());
@@ -385,13 +436,16 @@ public final class AntarchyFabricClientBootstrap {
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.URANIUM_BARS.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.TITANIUM_BARS.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.CLOUD_BLOCK.get(), RenderType.translucent());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.JUMPY_BUG_EGG.get(), RenderType.translucent());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.LUCID_ANCHOR.get(), RenderType.translucent());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.SPRINGBUG_EGG.get(), RenderType.translucent());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.SPIT_BUG_EGG.get(), RenderType.translucent());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.JERRY_EGG.get(), RenderType.translucent());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.BIOWART_TENDRILS.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.HANGING_CREEPROOTS.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.MOLTING_VINES.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.GLOWCAP_MUSHROOM.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.UNDERTRIAL_SPAWNER.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putBlock(AntarchyFabricBlocks.UNDERVAULT.get(), RenderType.cutout());
BlockRenderLayerMap.INSTANCE.putFluids(
RenderType.translucent(),
AntarchyFabricMisc.BILE.get(),
@@ -465,10 +519,10 @@ public final class AntarchyFabricClientBootstrap {
registrationHelper.register(new com.craisinlord.antarchy.content.client.renderer.TigerEyeCamouflagePlayerLayer(playerRenderer));
registrationHelper.register(new GoopedLivingLayer(playerRenderer));
registrationHelper.register(new GlimmeringLivingLayer(playerRenderer));
registrationHelper.register(new com.craisinlord.antarchy.content.client.renderer.RoyalIndicatorLivingLayer<>(playerRenderer));
registrationHelper.register(new BrutalflyElytraLayer(playerRenderer));
registrationHelper.register(new com.craisinlord.antarchy.content.client.renderer.ManticoreWingsLayer(playerRenderer));
registrationHelper.register(new FallenKingCrownLayer(playerRenderer));
registrationHelper.register(new com.craisinlord.antarchy.content.client.renderer.TemporalContractionAfterimageLayer(playerRenderer));
registrationHelper.register(new com.craisinlord.antarchy.content.client.renderer.RoyalAssailantAxeAfterimageLayer(playerRenderer));
}
return;
}
@@ -481,48 +535,55 @@ public final class AntarchyFabricClientBootstrap {
(software.bernie.geckolib.renderer.GeoEntityRenderer) (Object) renderer;
geoRenderer.addRenderLayer(new ParalyzedStoneGeoLayer(geoRenderer));
geoRenderer.addRenderLayer(new GoopedGeoLayer(geoRenderer));
geoRenderer.addRenderLayer(new com.craisinlord.antarchy.content.client.renderer.TemporalContractionGeoLayer(geoRenderer));
geoRenderer.addRenderLayer(new com.craisinlord.antarchy.content.client.renderer.RoyalIndicatorGeoLayer<>(geoRenderer));
return;
}
registrationHelper.register(new ParalyzedStoneLivingLayer(renderer));
registrationHelper.register(new GoopedLivingLayer(renderer));
registrationHelper.register(new GlimmeringLivingLayer(renderer));
registrationHelper.register(new com.craisinlord.antarchy.content.client.renderer.TemporalContractionAfterimageLayer(renderer));
registrationHelper.register(new com.craisinlord.antarchy.content.client.renderer.RoyalIndicatorLivingLayer<>(renderer));
});
}
private static void registerClientCallbacks() {
TigerEyeClientHooks.setCamouflageKeyTextSupplier(() -> AntarchyKeyBindings.TIGERS_EYE_CAMOUFLAGE.getTranslatedKeyMessage());
ClientTickEvents.END_CLIENT_TICK.register(client -> {
if (client.level != null) {
com.craisinlord.antarchy.content.client.ClientTimeDilationTicker.tick(client.level);
com.craisinlord.antarchy.content.client.ContractionAfterimages.tick(client.level);
}
CameraShakeClientState.tick();
HerculesBeetleImpactShakeClientState.tick();
KingJudgmentFlashClientState.tick();
HordeClientState.tick();
if (client.player != null) {
ParalyzedClientHandler.clampPlayerInput(client.player);
}
BrutalflyElytraClientHandler.tick();
JumpyBootsClientHandler.tick();
SpringyBootsClientHandler.tick();
DiamondMinecartClientHandler.tick();
ParalyzedClientHandler.tick();
DreadClientHandler.tick();
TigerEyeCamouflageClientHandler.tick();
RoyalInversionClientHandler.tick();
RoyalBoundaryClientHandler.tick();
BloodCrystalKatanaTrailHandler.tick();
ScorpionWhipTetherRenderHandler.tick();
WormHookTetherRenderHandler.tick();
DorrieJumpClientHandler.tick();
HerculesBeetleClientHandler.tick();
TigerEyeCamouflageClientHandler.tick();
RoyalMountClientHandler.tick();
GiantFryingPanClientHandler.tick();
SizeRaySoundHandler.tick(client);
});
BigBerthaClientHandler.register();
GravityGunClientHandler.register();
PortalGunClientHandler.register();
EyeOfStormClientHandler.register();
ElythiaFireflyManager.register();
LucidSoundHandler.register();
TearIdleSoundHandler.register();
MogglesClientRenderer.register();
StinkySoundHandler.register();
ReverieTrailHandler.register();
HoverboardTrailHandler.register();
HudRenderCallback.EVENT.register((guiGraphics, partialTick) -> {
DreadHudRenderer.render(guiGraphics);
com.craisinlord.antarchy.content.client.HordeHudRenderer.render(guiGraphics);
@@ -530,15 +591,18 @@ public final class AntarchyFabricClientBootstrap {
com.craisinlord.antarchy.content.client.GlimmeringHudRenderer.render(guiGraphics);
ParalyzedHudRenderer.render(guiGraphics);
BrutalflyElytraHudRenderer.render(guiGraphics);
JumpyBootsHudRenderer.render(guiGraphics);
TriffidGooHudRenderer.render(guiGraphics);
SpringyBootsHudRenderer.render(guiGraphics);
FlytrapGooHudRenderer.render(guiGraphics);
DorrieJumpHudRenderer.render(guiGraphics);
HerculesBeetleChargeHudRenderer.render(guiGraphics);
com.craisinlord.antarchy.content.client.KingJudgmentFlashHudRenderer.render(guiGraphics);
com.craisinlord.antarchy.content.client.PortalGunCrosshairRenderer.render(guiGraphics);
});
WorldRenderEvents.AFTER_TRANSLUCENT.register(context -> {
WorldRenderEvents.LAST.register(context -> {
BloodCrystalKatanaTrailHandler.render(context);
ScorpionWhipTetherRenderHandler.render(context);
WormHookTetherRenderHandler.render(context);
});
}
@@ -17,22 +17,15 @@ 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",
InputConstants.Type.KEYSYM,
GLFW.GLFW_KEY_LEFT_CONTROL,
CATEGORY
);
public static final KeyMapping HERCULES_BEETLE_CHARGE = new KeyMapping(
"key.antarchy.hercules_beetle_charge",
InputConstants.Type.KEYSYM,
GLFW.GLFW_KEY_LEFT_CONTROL,
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",
InputConstants.Type.KEYSYM,
GLFW.GLFW_KEY_R,
CATEGORY
@@ -44,33 +37,77 @@ public final class AntarchyKeyBindings {
CATEGORY
);
public static final KeyMapping ROYAL_INVERSION_TOGGLE = new KeyMapping(
"key.antarchy.royal_inversion_toggle",
InputConstants.Type.KEYSYM,
GLFW.GLFW_KEY_V,
CATEGORY
);
public static final KeyMapping ROYAL_BOUNDARY = new KeyMapping(
"key.antarchy.royal_boundary",
InputConstants.Type.KEYSYM,
GLFW.GLFW_KEY_B,
CATEGORY
);
public static final KeyMapping PORTAL_GUN_ZOOM = new KeyMapping(
"key.antarchy.portal_gun_zoom",
InputConstants.Type.KEYSYM,
GLFW.GLFW_KEY_Z,
CATEGORY
);
public static final KeyMapping PORTAL_GUN_RESET = new KeyMapping(
"key.antarchy.portal_gun_reset",
InputConstants.Type.KEYSYM,
GLFW.GLFW_KEY_R,
CATEGORY
);
private AntarchyKeyBindings() {}
public static void register() {
KeyBindingHelper.registerKeyBinding(BRUTALFLY_FLAP);
KeyBindingHelper.registerKeyBinding(DORRIE_CHARGE_JUMP);
KeyBindingHelper.registerKeyBinding(HERCULES_BEETLE_CHARGE);
KeyBindingHelper.registerKeyBinding(HERCULES_BEETLE_FLIGHT_TOGGLE);
KeyBindingHelper.registerKeyBinding(MOUNT_SPECIAL);
KeyBindingHelper.registerKeyBinding(MOUNT_FLIGHT_TOGGLE);
KeyBindingHelper.registerKeyBinding(TIGERS_EYE_CAMOUFLAGE);
KeyBindingHelper.registerKeyBinding(ROYAL_INVERSION_TOGGLE);
KeyBindingHelper.registerKeyBinding(ROYAL_BOUNDARY);
KeyBindingHelper.registerKeyBinding(PORTAL_GUN_ZOOM);
KeyBindingHelper.registerKeyBinding(PORTAL_GUN_RESET);
}
public static boolean isBrutalflyFlapPressed() {
return Minecraft.getInstance().screen == null && BRUTALFLY_FLAP.isDown();
}
public static boolean isDorrieChargeJumpPressed() {
return Minecraft.getInstance().screen == null && DORRIE_CHARGE_JUMP.isDown();
public static boolean isMountSpecialPressed() {
return Minecraft.getInstance().screen == null && MOUNT_SPECIAL.isDown();
}
public static boolean isHerculesBeetleChargePressed() {
return Minecraft.getInstance().screen == null && HERCULES_BEETLE_CHARGE.isDown();
}
public static boolean isHerculesBeetleFlightTogglePressed() {
return Minecraft.getInstance().screen == null && HERCULES_BEETLE_FLIGHT_TOGGLE.isDown();
public static boolean isMountFlightTogglePressed() {
return Minecraft.getInstance().screen == null && MOUNT_FLIGHT_TOGGLE.isDown();
}
public static boolean consumeTigerEyeCamouflagePressed() {
return Minecraft.getInstance().screen == null && TIGERS_EYE_CAMOUFLAGE.consumeClick();
}
public static boolean consumeRoyalInversionTogglePressed() {
return Minecraft.getInstance().screen == null && ROYAL_INVERSION_TOGGLE.consumeClick();
}
public static boolean consumeRoyalBoundaryPressed() {
return Minecraft.getInstance().screen == null && ROYAL_BOUNDARY.consumeClick();
}
public static boolean consumePortalGunZoomPressed() {
return Minecraft.getInstance().screen == null && PORTAL_GUN_ZOOM.consumeClick();
}
public static boolean consumePortalGunResetPressed() {
return Minecraft.getInstance().screen == null && PORTAL_GUN_RESET.consumeClick();
}
public static boolean isPortalGunResetDown() {
return Minecraft.getInstance().screen == null && (PORTAL_GUN_RESET.isDown() || PORTAL_GUN_RESET.consumeClick());
}
}
@@ -0,0 +1,15 @@
package com.craisinlord.antarchy.fabric.client;
import com.terraformersmc.modmenu.api.ConfigScreenFactory;
import com.terraformersmc.modmenu.api.ModMenuApi;
import net.fabricmc.loader.api.FabricLoader;
public final class AntarchyModMenuIntegration implements ModMenuApi {
@Override
public ConfigScreenFactory<?> getModConfigScreenFactory() {
if (!FabricLoader.getInstance().isModLoaded("cloth-config")) {
return parent -> parent;
}
return AntarchyClothConfigScreenBuilder::build;
}
}
@@ -1,9 +1,10 @@
package com.craisinlord.antarchy.fabric.client;
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.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
import net.minecraft.client.Minecraft;
public final class BigBerthaClientHandler {
@@ -22,7 +23,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;
}
@@ -31,8 +34,9 @@ public final class BigBerthaClientHandler {
if (useDown
&& !lastUseDown
&& mc.player.isShiftKeyDown()
&& mc.player.getCooldowns().isOnCooldown(mc.player.getMainHandItem().getItem())) {
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.sendToServer(new BigBerthaModeCyclePayload(), BigBerthaModeCyclePayload.STREAM_CODEC, BigBerthaModeCyclePayload.TYPE);
) {
if (bigBertha) com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.send(new BigBerthaModeCyclePayload());
else com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.send(new RoyalGuardianSwordModeCyclePayload());
}
lastUseDown = useDown;
}
@@ -26,7 +26,6 @@ public final class BloodglassHudRenderer {
if (mc.options.hideGui) return;
Player player = mc.player;
if (player == null || player.isDeadOrDying()) return;
// Don't show in creative or spectator — no health bar visible there
if (player.isCreative() || player.isSpectator()) return;
int total = BloodglassClientState.getShieldsMax();
@@ -36,21 +35,16 @@ public final class BloodglassHudRenderer {
int w = mc.getWindow().getGuiScaledWidth();
int h = mc.getWindow().getGuiScaledHeight();
// Vanilla health bar bottom row is at y = h - 39; each extra row (absorption, extra hearts) is 10px above.
// The armor protection icons sit one row above the bottom health row (h - 49).
// We place bloodglass hearts above both health+absorption stack AND the armor row.
int maxHealth = Mth.ceil(player.getMaxHealth());
int absorption = Mth.ceil(player.getAbsorptionAmount());
int healthHearts = Mth.ceil(maxHealth / 2.0f);
int absorptionHearts = Mth.ceil(absorption / 2.0f);
int totalVanillaRows = Mth.ceil((healthHearts + absorptionHearts) / 10.0f);
boolean hasArmor = player.getArmorValue() > 0;
// +1 to clear the armor icon row only when armor is actually equipped
int baseTop = h - 39 - (totalVanillaRows * 10) - (hasArmor ? 10 : 0);
int left = w / 2 - 91;
// Wrap across multiple rows if more than 10 bloodglass hearts
for (int i = 0; i < total; i++) {
int row = i / 10;
int col = i % 10;
@@ -4,13 +4,9 @@ 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.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
import net.minecraft.client.Minecraft;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public final class BrutalflyElytraClientHandler {
private static final Logger LOGGER = LoggerFactory.getLogger("Antarchy/BrutalflyElytra");
private static boolean lastJumpDown;
private static int chargeTicks;
@@ -50,10 +46,7 @@ public final class BrutalflyElytraClientHandler {
}
if (wasSneakDown && chargeTicks > 0) {
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("[BrutalflyElytra] Sending flap payload chargeTicks={} fallFlying={} deltaMovement={}", chargeTicks, minecraft.player.isFallFlying(), minecraft.player.getDeltaMovement());
}
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.sendToServer(new BrutalflyElytraFlapPayload(chargeTicks), BrutalflyElytraFlapPayload.STREAM_CODEC, BrutalflyElytraFlapPayload.TYPE);
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.send(new BrutalflyElytraFlapPayload(chargeTicks));
}
chargeTicks = 0;
}
@@ -3,7 +3,6 @@ package com.craisinlord.antarchy.fabric.client;
import com.craisinlord.antarchy.config.AntarchySettings;
import com.craisinlord.antarchy.content.entity.DiamondMinecartEntity;
import com.craisinlord.antarchy.content.network.DiamondMinecartInputPayload;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
import net.minecraft.client.Minecraft;
public final class DiamondMinecartClientHandler {
@@ -22,7 +21,7 @@ public final class DiamondMinecartClientHandler {
if (!(mc.player.getVehicle() instanceof DiamondMinecartEntity)) return;
if (mc.screen != null) {
if (lastFlags != 0) {
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.sendToServer(new DiamondMinecartInputPayload((byte) 0), DiamondMinecartInputPayload.STREAM_CODEC, DiamondMinecartInputPayload.TYPE);
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.send(new DiamondMinecartInputPayload((byte) 0));
lastFlags = 0;
}
return;
@@ -35,7 +34,7 @@ public final class DiamondMinecartClientHandler {
if (mc.options.keyRight.isDown()) flags |= DiamondMinecartInputPayload.FLAG_RIGHT;
if (flags != lastFlags) {
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.sendToServer(new DiamondMinecartInputPayload(flags), DiamondMinecartInputPayload.STREAM_CODEC, DiamondMinecartInputPayload.TYPE);
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.send(new DiamondMinecartInputPayload(flags));
lastFlags = flags;
}
}
@@ -3,7 +3,6 @@ package com.craisinlord.antarchy.fabric.client;
import com.craisinlord.antarchy.content.entity.DorrieEntity;
import com.craisinlord.antarchy.content.network.DorrieChargeJumpPayload;
import com.craisinlord.antarchy.content.network.DorrieJumpInputPayload;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
import net.minecraft.client.Minecraft;
import net.minecraft.client.player.LocalPlayer;
@@ -27,17 +26,15 @@ public final class DorrieJumpClientHandler {
return;
}
// Space bar → upward movement.
boolean pressingJump = mc.options.keyJump.isDown();
if (pressingJump != wasPressingJump) {
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.sendToServer(new DorrieJumpInputPayload(pressingJump), DorrieJumpInputPayload.STREAM_CODEC, DorrieJumpInputPayload.TYPE);
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.send(new DorrieJumpInputPayload(pressingJump));
wasPressingJump = pressingJump;
}
// Left ctrl → charge jump.
boolean pressingCharge = AntarchyKeyBindings.isDorrieChargeJumpPressed();
boolean pressingCharge = AntarchyKeyBindings.isMountSpecialPressed();
if (pressingCharge != wasPressingCharge) {
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.sendToServer(new DorrieChargeJumpPayload(pressingCharge), DorrieChargeJumpPayload.STREAM_CODEC, DorrieChargeJumpPayload.TYPE);
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.send(new DorrieChargeJumpPayload(pressingCharge));
if (!pressingCharge && player.getVehicle() instanceof DorrieEntity dorrie) {
dorrie.applyJumpImpulseClient();
}
@@ -47,11 +44,11 @@ public final class DorrieJumpClientHandler {
private static void resetAll() {
if (wasPressingJump) {
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.sendToServer(new DorrieJumpInputPayload(false), DorrieJumpInputPayload.STREAM_CODEC, DorrieJumpInputPayload.TYPE);
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.send(new DorrieJumpInputPayload(false));
wasPressingJump = false;
}
if (wasPressingCharge) {
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.sendToServer(new DorrieChargeJumpPayload(false), DorrieChargeJumpPayload.STREAM_CODEC, DorrieChargeJumpPayload.TYPE);
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.send(new DorrieChargeJumpPayload(false));
wasPressingCharge = false;
}
}
@@ -0,0 +1,36 @@
package com.craisinlord.antarchy.fabric.client;
import com.craisinlord.antarchy.config.AntarchySettings;
import com.craisinlord.antarchy.content.item.EyeOfTheStormItem;
import com.craisinlord.antarchy.content.network.EyeOfStormPrimaryPayload;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
import net.minecraft.client.Minecraft;
public final class EyeOfStormClientHandler {
private static boolean lastAttackDown;
private EyeOfStormClientHandler() {
}
public static void register() {
ClientTickEvents.END_CLIENT_TICK.register(EyeOfStormClientHandler::tick);
}
private static void tick(Minecraft mc) {
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) {
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.send(new EyeOfStormPrimaryPayload());
}
lastAttackDown = attackDown;
}
}
@@ -9,8 +9,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;
@@ -24,7 +24,7 @@ public final class TriffidGooHudRenderer {
fadeProgress = Math.max(0f, fadeProgress - FADE_SPEED);
if (fadeProgress <= 0f) return;
} else {
Block goo = AntarchyFabricBlocks.TRIFFID_GOO_BLOCK.get();
Block goo = AntarchyFabricBlocks.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,29 @@
package com.craisinlord.antarchy.fabric.client;
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;
public final class GiantFryingPanClientHandler {
private static boolean wasUse;
private GiantFryingPanClientHandler() {
}
public static void tick() {
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)) {
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.send(OpenGiantFryingPanPayload.INSTANCE);
}
wasUse = use;
}
}
@@ -2,10 +2,11 @@ package com.craisinlord.antarchy.fabric.client;
import com.craisinlord.antarchy.config.AntarchySettings;
import com.craisinlord.antarchy.content.item.GravityGunItem;
import com.craisinlord.antarchy.content.item.TemporalTunerItem;
import com.craisinlord.antarchy.content.network.GravityGunPrimaryPayload;
import com.craisinlord.antarchy.content.network.GravityGunScrollPayload;
import com.craisinlord.antarchy.content.network.TemporalTunerScrollPayload;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.util.Mth;
@@ -35,14 +36,26 @@ public final class GravityGunClientHandler {
boolean attackDown = mc.options.keyAttack.isDown();
if (attackDown && !lastAttackDown) {
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.sendToServer(new GravityGunPrimaryPayload(), GravityGunPrimaryPayload.STREAM_CODEC, GravityGunPrimaryPayload.TYPE);
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.send(new GravityGunPrimaryPayload());
}
lastAttackDown = attackDown;
}
public static boolean onScroll(double verticalAmount) {
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 false;
}
if (Screen.hasShiftDown() && TemporalTunerItem.isAvailable(mc.player)) {
double scrollAmount = Mth.clamp(verticalAmount, -1.0D, 1.0D);
if (Math.abs(scrollAmount) >= 1.0E-4D) {
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.send(new TemporalTunerScrollPayload(scrollAmount * TemporalTunerItem.STEP));
return true;
}
}
if (!Screen.hasControlDown() || !AntarchySettings.gravityGunEnabled()) {
return false;
}
@@ -55,7 +68,7 @@ public final class GravityGunClientHandler {
return false;
}
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.sendToServer(new GravityGunScrollPayload(scrollAmount * SCROLL_STEP_DISTANCE), GravityGunScrollPayload.STREAM_CODEC, GravityGunScrollPayload.TYPE);
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.send(new GravityGunScrollPayload(scrollAmount * SCROLL_STEP_DISTANCE));
return true;
}
}
@@ -5,7 +5,6 @@ import com.craisinlord.antarchy.content.network.HerculesBeetleFlightTogglePayloa
import com.craisinlord.antarchy.content.network.HerculesBeetleJumpInputPayload;
import com.craisinlord.antarchy.content.network.HerculesBeetleMountedAttackPayload;
import com.craisinlord.antarchy.content.network.HerculesBeetleMountedChargePayload;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
import net.minecraft.client.Minecraft;
import net.minecraft.client.player.LocalPlayer;
@@ -33,32 +32,32 @@ public final class HerculesBeetleClientHandler {
boolean pressingJump = mc.options.keyJump.isDown();
if (pressingJump != wasPressingJump) {
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.sendToServer(new HerculesBeetleJumpInputPayload(pressingJump), HerculesBeetleJumpInputPayload.STREAM_CODEC, HerculesBeetleJumpInputPayload.TYPE);
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.send(new HerculesBeetleJumpInputPayload(pressingJump));
wasPressingJump = pressingJump;
}
boolean pressingAttack = mc.options.keyAttack.isDown();
if (pressingAttack && !wasPressingAttack) {
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.sendToServer(new HerculesBeetleMountedAttackPayload(), HerculesBeetleMountedAttackPayload.STREAM_CODEC, HerculesBeetleMountedAttackPayload.TYPE);
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.send(new HerculesBeetleMountedAttackPayload());
}
wasPressingAttack = pressingAttack;
boolean charging = AntarchyKeyBindings.isHerculesBeetleChargePressed();
boolean charging = AntarchyKeyBindings.isMountSpecialPressed();
if (charging != wasCharging) {
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.sendToServer(new HerculesBeetleMountedChargePayload(charging), HerculesBeetleMountedChargePayload.STREAM_CODEC, HerculesBeetleMountedChargePayload.TYPE);
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.send(new HerculesBeetleMountedChargePayload(charging));
}
wasCharging = charging;
boolean pressingFlightToggle = AntarchyKeyBindings.isHerculesBeetleFlightTogglePressed();
boolean pressingFlightToggle = AntarchyKeyBindings.isMountFlightTogglePressed();
if (pressingFlightToggle && !wasPressingFlightToggle) {
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.sendToServer(new HerculesBeetleFlightTogglePayload(), HerculesBeetleFlightTogglePayload.STREAM_CODEC, HerculesBeetleFlightTogglePayload.TYPE);
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.send(new HerculesBeetleFlightTogglePayload());
}
wasPressingFlightToggle = pressingFlightToggle;
}
private static void resetAll() {
if (wasPressingJump) {
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.sendToServer(new HerculesBeetleJumpInputPayload(false), HerculesBeetleJumpInputPayload.STREAM_CODEC, HerculesBeetleJumpInputPayload.TYPE);
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.send(new HerculesBeetleJumpInputPayload(false));
wasPressingJump = false;
}
wasPressingAttack = false;
@@ -0,0 +1,19 @@
package com.craisinlord.antarchy.fabric.client;
import com.craisinlord.antarchy.content.client.HoverboardSoundSystem;
import com.craisinlord.antarchy.content.client.HoverboardTrailSystem;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderEvents;
public final class HoverboardTrailHandler {
private HoverboardTrailHandler() {
}
public static void register() {
ClientTickEvents.END_CLIENT_TICK.register(client -> {
HoverboardTrailSystem.tick();
HoverboardSoundSystem.tick();
});
WorldRenderEvents.AFTER_TRANSLUCENT.register(context -> HoverboardTrailSystem.render(context.camera(), context.matrixStack().last().pose()));
}
}
@@ -9,13 +9,14 @@ import net.minecraft.client.KeyMapping;
public final class KeybindingConflictFixStore {
private static final String ANTARCHY_KEY_PREFIX = "key.antarchy.";
private static final String SPRINT_KEY = "key.sprint";
private static final Map<InputConstants.Key, List<KeyMapping>> MAPPINGS = new HashMap<>();
private KeybindingConflictFixStore() {
}
public static void add(InputConstants.Key key, KeyMapping mapping) {
if (!mapping.getName().startsWith(ANTARCHY_KEY_PREFIX)) {
if (!isTracked(mapping)) {
return;
}
List<KeyMapping> mappings = MAPPINGS.computeIfAbsent(key, ignored -> new ArrayList<>());
@@ -41,4 +42,12 @@ public final class KeybindingConflictFixStore {
}
return others;
}
public static boolean isSprint(KeyMapping mapping) {
return SPRINT_KEY.equals(mapping.getName());
}
private static boolean isTracked(KeyMapping mapping) {
return mapping.getName().startsWith(ANTARCHY_KEY_PREFIX) || isSprint(mapping);
}
}
@@ -21,9 +21,11 @@ import java.util.UUID;
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() {
}
@@ -42,10 +44,24 @@ public final class LucidSoundHandler {
}
pruneStaleLoops(client);
refreshNearbyLucids(client);
refreshActiveLoops(client);
long gameTime = client.level.getGameTime();
if (gameTime >= nextDiscoveryScanTick) {
nextDiscoveryScanTick = gameTime + DISCOVERY_SCAN_INTERVAL_TICKS;
refreshNearbyLucids(client);
}
});
}
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) {
List<LucidEntity> lucids = mc.level.getEntitiesOfClass(
LucidEntity.class,
@@ -85,6 +101,7 @@ public final class LucidSoundHandler {
set.stop(mc);
}
ACTIVE_LOOPS.clear();
nextDiscoveryScanTick = 0L;
}
private static final class LucidLoopSet {
@@ -0,0 +1,53 @@
package com.craisinlord.antarchy.fabric.client;
import com.craisinlord.antarchy.content.item.PortalGunItem;
import com.craisinlord.antarchy.content.client.PortalGunZoomClientState;
import com.craisinlord.antarchy.content.network.PortalGunPrimaryPayload;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
import net.minecraft.client.Minecraft;
public final class PortalGunClientHandler {
private static boolean lastAttackDown;
private PortalGunClientHandler() {
}
public static void register() {
ClientTickEvents.END_CLIENT_TICK.register(PortalGunClientHandler::tickMouse);
}
private static void tickMouse(Minecraft mc) {
if (mc.player == null) {
com.craisinlord.antarchy.content.client.PortalGunResetClientState.clear();
}
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, held, zoomPressed && gameplayInput);
boolean resetActive = com.craisinlord.antarchy.content.client.PortalGunResetClientState.tick(
mc,
held,
AntarchyKeyBindings.isPortalGunResetDown(),
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking::send
);
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();
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.send(new PortalGunPrimaryPayload(offhand));
}
lastAttackDown = attackDown;
}
}
@@ -0,0 +1,17 @@
package com.craisinlord.antarchy.fabric.client;
import com.craisinlord.antarchy.content.network.ActivateRoyalBoundaryPayload;
import net.minecraft.client.Minecraft;
public final class RoyalBoundaryClientHandler {
private RoyalBoundaryClientHandler() {
}
public static void tick() {
Minecraft minecraft = Minecraft.getInstance();
if (minecraft.player == null || minecraft.level == null) return;
while (AntarchyKeyBindings.consumeRoyalBoundaryPressed()) {
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.send(new ActivateRoyalBoundaryPayload());
}
}
}
@@ -0,0 +1,19 @@
package com.craisinlord.antarchy.fabric.client;
import com.craisinlord.antarchy.content.network.ToggleRoyalInversionPayload;
import net.minecraft.client.Minecraft;
public final class RoyalInversionClientHandler {
private RoyalInversionClientHandler() {
}
public static void tick() {
Minecraft minecraft = Minecraft.getInstance();
if (minecraft.player == null || minecraft.level == null) {
return;
}
while (AntarchyKeyBindings.consumeRoyalInversionTogglePressed()) {
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.send(new ToggleRoyalInversionPayload());
}
}
}
@@ -0,0 +1,78 @@
package com.craisinlord.antarchy.fabric.client;
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;
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() {
}
public static void tick() {
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) {
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.send(new RoyalMountActionPayload(RoyalMountActionPayload.MOUNT));
}
wasUse = use;
return;
}
wasUse = mc.options.keyUse.isDown();
boolean attack = mc.options.keyAttack.isDown();
if (attack && !wasAttack) {
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.send(new RoyalMountActionPayload(RoyalMountActionPayload.BITE));
}
wasAttack = attack;
boolean special = AntarchyKeyBindings.isMountSpecialPressed();
if (special && !wasSpecial) {
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.send(new RoyalMountActionPayload(RoyalMountActionPayload.SPIT));
}
wasSpecial = special;
boolean flightToggle = AntarchyKeyBindings.isMountFlightTogglePressed();
if (flightToggle && !wasFlightToggle) {
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.send(new RoyalMountActionPayload(RoyalMountActionPayload.FLIGHT_TOGGLE));
}
wasFlightToggle = flightToggle;
boolean ascend = mc.options.keyJump.isDown();
boolean descend = mc.options.keyShift.isDown();
if (ascend != wasAscend || descend != wasDescend) {
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.send(new RoyalMountVerticalPayload(ascend, descend));
wasAscend = ascend;
wasDescend = descend;
}
}
private static void reset() {
if (wasAscend || wasDescend) {
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.send(new RoyalMountVerticalPayload(false, false));
}
wasAttack = false;
wasSpecial = false;
wasFlightToggle = false;
wasAscend = false;
wasDescend = false;
}
}
@@ -0,0 +1,50 @@
package com.craisinlord.antarchy.fabric.client;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.fabric.registry.AntarchyFabricItems;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import java.util.Collection;
import java.util.Map;
public final class SeparateLargeItemModels {
private static final Map<Item, ResourceLocation> GUI_MODELS = Map.ofEntries(
entry(AntarchyFabricItems.ATTITUDE_ADJUSTER.get(), "attitude_adjuster_gui"),
entry(AntarchyFabricItems.BATTLE_AXE.get(), "battle_axe_gui"),
entry(AntarchyFabricItems.BIG_BERTHA.get(), "big_bertha_gui"),
entry(AntarchyFabricItems.EYE_OF_THE_STORM.get(), "eye_of_the_storm_gui"),
entry(AntarchyFabricItems.GIANT_FRYING_PAN.get(), "giant_frying_pan_gui"),
entry(AntarchyFabricItems.GRAVITY_GUN.get(), "gravity_gun_gui"),
entry(AntarchyFabricItems.GROWTH_RAY.get(), "grow_ray_gui"),
entry(AntarchyFabricItems.KRAKENS_GRASP.get(), "krakens_grasp_gui"),
entry(AntarchyFabricItems.PORTAL_GUN.get(), "portal_gun_gui"),
entry(AntarchyFabricItems.PORTAL_GUN_ATLAS.get(), "portal_gun_atlas_gui"),
entry(AntarchyFabricItems.PORTAL_GUN_P_BODY.get(), "portal_gun_p_body_gui"),
entry(AntarchyFabricItems.PORTAL_GUN_CRAISIN.get(), "portal_gun_craisin_gui"),
entry(AntarchyFabricItems.PORTAL_GUN_LAYNCE.get(), "portal_gun_laynce_gui"),
entry(AntarchyFabricItems.ROYAL_ASSAILANT_BATTLEAXE.get(), "royal_assailant_battleaxe_gui"),
entry(AntarchyFabricItems.ROYAL_ASSAILANT_STAFF.get(), "royal_assailant_staff_gui"),
entry(AntarchyFabricItems.ROYAL_GUARDIAN_SWORD.get(), "royal_guardian_sword_gui"),
entry(AntarchyFabricItems.RPO_LAUNCHER.get(), "rpo_launcher_gui"),
entry(AntarchyFabricItems.SHRINK_RAY.get(), "shrink_ray_gui"),
entry(AntarchyFabricItems.SQUIDZOOKA.get(), "squidzooka_gui"),
entry(AntarchyFabricItems.WATER_CANNON.get(), "water_cannon_gui")
);
private SeparateLargeItemModels() {
}
public static ResourceLocation modelFor(ItemStack stack) {
return GUI_MODELS.get(stack.getItem());
}
public static Collection<ResourceLocation> all() {
return GUI_MODELS.values();
}
private static Map.Entry<Item, ResourceLocation> entry(Item item, String modelPath) {
return Map.entry(item, new ResourceLocation(Antarchy.MODID, "item/" + modelPath));
}
}
@@ -1,19 +1,18 @@
package com.craisinlord.antarchy.fabric.client;
import com.craisinlord.antarchy.content.item.JumpyBootsHelper;
import com.craisinlord.antarchy.content.item.JumpyBootsItem;
import com.craisinlord.antarchy.content.network.JumpyBootsLaunchPayload;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
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;
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() {
}
public static void tick() {
@@ -25,7 +24,7 @@ public final class JumpyBootsClientHandler {
return;
}
if (!JumpyBootsItem.isWearingJumpyBoots(player)) {
if (!SpringyBootsItem.isWearingSpringyBoots(player)) {
reset();
return;
}
@@ -37,7 +36,7 @@ public final class JumpyBootsClientHandler {
if (primeWindowTicks > 0) {
primeWindowTicks--;
if (jumpPressed) {
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.sendToServer(new JumpyBootsLaunchPayload(storedChargeTicks, player.isSprinting()), JumpyBootsLaunchPayload.STREAM_CODEC, JumpyBootsLaunchPayload.TYPE);
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.send(new SpringyBootsLaunchPayload(storedChargeTicks, player.isSprinting()));
reset();
return;
}
@@ -54,22 +53,22 @@ public final class JumpyBootsClientHandler {
}
if (jumpPressed && wasCharging && chargeTicks > 0) {
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.sendToServer(new JumpyBootsLaunchPayload(chargeTicks, player.isSprinting()), JumpyBootsLaunchPayload.STREAM_CODEC, JumpyBootsLaunchPayload.TYPE);
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.send(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) {
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.sendToServer(new JumpyBootsLaunchPayload(storedChargeTicks, player.isSprinting()), JumpyBootsLaunchPayload.STREAM_CODEC, JumpyBootsLaunchPayload.TYPE);
com.craisinlord.antarchy.fabric.network.AntarchyFabricClientNetworking.send(new SpringyBootsLaunchPayload(storedChargeTicks, player.isSprinting()));
reset();
return;
}
primeWindowTicks = JumpyBootsHelper.PRIME_WINDOW_TICKS;
primeWindowTicks = SpringyBootsHelper.PRIME_WINDOW_TICKS;
chargeTicks = 0;
wasCharging = false;
} else {
@@ -1,20 +1,20 @@
package com.craisinlord.antarchy.fabric.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 {
public final class SpringyBootsHudRenderer {
private static final ResourceLocation JUMP_BAR_BACKGROUND = new ResourceLocation("textures/gui/sprites/hud/jump_bar_background.png");
private static final ResourceLocation JUMP_BAR_PROGRESS = new ResourceLocation("textures/gui/sprites/hud/jump_bar_progress.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) {
@@ -23,10 +23,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;
}
@@ -37,8 +37,8 @@ public final class JumpyBootsHudRenderer {
guiGraphics.blit(JUMP_BAR_BACKGROUND, x0, y0, 0, 0, BAR_WIDTH, BAR_HEIGHT, 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);
@@ -0,0 +1,112 @@
package com.craisinlord.antarchy.fabric.client;
import com.craisinlord.antarchy.content.AntarchySoundEvents;
import com.craisinlord.antarchy.content.entity.portal.DimensionalTearEntity;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
import net.minecraft.client.Minecraft;
import net.minecraft.client.resources.sounds.AbstractTickableSoundInstance;
import net.minecraft.sounds.SoundSource;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.UUID;
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() {
}
public static void register() {
ClientTickEvents.END_CLIENT_TICK.register(client -> {
if (client.level == null || client.player == null || client.isPaused()) {
resetAll(client);
return;
}
pruneStaleLoops(client);
long gameTime = client.level.getGameTime();
if (gameTime >= nextDiscoveryScanTick) {
nextDiscoveryScanTick = gameTime + DISCOVERY_SCAN_INTERVAL_TICKS;
discoverNearbyTears(client);
}
});
}
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;
}
}
}
@@ -18,11 +18,8 @@ public final class TigerEyeCamouflageClientHandler {
}
while (AntarchyKeyBindings.consumeTigerEyeCamouflagePressed()) {
AntarchyFabricClientNetworking.sendToServer(
new ToggleTigerEyeCamouflagePayload(),
ToggleTigerEyeCamouflagePayload.STREAM_CODEC,
ToggleTigerEyeCamouflagePayload.TYPE
);
AntarchyFabricClientNetworking.send(
new ToggleTigerEyeCamouflagePayload());
}
}
@@ -0,0 +1,166 @@
package com.craisinlord.antarchy.fabric.client;
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.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext;
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 org.joml.Matrix4f;
public final class WormHookTetherRenderHandler {
private static final Map<Integer, WormHookRope> ROPES = new HashMap<>();
private WormHookTetherRenderHandler() {
}
public static void tick() {
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);
}
}
public static void render(WorldRenderContext context) {
if (context.world() == null || context.matrixStack() == null) {
return;
}
Minecraft minecraft = Minecraft.getInstance();
if (minecraft.level == null) {
return;
}
Map<Integer, Integer> tethers = WormHookTetherClientState.snapshot();
if (tethers.isEmpty()) {
return;
}
Camera camera = context.camera();
Vec3 cameraPos = camera.getPosition();
Matrix4f pose = context.matrixStack().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, context.tickDelta());
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,37 +0,0 @@
package com.craisinlord.antarchy.fabric.client.multipart;
import com.craisinlord.antarchy.content.entity.multipart.MultipartEntityOwner;
import net.minecraft.client.multiplayer.ClientLevel;
import net.minecraft.world.entity.Entity;
public final class MultipartClientPartLevelRegistry {
private MultipartClientPartLevelRegistry() {
}
public static void register(MultipartEntityOwner owner) {
Entity[] parts = owner.antarchy$getMultipartParts();
if (parts == null) {
return;
}
ClientLevel clientLevel = (ClientLevel) ((Entity) owner).level();
for (Entity part : parts) {
if (part != null && clientLevel.getEntity(part.getId()) != part) {
clientLevel.putNonPlayerEntity(part.getId(), part);
}
}
}
public static void unregister(MultipartEntityOwner owner) {
Entity[] parts = owner.antarchy$getMultipartParts();
if (parts == null) {
return;
}
for (Entity part : parts) {
if (part != null && !part.isRemoved()) {
part.discard();
}
}
}
}
@@ -1,26 +0,0 @@
package com.craisinlord.antarchy.fabric.client.renderer;
import com.craisinlord.antarchy.fabric.entity.multipart.MultipartPartEntity;
import com.mojang.blaze3d.vertex.PoseStack;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.entity.EntityRenderer;
import net.minecraft.client.renderer.entity.EntityRendererProvider;
import net.minecraft.resources.ResourceLocation;
public class MultipartPartRenderer extends EntityRenderer<MultipartPartEntity> {
private static final ResourceLocation TEXTURE = new ResourceLocation("textures/misc/white.png");
public MultipartPartRenderer(EntityRendererProvider.Context context) {
super(context);
this.shadowRadius = 0.0F;
}
@Override
public void render(MultipartPartEntity entity, float entityYaw, float partialTick, PoseStack poseStack, MultiBufferSource buffer, int packedLight) {
}
@Override
public ResourceLocation getTextureLocation(MultipartPartEntity entity) {
return TEXTURE;
}
}
@@ -1,6 +1,4 @@
package com.craisinlord.antarchy.fabric.content.fluid;
import com.craisinlord.antarchy.content.fluid.AntiwaterBubbleColumnUtil;
import com.craisinlord.antarchy.fabric.registry.AntarchyFabricBlocks;
import com.craisinlord.antarchy.fabric.registry.AntarchyFabricItems;
import com.craisinlord.antarchy.fabric.registry.AntarchyFabricMisc;
@@ -171,8 +169,6 @@ public abstract class AntiwaterFluid extends FlowingFluid {
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());
this.scheduleCleanup(level, pos);
@@ -1,65 +0,0 @@
package com.craisinlord.antarchy.fabric.entity.multipart;
import com.craisinlord.antarchy.content.entity.multipart.MultipartPartDefinition;
public final class FabricKrakenMultipartLayout {
private static final MultipartPartDefinition[] PARTS = {
new MultipartPartDefinition(
"tentacle_mass",
14.0F,
18.0F,
0.90F,
12.0D,
13.5D,
0.00D,
true
),
new MultipartPartDefinition(
"head",
15.0F,
11.5F,
1.00F,
26.0D,
19.0D,
0.00D,
true
),
new MultipartPartDefinition(
"back_head",
13.0F,
11.0F,
1.10F,
38.0D,
20.5D,
0.00D,
true
),
new MultipartPartDefinition(
"mantle",
16.0F,
14.0F,
1.00F,
51.0D,
23.0D,
0.00D,
true
),
new MultipartPartDefinition(
"crest",
12.0F,
10.0F,
1.10F,
63.0D,
28.0D,
0.00D,
true
)
};
private FabricKrakenMultipartLayout() {
}
public static MultipartPartDefinition part(int partIndex) {
return PARTS[partIndex];
}
}
@@ -1,199 +0,0 @@
package com.craisinlord.antarchy.fabric.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.EntityType;
import net.minecraft.world.entity.Pose;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.Level;
import net.minecraft.world.phys.Vec3;
import org.jetbrains.annotations.Nullable;
public class MultipartPartEntity extends Entity implements MultipartPartAccess {
@Nullable
private MultipartEntityOwner owner;
private int partIndex;
@Nullable
private MultipartPartDefinition definition;
public MultipartPartEntity(EntityType<? extends MultipartPartEntity> entityType, Level level) {
super(entityType, level);
this.setNoGravity(true);
}
public MultipartPartEntity antarchy$configure(MultipartEntityOwner owner, int partIndex, MultipartPartDefinition definition) {
this.owner = owner;
this.partIndex = partIndex;
this.definition = definition;
this.refreshDimensions();
this.antarchy$syncFromParent();
return this;
}
@Nullable
public Entity antarchy$getMultipartParent() {
return this.owner == null ? null : (Entity) this.owner;
}
public int getPartIndex() {
return this.partIndex;
}
public String getPartName() {
return this.definition == null ? "" : this.definition.name();
}
public float getDamageMultiplier() {
return this.definition == null ? 1.0F : this.definition.damageMultiplier();
}
@Override
public void antarchy$syncFromParent() {
Entity parent = this.antarchy$getMultipartParent();
MultipartPartDefinition definition = this.definition;
if (parent == null || definition == 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 * definition.forwardOffset() + right.x * definition.lateralOffset(),
parent.getY() + definition.yOffset(),
parent.getZ() + forward.z * definition.forwardOffset() + right.z * definition.lateralOffset()
);
this.setPos(position.x, position.y, position.z);
this.setYRot(parent.getYRot());
this.setXRot(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.antarchy$getMultipartParent();
}
@Override
public boolean isPickable() {
return true;
}
@Override
public boolean isAttackable() {
return true;
}
@Override
public boolean isPushable() {
return false;
}
@Override
public boolean canBeCollidedWith() {
return !this.isRemoved();
}
@Override
public boolean canCollideWith(Entity entity) {
MultipartPartDefinition definition = this.definition;
if (definition == null || !definition.collisionEnabled()) {
return false;
}
Entity parent = this.antarchy$getMultipartParent();
if (entity == parent) {
return false;
}
if (entity instanceof MultipartPartEntity otherPart && otherPart.antarchy$getMultipartParent() == parent) {
return false;
}
return entity.canBeCollidedWith() && !this.isPassengerOfSameVehicle(entity);
}
@Override
public boolean shouldBeSaved() {
return false;
}
@Override
public ItemStack getPickResult() {
Entity parent = this.antarchy$getMultipartParent();
return parent == null ? ItemStack.EMPTY : parent.getPickResult();
}
@Override
public boolean hurt(DamageSource source, float amount) {
Entity parent = this.antarchy$getMultipartParent();
MultipartPartDefinition definition = this.definition;
if (parent == null || definition == null || parent.isRemoved()) {
return false;
}
if (this.level().isClientSide()) {
if (source.getEntity() instanceof Player) {
MultipartFramework.sendMultipartAttack(parent.getUUID(), this.partIndex, amount * definition.damageMultiplier());
}
return true;
}
return this.owner != null && this.owner.antarchy$hurtMultipartPart(this, source, amount * definition.damageMultiplier());
}
@Override
public boolean isInvulnerableTo(DamageSource source) {
return false;
}
@Override
public InteractionResult interactAt(Player player, Vec3 vec, InteractionHand hand) {
Entity parent = this.antarchy$getMultipartParent();
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 == null ? InteractionResult.PASS : this.owner.antarchy$interactMultipartPart(this, player, vec, hand);
}
@Override
public EntityDimensions getDimensions(Pose pose) {
MultipartPartDefinition definition = this.definition;
return definition == null ? super.getDimensions(pose) : EntityDimensions.scalable(definition.width(), definition.height());
}
@Override
protected void defineSynchedData() {
}
@Override
protected void readAdditionalSaveData(CompoundTag tag) {
}
@Override
protected void addAdditionalSaveData(CompoundTag tag) {
}
}
@@ -1,37 +0,0 @@
package com.craisinlord.antarchy.fabric.entity.multipart;
import com.craisinlord.antarchy.content.entity.multipart.MultipartEntityOwner;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.world.entity.Entity;
public final class MultipartServerPartLevelRegistry {
private MultipartServerPartLevelRegistry() {
}
public static void register(MultipartEntityOwner owner) {
Entity[] parts = owner.antarchy$getMultipartParts();
if (parts == null) {
return;
}
ServerLevel serverLevel = (ServerLevel) ((Entity) owner).level();
for (Entity part : parts) {
if (part != null && serverLevel.getEntity(part.getId()) != part) {
serverLevel.addFreshEntity(part);
}
}
}
public static void unregister(MultipartEntityOwner owner) {
Entity[] parts = owner.antarchy$getMultipartParts();
if (parts == null) {
return;
}
for (Entity part : parts) {
if (part != null && !part.isRemoved()) {
part.discard();
}
}
}
}
@@ -2,9 +2,9 @@ package com.craisinlord.antarchy.fabric.mixin;
import com.craisinlord.antarchy.content.AntarchyObjects;
import com.craisinlord.antarchy.content.AntarchyTags;
import com.craisinlord.antarchy.content.gravity.AntarchyGravityApi;
import com.craisinlord.antarchy.content.gravity.AntarchyGravityDirection;
import com.craisinlord.antarchy.content.gravity.AntarchyGravityTransition;
import com.craisinlord.anthology.gravity.GravityApi;
import com.craisinlord.anthology.gravity.GravityDirection;
import com.craisinlord.anthology.gravity.GravityTransition;
import net.minecraft.core.BlockPos;
import net.minecraft.core.particles.DustParticleOptions;
import net.minecraft.server.level.ServerLevel;
@@ -65,7 +65,7 @@ public abstract class AntimetalInversionMixin {
LivingEntity entity = (LivingEntity) (Object) this;
if (entity.level().isClientSide()) return;
if (effectInstance.getEffect() != AntarchyObjects.INVERTED_EFFECT.get()) return;
AntarchyGravityApi.setGravityDirection(entity, AntarchyGravityDirection.DOWN, new AntarchyGravityTransition(12));
GravityApi.setGravityDirection(entity, GravityDirection.DOWN, new GravityTransition(12));
}
private static void antarchy$spawnInversionParticles(LivingEntity entity) {
@@ -1,10 +1,7 @@
package com.craisinlord.antarchy.fabric.mixin;
import com.craisinlord.antarchy.content.fluid.AntarchyFluidChecks;
import com.craisinlord.antarchy.fabric.util.CustomFluidPhysicsChecks;
import net.minecraft.core.BlockPos;
import net.minecraft.world.entity.item.ItemEntity;
import net.minecraft.world.level.material.FluidState;
import net.minecraft.world.phys.Vec3;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
@@ -16,7 +13,7 @@ public abstract class AntiwaterItemEntityMixin {
@Inject(method = "tick", at = @At("TAIL"))
private void antarchy$applyAntiwaterItemMovement(CallbackInfo ci) {
ItemEntity entity = (ItemEntity) (Object) this;
if (!antarchy$isTouchingAntiwater(entity)) {
if (!CustomFluidPhysicsChecks.isTouchingAntiwater(entity)) {
return;
}
@@ -29,22 +26,4 @@ public abstract class AntiwaterItemEntityMixin {
motion.z * 0.99D + push.z
);
}
private boolean antarchy$isTouchingAntiwater(ItemEntity entity) {
BlockPos min = BlockPos.containing(entity.getBoundingBox().minX, entity.getBoundingBox().minY, entity.getBoundingBox().minZ);
BlockPos max = BlockPos.containing(entity.getBoundingBox().maxX, entity.getBoundingBox().maxY, entity.getBoundingBox().maxZ);
BlockPos.MutableBlockPos cursor = new BlockPos.MutableBlockPos();
for (int x = min.getX(); x <= max.getX(); x++) {
for (int y = min.getY(); y <= max.getY(); y++) {
for (int z = min.getZ(); z <= max.getZ(); z++) {
cursor.set(x, y, z);
FluidState fluidState = entity.level().getFluidState(cursor);
if (AntarchyFluidChecks.isAntiwater(fluidState)) {
return true;
}
}
}
}
return false;
}
}
@@ -1,17 +1,13 @@
package com.craisinlord.antarchy.fabric.mixin;
import com.craisinlord.antarchy.content.AntarchyObjects;
import com.craisinlord.antarchy.content.fluid.AntarchyFluidChecks;
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 com.craisinlord.antarchy.fabric.util.CustomFluidPhysicsChecks;
import net.minecraft.core.BlockPos;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.MoverType;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.level.material.FluidState;
import net.minecraft.world.phys.AABB;
import net.minecraft.world.phys.Vec3;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
@@ -23,7 +19,7 @@ public abstract class AntiwaterLivingEntityMixin {
@Inject(method = "travel", at = @At("HEAD"), cancellable = true)
private void antarchy$moveInAntiwater(Vec3 travelVector, CallbackInfo ci) {
LivingEntity entity = (LivingEntity) (Object) this;
if (!antarchy$isTouchingAntiwaterLocal(entity)) {
if (!CustomFluidPhysicsChecks.isTouchingAntiwater(entity)) {
return;
}
@@ -42,9 +38,9 @@ public abstract class AntiwaterLivingEntityMixin {
motion = new Vec3(motion.x, 0.2D, motion.z);
}
AntarchyGravityDirection gravityDirection = antarchy$getEffectiveGravityDirection(entity);
GravityDirection gravityDirection = antarchy$getEffectiveGravityDirection(entity);
Vec3 worldMotion = gravityDirection.isInverted()
? AntarchyGravityRotationUtil.vecPlayerToWorld(motion, gravityDirection)
? GravityRotationUtil.vecPlayerToWorld(motion, gravityDirection)
: motion;
double drag = entity.isSwimming() ? 0.9D : 0.8D;
@@ -60,7 +56,7 @@ public abstract class AntiwaterLivingEntityMixin {
entity.setDeltaMovement(
gravityDirection.isInverted()
? AntarchyGravityRotationUtil.vecWorldToPlayer(worldMotion, gravityDirection)
? GravityRotationUtil.vecWorldToPlayer(worldMotion, gravityDirection)
: worldMotion
);
@@ -72,7 +68,7 @@ public abstract class AntiwaterLivingEntityMixin {
Vec3 boostedWorldMotion = new Vec3(worldMotion.x, 0.3D, worldMotion.z);
entity.setDeltaMovement(
gravityDirection.isInverted()
? AntarchyGravityRotationUtil.vecWorldToPlayer(boostedWorldMotion, gravityDirection)
? GravityRotationUtil.vecWorldToPlayer(boostedWorldMotion, gravityDirection)
: boostedWorldMotion
);
}
@@ -80,31 +76,12 @@ public abstract class AntiwaterLivingEntityMixin {
ci.cancel();
}
private AntarchyGravityDirection antarchy$getEffectiveGravityDirection(LivingEntity entity) {
AntarchyGravityDirection gravityDirection = AntarchyGravityApi.getGravityDirection(entity);
private GravityDirection antarchy$getEffectiveGravityDirection(LivingEntity entity) {
GravityDirection gravityDirection = GravityApi.getGravityDirection(entity);
if (gravityDirection.isInverted() || !entity.hasEffect(AntarchyObjects.INVERTED_EFFECT.get())) {
return gravityDirection;
}
return AntarchyGravityDirection.UP;
}
private boolean antarchy$isTouchingAntiwaterLocal(LivingEntity entity) {
AABB box = entity.getBoundingBox().inflate(0.05D);
BlockPos min = BlockPos.containing(box.minX, box.minY, box.minZ);
BlockPos max = BlockPos.containing(box.maxX, box.maxY, box.maxZ);
BlockPos.MutableBlockPos cursor = new BlockPos.MutableBlockPos();
for (int x = min.getX(); x <= max.getX(); x++) {
for (int y = min.getY(); y <= max.getY(); y++) {
for (int z = min.getZ(); z <= max.getZ(); z++) {
cursor.set(x, y, z);
FluidState fluidState = entity.level().getFluidState(cursor);
if (AntarchyFluidChecks.isAntiwater(fluidState)) {
return true;
}
}
}
}
return false;
return GravityDirection.UP;
}
}
@@ -1,113 +0,0 @@
package com.craisinlord.antarchy.fabric.mixin;
import com.craisinlord.antarchy.config.AntarchySettings;
import com.craisinlord.antarchy.content.AntarchyTags;
import com.craisinlord.antarchy.content.movement.DreamSandLowGravityAccess;
import com.craisinlord.antarchy.fabric.registry.AntarchyFabricBlocks;
import net.minecraft.world.damagesource.DamageSource;
import net.minecraft.world.entity.LivingEntity;
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 org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
@Mixin(LivingEntity.class)
public abstract class DreamSandMovementMixin {
@Inject(method = "jumpFromGround", at = @At("TAIL"))
private void antarchy$handleDreamSandJump(CallbackInfo ci) {
LivingEntity self = (LivingEntity) (Object) this;
if (self.level().isClientSide()) return;
DreamSandLowGravityAccess access = (DreamSandLowGravityAccess) self;
if (!AntarchySettings.dreamSandEnabled() || antarchy$isDreamSandLowGravityBlacklisted(self)) {
access.antarchy$clearDreamSandLowGravity();
} else if (antarchy$isStandingOnDreamSand(self)) {
antarchy$startDreamSandLowGravity(self, access);
}
}
@Inject(method = "tick", at = @At("TAIL"))
private void antarchy$tickDreamSandLowGravity(CallbackInfo ci) {
LivingEntity self = (LivingEntity) (Object) this;
if (self.level().isClientSide()) return;
DreamSandLowGravityAccess access = (DreamSandLowGravityAccess) self;
int landingGraceTicks = access.antarchy$getDreamSandLandingGraceTicks();
if (landingGraceTicks > 0) {
access.antarchy$setDreamSandLandingGraceTicks(landingGraceTicks - 1);
}
if (!AntarchySettings.dreamSandEnabled() || antarchy$isDreamSandLowGravityBlacklisted(self)) {
return;
}
if (!access.antarchy$isDreamSandLowGravityActive()
&& !self.onGround()
&& antarchy$isStandingOnDreamSand(self)) {
antarchy$startDreamSandLowGravity(self, access);
}
if (!access.antarchy$isDreamSandLowGravityActive()) {
return;
}
int remainingTicks = access.antarchy$getDreamSandLowGravityTicksRemaining();
if (remainingTicks > 0) {
access.antarchy$setDreamSandLowGravityTicksRemaining(remainingTicks - 1);
}
if (access.antarchy$getDreamSandLowGravityTicksRemaining() <= 0) {
access.antarchy$clearDreamSandLowGravity();
return;
}
if (antarchy$isOnSolidGround(self)) {
access.antarchy$setDreamSandLowGravityActive(false);
access.antarchy$setDreamSandLowGravityTicksRemaining(0);
access.antarchy$setDreamSandLandingGraceTicks(2);
} else if (!self.onGround() && self.getDeltaMovement().y < 0.0D) {
self.setDeltaMovement(
self.getDeltaMovement().x,
self.getDeltaMovement().y * AntarchySettings.dreamSandGravityMultiplier(),
self.getDeltaMovement().z
);
}
}
@Inject(method = "causeFallDamage", at = @At("HEAD"), cancellable = true)
private void antarchy$handleDreamSandFall(float fallDistance, float multiplier, DamageSource source, CallbackInfoReturnable<Boolean> cir) {
LivingEntity self = (LivingEntity) (Object) this;
DreamSandLowGravityAccess access = (DreamSandLowGravityAccess) self;
if (!AntarchySettings.dreamSandEnabled()
|| antarchy$isDreamSandLowGravityBlacklisted(self)
|| (!access.antarchy$isDreamSandLowGravityActive() && access.antarchy$getDreamSandLandingGraceTicks() <= 0)) {
return;
}
self.resetFallDistance();
cir.setReturnValue(false);
}
private static boolean antarchy$isOnSolidGround(LivingEntity livingEntity) {
return livingEntity.onGround() && livingEntity.getBlockStateOn().blocksMotion();
}
private static boolean antarchy$isStandingOnDreamSand(LivingEntity livingEntity) {
return livingEntity.getBlockStateOn().is(AntarchyFabricBlocks.DREAM_SAND.get());
}
private static void antarchy$startDreamSandLowGravity(LivingEntity self, DreamSandLowGravityAccess access) {
self.setDeltaMovement(
self.getDeltaMovement().x,
self.getDeltaMovement().y * AntarchySettings.dreamSandJumpVelocityMultiplier(),
self.getDeltaMovement().z
);
access.antarchy$setDreamSandLowGravityActive(true);
access.antarchy$setDreamSandLowGravityTicksRemaining((int) Math.max(1L, Math.round(AntarchySettings.dreamSandEffectDurationSeconds() * 20.0D)));
access.antarchy$setDreamSandLandingGraceTicks(0);
}
private static boolean antarchy$isDreamSandLowGravityBlacklisted(LivingEntity livingEntity) {
return livingEntity.getType().is(AntarchyTags.Entities.DREAM_SAND_LOW_GRAVITY_BLACKLIST);
}
}
@@ -11,9 +11,6 @@ import org.spongepowered.asm.mixin.injection.Redirect;
@Mixin(LivingEntity.class)
public abstract class ElytraFallFlyingMixin {
/**
* Redirect to allow any ElytraItem subclass to sustain fall flying.
*/
@Redirect(
method = "updateFallFlying",
at = @At(
@@ -0,0 +1,32 @@
package com.craisinlord.antarchy.fabric.mixin;
import com.craisinlord.antarchy.compat.entity.EntityReach;
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.server.network.ServerGamePacketListenerImpl;
import net.minecraft.world.entity.ai.attributes.AttributeInstance;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
@Mixin(ServerGamePacketListenerImpl.class)
public abstract class EntityReachInteractMixin {
@Shadow
public ServerPlayer player;
@ModifyExpressionValue(
method = "handleInteract",
at = @At(
value = "FIELD",
target = "Lnet/minecraft/server/network/ServerGamePacketListenerImpl;MAX_INTERACTION_DISTANCE:D"
)
)
private double antarchy$entityInteractionDistance(double original) {
AttributeInstance reach = EntityReach.instance(this.player);
if (reach == null || reach.getModifiers().isEmpty()) {
return original;
}
double range = EntityReach.entityInteractionRange(this.player) + 1.0D;
return range * range;
}
}
@@ -1,11 +1,10 @@
package com.craisinlord.antarchy.fabric.mixin;
import com.craisinlord.antarchy.content.gravity.AntarchyGravityApi;
import com.craisinlord.antarchy.content.item.BloodCrystalArmorItem;
import com.craisinlord.antarchy.content.item.JumpyBootsItem;
import com.craisinlord.antarchy.fabric.util.JumpyBootsFabricHelper;
import com.craisinlord.anthology.gravity.GravityApi;
import com.craisinlord.antarchy.content.enchantment.AntarchyEnchantments;
import com.craisinlord.antarchy.content.item.SpringyBootsItem;
import com.craisinlord.antarchy.fabric.util.SpringyBootsFabricHelper;
import net.minecraft.world.damagesource.DamageSource;
import net.minecraft.world.entity.EquipmentSlot;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.player.Player;
import org.spongepowered.asm.mixin.Mixin;
@@ -15,17 +14,17 @@ import org.spongepowered.asm.mixin.injection.ModifyVariable;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
@Mixin(LivingEntity.class)
public abstract class JumpyBootsFallDamageMixin {
public abstract class SpringyBootsFallDamageMixin {
@Inject(method = "causeFallDamage", at = @At("HEAD"), cancellable = true)
private void antarchy$cancelBloodCrystalBootsInvertedFallDamage(float fallDistance, float multiplier, DamageSource source, CallbackInfoReturnable<Boolean> cir) {
LivingEntity self = (LivingEntity) (Object) this;
if (!(self instanceof Player player)) {
return;
}
if (!AntarchyGravityApi.isGravityInverted(player)) {
if (!GravityApi.isGravityInverted(player)) {
return;
}
if (!(player.getItemBySlot(EquipmentSlot.FEET).getItem() instanceof BloodCrystalArmorItem)) {
if (AntarchyEnchantments.featherRisingLevel(player) <= 0) {
return;
}
@@ -34,10 +33,10 @@ public abstract class JumpyBootsFallDamageMixin {
}
@ModifyVariable(method = "causeFallDamage", at = @At("HEAD"), ordinal = 0, argsOnly = true)
private float antarchy$reduceJumpyBootsFallDamage(float fallDistance) {
private float antarchy$reduceSpringyBootsFallDamage(float fallDistance) {
LivingEntity self = (LivingEntity) (Object) this;
if (!JumpyBootsItem.isWearingJumpyBoots(self)) return fallDistance;
long protectionUntil = JumpyBootsFabricHelper.getProtectionUntil(self);
if (!SpringyBootsItem.isWearingSpringyBoots(self)) return fallDistance;
long protectionUntil = SpringyBootsFabricHelper.getProtectionUntil(self);
if (self.level().getGameTime() < protectionUntil) {
return fallDistance * 0.25F;
}
@@ -0,0 +1,72 @@
package com.craisinlord.antarchy.fabric.mixin;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.fabric.registry.AntarchyFabricMisc;
import net.minecraft.core.BlockPos;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.BucketItem;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.LevelAccessor;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.material.Fluid;
import net.minecraft.world.level.material.Fluids;
import net.minecraft.world.phys.BlockHitResult;
import org.jetbrains.annotations.Nullable;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
@Mixin(BucketItem.class)
public abstract class ThoraxisWaterBucketMixin {
private static final ResourceLocation THORAXIS_DIMENSION_ID =
new ResourceLocation(Antarchy.MODID, "thoraxis");
@Shadow
@Final
public Fluid content;
@Shadow
protected abstract void playEmptySound(@Nullable Player player, LevelAccessor level, BlockPos pos);
@Inject(method = "emptyContents", at = @At("HEAD"), cancellable = true)
private void antarchy$replaceWaterWithAntiwaterInThoraxis(
@Nullable Player player,
Level level,
BlockPos pos,
@Nullable BlockHitResult hitResult,
CallbackInfoReturnable<Boolean> cir
) {
if (this.content != Fluids.WATER || !level.dimension().location().equals(THORAXIS_DIMENSION_ID)) {
return;
}
BlockState state = level.getBlockState(pos);
boolean canReplace = state.canBeReplaced(this.content);
if (!state.isAir() && !canReplace && !state.getFluidState().isSource()) {
cir.setReturnValue(false);
return;
}
if (!level.isClientSide && canReplace && !state.liquid()) {
level.destroyBlock(pos, true);
}
boolean placed = level.setBlock(
pos,
AntarchyFabricMisc.ANTIWATER.get().defaultFluidState().createLegacyBlock(),
11
);
if (placed || state.getFluidState().isSource()) {
this.playEmptySound(player, level, pos);
cir.setReturnValue(true);
return;
}
cir.setReturnValue(false);
}
}
@@ -0,0 +1,22 @@
package com.craisinlord.antarchy.fabric.mixin.client;
import com.craisinlord.antarchy.content.item.BrutalflyElytraItem;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.Gui;
import net.minecraft.client.gui.GuiGraphics;
import net.minecraft.client.player.LocalPlayer;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(Gui.class)
public abstract class BrutalflyElytraExperienceBarMixin {
@Inject(method = "renderExperienceBar", at = @At("HEAD"), cancellable = true)
private void antarchy$hideExperienceBarForBrutalfly(GuiGraphics guiGraphics, int x, CallbackInfo ci) {
LocalPlayer player = Minecraft.getInstance().player;
if (player != null && BrutalflyElytraItem.isWearingBrutalflyElytra(player) && player.isFallFlying()) {
ci.cancel();
}
}
}
@@ -1,50 +0,0 @@
package com.craisinlord.antarchy.fabric.mixin.client;
import com.craisinlord.antarchy.content.client.CameraShakeClientState;
import com.craisinlord.antarchy.content.client.HerculesBeetleImpactShakeClientState;
import com.craisinlord.antarchy.content.item.BigBerthaItem;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.math.Axis;
import net.minecraft.client.Minecraft;
import net.minecraft.util.Mth;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import net.minecraft.client.renderer.GameRenderer;
@Mixin(GameRenderer.class)
public abstract class CameraShakeMixin {
private static final int TORETERROR_SHAKE_TICKS = 25;
@Shadow @Final private Minecraft minecraft;
@Inject(method = "bobView", at = @At("TAIL"))
private void applyCameraShake(PoseStack poseStack, float partialTick, CallbackInfo ci) {
if (minecraft.level == null || minecraft.player == null) {
CameraShakeClientState.clear();
return;
}
float shakeStrength = CameraShakeClientState.getStrength(minecraft.gameRenderer.getMainCamera().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) (minecraft.player.tickCount + partialTick);
poseStack.mulPose(Axis.YP.rotationDegrees(Mth.sin(time * 1.5F) * shakeStrength * 2.5F));
poseStack.mulPose(Axis.XP.rotationDegrees(Mth.cos(time * 1.8F) * shakeStrength * 2.0F));
poseStack.mulPose(Axis.ZP.rotationDegrees(Mth.sin(time * 2.2F) * shakeStrength * 1.5F));
}
}
@@ -1,6 +1,7 @@
package com.craisinlord.antarchy.fabric.mixin.client;
import com.craisinlord.antarchy.content.item.GravityGunItem;
import com.craisinlord.antarchy.content.item.PortalGunItem;
import com.craisinlord.antarchy.content.item.RpoLauncherItem;
import com.craisinlord.antarchy.content.item.SizeRayItem;
import com.craisinlord.antarchy.content.item.SquidzookaItem;
@@ -26,7 +27,7 @@ public class CrossbowArmPoseMixin {
ItemStack stack = player.getItemInHand(hand);
Item item = stack.getItem();
if (item instanceof GravityGunItem || item instanceof SquidzookaItem || item instanceof RpoLauncherItem || item instanceof WaterCannonItem) {
if (item instanceof GravityGunItem || item instanceof PortalGunItem || item instanceof SquidzookaItem || item instanceof RpoLauncherItem || item instanceof WaterCannonItem) {
cir.setReturnValue(HumanoidModel.ArmPose.CROSSBOW_HOLD);
} else if (item instanceof SizeRayItem) {
if (player.isUsingItem() && player.getUsedItemHand() == hand) {
@@ -1,30 +0,0 @@
package com.craisinlord.antarchy.fabric.mixin.client;
import com.craisinlord.antarchy.content.block.DuctTapeBlock;
import net.minecraft.client.Minecraft;
import net.minecraft.client.player.Input;
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(Input.class)
public abstract class DuctTapeInputMixin {
@Inject(method = "tick", at = @At("RETURN"))
private void blockInputInDuctTape(boolean isSneaking, float slowFactor, CallbackInfo ci) {
Minecraft mc = Minecraft.getInstance();
if (mc.player == null || mc.level == null) return;
if (!mc.player.isNoGravity() && !DuctTapeBlock.isTouchingTape(mc.level, mc.player)) return;
Input self = (Input) (Object) this;
self.left = false;
self.right = false;
self.up = false;
self.down = false;
self.leftImpulse = 0.0F;
self.forwardImpulse = 0.0F;
self.jumping = false;
self.shiftKeyDown = false;
}
}
@@ -0,0 +1,118 @@
package com.craisinlord.antarchy.fabric.mixin.client;
import com.craisinlord.antarchy.compat.entity.EntityReach;
import com.craisinlord.antarchy.config.AntarchySettings;
import net.minecraft.client.Minecraft;
import net.minecraft.client.player.LocalPlayer;
import net.minecraft.client.renderer.GameRenderer;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Direction;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.ai.attributes.AttributeInstance;
import net.minecraft.world.entity.projectile.ProjectileUtil;
import net.minecraft.world.phys.AABB;
import net.minecraft.world.phys.BlockHitResult;
import net.minecraft.world.phys.EntityHitResult;
import net.minecraft.world.phys.HitResult;
import net.minecraft.world.phys.Vec3;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.Unique;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(GameRenderer.class)
public abstract class EntityReachPickMixin {
@Shadow
@Final
Minecraft minecraft;
@Inject(method = "pick(F)V", at = @At("HEAD"), cancellable = true)
private void antarchy$pickWithEntityReach(float partialTick, CallbackInfo ci) {
Entity camera = this.minecraft.getCameraEntity();
LocalPlayer player = this.minecraft.player;
if (camera == null || player == null || this.minecraft.level == null || this.minecraft.gameMode == null) {
return;
}
AttributeInstance reach = EntityReach.instance(player);
if (reach == null || reach.getModifiers().isEmpty()) {
return;
}
this.minecraft.getProfiler().push("pick");
double blockRange = EntityReach.blockInteractionRange(player);
double entityRange = EntityReach.entityInteractionRange(player);
HitResult hitResult = antarchy$pick(camera, blockRange, entityRange, partialTick);
this.minecraft.hitResult = hitResult;
this.minecraft.crosshairPickEntity = hitResult instanceof EntityHitResult entityHitResult ? entityHitResult.getEntity() : null;
this.minecraft.getProfiler().pop();
ci.cancel();
}
@Unique
private HitResult antarchy$pick(Entity camera, double blockRange, double entityRange, float partialTick) {
double maxRange = Math.max(blockRange, entityRange);
double maxRangeSq = maxRange * maxRange;
Vec3 eyePosition = camera.getEyePosition(partialTick);
HitResult blockHit = camera.pick(maxRange, partialTick, false);
double blockHitDistanceSq = blockHit.getLocation().distanceToSqr(eyePosition);
Double swingThroughReachSq = antarchy$swingThroughReachSq(blockHit, maxRangeSq);
if (blockHit.getType() != HitResult.Type.MISS) {
maxRangeSq = blockHitDistanceSq;
maxRange = Math.sqrt(maxRangeSq);
}
Vec3 viewVector = camera.getViewVector(1.0F);
Vec3 reachEnd = eyePosition.add(viewVector.x * maxRange, viewVector.y * maxRange, viewVector.z * maxRange);
AABB searchBox = camera.getBoundingBox().expandTowards(viewVector.scale(maxRange)).inflate(1.0D, 1.0D, 1.0D);
double entitySearchSq = swingThroughReachSq != null ? swingThroughReachSq : maxRangeSq;
EntityHitResult entityHit = ProjectileUtil.getEntityHitResult(camera, eyePosition, reachEnd, searchBox,
entity -> !entity.isSpectator() && entity.isPickable(), entitySearchSq);
if (entityHit != null && swingThroughReachSq != null && antarchy$canSwingThrough(entityHit.getEntity())
&& eyePosition.distanceToSqr(entityHit.getEntity().position()) < swingThroughReachSq) {
return antarchy$filterHitResult(entityHit, eyePosition, entityRange);
}
if (entityHit != null && entityHit.getLocation().distanceToSqr(eyePosition) < blockHitDistanceSq) {
return antarchy$filterHitResult(entityHit, eyePosition, entityRange);
}
return antarchy$filterHitResult(blockHit, eyePosition, blockRange);
}
@Unique
private Double antarchy$swingThroughReachSq(HitResult hitResult, double maxRangeSq) {
if (!AntarchySettings.swingThroughGrassEnabled()) {
return null;
}
if (!(hitResult instanceof BlockHitResult blockHitResult) || hitResult.getType() != HitResult.Type.BLOCK || this.minecraft.level == null) {
return null;
}
BlockPos blockPos = blockHitResult.getBlockPos();
if (this.minecraft.level.getBlockState(blockPos).getCollisionShape(this.minecraft.level, blockPos).isEmpty()) {
return maxRangeSq;
}
return null;
}
@Unique
private boolean antarchy$canSwingThrough(Entity hitEntity) {
return hitEntity instanceof LivingEntity
&& !hitEntity.isSpectator()
&& hitEntity.isAttackable()
&& this.minecraft.player != null
&& hitEntity != this.minecraft.player.getVehicle();
}
@Unique
private static HitResult antarchy$filterHitResult(HitResult hitResult, Vec3 eyePosition, double range) {
Vec3 location = hitResult.getLocation();
if (!location.closerThan(eyePosition, range)) {
Direction direction = Direction.getNearest(location.x - eyePosition.x, location.y - eyePosition.y, location.z - eyePosition.z);
return BlockHitResult.miss(location, direction, BlockPos.containing(location));
}
return hitResult;
}
}
@@ -19,6 +19,7 @@ public abstract class KeybindingConflictFixMixin {
@Shadow @Final private static Map<String, KeyMapping> ALL;
@Shadow private InputConstants.Key key;
@Shadow private boolean isDown;
@Shadow private int clickCount;
@Inject(method = "<init>(Ljava/lang/String;Lcom/mojang/blaze3d/platform/InputConstants$Type;ILjava/lang/String;)V", at = @At("TAIL"))
private void antarchy$addInitialMapping(String name, InputConstants.Type type, int key, String category, CallbackInfo ci) {
@@ -44,8 +45,31 @@ public abstract class KeybindingConflictFixMixin {
}
}
@Inject(method = "click", at = @At("TAIL"))
private static void antarchy$clickConflicts(InputConstants.Key key, CallbackInfo ci) {
if (!AntarchySettings.fabricKeybindingConflictFixEnabled()) {
return;
}
KeyMapping active = MAP.get(key);
for (KeyMapping mapping : KeybindingConflictFixStore.others(key, active)) {
if (((KeybindingConflictFixMixin) (Object) mapping).antarchy$isSprint()) {
((KeybindingConflictFixMixin) (Object) mapping).antarchy$click();
}
}
}
@Unique
private void antarchy$setDown(boolean down) {
this.isDown = down;
}
@Unique
private boolean antarchy$isSprint() {
return KeybindingConflictFixStore.isSprint((KeyMapping) (Object) this);
}
@Unique
private void antarchy$click() {
this.clickCount++;
}
}
@@ -1,20 +0,0 @@
package com.craisinlord.antarchy.fabric.mixin.client;
import com.craisinlord.antarchy.fabric.registry.AntarchyFabricEntities;
import com.craisinlord.antarchy.fabric.AntarchyFabricContent;
import net.minecraft.client.multiplayer.ClientPacketListener;
import net.minecraft.network.protocol.game.ClientboundAddEntityPacket;
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(ClientPacketListener.class)
public abstract class MultipartClientSpawnMixin {
@Inject(method = "handleAddEntity", at = @At("HEAD"), cancellable = true)
private void antarchy$skipTrackedMultipartPlaceholders(ClientboundAddEntityPacket packet, CallbackInfo ci) {
if (packet.getType() == AntarchyFabricEntities.KRAKEN_PART.get()) {
ci.cancel();
}
}
}
@@ -1,34 +0,0 @@
package com.craisinlord.antarchy.fabric.mixin.client;
import com.craisinlord.antarchy.content.entity.multipart.MultipartEntityOwner;
import com.craisinlord.antarchy.fabric.client.multipart.MultipartClientPartLevelRegistry;
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)
public abstract class MultipartEntityLevelRegistryMixin {
@Inject(method = "setLevelCallback", at = @At("TAIL"))
private void antarchy$registerMultipartParts(EntityInLevelCallback entityInLevelCallback, CallbackInfo ci) {
Entity self = (Entity) (Object) this;
if (self instanceof MultipartEntityOwner owner
&& entityInLevelCallback != EntityInLevelCallback.NULL
&& self.level().isClientSide()) {
if (owner.antarchy$getMultipartParts() == null) {
owner.antarchy$spawnMultipartParts();
}
MultipartClientPartLevelRegistry.register(owner);
}
}
@Inject(method = "setRemoved", at = @At("HEAD"))
private void antarchy$unregisterMultipartParts(Entity.RemovalReason removalReason, CallbackInfo ci) {
Entity self = (Entity) (Object) this;
if (self instanceof MultipartEntityOwner owner && self.level().isClientSide()) {
MultipartClientPartLevelRegistry.unregister(owner);
}
}
}
@@ -0,0 +1,28 @@
package com.craisinlord.antarchy.fabric.mixin.client;
import com.craisinlord.antarchy.fabric.client.SeparateLargeItemModels;
import com.llamalad7.mixinextras.sugar.Local;
import net.fabricmc.fabric.api.client.model.loading.v1.FabricBakedModelManager;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiGraphics;
import net.minecraft.client.resources.model.BakedModel;
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.ModifyVariable;
@Mixin(GuiGraphics.class)
public abstract class SeparateLargeItemGuiLightingMixin {
@ModifyVariable(
method = "renderItem(Lnet/minecraft/world/entity/LivingEntity;Lnet/minecraft/world/level/Level;Lnet/minecraft/world/item/ItemStack;IIII)V",
at = @At("STORE"),
ordinal = 0
)
private BakedModel antarchy$useGuiModelForLighting(BakedModel original, @Local(argsOnly = true) ItemStack stack) {
var guiModel = SeparateLargeItemModels.modelFor(stack);
if (guiModel != null) {
return ((FabricBakedModelManager) Minecraft.getInstance().getModelManager()).getModel(guiModel);
}
return original;
}
}
@@ -0,0 +1,33 @@
package com.craisinlord.antarchy.fabric.mixin.client;
import com.craisinlord.antarchy.fabric.client.SeparateLargeItemModels;
import com.llamalad7.mixinextras.sugar.Local;
import net.fabricmc.fabric.api.client.model.loading.v1.FabricBakedModelManager;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.entity.ItemRenderer;
import net.minecraft.client.resources.model.BakedModel;
import net.minecraft.world.item.ItemDisplayContext;
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.ModifyVariable;
@Mixin(ItemRenderer.class)
public abstract class SeparateLargeItemModelsMixin {
@ModifyVariable(method = "render", at = @At("HEAD"), argsOnly = true, ordinal = 0)
private BakedModel antarchy$selectGuiModel(BakedModel original,
@Local(argsOnly = true) ItemStack stack,
@Local(argsOnly = true) ItemDisplayContext displayContext) {
var guiModel = SeparateLargeItemModels.modelFor(stack);
if (guiModel != null && isGuiContext(displayContext)) {
return ((FabricBakedModelManager) Minecraft.getInstance().getModelManager()).getModel(guiModel);
}
return original;
}
private static boolean isGuiContext(ItemDisplayContext displayContext) {
return displayContext == ItemDisplayContext.GUI
|| displayContext == ItemDisplayContext.GROUND
|| displayContext == ItemDisplayContext.FIXED;
}
}
@@ -1,37 +0,0 @@
package com.craisinlord.antarchy.fabric.mixin.entity;
import com.craisinlord.antarchy.content.entity.multipart.MultipartEntityOwner;
import com.craisinlord.antarchy.fabric.entity.multipart.MultipartServerPartLevelRegistry;
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 Fabric levels.
*/
public abstract class MultipartEntityLevelRegistryMixin {
@Inject(method = "setLevelCallback", at = @At("TAIL"))
private void antarchy$registerMultipartParts(EntityInLevelCallback entityInLevelCallback, CallbackInfo ci) {
Entity self = (Entity) (Object) this;
if (self instanceof MultipartEntityOwner owner
&& entityInLevelCallback != EntityInLevelCallback.NULL
&& !self.level().isClientSide()) {
if (owner.antarchy$getMultipartParts() == null) {
owner.antarchy$spawnMultipartParts();
}
MultipartServerPartLevelRegistry.register(owner);
}
}
@Inject(method = "setRemoved", at = @At("HEAD"))
private void antarchy$unregisterMultipartParts(Entity.RemovalReason removalReason, CallbackInfo ci) {
Entity self = (Entity) (Object) this;
if (self instanceof MultipartEntityOwner owner && !self.level().isClientSide()) {
MultipartServerPartLevelRegistry.unregister(owner);
}
}
}
@@ -0,0 +1,22 @@
package com.craisinlord.antarchy.fabric.mixin.entity;
import com.craisinlord.antarchy.fabric.registry.AntarchyFabricMisc;
import net.minecraft.world.entity.Mob;
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(Mob.class)
public abstract class ParalyzedMobFreezeMixin {
@Inject(method = "serverAiStep", at = @At("HEAD"))
private void antarchy$freezeAiWhileParalyzed(CallbackInfo ci) {
Mob mob = (Mob) (Object) this;
if (!mob.hasEffect(AntarchyFabricMisc.mobEffectHolder(AntarchyFabricMisc.PARALYZED))) {
return;
}
mob.getNavigation().stop();
mob.setJumping(false);
}
}
@@ -12,12 +12,6 @@ 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) {
@@ -0,0 +1,34 @@
package com.craisinlord.antarchy.fabric.mixin.infinity;
import com.craisinlord.antarchy.fabric.InfinityGenerationFailure;
import net.lerariemann.infinity.access.MinecraftServerAccess;
import net.lerariemann.infinity.util.teleport.PortalCreator;
import net.lerariemann.infinity.util.teleport.WarpLogic;
import net.minecraft.core.registries.Registries;
import net.minecraft.resources.ResourceKey;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.MinecraftServer;
import net.minecraft.world.level.Level;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Redirect;
@Mixin(WarpLogic.class)
public interface WarpLogicMixin {
@Redirect(
method = "requestWarp(Lnet/minecraft/server/level/ServerPlayer;Lnet/minecraft/resources/ResourceLocation;Z)V",
at = @At(value = "INVOKE", target = "Lnet/lerariemann/infinity/util/teleport/PortalCreator;tryAddInfinityDimension(Lnet/minecraft/server/MinecraftServer;Lnet/minecraft/resources/ResourceLocation;)Z")
)
private static boolean antarchy$queuedDimensionCountsAsNew(MinecraftServer server, ResourceLocation dimensionId) throws Throwable {
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;
}
}
}
@@ -2,94 +2,38 @@ package com.craisinlord.antarchy.fabric.network;
import com.craisinlord.antarchy.content.client.BloodglassClientState;
import com.craisinlord.antarchy.content.client.BrutalflyElytraClientState;
import com.craisinlord.antarchy.content.client.HerculesBeetleImpactShakeClientState;
import com.craisinlord.antarchy.content.client.HordeClientState;
import com.craisinlord.antarchy.content.client.ScorpionWhipTetherClientState;
import com.craisinlord.antarchy.content.client.WormHookTetherClientState;
import com.craisinlord.antarchy.content.client.TigerEyeCamouflageClientState;
import com.craisinlord.antarchy.content.client.ThoraxisWeatherClientState;
import com.craisinlord.antarchy.content.entity.multipart.MultipartFramework;
import com.craisinlord.antarchy.content.entity.multipart.network.MultipartAttackPayload;
import com.craisinlord.antarchy.content.entity.multipart.network.MultipartInteractPayload;
import com.craisinlord.antarchy.content.network.*;
import com.craisinlord.antarchy.content.weather.ThoraxisWeatherKind;
import com.craisinlord.antarchy.fabric.client.BloodCrystalKatanaTrailClientState;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
import net.fabricmc.fabric.api.networking.v1.PacketByteBufs;
import net.minecraft.client.Minecraft;
import net.minecraft.network.FriendlyByteBuf;
import com.craisinlord.anthology.network.AnthologyNetwork;
import com.craisinlord.anthology.network.CustomPacketPayload;
import net.minecraft.resources.ResourceLocation;
public final class AntarchyFabricClientNetworking {
private AntarchyFabricClientNetworking() {
}
public static void bootstrapMultipartClient() {
MultipartFramework.bootstrap(
AntarchyFabricNetworking::createMultipartPart,
new MultipartFramework.NetworkBridge() {
@Override
public void sendAttack(java.util.UUID parentId, int partIndex, float damage) {
sendToServer(new MultipartAttackPayload(parentId, partIndex, damage), MultipartAttackPayload.STREAM_CODEC, MultipartAttackPayload.TYPE);
}
@Override
public void sendInteract(java.util.UUID parentId, int partIndex, int handId) {
sendToServer(new MultipartInteractPayload(parentId, partIndex, handId), MultipartInteractPayload.STREAM_CODEC, MultipartInteractPayload.TYPE);
}
}
);
}
public static <T extends com.craisinlord.antarchy.compat.network.CustomPacketPayload> void sendToServer(
T payload,
com.craisinlord.antarchy.compat.network.StreamCodec<io.netty.buffer.ByteBuf, T> streamCodec,
com.craisinlord.antarchy.compat.network.CustomPacketPayload.Type<T> type
) {
FriendlyByteBuf buf = PacketByteBufs.create();
streamCodec.encode(buf, payload);
ClientPlayNetworking.send(type.id(), buf);
}
private static <T extends com.craisinlord.antarchy.compat.network.CustomPacketPayload> void registerReceiver(
com.craisinlord.antarchy.compat.network.CustomPacketPayload.Type<T> type,
com.craisinlord.antarchy.compat.network.StreamCodec<io.netty.buffer.ByteBuf, T> streamCodec,
java.util.function.Consumer<T> handler
) {
ClientPlayNetworking.registerGlobalReceiver(type.id(), (client, handlerConn, buf, sender) -> {
T payload = streamCodec.decode(buf);
client.execute(() -> handler.accept(payload));
});
public static void send(CustomPacketPayload payload) {
AnthologyNetwork.sendToServer(payload);
}
public static void register() {
registerReceiver(GravityStatePayload.TYPE, GravityStatePayload.STREAM_CODEC, payload ->
AntarchyFabricNetworking.handleGravityState(Minecraft.getInstance().player, payload));
registerReceiver(BloodglassStatePayload.TYPE, BloodglassStatePayload.STREAM_CODEC, payload ->
BloodglassClientState.update(payload.shieldsActive(), payload.shieldsMax()));
registerReceiver(BloodCrystalKatanaTrailPayload.TYPE, BloodCrystalKatanaTrailPayload.STREAM_CODEC, payload ->
BloodCrystalKatanaTrailClientState.trigger(payload.entityId(), payload.durationTicks()));
registerReceiver(ScorpionWhipTetherPayload.TYPE, ScorpionWhipTetherPayload.STREAM_CODEC, payload ->
ScorpionWhipTetherClientState.update(payload.playerId(), payload.targetId()));
registerReceiver(BrutalflyElytraAnimationPayload.TYPE, BrutalflyElytraAnimationPayload.STREAM_CODEC, payload ->
BrutalflyElytraClientState.trigger(payload.entityId(), payload.durationTicks(), payload.strength()));
registerReceiver(ThoraxisWeatherPayload.TYPE, ThoraxisWeatherPayload.STREAM_CODEC, payload ->
ThoraxisWeatherClientState.apply(
new ResourceLocation(payload.dimensionId()),
ThoraxisWeatherKind.byId(payload.weatherId()),
payload.expiresAt(),
payload.anchorX(),
payload.anchorY(),
payload.anchorZ()
));
registerReceiver(HerculesBeetleImpactShakePayload.TYPE, HerculesBeetleImpactShakePayload.STREAM_CODEC, payload ->
AntarchyFabricNetworking.triggerHerculesBeetleImpactShake(payload.durationTicks()));
registerReceiver(ImpactShakePayload.TYPE, ImpactShakePayload.STREAM_CODEC, AntarchyFabricNetworking::triggerImpactShake);
registerReceiver(HordeIntensityPayload.TYPE, HordeIntensityPayload.STREAM_CODEC, payload ->
HordeClientState.update(payload.intensity()));
registerReceiver(TigerEyeCamouflageStatePayload.TYPE, TigerEyeCamouflageStatePayload.STREAM_CODEC, payload ->
TigerEyeCamouflageClientState.update(payload.entityId(), payload.active(), payload.blockStateId()));
registerReceiver(TimeDilationRatePayload.TYPE, TimeDilationRatePayload.STREAM_CODEC, payload ->
AntarchyFabricTimeDilationNetworking.handleRate(Minecraft.getInstance().player, payload));
registerReceiver(TimeDilationFieldsPayload.TYPE, TimeDilationFieldsPayload.STREAM_CODEC, payload ->
com.craisinlord.antarchy.content.client.ClientTimeDilationTicker.applyFields(payload.fields()));
com.craisinlord.antarchy.content.client.PortalGunIndicatorClientState.setRequestSender(AntarchyFabricClientNetworking::send);
com.craisinlord.antarchy.content.client.MoonSkyTracker.setSender(AntarchyFabricClientNetworking::send);
com.craisinlord.antarchy.content.portalgun.PortalGunMoonAimSync.setClientReporter(com.craisinlord.antarchy.content.client.MoonSkyTracker::report);
AntarchyFabricNetworking.setClientHandler(PortalGunIndicatorPayload.TYPE, payload -> com.craisinlord.antarchy.content.client.PortalGunIndicatorClientState.update(payload));
AntarchyFabricNetworking.setClientHandler(BloodglassStatePayload.TYPE, payload -> BloodglassClientState.update(payload.shieldsActive(), payload.shieldsMax()));
AntarchyFabricNetworking.setClientHandler(TigerEyeCamouflageStatePayload.TYPE, payload -> TigerEyeCamouflageClientState.update(payload.entityId(), payload.active(), payload.blockStateId()));
AntarchyFabricNetworking.setClientHandler(BloodCrystalKatanaTrailPayload.TYPE, payload -> BloodCrystalKatanaTrailClientState.trigger(payload.entityId(), payload.durationTicks()));
AntarchyFabricNetworking.setClientHandler(ScorpionWhipTetherPayload.TYPE, payload -> ScorpionWhipTetherClientState.update(payload.playerId(), payload.targetId()));
AntarchyFabricNetworking.setClientHandler(WormHookTetherPayload.TYPE, payload -> WormHookTetherClientState.update(payload.playerId(), payload.hookId()));
AntarchyFabricNetworking.setClientHandler(BrutalflyElytraAnimationPayload.TYPE, payload -> BrutalflyElytraClientState.trigger(payload.entityId(), payload.durationTicks(), payload.strength()));
AntarchyFabricNetworking.setClientHandler(HerculesBeetleImpactShakePayload.TYPE, payload -> HerculesBeetleImpactShakeClientState.trigger(payload.durationTicks()));
AntarchyFabricNetworking.setClientHandler(KingJudgmentFlashPayload.TYPE, payload -> com.craisinlord.antarchy.content.client.KingJudgmentFlashClientState.trigger(payload.durationTicks()));
AntarchyFabricNetworking.setClientHandler(HordeIntensityPayload.TYPE, payload -> HordeClientState.update(payload.intensity()));
}
}
@@ -2,41 +2,40 @@ package com.craisinlord.antarchy.fabric.network;
import com.craisinlord.antarchy.fabric.registry.AntarchyFabricEntities;
import com.craisinlord.antarchy.content.entity.DiamondMinecartEntity;
import com.craisinlord.antarchy.content.client.CameraShakeClientState;
import com.craisinlord.antarchy.content.client.HerculesBeetleImpactShakeClientState;
import com.craisinlord.antarchy.content.entity.multipart.MultipartEntityOwner;
import com.craisinlord.antarchy.content.entity.multipart.MultipartFramework;
import com.craisinlord.antarchy.content.entity.multipart.network.MultipartAttackPayload;
import com.craisinlord.antarchy.content.entity.multipart.network.MultipartInteractPayload;
import com.craisinlord.antarchy.content.gravity.AntarchyGravityApi;
import com.craisinlord.antarchy.content.entity.HerculesBeetleEntity;
import com.craisinlord.antarchy.content.item.BrutalflyElytraFlightHelper;
import com.craisinlord.antarchy.content.item.BrutalflyElytraItem;
import com.craisinlord.antarchy.content.item.BigBerthaItem;
import com.craisinlord.antarchy.content.item.JumpyBootsHelper;
import com.craisinlord.antarchy.fabric.util.JumpyBootsFabricHelper;
import com.craisinlord.antarchy.content.item.JumpyBootsItem;
import com.craisinlord.antarchy.content.item.SpringyBootsHelper;
import com.craisinlord.antarchy.fabric.util.SpringyBootsFabricHelper;
import com.craisinlord.antarchy.content.item.SpringyBootsItem;
import com.craisinlord.antarchy.content.item.EyeOfTheStormItem;
import com.craisinlord.antarchy.content.item.GravityGunItem;
import com.craisinlord.antarchy.content.item.TemporalTunerItem;
import com.craisinlord.antarchy.content.item.PortalGunItem;
import com.craisinlord.antarchy.content.item.TigerEyeArmorUtil;
import com.craisinlord.antarchy.content.network.*;
import com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageController;
import com.craisinlord.antarchy.content.tigereye.TigerEyeCamouflageSync;
import com.craisinlord.antarchy.content.network.*;
import com.craisinlord.antarchy.content.entity.DorrieEntity;
import com.craisinlord.antarchy.content.network.DorrieJumpInputPayload;
import com.craisinlord.antarchy.content.network.JumpyBootsLaunchPayload;
import com.craisinlord.antarchy.content.weather.ThoraxisWeatherSnapshot;
import com.craisinlord.antarchy.content.network.SpringyBootsLaunchPayload;
import com.craisinlord.antarchy.fabric.AntarchyFabricContent;
import com.craisinlord.antarchy.fabric.entity.multipart.MultipartPartEntity;
import net.fabricmc.fabric.api.networking.v1.PacketByteBufs;
import net.fabricmc.fabric.api.networking.v1.PlayerLookup;
import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking;
import com.craisinlord.anthology.network.AnthologyNetwork;
import com.craisinlord.anthology.network.CustomPacketPayload;
import com.craisinlord.anthology.network.StreamCodec;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.resources.ResourceLocation;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
import net.fabricmc.fabric.api.networking.v1.PlayerLookup;
import net.minecraft.network.protocol.game.ClientboundSetEntityMotionPacket;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.sounds.SoundEvents;
import net.minecraft.sounds.SoundSource;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EquipmentSlot;
import net.minecraft.world.item.ItemStack;
@@ -47,178 +46,147 @@ public final class AntarchyFabricNetworking {
}
public static void register() {
registerPayloadTypes();
registerServerReceivers();
com.craisinlord.antarchy.content.portalgun.PortalGunIndicatorSync.setSender(AntarchyFabricNetworking::send);
}
public static <T extends com.craisinlord.antarchy.compat.network.CustomPacketPayload> void sendToPlayer(
ServerPlayer player,
T payload,
com.craisinlord.antarchy.compat.network.StreamCodec<io.netty.buffer.ByteBuf, T> streamCodec,
com.craisinlord.antarchy.compat.network.CustomPacketPayload.Type<T> type
) {
FriendlyByteBuf buf = PacketByteBufs.create();
streamCodec.encode(buf, payload);
ServerPlayNetworking.send(player, type.id(), buf);
}
private static final Map<ResourceLocation, Consumer<CustomPacketPayload>> CLIENT_HANDLERS = new ConcurrentHashMap<>();
private static <T extends com.craisinlord.antarchy.compat.network.CustomPacketPayload> void registerC2SReceiver(
com.craisinlord.antarchy.compat.network.CustomPacketPayload.Type<T> type,
com.craisinlord.antarchy.compat.network.StreamCodec<io.netty.buffer.ByteBuf, T> streamCodec,
java.util.function.BiConsumer<ServerPlayer, T> handler
) {
ServerPlayNetworking.registerGlobalReceiver(type.id(), (server, player, handlerConn, buf, sender) -> {
T payload = streamCodec.decode(buf);
server.execute(() -> handler.accept(player, payload));
private static <T extends CustomPacketPayload> void registerS2C(CustomPacketPayload.Type<T> type, StreamCodec<? super FriendlyByteBuf, T> codec) {
AnthologyNetwork.registerClientbound(type, codec, (payload, player) -> {
Consumer<CustomPacketPayload> handler = CLIENT_HANDLERS.get(type.id());
if (handler != null) {
handler.accept(payload);
}
});
}
public static void bootstrapMultipartCommon() {
MultipartFramework.bootstrap(
AntarchyFabricNetworking::createMultipartPart,
new MultipartFramework.NetworkBridge() {
@Override
public void sendAttack(java.util.UUID parentId, int partIndex, float damage) {
}
@Override
public void sendInteract(java.util.UUID parentId, int partIndex, int handId) {
}
}
);
private static <T extends CustomPacketPayload> void registerC2S(CustomPacketPayload.Type<T> type, StreamCodec<? super FriendlyByteBuf, T> codec) {
SERVER_CODECS.put(type.id(), codec);
}
public static MultipartPartEntity createMultipartPart(MultipartEntityOwner owner, int partIndex, com.craisinlord.antarchy.content.entity.multipart.MultipartPartDefinition spec) {
return new MultipartPartEntity(AntarchyFabricEntities.KRAKEN_PART.get(), ((Entity) owner).level())
.antarchy$configure(owner, partIndex, spec);
private static final Map<ResourceLocation, StreamCodec<? super FriendlyByteBuf, ?>> SERVER_CODECS = new ConcurrentHashMap<>();
@SuppressWarnings("unchecked")
private static <T extends CustomPacketPayload> void registerGlobalReceiver(CustomPacketPayload.Type<T> type, BiConsumer<T, ServerPlayer> handler) {
StreamCodec<? super FriendlyByteBuf, T> codec = (StreamCodec<? super FriendlyByteBuf, T>) SERVER_CODECS.get(type.id());
AnthologyNetwork.registerServerbound(type, codec, handler);
}
@SuppressWarnings("unchecked")
public static <T extends CustomPacketPayload> void setClientHandler(CustomPacketPayload.Type<T> type, Consumer<T> handler) {
CLIENT_HANDLERS.put(type.id(), payload -> handler.accept((T) payload));
}
public static void send(ServerPlayer player, CustomPacketPayload payload) {
AnthologyNetwork.sendToPlayer(player, payload);
}
private static void registerPayloadTypes() {
registerS2C(PortalGunIndicatorPayload.TYPE, PortalGunIndicatorPayload.STREAM_CODEC);
registerS2C(BloodglassStatePayload.TYPE, BloodglassStatePayload.STREAM_CODEC);
registerS2C(TigerEyeCamouflageStatePayload.TYPE, TigerEyeCamouflageStatePayload.STREAM_CODEC);
registerS2C(BloodCrystalKatanaTrailPayload.TYPE, BloodCrystalKatanaTrailPayload.STREAM_CODEC);
registerS2C(ScorpionWhipTetherPayload.TYPE, ScorpionWhipTetherPayload.STREAM_CODEC);
registerS2C(WormHookTetherPayload.TYPE, WormHookTetherPayload.STREAM_CODEC);
registerS2C(BrutalflyElytraAnimationPayload.TYPE, BrutalflyElytraAnimationPayload.STREAM_CODEC);
registerS2C(HerculesBeetleImpactShakePayload.TYPE, HerculesBeetleImpactShakePayload.STREAM_CODEC);
registerS2C(KingJudgmentFlashPayload.TYPE, KingJudgmentFlashPayload.STREAM_CODEC);
registerS2C(HordeIntensityPayload.TYPE, HordeIntensityPayload.STREAM_CODEC);
registerC2S(GravityGunPrimaryPayload.TYPE, GravityGunPrimaryPayload.STREAM_CODEC);
registerC2S(PortalGunPrimaryPayload.TYPE, PortalGunPrimaryPayload.STREAM_CODEC);
registerC2S(PortalGunIndicatorRequestPayload.TYPE, PortalGunIndicatorRequestPayload.STREAM_CODEC);
registerC2S(PortalGunResetPayload.TYPE, PortalGunResetPayload.STREAM_CODEC);
registerC2S(com.craisinlord.antarchy.content.network.PortalGunMoonAimPayload.TYPE, com.craisinlord.antarchy.content.network.PortalGunMoonAimPayload.STREAM_CODEC);
registerC2S(EyeOfStormPrimaryPayload.TYPE, EyeOfStormPrimaryPayload.STREAM_CODEC);
registerC2S(OpenGiantFryingPanPayload.TYPE, OpenGiantFryingPanPayload.STREAM_CODEC);
registerC2S(RoyalMountActionPayload.TYPE, RoyalMountActionPayload.STREAM_CODEC);
registerC2S(RoyalMountVerticalPayload.TYPE, RoyalMountVerticalPayload.STREAM_CODEC);
registerC2S(GravityGunScrollPayload.TYPE, GravityGunScrollPayload.STREAM_CODEC);
registerC2S(TemporalTunerScrollPayload.TYPE, TemporalTunerScrollPayload.STREAM_CODEC);
registerC2S(BigBerthaModeCyclePayload.TYPE, BigBerthaModeCyclePayload.STREAM_CODEC);
registerC2S(com.craisinlord.antarchy.content.network.RoyalGuardianSwordModeCyclePayload.TYPE,
com.craisinlord.antarchy.content.network.RoyalGuardianSwordModeCyclePayload.STREAM_CODEC);
registerC2S(ToggleTigerEyeCamouflagePayload.TYPE, ToggleTigerEyeCamouflagePayload.STREAM_CODEC);
registerC2S(ToggleRoyalInversionPayload.TYPE, ToggleRoyalInversionPayload.STREAM_CODEC);
registerC2S(com.craisinlord.antarchy.content.network.ActivateRoyalBoundaryPayload.TYPE, com.craisinlord.antarchy.content.network.ActivateRoyalBoundaryPayload.STREAM_CODEC);
registerC2S(DiamondMinecartInputPayload.TYPE, DiamondMinecartInputPayload.STREAM_CODEC);
registerC2S(BrutalflyElytraFlapPayload.TYPE, BrutalflyElytraFlapPayload.STREAM_CODEC);
registerC2S(SpringyBootsLaunchPayload.TYPE, SpringyBootsLaunchPayload.STREAM_CODEC);
registerC2S(DorrieJumpInputPayload.TYPE, DorrieJumpInputPayload.STREAM_CODEC);
registerC2S(com.craisinlord.antarchy.content.network.DorrieChargeJumpPayload.TYPE, com.craisinlord.antarchy.content.network.DorrieChargeJumpPayload.STREAM_CODEC);
registerC2S(HerculesBeetleJumpInputPayload.TYPE, HerculesBeetleJumpInputPayload.STREAM_CODEC);
registerC2S(HerculesBeetleFlightTogglePayload.TYPE, HerculesBeetleFlightTogglePayload.STREAM_CODEC);
registerC2S(HerculesBeetleMountedAttackPayload.TYPE, HerculesBeetleMountedAttackPayload.STREAM_CODEC);
registerC2S(HerculesBeetleMountedChargePayload.TYPE, HerculesBeetleMountedChargePayload.STREAM_CODEC);
}
private static void registerServerReceivers() {
registerC2SReceiver(GravityGunPrimaryPayload.TYPE, GravityGunPrimaryPayload.STREAM_CODEC, AntarchyFabricNetworking::handleGravityGunPrimary);
registerC2SReceiver(GravityGunScrollPayload.TYPE, GravityGunScrollPayload.STREAM_CODEC, AntarchyFabricNetworking::handleGravityGunScroll);
registerC2SReceiver(BigBerthaModeCyclePayload.TYPE, BigBerthaModeCyclePayload.STREAM_CODEC, AntarchyFabricNetworking::handleBigBerthaModeCycle);
registerC2SReceiver(DiamondMinecartInputPayload.TYPE, DiamondMinecartInputPayload.STREAM_CODEC, AntarchyFabricNetworking::handleDiamondMinecartInput);
registerC2SReceiver(BrutalflyElytraFlapPayload.TYPE, BrutalflyElytraFlapPayload.STREAM_CODEC, AntarchyFabricNetworking::handleBrutalflyFlap);
registerC2SReceiver(JumpyBootsLaunchPayload.TYPE, JumpyBootsLaunchPayload.STREAM_CODEC, AntarchyFabricNetworking::handleJumpyBootsLaunch);
registerC2SReceiver(DorrieJumpInputPayload.TYPE, DorrieJumpInputPayload.STREAM_CODEC, AntarchyFabricNetworking::handleDorrieJumpInput);
registerC2SReceiver(com.craisinlord.antarchy.content.network.DorrieChargeJumpPayload.TYPE, com.craisinlord.antarchy.content.network.DorrieChargeJumpPayload.STREAM_CODEC, AntarchyFabricNetworking::handleDorrieChargeJumpInput);
registerC2SReceiver(HerculesBeetleJumpInputPayload.TYPE, HerculesBeetleJumpInputPayload.STREAM_CODEC, AntarchyFabricNetworking::handleHerculesBeetleJumpInput);
registerC2SReceiver(HerculesBeetleFlightTogglePayload.TYPE, HerculesBeetleFlightTogglePayload.STREAM_CODEC, AntarchyFabricNetworking::handleHerculesBeetleFlightToggle);
registerC2SReceiver(HerculesBeetleMountedAttackPayload.TYPE, HerculesBeetleMountedAttackPayload.STREAM_CODEC, AntarchyFabricNetworking::handleHerculesBeetleMountedAttack);
registerC2SReceiver(HerculesBeetleMountedChargePayload.TYPE, HerculesBeetleMountedChargePayload.STREAM_CODEC, AntarchyFabricNetworking::handleHerculesBeetleMountedCharge);
registerC2SReceiver(MultipartAttackPayload.TYPE, MultipartAttackPayload.STREAM_CODEC, AntarchyFabricNetworking::handleMultipartAttack);
registerC2SReceiver(MultipartInteractPayload.TYPE, MultipartInteractPayload.STREAM_CODEC, AntarchyFabricNetworking::handleMultipartInteract);
registerC2SReceiver(ToggleTigerEyeCamouflagePayload.TYPE, ToggleTigerEyeCamouflagePayload.STREAM_CODEC, (player, payload) -> handleTigerEyeCamouflageToggle(player));
registerGlobalReceiver(GravityGunPrimaryPayload.TYPE, (payload, player) -> handleGravityGunPrimary(player, payload));
registerGlobalReceiver(PortalGunPrimaryPayload.TYPE, (payload, player) -> handlePortalGunPrimary(player, payload));
registerGlobalReceiver(PortalGunIndicatorRequestPayload.TYPE, (payload, player) -> com.craisinlord.antarchy.content.portalgun.PortalGunIndicatorSync.handleRequest(player, payload));
registerGlobalReceiver(com.craisinlord.antarchy.content.network.PortalGunMoonAimPayload.TYPE, (payload, player) -> com.craisinlord.antarchy.content.portalgun.PortalGunMoonAimSync.handle(player, payload));
registerGlobalReceiver(PortalGunResetPayload.TYPE, (payload, player) -> com.craisinlord.antarchy.content.portalgun.PortalGunResetManager.handleInput(player, payload.action()));
registerGlobalReceiver(EyeOfStormPrimaryPayload.TYPE, (payload, player) -> handleEyeOfStormPrimary(player, payload));
registerGlobalReceiver(OpenGiantFryingPanPayload.TYPE, (payload, player) -> com.craisinlord.antarchy.content.item.GiantFryingPanItem.openHeldMenu(player));
registerGlobalReceiver(RoyalMountActionPayload.TYPE, (payload, player) -> handleRoyalMountAction(player, payload));
registerGlobalReceiver(RoyalMountVerticalPayload.TYPE, (payload, player) -> handleRoyalMountVertical(player, payload));
registerGlobalReceiver(GravityGunScrollPayload.TYPE, (payload, player) -> handleGravityGunScroll(player, payload));
registerGlobalReceiver(TemporalTunerScrollPayload.TYPE, (payload, player) -> handleTemporalTunerScroll(player, payload));
registerGlobalReceiver(BigBerthaModeCyclePayload.TYPE, (payload, player) -> handleBigBerthaModeCycle(player, payload));
registerGlobalReceiver(com.craisinlord.antarchy.content.network.RoyalGuardianSwordModeCyclePayload.TYPE, (payload, player) -> handleRoyalGuardianSwordModeCycle(player));
registerGlobalReceiver(ToggleTigerEyeCamouflagePayload.TYPE, (payload, player) -> handleTigerEyeCamouflageToggle(player));
registerGlobalReceiver(ToggleRoyalInversionPayload.TYPE, (payload, player) -> com.craisinlord.antarchy.content.item.RoyalAssailantArmorItem.toggleInversion(player));
registerGlobalReceiver(com.craisinlord.antarchy.content.network.ActivateRoyalBoundaryPayload.TYPE, (payload, player) -> com.craisinlord.antarchy.content.effect.RoyalBoundaryManager.activate(player));
registerGlobalReceiver(DiamondMinecartInputPayload.TYPE, (payload, player) -> handleDiamondMinecartInput(player, payload));
registerGlobalReceiver(BrutalflyElytraFlapPayload.TYPE, (payload, player) -> handleBrutalflyFlap(player, payload));
registerGlobalReceiver(SpringyBootsLaunchPayload.TYPE, (payload, player) -> handleSpringyBootsLaunch(player, payload));
registerGlobalReceiver(DorrieJumpInputPayload.TYPE, (payload, player) -> handleDorrieJumpInput(player, payload));
registerGlobalReceiver(com.craisinlord.antarchy.content.network.DorrieChargeJumpPayload.TYPE, (payload, player) -> handleDorrieChargeJumpInput(player, payload));
registerGlobalReceiver(HerculesBeetleJumpInputPayload.TYPE, (payload, player) -> handleHerculesBeetleJumpInput(player, payload));
registerGlobalReceiver(HerculesBeetleFlightTogglePayload.TYPE, (payload, player) -> handleHerculesBeetleFlightToggle(player, payload));
registerGlobalReceiver(HerculesBeetleMountedAttackPayload.TYPE, (payload, player) -> handleHerculesBeetleMountedAttack(player, payload));
registerGlobalReceiver(HerculesBeetleMountedChargePayload.TYPE, (payload, player) -> handleHerculesBeetleMountedCharge(player, payload));
}
public static void syncBloodglass(ServerPlayer player, int shieldsActive, int shieldsMax) {
send(player, new BloodglassStatePayload(shieldsActive, shieldsMax));
}
public static void syncTigerEyeCamouflage(ServerPlayer player) {
TigerEyeCamouflageStatePayload payload = TigerEyeCamouflageSync.payload(player);
for (ServerPlayer tracking : PlayerLookup.tracking(player)) {
sendToPlayer(tracking, payload, TigerEyeCamouflageStatePayload.STREAM_CODEC, TigerEyeCamouflageStatePayload.TYPE);
send(tracking, payload);
}
sendToPlayer(player, payload, TigerEyeCamouflageStatePayload.STREAM_CODEC, TigerEyeCamouflageStatePayload.TYPE);
}
private static void handleTigerEyeCamouflageToggle(ServerPlayer player) {
TigerEyeCamouflageController.ToggleResult result = TigerEyeCamouflageController.toggle(player);
if (result != TigerEyeCamouflageController.ToggleResult.NO_CHANGE) {
syncTigerEyeCamouflage(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);
}
}
public static void syncGravityToPlayer(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)
);
sendToPlayer(target, payload, GravityStatePayload.STREAM_CODEC, GravityStatePayload.TYPE);
}
public static void syncGravityEntity(Entity entity) {
GravityStatePayload payload = new GravityStatePayload(
entity.getId(),
AntarchyGravityApi.getGravityDirection(entity),
AntarchyGravityApi.getPrevGravityDirection(entity),
AntarchyGravityApi.isGravityForced(entity),
AntarchyGravityApi.getTransitionDuration(entity),
AntarchyGravityApi.getTransitionRemaining(entity)
);
for (ServerPlayer player : PlayerLookup.tracking(entity)) {
sendToPlayer(player, payload, GravityStatePayload.STREAM_CODEC, GravityStatePayload.TYPE);
}
if (entity instanceof ServerPlayer player) {
sendToPlayer(player, payload, GravityStatePayload.STREAM_CODEC, GravityStatePayload.TYPE);
}
}
public static void syncBloodglass(ServerPlayer player, int shieldsActive, int shieldsMax) {
sendToPlayer(player, new BloodglassStatePayload(shieldsActive, shieldsMax), BloodglassStatePayload.STREAM_CODEC, BloodglassStatePayload.TYPE);
send(player, payload);
}
public static void syncKatanaTrail(Entity entity, int durationTicks) {
BloodCrystalKatanaTrailPayload payload = new BloodCrystalKatanaTrailPayload(entity.getId(), durationTicks);
for (ServerPlayer player : PlayerLookup.tracking(entity)) {
sendToPlayer(player, payload, BloodCrystalKatanaTrailPayload.STREAM_CODEC, BloodCrystalKatanaTrailPayload.TYPE);
send(player, payload);
}
if (entity instanceof ServerPlayer serverPlayer) {
sendToPlayer(serverPlayer, payload, BloodCrystalKatanaTrailPayload.STREAM_CODEC, BloodCrystalKatanaTrailPayload.TYPE);
send(serverPlayer, payload);
}
}
public static void syncScorpionWhipTether(ServerPlayer player, int targetId) {
ScorpionWhipTetherPayload payload = new ScorpionWhipTetherPayload(player.getId(), targetId);
for (ServerPlayer tracking : PlayerLookup.tracking(player)) {
sendToPlayer(tracking, payload, ScorpionWhipTetherPayload.STREAM_CODEC, ScorpionWhipTetherPayload.TYPE);
send(tracking, payload);
}
sendToPlayer(player, payload, ScorpionWhipTetherPayload.STREAM_CODEC, ScorpionWhipTetherPayload.TYPE);
send(player, payload);
}
public static void syncThoraxisWeather(ServerLevel level, ThoraxisWeatherSnapshot snapshot) {
ThoraxisWeatherPayload payload = new ThoraxisWeatherPayload(
snapshot.dimension(),
snapshot.kind(),
snapshot.expiresAt(),
snapshot.anchor().getX(),
snapshot.anchor().getY(),
snapshot.anchor().getZ()
);
for (ServerPlayer player : level.players()) {
sendToPlayer(player, payload, ThoraxisWeatherPayload.STREAM_CODEC, ThoraxisWeatherPayload.TYPE);
public static void syncWormHookTether(ServerPlayer player, int hookId) {
WormHookTetherPayload payload = new WormHookTetherPayload(player.getId(), hookId);
for (ServerPlayer tracking : PlayerLookup.tracking(player)) {
send(tracking, payload);
}
}
public static void handleGravityState(Entity contextPlayer, GravityStatePayload payload) {
Entity entity = contextPlayer.level().getEntity(payload.entityId());
if (entity == null && contextPlayer.getId() == payload.entityId()) {
entity = contextPlayer;
}
if (entity == null) {
return;
}
AntarchyGravityApi.applySyncedState(
entity,
payload.direction(),
payload.previousDirection(),
payload.forced(),
payload.transitionDuration(),
payload.transitionRemaining()
);
send(player, payload);
}
private static void handleGravityGunPrimary(ServerPlayer player, GravityGunPrimaryPayload payload) {
@@ -228,6 +196,45 @@ public final class AntarchyFabricNetworking {
gravityGunItem.firePrimary(player.serverLevel(), player, player.getMainHandItem());
}
private static void handlePortalGunPrimary(ServerPlayer player, PortalGunPrimaryPayload payload) {
ItemStack stack = payload.offhand() ? player.getOffhandItem() : player.getMainHandItem();
if (!(stack.getItem() instanceof PortalGunItem portalGunItem)) {
return;
}
portalGunItem.firePrimary(player.serverLevel(), player, stack, payload.offhand());
}
private static void handleRoyalMountAction(ServerPlayer player, RoyalMountActionPayload payload) {
if (payload.action() == RoyalMountActionPayload.MOUNT) {
com.craisinlord.antarchy.content.entity.royal.RoyalMountEntity.tryAssistedMount(player);
return;
}
if (!(player.getVehicle() instanceof com.craisinlord.antarchy.content.entity.royal.RoyalMountEntity mount)) {
return;
}
switch (payload.action()) {
case RoyalMountActionPayload.FLIGHT_TOGGLE -> mount.toggleMountedFlight(player);
case RoyalMountActionPayload.BITE -> mount.handleMountedBite(player);
case RoyalMountActionPayload.SPIT -> mount.handleMountedSpit(player);
default -> {
}
}
}
private static void handleRoyalMountVertical(ServerPlayer player, RoyalMountVerticalPayload payload) {
if (player.getVehicle() instanceof com.craisinlord.antarchy.content.entity.royal.RoyalMountEntity mount) {
mount.setRiderAscend(payload.ascend());
mount.setRiderDescend(payload.descend());
}
}
private static void handleEyeOfStormPrimary(ServerPlayer player, EyeOfStormPrimaryPayload payload) {
if (!(player.getMainHandItem().getItem() instanceof EyeOfTheStormItem eyeOfTheStormItem)) {
return;
}
eyeOfTheStormItem.firePrimary(player.serverLevel(), player, player.getMainHandItem());
}
private static void handleGravityGunScroll(ServerPlayer player, GravityGunScrollPayload payload) {
if (!(player.getMainHandItem().getItem() instanceof GravityGunItem)) {
return;
@@ -239,7 +246,20 @@ public final class AntarchyFabricNetworking {
if (!(player.getMainHandItem().getItem() instanceof BigBerthaItem bigBerthaItem)) {
return;
}
bigBerthaItem.tryCycleModeWhileCoolingDown(player.serverLevel(), player, player.getMainHandItem());
bigBerthaItem.tryCycleModeFromInput(player.serverLevel(), player, player.getMainHandItem());
}
private static void handleTemporalTunerScroll(ServerPlayer player, TemporalTunerScrollPayload payload) {
if (TemporalTunerItem.isAvailable(player)) {
TemporalTunerItem.adjust(player, payload.delta());
}
}
private static void handleRoyalGuardianSwordModeCycle(ServerPlayer player) {
if (!(player.getMainHandItem().getItem() instanceof com.craisinlord.antarchy.content.item.RoyalGuardianSwordItem sword)) {
return;
}
sword.tryCycleModeFromInput(player.serverLevel(), player, player.getMainHandItem());
}
private static void handleDiamondMinecartInput(ServerPlayer player, DiamondMinecartInputPayload payload) {
@@ -274,7 +294,7 @@ public final class AntarchyFabricNetworking {
player.hurtMarked = true;
player.resetFallDistance();
player.connection.send(new ClientboundSetEntityMotionPacket(player));
chestStack.hurtAndBreak(1, player, p -> p.broadcastBreakEvent(EquipmentSlot.CHEST));
chestStack.hurtAndBreak(1, player, entity -> entity.broadcastBreakEvent(EquipmentSlot.CHEST));
player.getCooldowns().addCooldown(chestStack.getItem(), BrutalflyElytraFlightHelper.FLAP_COOLDOWN_TICKS);
player.level().playSound(null, player.blockPosition(), SoundEvents.PHANTOM_FLAP, SoundSource.PLAYERS, 0.9F,
tier == BrutalflyElytraFlightHelper.FlapTier.PERFECT ? 0.8F : tier == BrutalflyElytraFlightHelper.FlapTier.GOOD ? 0.95F : 1.1F);
@@ -285,82 +305,30 @@ public final class AntarchyFabricNetworking {
lift
);
for (ServerPlayer tracking : PlayerLookup.tracking(player)) {
sendToPlayer(tracking, animationPayload, BrutalflyElytraAnimationPayload.STREAM_CODEC, BrutalflyElytraAnimationPayload.TYPE);
send(tracking, animationPayload);
}
sendToPlayer(player, animationPayload, BrutalflyElytraAnimationPayload.STREAM_CODEC, BrutalflyElytraAnimationPayload.TYPE);
send(player, animationPayload);
}
private static void handleMultipartAttack(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;
}
serverPlayer.attack(part);
}
private static void handleMultipartInteract(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);
}
private static void handleJumpyBootsLaunch(ServerPlayer player, JumpyBootsLaunchPayload payload) {
if (!JumpyBootsItem.isWearingJumpyBoots(player)) return;
private static void handleSpringyBootsLaunch(ServerPlayer player, SpringyBootsLaunchPayload payload) {
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 newX = current.x;
double newZ = current.z;
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, verticalBoost, newZ);
@@ -371,12 +339,12 @@ public final class AntarchyFabricNetworking {
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);
1.0F, 0.6F + (clampedCharge / (float) SpringyBootsHelper.CHARGE_TICKS_MAX) * 0.6F);
JumpyBootsFabricHelper.setProtectionUntil(player,
player.level().getGameTime() + JumpyBootsHelper.FALL_PROTECTION_TICKS);
SpringyBootsFabricHelper.setProtectionUntil(player,
player.level().getGameTime() + SpringyBootsHelper.FALL_PROTECTION_TICKS);
player.getCooldowns().addCooldown(boots.getItem(), JumpyBootsHelper.COOLDOWN_TICKS);
player.getCooldowns().addCooldown(boots.getItem(), SpringyBootsHelper.COOLDOWN_TICKS);
}
private static void handleDorrieJumpInput(ServerPlayer player, DorrieJumpInputPayload payload) {
@@ -421,16 +389,23 @@ public final class AntarchyFabricNetworking {
}
}
public static void triggerHerculesBeetleImpactShake(int durationTicks) {
HerculesBeetleImpactShakeClientState.trigger(durationTicks);
}
private static void handleTigerEyeCamouflageToggle(ServerPlayer player) {
TigerEyeCamouflageController.ToggleResult result = TigerEyeCamouflageController.toggle(player);
if (result != TigerEyeCamouflageController.ToggleResult.NO_CHANGE) {
syncTigerEyeCamouflage(player);
}
public static void triggerImpactShake(ImpactShakePayload payload) {
CameraShakeClientState.triggerImpact(
new Vec3(payload.x(), payload.y(), payload.z()),
payload.intensity(),
payload.durationTicks(),
payload.radius()
);
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);
}
}
}
@@ -1,38 +0,0 @@
package com.craisinlord.antarchy.fabric.network;
import com.craisinlord.antarchy.content.network.TimeDilationFieldsPayload;
import com.craisinlord.antarchy.content.network.TimeDilationRatePayload;
import com.craisinlord.antarchy.content.time.TimeDilationFieldSnapshot;
import com.craisinlord.antarchy.content.time.TimeDilationApi;
import java.util.List;
import net.fabricmc.fabric.api.networking.v1.PlayerLookup;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.entity.Entity;
public final class AntarchyFabricTimeDilationNetworking {
private AntarchyFabricTimeDilationNetworking() {}
public static void syncRate(Entity entity, double rate) {
TimeDilationRatePayload payload = new TimeDilationRatePayload(entity.getUUID(), rate);
for (ServerPlayer player : PlayerLookup.tracking(entity)) {
AntarchyFabricNetworking.sendToPlayer(player, payload, TimeDilationRatePayload.STREAM_CODEC, TimeDilationRatePayload.TYPE);
}
if (entity instanceof ServerPlayer player) {
AntarchyFabricNetworking.sendToPlayer(player, payload, TimeDilationRatePayload.STREAM_CODEC, TimeDilationRatePayload.TYPE);
}
}
public static void syncRateToPlayer(ServerPlayer player, Entity entity, double rate) {
TimeDilationRatePayload payload = new TimeDilationRatePayload(entity.getUUID(), rate);
AntarchyFabricNetworking.sendToPlayer(player, payload, TimeDilationRatePayload.STREAM_CODEC, TimeDilationRatePayload.TYPE);
}
public static void syncFields(ServerPlayer player, List<TimeDilationFieldSnapshot> fields) {
AntarchyFabricNetworking.sendToPlayer(player, new TimeDilationFieldsPayload(fields),
TimeDilationFieldsPayload.STREAM_CODEC, TimeDilationFieldsPayload.TYPE);
}
public static void handleRate(Entity ignored, TimeDilationRatePayload payload) {
TimeDilationApi.applySyncedRate(payload.entityUuid(), payload.rate());
}
}
@@ -8,9 +8,18 @@ import com.craisinlord.antarchy.content.block.entity.AntNestBlockEntity;
import com.craisinlord.antarchy.content.block.entity.CritterCageBlockEntity;
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.DimensionalTearMarkerBlock;
import com.craisinlord.antarchy.content.block.entity.DimensionalTearMarkerBlockEntity;
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.UndertrialSpawnerBlockEntity;
import com.craisinlord.antarchy.content.block.entity.UnderVaultBlockEntity;
import com.craisinlord.antarchy.content.block.entity.VortexLensBlockEntity;
import com.craisinlord.antarchy.content.block.entity.WaspNestBlockEntity;
import com.craisinlord.antarchy.content.block.entity.UndertrialSpawnerBlockEntity;
import com.craisinlord.antarchy.content.block.entity.UnderVaultBlockEntity;
@@ -22,6 +31,7 @@ import com.craisinlord.antarchy.content.portal.PermanentPortalType;
import com.mojang.serialization.MapCodec;
import net.minecraft.core.registries.Registries;
import net.minecraft.core.Direction;
import net.minecraft.sounds.SoundEvent;
import net.minecraft.util.valueproviders.UniformInt;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.AmethystClusterBlock;
@@ -44,6 +54,7 @@ import net.minecraft.world.level.block.state.StateDefinition;
import net.minecraft.world.item.context.BlockPlaceContext;
import net.minecraft.world.level.block.Mirror;
import net.minecraft.world.level.block.Rotation;
import net.fabricmc.fabric.api.registry.StrippableBlockRegistry;
public final class AntarchyFabricBlocks {
@@ -52,6 +63,16 @@ public final class AntarchyFabricBlocks {
public static final DeferredRegister<BlockEntityType<?>> BLOCK_ENTITY_TYPES = DeferredRegister.create(Registries.BLOCK_ENTITY_TYPE, Antarchy.MODID);
public static final DeferredBlock<UndertrialSpawnerBlock> UNDERTRIAL_SPAWNER = BLOCKS.register("undertrial_spawner",
() -> new UndertrialSpawnerBlock(AntarchyFabricBlocks::undertrialSpawnerBlockEntityType,
BlockBehaviour.Properties.of().mapColor(MapColor.STONE).instrument(net.minecraft.world.level.block.state.properties.NoteBlockInstrument.BASEDRUM).strength(50.0F).sound(SoundType.METAL).noOcclusion().isViewBlocking((state, level, pos) -> false)));
public static final DeferredBlock<UnderVaultBlock> UNDERVAULT = BLOCKS.register("undervault",
() -> new UnderVaultBlock(AntarchyFabricBlocks::underVaultBlockEntityType,
BlockBehaviour.Properties.of().mapColor(MapColor.STONE).instrument(net.minecraft.world.level.block.state.properties.NoteBlockInstrument.BASEDRUM).strength(50.0F).sound(SoundType.METAL).noOcclusion().isViewBlocking((state, level, pos) -> false)));
public static final DeferredBlock<QueenTrailSpawnMarkerBlock> QUEEN_TRAIL_SPAWN_MARKER = BLOCKS.register("queen_trail_spawn_marker",
() -> new QueenTrailSpawnMarkerBlock(AntarchyFabricBlocks::queenTrailSpawnMarkerBlockEntityType,
BlockBehaviour.Properties.copy(Blocks.BEDROCK).noLootTable()));
public static final DeferredBlock<DuplicatorLogBlock> DUPLICATOR_LOG = BLOCKS.register("duplicator_log",
() -> new DuplicatorLogBlock(BlockBehaviour.Properties.copy(Blocks.OAK_LOG).randomTicks()));
@@ -133,6 +154,8 @@ public final class AntarchyFabricBlocks {
public static final DeferredBlock<MilkweedBlock> PINK_MILKWEED = BLOCKS.register("pink_milkweed",
() -> new MilkweedBlock(BlockBehaviour.Properties.copy(Blocks.PEONY)));
public static final DeferredBlock<com.craisinlord.antarchy.content.block.GlimmeringReedBlock> GLIMMERING_REED = BLOCKS.register("glimmering_reed",
() -> new com.craisinlord.antarchy.content.block.GlimmeringReedBlock(BlockBehaviour.Properties.copy(Blocks.SUNFLOWER).lightLevel(state -> 8)));
public static final DeferredBlock<com.craisinlord.antarchy.content.block.CamelliaBlock> CAMELLIA = BLOCKS.register("camellia",
@@ -157,6 +180,14 @@ public final class AntarchyFabricBlocks {
() -> new LucidAnchorBlock(BlockBehaviour.Properties.copy(Blocks.BEACON).strength(3.0F)));
public static final DeferredBlock<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 DeferredBlock<PortalGunPortalMasterBlock> PORTAL_GUN_PORTAL_MASTER = BLOCKS.register("portal_gun_portal_master",
() -> new PortalGunPortalMasterBlock(AntarchyFabricBlocks::portalGunPortalMasterBlockEntityType, portalProperties()));
public static final DeferredBlock<PortalGunPortalBaseBlock> PORTAL_GUN_PORTAL_BASE = BLOCKS.register("portal_gun_portal_base",
() -> new PortalGunPortalBaseBlock(AntarchyFabricBlocks::portalGunPortalBaseBlockEntityType, portalProperties()));
public static final DeferredBlock<DimensionalTearMarkerBlock> DIMENSIONAL_TEAR_MARKER = BLOCKS.register("dimensional_tear_marker",
() -> new DimensionalTearMarkerBlock(AntarchyFabricBlocks::dimensionalTearMarkerBlockEntityType,
BlockBehaviour.Properties.of().noCollission().noOcclusion().noLootTable().instabreak()
.pushReaction(net.minecraft.world.level.material.PushReaction.DESTROY)));
public static final DeferredBlock<net.minecraft.world.level.block.StandingSignBlock> OURANWOOD_SIGN = BLOCKS.register("ouranwood_sign",
@@ -309,8 +340,8 @@ public final class AntarchyFabricBlocks {
() -> new net.minecraft.world.level.block.ButtonBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_BUTTON), net.minecraft.world.level.block.state.properties.BlockSetType.JUNGLE, 30, false));
public static final DeferredBlock<Block> NADIR_VEIL = BLOCKS.register("nadir_veil",
() -> new Block(BlockBehaviour.Properties.copy(Blocks.MANGROVE_LEAVES).noCollission().noOcclusion()));
public static final DeferredBlock<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(net.minecraft.world.level.block.SoundType.SLIME_BLOCK).noOcclusion()));
public static final DeferredBlock<com.craisinlord.antarchy.content.block.NadirSaplingBlock> NADIR_SAPLING = BLOCKS.register("nadir_sapling",
@@ -339,6 +370,196 @@ public final class AntarchyFabricBlocks {
() -> new DuplicatorSaplingBlock(BlockBehaviour.Properties.copy(Blocks.OAK_SAPLING).randomTicks().noCollission()));
public static final DeferredBlock<RotatedPillarBlock> ROYAL_LOG = BLOCKS.register("royal_log",
() -> new RotatedPillarBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_LOG)));
public static final DeferredBlock<RotatedPillarBlock> ROYAL_WOOD = BLOCKS.register("royal_wood",
() -> new RotatedPillarBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_WOOD)));
public static final DeferredBlock<RotatedPillarBlock> STRIPPED_ROYAL_LOG = BLOCKS.register("stripped_royal_log",
() -> new RotatedPillarBlock(BlockBehaviour.Properties.copy(Blocks.STRIPPED_JUNGLE_LOG)));
public static final DeferredBlock<RotatedPillarBlock> STRIPPED_ROYAL_WOOD = BLOCKS.register("stripped_royal_wood",
() -> new RotatedPillarBlock(BlockBehaviour.Properties.copy(Blocks.STRIPPED_JUNGLE_WOOD)));
public static final DeferredBlock<Block> ROYAL_PLANKS = BLOCKS.register("royal_planks",
() -> new Block(BlockBehaviour.Properties.copy(Blocks.JUNGLE_PLANKS)));
public static final DeferredBlock<net.minecraft.world.level.block.StairBlock> ROYAL_STAIRS = BLOCKS.register("royal_stairs",
() -> new net.minecraft.world.level.block.StairBlock(ROYAL_PLANKS.get().defaultBlockState(), BlockBehaviour.Properties.copy(Blocks.JUNGLE_STAIRS)));
public static final DeferredBlock<net.minecraft.world.level.block.SlabBlock> ROYAL_SLAB = BLOCKS.register("royal_slab",
() -> new net.minecraft.world.level.block.SlabBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_SLAB)));
public static final DeferredBlock<net.minecraft.world.level.block.FenceBlock> ROYAL_FENCE = BLOCKS.register("royal_fence",
() -> new net.minecraft.world.level.block.FenceBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_FENCE)));
public static final DeferredBlock<net.minecraft.world.level.block.FenceGateBlock> ROYAL_FENCE_GATE = BLOCKS.register("royal_fence_gate",
() -> new net.minecraft.world.level.block.FenceGateBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_FENCE_GATE), net.minecraft.world.level.block.state.properties.WoodType.JUNGLE));
public static final DeferredBlock<net.minecraft.world.level.block.DoorBlock> ROYAL_DOOR = BLOCKS.register("royal_door",
() -> new net.minecraft.world.level.block.DoorBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_DOOR), net.minecraft.world.level.block.state.properties.BlockSetType.JUNGLE));
public static final DeferredBlock<net.minecraft.world.level.block.TrapDoorBlock> ROYAL_TRAPDOOR = BLOCKS.register("royal_trapdoor",
() -> new net.minecraft.world.level.block.TrapDoorBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_TRAPDOOR), net.minecraft.world.level.block.state.properties.BlockSetType.JUNGLE));
public static final DeferredBlock<net.minecraft.world.level.block.PressurePlateBlock> ROYAL_PRESSURE_PLATE = BLOCKS.register("royal_pressure_plate",
() -> new net.minecraft.world.level.block.PressurePlateBlock(net.minecraft.world.level.block.PressurePlateBlock.Sensitivity.EVERYTHING, BlockBehaviour.Properties.copy(Blocks.JUNGLE_PRESSURE_PLATE), net.minecraft.world.level.block.state.properties.BlockSetType.JUNGLE));
public static final DeferredBlock<net.minecraft.world.level.block.ButtonBlock> ROYAL_BUTTON = BLOCKS.register("royal_button",
() -> new net.minecraft.world.level.block.ButtonBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_BUTTON), net.minecraft.world.level.block.state.properties.BlockSetType.JUNGLE, 30, true));
public static final DeferredBlock<com.craisinlord.antarchy.content.block.RoyalLeavesBlock> ROYAL_LEAVES = BLOCKS.register("royal_leaves",
() -> new com.craisinlord.antarchy.content.block.RoyalLeavesBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_LEAVES).randomTicks()));
public static final DeferredBlock<com.craisinlord.antarchy.content.block.RoyalLeavesBlock> ROYAL_FLOWERING_LEAVES = BLOCKS.register("royal_flowering_leaves",
() -> new com.craisinlord.antarchy.content.block.RoyalLeavesBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_LEAVES).randomTicks().lightLevel(state -> 12)));
public static final DeferredBlock<com.craisinlord.antarchy.content.block.RoyalSaplingBlock> ROYAL_SAPLING = BLOCKS.register("royal_sapling",
() -> new com.craisinlord.antarchy.content.block.RoyalSaplingBlock(BlockBehaviour.Properties.copy(Blocks.OAK_SAPLING).noCollission()));
public static final DeferredBlock<net.minecraft.world.level.block.FlowerPotBlock> POTTED_ROYAL_SAPLING = BLOCKS.register("potted_royal_sapling",
() -> new net.minecraft.world.level.block.FlowerPotBlock(ROYAL_SAPLING.get(), BlockBehaviour.Properties.copy(Blocks.POTTED_DANDELION)));
public static final DeferredBlock<net.minecraft.world.level.block.StandingSignBlock> ROYAL_SIGN = BLOCKS.register("royal_sign",
() -> new net.minecraft.world.level.block.StandingSignBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_SIGN), AntarchyWoodTypes.ROYAL));
public static final DeferredBlock<net.minecraft.world.level.block.WallSignBlock> ROYAL_WALL_SIGN = BLOCKS.register("royal_wall_sign",
() -> new net.minecraft.world.level.block.WallSignBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_WALL_SIGN), AntarchyWoodTypes.ROYAL));
public static final DeferredBlock<net.minecraft.world.level.block.CeilingHangingSignBlock> ROYAL_HANGING_SIGN = BLOCKS.register("royal_hanging_sign",
() -> new net.minecraft.world.level.block.CeilingHangingSignBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_HANGING_SIGN), AntarchyWoodTypes.ROYAL));
public static final DeferredBlock<net.minecraft.world.level.block.WallHangingSignBlock> ROYAL_WALL_HANGING_SIGN = BLOCKS.register("royal_wall_hanging_sign",
() -> new net.minecraft.world.level.block.WallHangingSignBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_WALL_HANGING_SIGN), AntarchyWoodTypes.ROYAL));
public static final DeferredBlock<com.craisinlord.antarchy.content.block.TruffaloLogBlock> TRUFFALO_LOG = BLOCKS.register("truffalo_log",
() -> new com.craisinlord.antarchy.content.block.TruffaloLogBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_LOG)));
public static final DeferredBlock<RotatedPillarBlock> TRUFFALO_WOOD = BLOCKS.register("truffalo_wood",
() -> new RotatedPillarBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_WOOD)));
public static final DeferredBlock<com.craisinlord.antarchy.content.block.TruffaloLogBlock> STRIPPED_TRUFFALO_LOG = BLOCKS.register("stripped_truffalo_log",
() -> new com.craisinlord.antarchy.content.block.TruffaloLogBlock(BlockBehaviour.Properties.copy(Blocks.STRIPPED_JUNGLE_LOG)));
public static final DeferredBlock<RotatedPillarBlock> STRIPPED_TRUFFALO_WOOD = BLOCKS.register("stripped_truffalo_wood",
() -> new RotatedPillarBlock(BlockBehaviour.Properties.copy(Blocks.STRIPPED_JUNGLE_WOOD)));
public static final DeferredBlock<Block> TRUFFALO_PLANKS = BLOCKS.register("truffalo_planks",
() -> new Block(BlockBehaviour.Properties.copy(Blocks.JUNGLE_PLANKS)));
public static final DeferredBlock<net.minecraft.world.level.block.StairBlock> TRUFFALO_STAIRS = BLOCKS.register("truffalo_stairs",
() -> new net.minecraft.world.level.block.StairBlock(TRUFFALO_PLANKS.get().defaultBlockState(), BlockBehaviour.Properties.copy(Blocks.JUNGLE_STAIRS)));
public static final DeferredBlock<net.minecraft.world.level.block.SlabBlock> TRUFFALO_SLAB = BLOCKS.register("truffalo_slab",
() -> new net.minecraft.world.level.block.SlabBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_SLAB)));
public static final DeferredBlock<net.minecraft.world.level.block.FenceBlock> TRUFFALO_FENCE = BLOCKS.register("truffalo_fence",
() -> new net.minecraft.world.level.block.FenceBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_FENCE)));
public static final DeferredBlock<net.minecraft.world.level.block.FenceGateBlock> TRUFFALO_FENCE_GATE = BLOCKS.register("truffalo_fence_gate",
() -> new net.minecraft.world.level.block.FenceGateBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_FENCE_GATE), net.minecraft.world.level.block.state.properties.WoodType.JUNGLE));
public static final DeferredBlock<net.minecraft.world.level.block.DoorBlock> TRUFFALO_DOOR = BLOCKS.register("truffalo_door",
() -> new net.minecraft.world.level.block.DoorBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_DOOR), net.minecraft.world.level.block.state.properties.BlockSetType.JUNGLE));
public static final DeferredBlock<net.minecraft.world.level.block.TrapDoorBlock> TRUFFALO_TRAPDOOR = BLOCKS.register("truffalo_trapdoor",
() -> new net.minecraft.world.level.block.TrapDoorBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_TRAPDOOR), net.minecraft.world.level.block.state.properties.BlockSetType.JUNGLE));
public static final DeferredBlock<net.minecraft.world.level.block.PressurePlateBlock> TRUFFALO_PRESSURE_PLATE = BLOCKS.register("truffalo_pressure_plate",
() -> new net.minecraft.world.level.block.PressurePlateBlock(net.minecraft.world.level.block.PressurePlateBlock.Sensitivity.EVERYTHING, BlockBehaviour.Properties.copy(Blocks.JUNGLE_PRESSURE_PLATE), net.minecraft.world.level.block.state.properties.BlockSetType.JUNGLE));
public static final DeferredBlock<net.minecraft.world.level.block.ButtonBlock> TRUFFALO_BUTTON = BLOCKS.register("truffalo_button",
() -> new net.minecraft.world.level.block.ButtonBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_BUTTON), net.minecraft.world.level.block.state.properties.BlockSetType.JUNGLE, 30, true));
public static final DeferredBlock<com.craisinlord.antarchy.content.block.TruffaloSaplingBlock> TRUFFALO_SAPLING = BLOCKS.register("truffalo_sapling",
() -> new com.craisinlord.antarchy.content.block.TruffaloSaplingBlock(BlockBehaviour.Properties.copy(Blocks.OAK_SAPLING).randomTicks().noCollission()));
public static final DeferredBlock<net.minecraft.world.level.block.FlowerPotBlock> POTTED_TRUFFALO_SAPLING = BLOCKS.register("potted_truffalo_sapling",
() -> new net.minecraft.world.level.block.FlowerPotBlock(TRUFFALO_SAPLING.get(), BlockBehaviour.Properties.copy(Blocks.POTTED_DANDELION)));
public static final DeferredBlock<net.minecraft.world.level.block.StandingSignBlock> TRUFFALO_SIGN = BLOCKS.register("truffalo_sign",
() -> new net.minecraft.world.level.block.StandingSignBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_SIGN), AntarchyWoodTypes.TRUFFALO));
public static final DeferredBlock<net.minecraft.world.level.block.WallSignBlock> TRUFFALO_WALL_SIGN = BLOCKS.register("truffalo_wall_sign",
() -> new net.minecraft.world.level.block.WallSignBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_WALL_SIGN), AntarchyWoodTypes.TRUFFALO));
public static final DeferredBlock<net.minecraft.world.level.block.CeilingHangingSignBlock> TRUFFALO_HANGING_SIGN = BLOCKS.register("truffalo_hanging_sign",
() -> new net.minecraft.world.level.block.CeilingHangingSignBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_HANGING_SIGN), AntarchyWoodTypes.TRUFFALO));
public static final DeferredBlock<net.minecraft.world.level.block.WallHangingSignBlock> TRUFFALO_WALL_HANGING_SIGN = BLOCKS.register("truffalo_wall_hanging_sign",
() -> new net.minecraft.world.level.block.WallHangingSignBlock(BlockBehaviour.Properties.copy(Blocks.JUNGLE_WALL_HANGING_SIGN), AntarchyWoodTypes.TRUFFALO));
public static final DeferredBlock<com.craisinlord.antarchy.content.block.TruffaloTuftBlock> TRUFFALO_TUFT_WHITE = BLOCKS.register("white_truffalo_tuft",
() -> new com.craisinlord.antarchy.content.block.TruffaloTuftBlock(BlockBehaviour.Properties.copy(Blocks.WHITE_WOOL)));
public static final DeferredBlock<com.craisinlord.antarchy.content.block.TruffaloTuftBlock> TRUFFALO_TUFT_ORANGE = BLOCKS.register("orange_truffalo_tuft",
() -> new com.craisinlord.antarchy.content.block.TruffaloTuftBlock(BlockBehaviour.Properties.copy(Blocks.ORANGE_WOOL)));
public static final DeferredBlock<com.craisinlord.antarchy.content.block.TruffaloTuftBlock> TRUFFALO_TUFT_MAGENTA = BLOCKS.register("magenta_truffalo_tuft",
() -> new com.craisinlord.antarchy.content.block.TruffaloTuftBlock(BlockBehaviour.Properties.copy(Blocks.MAGENTA_WOOL)));
public static final DeferredBlock<com.craisinlord.antarchy.content.block.TruffaloTuftBlock> TRUFFALO_TUFT_LIGHT_BLUE = BLOCKS.register("light_blue_truffalo_tuft",
() -> new com.craisinlord.antarchy.content.block.TruffaloTuftBlock(BlockBehaviour.Properties.copy(Blocks.LIGHT_BLUE_WOOL)));
public static final DeferredBlock<com.craisinlord.antarchy.content.block.TruffaloTuftBlock> TRUFFALO_TUFT_YELLOW = BLOCKS.register("yellow_truffalo_tuft",
() -> new com.craisinlord.antarchy.content.block.TruffaloTuftBlock(BlockBehaviour.Properties.copy(Blocks.YELLOW_WOOL)));
public static final DeferredBlock<com.craisinlord.antarchy.content.block.TruffaloTuftBlock> TRUFFALO_TUFT_LIME = BLOCKS.register("lime_truffalo_tuft",
() -> new com.craisinlord.antarchy.content.block.TruffaloTuftBlock(BlockBehaviour.Properties.copy(Blocks.LIME_WOOL)));
public static final DeferredBlock<com.craisinlord.antarchy.content.block.TruffaloTuftBlock> TRUFFALO_TUFT_PINK = BLOCKS.register("pink_truffalo_tuft",
() -> new com.craisinlord.antarchy.content.block.TruffaloTuftBlock(BlockBehaviour.Properties.copy(Blocks.PINK_WOOL)));
public static final DeferredBlock<com.craisinlord.antarchy.content.block.TruffaloTuftBlock> TRUFFALO_TUFT_GRAY = BLOCKS.register("gray_truffalo_tuft",
() -> new com.craisinlord.antarchy.content.block.TruffaloTuftBlock(BlockBehaviour.Properties.copy(Blocks.GRAY_WOOL)));
public static final DeferredBlock<com.craisinlord.antarchy.content.block.TruffaloTuftBlock> TRUFFALO_TUFT_LIGHT_GRAY = BLOCKS.register("light_gray_truffalo_tuft",
() -> new com.craisinlord.antarchy.content.block.TruffaloTuftBlock(BlockBehaviour.Properties.copy(Blocks.LIGHT_GRAY_WOOL)));
public static final DeferredBlock<com.craisinlord.antarchy.content.block.TruffaloTuftBlock> TRUFFALO_TUFT_CYAN = BLOCKS.register("cyan_truffalo_tuft",
() -> new com.craisinlord.antarchy.content.block.TruffaloTuftBlock(BlockBehaviour.Properties.copy(Blocks.CYAN_WOOL)));
public static final DeferredBlock<com.craisinlord.antarchy.content.block.TruffaloTuftBlock> TRUFFALO_TUFT_PURPLE = BLOCKS.register("purple_truffalo_tuft",
() -> new com.craisinlord.antarchy.content.block.TruffaloTuftBlock(BlockBehaviour.Properties.copy(Blocks.PURPLE_WOOL)));
public static final DeferredBlock<com.craisinlord.antarchy.content.block.TruffaloTuftBlock> TRUFFALO_TUFT_BLUE = BLOCKS.register("blue_truffalo_tuft",
() -> new com.craisinlord.antarchy.content.block.TruffaloTuftBlock(BlockBehaviour.Properties.copy(Blocks.BLUE_WOOL)));
public static final DeferredBlock<com.craisinlord.antarchy.content.block.TruffaloTuftBlock> TRUFFALO_TUFT_BROWN = BLOCKS.register("brown_truffalo_tuft",
() -> new com.craisinlord.antarchy.content.block.TruffaloTuftBlock(BlockBehaviour.Properties.copy(Blocks.BROWN_WOOL)));
public static final DeferredBlock<com.craisinlord.antarchy.content.block.TruffaloTuftBlock> TRUFFALO_TUFT_GREEN = BLOCKS.register("green_truffalo_tuft",
() -> new com.craisinlord.antarchy.content.block.TruffaloTuftBlock(BlockBehaviour.Properties.copy(Blocks.GREEN_WOOL)));
public static final DeferredBlock<com.craisinlord.antarchy.content.block.TruffaloTuftBlock> TRUFFALO_TUFT_RED = BLOCKS.register("red_truffalo_tuft",
() -> new com.craisinlord.antarchy.content.block.TruffaloTuftBlock(BlockBehaviour.Properties.copy(Blocks.RED_WOOL)));
public static final DeferredBlock<com.craisinlord.antarchy.content.block.TruffaloTuftBlock> TRUFFALO_TUFT_BLACK = BLOCKS.register("black_truffalo_tuft",
() -> new com.craisinlord.antarchy.content.block.TruffaloTuftBlock(BlockBehaviour.Properties.copy(Blocks.BLACK_WOOL)));
public static final DeferredBlock<DuctTapeBlock> DUCT_TAPE = BLOCKS.register("duct_tape",
() -> new DuctTapeBlock(BlockBehaviour.Properties.of()
.strength(0.2F)
@@ -369,6 +590,8 @@ public final class AntarchyFabricBlocks {
public static final DeferredBlock<Block> NYXITE_BRICKS = BLOCKS.register("nyxite_bricks",
() -> new Block(nyxiteProperties()));
public static final DeferredBlock<Block> MOSSY_NYXITE_BRICKS = BLOCKS.register("mossy_nyxite_bricks",
() -> new Block(nyxiteProperties()));
public static final DeferredBlock<net.minecraft.world.level.block.StairBlock> NYXITE_STAIRS = BLOCKS.register("nyxite_stairs",
@@ -410,6 +633,12 @@ public final class AntarchyFabricBlocks {
public static final DeferredBlock<net.minecraft.world.level.block.WallBlock> NYXITE_BRICK_WALL = BLOCKS.register("nyxite_brick_wall",
() -> new net.minecraft.world.level.block.WallBlock(nyxiteProperties()));
public static final DeferredBlock<net.minecraft.world.level.block.StairBlock> MOSSY_NYXITE_BRICK_STAIRS = BLOCKS.register("mossy_nyxite_brick_stairs",
() -> new net.minecraft.world.level.block.StairBlock(MOSSY_NYXITE_BRICKS.get().defaultBlockState(), nyxiteProperties()));
public static final DeferredBlock<net.minecraft.world.level.block.SlabBlock> MOSSY_NYXITE_BRICK_SLAB = BLOCKS.register("mossy_nyxite_brick_slab",
() -> new net.minecraft.world.level.block.SlabBlock(nyxiteProperties()));
public static final DeferredBlock<net.minecraft.world.level.block.WallBlock> MOSSY_NYXITE_BRICK_WALL = BLOCKS.register("mossy_nyxite_brick_wall",
() -> new net.minecraft.world.level.block.WallBlock(nyxiteProperties()));
public static final DeferredBlock<RotatedPillarBlock> NYXITE_PILLAR = BLOCKS.register("nyxite_pillar",
() -> new RotatedPillarBlock(nyxiteProperties()));
@@ -491,14 +720,14 @@ public final class AntarchyFabricBlocks {
() -> new RotatedPillarBlock(AntarchyObjects.shellstoneProperties()));
public static final DeferredBlock<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 DeferredBlock<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 DeferredBlock<com.craisinlord.antarchy.content.block.CloudBlock> CLOUD_BLOCK = BLOCKS.register("cloud_block",
() -> new com.craisinlord.antarchy.content.block.CloudBlock(
AntarchyFabricItems::cloudBucketItem,
BlockBehaviour.Properties.copy(Blocks.POWDER_SNOW).noLootTable().noOcclusion()
BlockBehaviour.Properties.copy(Blocks.POWDER_SNOW).noLootTable().noOcclusion().emissiveRendering((state, level, pos) -> true)
));
@@ -535,6 +764,40 @@ public final class AntarchyFabricBlocks {
public static final DeferredBlock<Block> MYRMITE = BLOCKS.register("myrmite",
() -> new Block(nyxiteProperties()));
public static final DeferredBlock<StairBlock> MYRMITE_STAIRS = BLOCKS.register("myrmite_stairs",
() -> new StairBlock(MYRMITE.get().defaultBlockState(), nyxiteProperties()));
public static final DeferredBlock<SlabBlock> MYRMITE_SLAB = BLOCKS.register("myrmite_slab",
() -> new SlabBlock(nyxiteProperties()));
public static final DeferredBlock<WallBlock> MYRMITE_WALL = BLOCKS.register("myrmite_wall",
() -> new WallBlock(nyxiteProperties()));
public static final DeferredBlock<Block> POLISHED_MYRMITE = BLOCKS.register("polished_myrmite",
() -> new Block(nyxiteProperties()));
public static final DeferredBlock<StairBlock> POLISHED_MYRMITE_STAIRS = BLOCKS.register("polished_myrmite_stairs",
() -> new StairBlock(POLISHED_MYRMITE.get().defaultBlockState(), nyxiteProperties()));
public static final DeferredBlock<SlabBlock> POLISHED_MYRMITE_SLAB = BLOCKS.register("polished_myrmite_slab",
() -> new SlabBlock(nyxiteProperties()));
public static final DeferredBlock<WallBlock> POLISHED_MYRMITE_WALL = BLOCKS.register("polished_myrmite_wall",
() -> new WallBlock(nyxiteProperties()));
public static final DeferredBlock<Block> CHISELED_MYRMITE = BLOCKS.register("chiseled_myrmite",
() -> new Block(nyxiteProperties()));
public static final DeferredBlock<Block> MYRMITE_BRICKS = BLOCKS.register("myrmite_bricks",
() -> new Block(nyxiteProperties()));
public static final DeferredBlock<StairBlock> MYRMITE_BRICK_STAIRS = BLOCKS.register("myrmite_brick_stairs",
() -> new StairBlock(MYRMITE_BRICKS.get().defaultBlockState(), nyxiteProperties()));
public static final DeferredBlock<SlabBlock> MYRMITE_BRICK_SLAB = BLOCKS.register("myrmite_brick_slab",
() -> new SlabBlock(nyxiteProperties()));
public static final DeferredBlock<WallBlock> MYRMITE_BRICK_WALL = BLOCKS.register("myrmite_brick_wall",
() -> new WallBlock(nyxiteProperties()));
public static final DeferredBlock<Block> MOSSY_MYRMITE_BRICKS = BLOCKS.register("mossy_myrmite_bricks",
() -> new Block(nyxiteProperties()));
public static final DeferredBlock<StairBlock> MOSSY_MYRMITE_BRICK_STAIRS = BLOCKS.register("mossy_myrmite_brick_stairs",
() -> new StairBlock(MOSSY_MYRMITE_BRICKS.get().defaultBlockState(), nyxiteProperties()));
public static final DeferredBlock<SlabBlock> MOSSY_MYRMITE_BRICK_SLAB = BLOCKS.register("mossy_myrmite_brick_slab",
() -> new SlabBlock(nyxiteProperties()));
public static final DeferredBlock<WallBlock> MOSSY_MYRMITE_BRICK_WALL = BLOCKS.register("mossy_myrmite_brick_wall",
() -> new WallBlock(nyxiteProperties()));
public static final DeferredBlock<RotatedPillarBlock> MYRMITE_PILLAR = BLOCKS.register("myrmite_pillar",
() -> new RotatedPillarBlock(nyxiteProperties()));
public static final DeferredBlock<Block> BIOMITE = BLOCKS.register("biomite",
@@ -571,6 +834,8 @@ public final class AntarchyFabricBlocks {
public static final DeferredBlock<Block> BROODSTONE_BRICKS = BLOCKS.register("broodstone_bricks",
() -> new Block(broodstoneProperties()));
public static final DeferredBlock<Block> MOSSY_BROODSTONE_BRICKS = BLOCKS.register("mossy_broodstone_bricks",
() -> new Block(broodstoneProperties()));
public static final DeferredBlock<StairBlock> BROODSTONE_STAIRS = BLOCKS.register("broodstone_stairs",
@@ -607,6 +872,12 @@ public final class AntarchyFabricBlocks {
public static final DeferredBlock<WallBlock> BROODSTONE_BRICK_WALL = BLOCKS.register("broodstone_brick_wall",
() -> new WallBlock(broodstoneProperties()));
public static final DeferredBlock<StairBlock> MOSSY_BROODSTONE_BRICK_STAIRS = BLOCKS.register("mossy_broodstone_brick_stairs",
() -> new StairBlock(MOSSY_BROODSTONE_BRICKS.get().defaultBlockState(), broodstoneProperties()));
public static final DeferredBlock<SlabBlock> MOSSY_BROODSTONE_BRICK_SLAB = BLOCKS.register("mossy_broodstone_brick_slab",
() -> new SlabBlock(broodstoneProperties()));
public static final DeferredBlock<WallBlock> MOSSY_BROODSTONE_BRICK_WALL = BLOCKS.register("mossy_broodstone_brick_wall",
() -> new WallBlock(broodstoneProperties()));
public static final DeferredBlock<Block> BROODSTONE_URANIUM_ORE = BLOCKS.register("broodstone_uranium_ore",
@@ -697,12 +968,17 @@ public final class AntarchyFabricBlocks {
.replaceable()));
public static final DeferredBlock<CreepingHorrorEggBlock> CREEPING_HORROR_EGG = BLOCKS.register("crawling_blight_egg",
() -> new CreepingHorrorEggBlock(BlockBehaviour.Properties.copy(Blocks.TURTLE_EGG)));
public static final DeferredBlock<CrawlingBlightEggBlock> CRAWLING_BLIGHT_EGG = BLOCKS.register("crawling_blight_egg",
() -> new CrawlingBlightEggBlock(BlockBehaviour.Properties.copy(Blocks.TURTLE_EGG)));
public static final DeferredBlock<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 DeferredBlock<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 DeferredBlock<JumpyBugEggBlock> JUMPY_BUG_EGG = BLOCKS.register("springbug_egg",
() -> new JumpyBugEggBlock(BlockBehaviour.Properties.copy(Blocks.TURTLE_EGG)));
public static final DeferredBlock<SpringbugEggBlock> SPRINGBUG_EGG = BLOCKS.register("springbug_egg",
() -> new SpringbugEggBlock(BlockBehaviour.Properties.copy(Blocks.TURTLE_EGG)));
public static final DeferredBlock<SpitBugEggBlock> SPIT_BUG_EGG = BLOCKS.register("spit_bug_egg",
@@ -713,8 +989,8 @@ public final class AntarchyFabricBlocks {
() -> new JerryEggBlock(BlockBehaviour.Properties.copy(Blocks.TURTLE_EGG).randomTicks()));
public static final DeferredBlock<LurkingTerrorEggBlock> LURKING_TERROR_EGG = BLOCKS.register("skulking_fright_egg",
() -> new LurkingTerrorEggBlock(BlockBehaviour.Properties.copy(Blocks.TURTLE_EGG)));
public static final DeferredBlock<SkulkingFrightEggBlock> SKULKING_FRIGHT_EGG = BLOCKS.register("skulking_fright_egg",
() -> new SkulkingFrightEggBlock(BlockBehaviour.Properties.copy(Blocks.TURTLE_EGG)));
static {
@@ -792,6 +1068,11 @@ public final class AntarchyFabricBlocks {
public static final DeferredBlock<AntNestBlock> TERMITE_NEST = BLOCKS.register("termite_nest",
() -> new AntNestBlock(AntarchyFabricEntities.TERMITE, AntarchyFabricBlocks::antNestBlockEntityType, BlockBehaviour.Properties.copy(Blocks.DIRT).noLootTable()));
public static final DeferredBlock<com.craisinlord.antarchy.content.block.AntTrapBlock> ANT_TRAP = BLOCKS.register("ant_trap",
() -> new com.craisinlord.antarchy.content.block.AntTrapBlock(
() -> java.util.List.of(AntarchyFabricEntities.RED_ANT.get(), AntarchyFabricEntities.BROWN_ANT.get(), AntarchyFabricEntities.RAINBOW_ANT.get(), AntarchyFabricEntities.TERMITE.get()),
AntarchyFabricBlocks::antNestBlockEntityType, BlockBehaviour.Properties.copy(Blocks.OAK_PRESSURE_PLATE).noOcclusion()));
public static final DeferredBlock<Block> URANIUM_ORE = BLOCKS.register("uranium_ore",
() -> createOre(Blocks.EMERALD_ORE, 4, 8, MapColor.COLOR_YELLOW));
@@ -819,6 +1100,9 @@ public final class AntarchyFabricBlocks {
public static final DeferredBlock<BluestoneBlock> BLUESTONE_BLOCK = BLOCKS.register("bluestone_block",
() -> new BluestoneBlock(BlockBehaviour.Properties.copy(Blocks.REDSTONE_BLOCK).mapColor(MapColor.COLOR_BLUE)));
public static final DeferredBlock<VortexLensBlock> VORTEX_LENS = BLOCKS.register("vortex_lens",
() -> new VortexLensBlock(AntarchyFabricBlocks::vortexLensBlockEntityType,
BlockBehaviour.Properties.copy(Blocks.COPPER_BLOCK).mapColor(MapColor.COLOR_GREEN).strength(3.0F, 6.0F).requiresCorrectToolForDrops().noOcclusion()));
public static final DeferredBlock<BluestoneRepeaterBlock> BLUESTONE_REPEATER = BLOCKS.register("bluestone_repeater",
() -> new BluestoneRepeaterBlock(BlockBehaviour.Properties.copy(Blocks.REPEATER).mapColor(MapColor.COLOR_BLUE).noCollission()));
public static final DeferredBlock<BluestoneComparatorBlock> BLUESTONE_COMPARATOR = BLOCKS.register("bluestone_comparator",
@@ -829,6 +1113,10 @@ public final class AntarchyFabricBlocks {
() -> new BluestoneLampBlock(BlockBehaviour.Properties.copy(Blocks.REDSTONE_LAMP).mapColor(MapColor.COLOR_BLUE)));
public static final DeferredBlock<Block> TIGERS_EYE_BLOCK = BLOCKS.register("tigers_eye_block",
() -> createStorageBlock(Blocks.EMERALD_BLOCK, MapColor.COLOR_ORANGE));
public static final DeferredBlock<Block> URANIUM_BLOCK = BLOCKS.register("uranium_block",
() -> createStorageBlock(Blocks.EMERALD_BLOCK, MapColor.COLOR_YELLOW));
@@ -910,23 +1198,23 @@ public final class AntarchyFabricBlocks {
public static final DeferredBlock<net.minecraft.world.level.block.RotatedPillarBlock> ANTIMETAL = BLOCKS.register("antimetal",
() -> new net.minecraft.world.level.block.RotatedPillarBlock(BlockBehaviour.Properties.copy(Blocks.BASALT)));
() -> new net.minecraft.world.level.block.RotatedPillarBlock(BlockBehaviour.Properties.copy(Blocks.BASALT).sound(antimetalSoundType())));
public static final DeferredBlock<net.minecraft.world.level.block.RotatedPillarBlock> POLISHED_ANTIMETAL = BLOCKS.register("polished_antimetal",
() -> new net.minecraft.world.level.block.RotatedPillarBlock(BlockBehaviour.Properties.copy(Blocks.POLISHED_BASALT)));
() -> new net.minecraft.world.level.block.RotatedPillarBlock(BlockBehaviour.Properties.copy(Blocks.POLISHED_BASALT).sound(antimetalSoundType())));
public static final DeferredBlock<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 DeferredBlock<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 DeferredBlock<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 DeferredBlock<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 DeferredBlock<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 DeferredBlock<com.craisinlord.antarchy.content.block.AntimetalRailBlock> ANTIMETAL_RAIL = BLOCKS.register("antimetal_rail",
@@ -1014,12 +1302,26 @@ public final class AntarchyFabricBlocks {
() -> new AntigravelBlock(BlockBehaviour.Properties.copy(Blocks.GRAVEL)));
public static final DeferredBlock<Block> LOAM = BLOCKS.register("loam",
() -> new Block(BlockBehaviour.Properties.copy(Blocks.MUD)));
public static final DeferredBlock<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 DeferredBlock<Block> PACKED_LOAM = BLOCKS.register("packed_loam",
() -> new Block(BlockBehaviour.Properties.copy(Blocks.PACKED_MUD)));
public static final DeferredBlock<Block> LOAM_BRICKS = BLOCKS.register("loam_bricks",
() -> new Block(BlockBehaviour.Properties.copy(Blocks.MUD_BRICKS)));
public static final DeferredBlock<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 DeferredBlock<SlabBlock> LOAM_BRICK_SLAB = BLOCKS.register("loam_brick_slab",
() -> new SlabBlock(BlockBehaviour.Properties.copy(Blocks.MUD_BRICK_SLAB)));
public static final DeferredBlock<WallBlock> LOAM_BRICK_WALL = BLOCKS.register("loam_brick_wall",
() -> new WallBlock(BlockBehaviour.Properties.copy(Blocks.MUD_BRICK_WALL)));
public static final DeferredBlock<Block> CHISELED_LOAM_BRICKS = BLOCKS.register("chiseled_loam_bricks",
() -> new Block(BlockBehaviour.Properties.copy(Blocks.MUD_BRICKS)));
public static final DeferredBlock<Block> DREAM_SANDSTONE = BLOCKS.register("dream_sandstone",
() -> new Block(BlockBehaviour.Properties.copy(Blocks.SANDSTONE)));
public static final DeferredBlock<com.craisinlord.antarchy.content.block.MucusBlock> MUCUS = BLOCKS.register("mucus",
() -> new com.craisinlord.antarchy.content.block.MucusBlock(BlockBehaviour.Properties.copy(Blocks.GLOW_LICHEN).friction(0.995F).lightLevel(state -> 0).sound(SoundType.SLIME_BLOCK)));
public static final DeferredBlock<DreamSandstoneBlock> DREAM_SANDSTONE = BLOCKS.register("dream_sandstone",
() -> new DreamSandstoneBlock(BlockBehaviour.Properties.copy(Blocks.SANDSTONE)));
public static final DeferredBlock<Block> CHISELED_DREAM_SANDSTONE = BLOCKS.register("chiseled_dream_sandstone",
@@ -1058,6 +1360,58 @@ public final class AntarchyFabricBlocks {
() -> new net.minecraft.world.level.block.SlabBlock(BlockBehaviour.Properties.copy(Blocks.CUT_SANDSTONE_SLAB)));
public static final DeferredBlock<Block> TYPHONITE = BLOCKS.register("typhonite",
() -> new Block(BlockBehaviour.Properties.copy(Blocks.BLACKSTONE)));
public static final DeferredBlock<DirectionalNyxiumBlock> NADIR_NYXIUM = BLOCKS.register("nadir_nyxium",
() -> new DirectionalNyxiumBlock(nyxiteProperties(), DirectionalNyxiumBlock.Type.NADIR));
public static final DeferredBlock<DirectionalNyxiumBlock> VERDANT_NYXIUM = BLOCKS.register("verdant_nyxium",
() -> new DirectionalNyxiumBlock(nyxiteProperties(), DirectionalNyxiumBlock.Type.VERDANT));
public static final DeferredBlock<RotatedPillarBlock> TYPHONITE_PILLAR = BLOCKS.register("typhonite_pillar",
() -> new RotatedPillarBlock(BlockBehaviour.Properties.copy(Blocks.BLACKSTONE)));
public static final DeferredBlock<Block> TYPHONITE_BRICKS = BLOCKS.register("typhonite_bricks",
() -> new Block(BlockBehaviour.Properties.copy(Blocks.BLACKSTONE)));
public static final DeferredBlock<Block> CHISELED_TYPHONITE = BLOCKS.register("chiseled_typhonite",
() -> new Block(BlockBehaviour.Properties.copy(Blocks.BLACKSTONE)));
public static final DeferredBlock<Block> POLISHED_TYPHONITE = BLOCKS.register("polished_typhonite",
() -> new Block(BlockBehaviour.Properties.copy(Blocks.BLACKSTONE)));
public static final DeferredBlock<Block> VEINED_TYPHONITE = BLOCKS.register("veined_typhonite",
() -> new Block(BlockBehaviour.Properties.copy(Blocks.BLACKSTONE).lightLevel(state -> 8)));
public static final DeferredBlock<TyphoniteSpikeBlock> TYPHONITE_SPIKE = BLOCKS.register("typhonite_spike",
() -> new TyphoniteSpikeBlock(BlockBehaviour.Properties.copy(Blocks.POINTED_DRIPSTONE)));
public static final DeferredBlock<StairBlock> TYPHONITE_STAIRS = BLOCKS.register("typhonite_stairs",
() -> new StairBlock(TYPHONITE.get().defaultBlockState(), BlockBehaviour.Properties.copy(Blocks.BLACKSTONE_STAIRS)));
public static final DeferredBlock<SlabBlock> TYPHONITE_SLAB = BLOCKS.register("typhonite_slab",
() -> new SlabBlock(BlockBehaviour.Properties.copy(Blocks.BLACKSTONE_SLAB)));
public static final DeferredBlock<WallBlock> TYPHONITE_WALL = BLOCKS.register("typhonite_wall",
() -> new WallBlock(BlockBehaviour.Properties.copy(Blocks.BLACKSTONE_WALL)));
public static final DeferredBlock<StairBlock> TYPHONITE_BRICK_STAIRS = BLOCKS.register("typhonite_brick_stairs",
() -> new StairBlock(TYPHONITE_BRICKS.get().defaultBlockState(), BlockBehaviour.Properties.copy(Blocks.BLACKSTONE_STAIRS)));
public static final DeferredBlock<SlabBlock> TYPHONITE_BRICK_SLAB = BLOCKS.register("typhonite_brick_slab",
() -> new SlabBlock(BlockBehaviour.Properties.copy(Blocks.BLACKSTONE_SLAB)));
public static final DeferredBlock<WallBlock> TYPHONITE_BRICK_WALL = BLOCKS.register("typhonite_brick_wall",
() -> new WallBlock(BlockBehaviour.Properties.copy(Blocks.BLACKSTONE_WALL)));
public static final DeferredBlock<StairBlock> POLISHED_TYPHONITE_STAIRS = BLOCKS.register("polished_typhonite_stairs",
() -> new StairBlock(POLISHED_TYPHONITE.get().defaultBlockState(), BlockBehaviour.Properties.copy(Blocks.BLACKSTONE_STAIRS)));
public static final DeferredBlock<SlabBlock> POLISHED_TYPHONITE_SLAB = BLOCKS.register("polished_typhonite_slab",
() -> new SlabBlock(BlockBehaviour.Properties.copy(Blocks.BLACKSTONE_SLAB)));
public static final DeferredBlock<WallBlock> POLISHED_TYPHONITE_WALL = BLOCKS.register("polished_typhonite_wall",
() -> new WallBlock(BlockBehaviour.Properties.copy(Blocks.BLACKSTONE_WALL)));
public static final DeferredBlock<SpiralingVinesBlock> SPIRALING_VINES = BLOCKS.register("spiraling_vines",
() -> new SpiralingVinesBlock(BlockBehaviour.Properties.copy(Blocks.TWISTING_VINES)));
public static final DeferredBlock<GorevineBlock> GOREVINE = BLOCKS.register("gorevine",
() -> new GorevineBlock(BlockBehaviour.Properties.copy(Blocks.WEEPING_VINES).lightLevel(state -> 4)));
public static final DeferredBlock<WhirlflowerBlock> WHIRLFLOWER = BLOCKS.register("whirlflower",
() -> new WhirlflowerBlock(BlockBehaviour.Properties.copy(Blocks.ALLIUM)));
public static final DeferredBlock<NadirFernBlock> NADIR_FERN = BLOCKS.register("nadir_fern",
() -> new NadirFernBlock(BlockBehaviour.Properties.copy(Blocks.FERN)));
public static final DeferredBlock<LargeNadirFernBlock> LARGE_NADIR_FERN = BLOCKS.register("large_nadir_fern",
() -> new LargeNadirFernBlock(BlockBehaviour.Properties.copy(Blocks.LARGE_FERN).noCollission()));
public static final DeferredBlock<DirectionalThoraxisFlowerBlock> DUSKBELL = BLOCKS.register("duskbell",
() -> new DirectionalThoraxisFlowerBlock(BlockBehaviour.Properties.copy(Blocks.ALLIUM).lightLevel(state -> 4)));
public static final DeferredBlock<DirectionalThoraxisFlowerBlock> NADIR_ROOTS = BLOCKS.register("nadir_roots",
() -> new DirectionalThoraxisFlowerBlock(BlockBehaviour.Properties.copy(Blocks.CRIMSON_ROOTS)));
public static final DeferredBlock<DirectionalThoraxisFlowerBlock> VERDANT_ROOTS = BLOCKS.register("verdant_roots",
() -> new DirectionalThoraxisFlowerBlock(BlockBehaviour.Properties.copy(Blocks.WARPED_ROOTS)));
public static final DeferredBlock<Block> DEAD_STAR_CORAL_BLOCK = BLOCKS.register("dead_star_coral_block",
() -> new Block(BlockBehaviour.Properties.copy(Blocks.TUBE_CORAL_BLOCK)));
@@ -1089,16 +1443,12 @@ public final class AntarchyFabricBlocks {
public static final DeferredBlock<StarCoralWallFanBlock> STAR_CORAL_WALL_FAN = BLOCKS.register("star_coral_wall_fan",
() -> new StarCoralWallFanBlock(DEAD_STAR_CORAL_WALL_FAN.get(), BlockBehaviour.Properties.copy(Blocks.TUBE_CORAL_WALL_FAN).lightLevel(state -> 8)));
public static final DeferredBlock<UndertrialSpawnerBlock> UNDERTRIAL_SPAWNER = BLOCKS.register("undertrial_spawner",
() -> new UndertrialSpawnerBlock(AntarchyFabricBlocks::undertrialSpawnerBlockEntityType,
BlockBehaviour.Properties.copy(Blocks.OBSIDIAN).noOcclusion()));
public static final DeferredBlock<UnderVaultBlock> UNDERVAULT = BLOCKS.register("undervault",
() -> new UnderVaultBlock(AntarchyFabricBlocks::underVaultBlockEntityType,
BlockBehaviour.Properties.copy(Blocks.OBSIDIAN).noOcclusion()));
public static final DeferredBlock<QueenTrailSpawnMarkerBlock> QUEEN_TRAIL_SPAWN_MARKER = BLOCKS.register("queen_trail_spawn_marker",
() -> new QueenTrailSpawnMarkerBlock(AntarchyFabricBlocks::queenTrailSpawnMarkerBlockEntityType,
BlockBehaviour.Properties.of().noCollission().noOcclusion().noLootTable().strength(-1.0F)));
public static final DeferredHolder<BlockEntityType<?>, 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 DeferredHolder<BlockEntityType<?>, BlockEntityType<AntNestBlockEntity>> ANT_NEST_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("ant_nest",
() -> BlockEntityType.Builder.of(
@@ -1106,7 +1456,8 @@ public final class AntarchyFabricBlocks {
RED_ANT_NEST.get(),
BROWN_ANT_NEST.get(),
RAINBOW_ANT_NEST.get(),
TERMITE_NEST.get()
TERMITE_NEST.get(),
ANT_TRAP.get()
).build(null));
@@ -1161,27 +1512,35 @@ public final class AntarchyFabricBlocks {
(pos, state) -> new UpperBlockEntity(pos, state, AntarchyFabricBlocks::upperBlockEntityType),
UPPER.get()
).build(null));
public static final DeferredHolder<BlockEntityType<?>, BlockEntityType<UndertrialSpawnerBlockEntity>> UNDERTRIAL_SPAWNER_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("undertrial_spawner",
() -> BlockEntityType.Builder.of((pos, state) -> new UndertrialSpawnerBlockEntity(pos, state, AntarchyFabricBlocks::undertrialSpawnerBlockEntityType),
UNDERTRIAL_SPAWNER.get()).build(null));
public static final DeferredHolder<BlockEntityType<?>, BlockEntityType<UnderVaultBlockEntity>> UNDERVAULT_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("undervault",
() -> BlockEntityType.Builder.of((pos, state) -> new UnderVaultBlockEntity(pos, state, AntarchyFabricBlocks::underVaultBlockEntityType),
UNDERVAULT.get()).build(null));
public static final DeferredHolder<BlockEntityType<?>, BlockEntityType<VortexLensBlockEntity>> VORTEX_LENS_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("vortex_lens",
() -> BlockEntityType.Builder.of(
(pos, state) -> new VortexLensBlockEntity(pos, state, AntarchyFabricBlocks::vortexLensBlockEntityType),
VORTEX_LENS.get()
).build(null));
public static final DeferredHolder<BlockEntityType<?>, 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, AntarchyFabricBlocks::portalGunPortalMasterBlockEntityType),
PORTAL_GUN_PORTAL_MASTER.get()
).build(null));
public static final DeferredHolder<BlockEntityType<?>, 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, AntarchyFabricBlocks::portalGunPortalBaseBlockEntityType),
PORTAL_GUN_PORTAL_BASE.get()
).build(null));
public static final DeferredHolder<BlockEntityType<?>, BlockEntityType<DimensionalTearMarkerBlockEntity>> DIMENSIONAL_TEAR_MARKER_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("dimensional_tear_marker",
() -> BlockEntityType.Builder.of(
(pos, state) -> new DimensionalTearMarkerBlockEntity(pos, state, AntarchyFabricBlocks::dimensionalTearMarkerBlockEntityType),
DIMENSIONAL_TEAR_MARKER.get()
).build(null));
public static final DeferredHolder<BlockEntityType<?>, 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, AntarchyFabricBlocks::queenTrailSpawnMarkerBlockEntityType),
QUEEN_TRAIL_SPAWN_MARKER.get()).build(null));
private static BlockEntityType<UndertrialSpawnerBlockEntity> undertrialSpawnerBlockEntityType() {
return UNDERTRIAL_SPAWNER_BLOCK_ENTITY.get();
}
private static BlockEntityType<UnderVaultBlockEntity> underVaultBlockEntityType() {
return UNDERVAULT_BLOCK_ENTITY.get();
}
private static BlockEntityType<QueenTrailSpawnMarkerBlockEntity> queenTrailSpawnMarkerBlockEntityType() {
return QUEEN_TRAIL_SPAWN_MARKER_BLOCK_ENTITY.get();
}
() -> BlockEntityType.Builder.of(
(pos, state) -> new QueenTrailSpawnMarkerBlockEntity(pos, state, AntarchyFabricBlocks::queenTrailSpawnMarkerBlockEntityType),
QUEEN_TRAIL_SPAWN_MARKER.get()
).build(null));
public static final DeferredHolder<BlockEntityType<?>, BlockEntityType<UndertrialSpawnerBlockEntity>> UNDERTRIAL_SPAWNER_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("undertrial_spawner",
() -> BlockEntityType.Builder.of((pos, state) -> new UndertrialSpawnerBlockEntity(pos, state, AntarchyFabricBlocks::undertrialSpawnerBlockEntityType), UNDERTRIAL_SPAWNER.get()).build(null));
public static final DeferredHolder<BlockEntityType<?>, BlockEntityType<UnderVaultBlockEntity>> UNDERVAULT_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("undervault",
() -> BlockEntityType.Builder.of((pos, state) -> new UnderVaultBlockEntity(pos, state, AntarchyFabricBlocks::underVaultBlockEntityType), UNDERVAULT.get()).build(null));
@@ -1213,6 +1572,34 @@ public final class AntarchyFabricBlocks {
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 BlockEntityType<UndertrialSpawnerBlockEntity> undertrialSpawnerBlockEntityType() {
return UNDERTRIAL_SPAWNER_BLOCK_ENTITY.get();
}
private static BlockEntityType<UnderVaultBlockEntity> underVaultBlockEntityType() {
return UNDERVAULT_BLOCK_ENTITY.get();
}
private static Block smallBloodCrystalBudBlock() {
@@ -1342,9 +1729,38 @@ public final class AntarchyFabricBlocks {
}
private static SoundType antimetalSoundType() {
return new SoundType(1.0F, 1.0F,
AntarchyFabricSounds.ANTIMETAL_PLACE.get(),
AntarchyFabricSounds.ANTIMETAL_STEP.get(),
AntarchyFabricSounds.ANTIMETAL_PLACE.get(),
AntarchyFabricSounds.ANTIMETAL_STEP.get(),
AntarchyFabricSounds.ANTIMETAL_PLACE.get());
}
private static SoundType antimetalScaffoldingSoundType() {
SoundEvent scaffold = AntarchyFabricSounds.ANTIMETAL_SCAFFOLD.get();
return new SoundType(1.0F, 1.0F, scaffold, scaffold, scaffold, scaffold, scaffold);
}
public static void register() {
BLOCKS.register();
BLOCK_ENTITY_TYPES.register();
}
public static void registerStripping() {
StrippableBlockRegistry.register(OURANWOOD_LOG.get(), STRIPPED_OURANWOOD_LOG.get());
StrippableBlockRegistry.register(OURANWOOD_WOOD.get(), STRIPPED_OURANWOOD_WOOD.get());
StrippableBlockRegistry.register(PEACH_LOG.get(), STRIPPED_PEACH_LOG.get());
StrippableBlockRegistry.register(PEACH_WOOD.get(), STRIPPED_PEACH_WOOD.get());
StrippableBlockRegistry.register(NADIR_LOG.get(), STRIPPED_NADIR_LOG.get());
StrippableBlockRegistry.register(NADIR_WOOD.get(), STRIPPED_NADIR_WOOD.get());
StrippableBlockRegistry.register(ROYAL_LOG.get(), STRIPPED_ROYAL_LOG.get());
StrippableBlockRegistry.register(ROYAL_WOOD.get(), STRIPPED_ROYAL_WOOD.get());
StrippableBlockRegistry.register(TRUFFALO_LOG.get(), STRIPPED_TRUFFALO_LOG.get());
StrippableBlockRegistry.register(TRUFFALO_WOOD.get(), STRIPPED_TRUFFALO_WOOD.get());
}
}
@@ -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.ButterflyEntity;
import com.craisinlord.antarchy.content.entity.CaterpillarEntity;
@@ -19,16 +19,23 @@ import com.craisinlord.antarchy.content.entity.MissileSquidEntity;
import com.craisinlord.antarchy.content.entity.lucid.LucidEntity;
import com.craisinlord.antarchy.content.entity.lucid.LucidBoltEntity;
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.HushProjectileEntity;
import com.craisinlord.antarchy.content.entity.CritterCageProjectileEntity;
import com.craisinlord.antarchy.content.entity.JumpyBugEntity;
import com.craisinlord.antarchy.content.entity.WormHookProjectileEntity;
import com.craisinlord.antarchy.content.entity.SpringbugEntity;
import com.craisinlord.antarchy.content.entity.StinkBugEntity;
import com.craisinlord.antarchy.content.entity.NadirBoatEntity;
import com.craisinlord.antarchy.content.entity.NadirChestBoatEntity;
import com.craisinlord.antarchy.content.entity.HoverboardEntity;
import com.craisinlord.antarchy.content.entity.OuranwoodBoatEntity;
import com.craisinlord.antarchy.content.entity.OuranwoodChestBoatEntity;
import com.craisinlord.antarchy.content.entity.portal.DimensionalTearEntity;
import com.craisinlord.antarchy.content.time.TimeDilationFieldEntity;
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.AlphaMantisEntity;
import com.craisinlord.antarchy.content.entity.MantisEntity;
import com.craisinlord.antarchy.content.entity.RollyPollyEntity;
@@ -36,8 +43,11 @@ import com.craisinlord.antarchy.content.entity.basilisk.BasiliskEntity;
import com.craisinlord.antarchy.content.entity.EmperorScorpionEntity;
import com.craisinlord.antarchy.content.entity.ScorpionEntity;
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.portalgun.PortalGunPortalEntity;
import com.craisinlord.antarchy.content.portalgun.PortalGunProjectileEntity;
import com.craisinlord.antarchy.content.entity.ToreterrorEntity;
import com.craisinlord.antarchy.content.entity.WaterBombEntity;
import com.craisinlord.antarchy.content.entity.kraken.KrakenEntity;
@@ -46,9 +56,10 @@ import com.craisinlord.antarchy.content.entity.kraken.TentacleEntity;
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.BomberEntity;
import com.craisinlord.antarchy.content.entity.SizeRayProjectileEntity;
import com.craisinlord.antarchy.content.entity.TriffidEntity;
import com.craisinlord.antarchy.content.entity.FlytrapEntity;
import com.craisinlord.antarchy.content.entity.WaspEntity;
import com.craisinlord.antarchy.content.entity.ant.BaseAntEntity;
import com.craisinlord.antarchy.content.entity.ant.BrownAntEntity;
@@ -87,11 +98,23 @@ public final class AntarchyFabricEntities {
.build("rolly_polly"));
public static final DeferredHolder<EntityType<?>, 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 DeferredHolder<EntityType<?>, EntityType<MolewormEntity>> MOLEWORM = ENTITY_TYPES.register("moleworm",
() -> EntityType.Builder.of(MolewormEntity::new, MobCategory.MONSTER)
.sized(0.4F, 0.3F)
.clientTrackingRange(8)
.build("moleworm"));
public static final DeferredHolder<EntityType<?>, 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 DeferredHolder<EntityType<?>, EntityType<MantisEntity>> MANTIS = ENTITY_TYPES.register("mantis",
@@ -156,6 +179,38 @@ public final class AntarchyFabricEntities {
.build("nadir_chest_boat"));
public static final DeferredHolder<EntityType<?>, 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 DeferredHolder<EntityType<?>, 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 DeferredHolder<EntityType<?>, 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 DeferredHolder<EntityType<?>, 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 DeferredHolder<EntityType<?>, EntityType<MolevoreEntity>> MOLEVORE = ENTITY_TYPES.register("molevore",
() -> EntityType.Builder.of(MolevoreEntity::new, MobCategory.MONSTER)
.sized(1.95F, 1.1F)
@@ -163,8 +218,8 @@ public final class AntarchyFabricEntities {
.build("molevore"));
public static final DeferredHolder<EntityType<?>, EntityType<TriffidEntity>> TRIFFID = ENTITY_TYPES.register("flytrap",
() -> EntityType.Builder.of(TriffidEntity::new, MobCategory.MONSTER)
public static final DeferredHolder<EntityType<?>, EntityType<FlytrapEntity>> FLYTRAP = ENTITY_TYPES.register("flytrap",
() -> EntityType.Builder.of(FlytrapEntity::new, MobCategory.MONSTER)
.sized(2.0F, 5.0F)
.clientTrackingRange(10)
.build("flytrap"));
@@ -198,8 +253,8 @@ public final class AntarchyFabricEntities {
.build("bomber"));
public static final DeferredHolder<EntityType<?>, EntityType<JumpyBugEntity>> JUMPY_BUG = ENTITY_TYPES.register("springbug",
() -> EntityType.Builder.of(JumpyBugEntity::new, MobCategory.MONSTER)
public static final DeferredHolder<EntityType<?>, EntityType<SpringbugEntity>> SPRINGBUG = ENTITY_TYPES.register("springbug",
() -> EntityType.Builder.of(SpringbugEntity::new, MobCategory.MONSTER)
.sized(3.0F, 6.0F)
.clientTrackingRange(8)
.build("springbug"));
@@ -305,8 +360,8 @@ public final class AntarchyFabricEntities {
.build("dr_trayaurus"));
public static final DeferredHolder<EntityType<?>, EntityType<CloudSharkEntity>> CLOUD_SHARK = ENTITY_TYPES.register("stratoshark",
() -> EntityType.Builder.of(CloudSharkEntity::new, MobCategory.MONSTER)
public static final DeferredHolder<EntityType<?>, EntityType<StratosharkEntity>> STRATOSHARK = ENTITY_TYPES.register("stratoshark",
() -> EntityType.Builder.of(StratosharkEntity::new, MobCategory.MONSTER)
.sized(2.4F, 0.9F)
.clientTrackingRange(10)
.build("stratoshark"));
@@ -319,16 +374,6 @@ public final class AntarchyFabricEntities {
.build("kraken"));
public static final DeferredHolder<EntityType<?>, EntityType<com.craisinlord.antarchy.fabric.entity.multipart.MultipartPartEntity>> KRAKEN_PART = ENTITY_TYPES.register("kraken_part",
() -> EntityType.Builder.<com.craisinlord.antarchy.fabric.entity.multipart.MultipartPartEntity>of(
com.craisinlord.antarchy.fabric.entity.multipart.MultipartPartEntity::new,
MobCategory.MISC
)
.sized(1.0F, 1.0F)
.clientTrackingRange(12)
.updateInterval(1)
.build("kraken_part"));
public static final DeferredHolder<EntityType<?>, EntityType<MissileSquidEntity>> MISSILE_SQUID = ENTITY_TYPES.register("missile_squid",
() -> EntityType.Builder.of(MissileSquidEntity::new, MobCategory.MONSTER)
@@ -357,6 +402,27 @@ public final class AntarchyFabricEntities {
.updateInterval(1)
.build("nightmare_portal"));
public static final DeferredHolder<EntityType<?>, 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 DeferredHolder<EntityType<?>, 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 DeferredHolder<EntityType<?>, 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 DeferredHolder<EntityType<?>, EntityType<NightmareBiteEntity>> NIGHTMARE_BITE = ENTITY_TYPES.register("nightmare_bite",
() -> EntityType.Builder.of(NightmareBiteEntity::new, MobCategory.MISC)
.sized(2.5F, 2.0F)
@@ -371,6 +437,37 @@ public final class AntarchyFabricEntities {
.clientTrackingRange(10)
.build("lucid"));
public static final DeferredHolder<EntityType<?>, 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 DeferredHolder<EntityType<?>, 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 DeferredHolder<EntityType<?>, 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 DeferredHolder<EntityType<?>, 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 DeferredHolder<EntityType<?>, EntityType<LucidBoltEntity>> LUCID_BOLT = ENTITY_TYPES.register("lucid_bolt",
() -> EntityType.Builder.<LucidBoltEntity>of(LucidBoltEntity::new, MobCategory.MISC)
@@ -398,6 +495,7 @@ public final class AntarchyFabricEntities {
() -> EntityType.Builder.of(ScorpionEntity::new, MobCategory.MONSTER)
.sized(1.5F, 1.0F)
.clientTrackingRange(8)
.fireImmune()
.build("scorpion"));
@@ -412,6 +510,7 @@ public final class AntarchyFabricEntities {
() -> EntityType.Builder.of(EmperorScorpionEntity::new, MobCategory.MONSTER)
.sized(6.0F, 3.0F)
.clientTrackingRange(12)
.fireImmune()
.build("emperor_scorpion"));
@@ -421,12 +520,24 @@ public final class AntarchyFabricEntities {
.clientTrackingRange(8)
.updateInterval(1)
.build("lucid_pearl_projectile"));
public static final DeferredHolder<EntityType<?>, 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 DeferredHolder<EntityType<?>, 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 DeferredHolder<EntityType<?>, 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 DeferredHolder<EntityType<?>, EntityType<HushProjectileEntity>> HUSH_PROJECTILE = ENTITY_TYPES.register("hush_projectile",
@@ -454,29 +565,6 @@ public final class AntarchyFabricEntities {
.build("upward_falling_block"));
public static final DeferredHolder<EntityType<?>, 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 DeferredHolder<EntityType<?>, 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 DeferredHolder<EntityType<?>, 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 DeferredHolder<EntityType<?>, EntityType<ToreterrorEntity>> TORETERROR = ENTITY_TYPES.register("toreterror",
() -> EntityType.Builder.of(ToreterrorEntity::new, MobCategory.MONSTER)
.sized(2.0F, 3.0F)
@@ -493,19 +581,26 @@ public final class AntarchyFabricEntities {
public static final DeferredHolder<EntityType<?>, EntityType<com.craisinlord.antarchy.content.entity.CreepingHorrorEntity>> CREEPING_HORROR = ENTITY_TYPES.register("crawling_blight",
() -> EntityType.Builder.of(com.craisinlord.antarchy.content.entity.CreepingHorrorEntity::new, MobCategory.MONSTER)
public static final DeferredHolder<EntityType<?>, EntityType<com.craisinlord.antarchy.content.entity.CrawlingBlightEntity>> CRAWLING_BLIGHT = ENTITY_TYPES.register("crawling_blight",
() -> EntityType.Builder.of(com.craisinlord.antarchy.content.entity.CrawlingBlightEntity::new, MobCategory.MONSTER)
.sized(1.3F, 1.5F)
.clientTrackingRange(10)
.build("crawling_blight"));
public static final DeferredHolder<EntityType<?>, EntityType<com.craisinlord.antarchy.content.entity.LurkingTerrorEntity>> LURKING_TERROR = ENTITY_TYPES.register("skulking_fright",
() -> EntityType.Builder.of(com.craisinlord.antarchy.content.entity.LurkingTerrorEntity::new, MobCategory.MONSTER)
public static final DeferredHolder<EntityType<?>, EntityType<com.craisinlord.antarchy.content.entity.SkulkingFrightEntity>> SKULKING_FRIGHT = ENTITY_TYPES.register("skulking_fright",
() -> EntityType.Builder.of(com.craisinlord.antarchy.content.entity.SkulkingFrightEntity::new, MobCategory.MONSTER)
.sized(1.3F, 1.5F)
.clientTrackingRange(10)
.build("skulking_fright"));
public static final DeferredHolder<EntityType<?>, EntityType<com.craisinlord.antarchy.content.entity.ManticoreEntity>> MANTICORE = ENTITY_TYPES.register("manticore",
() -> EntityType.Builder.of(com.craisinlord.antarchy.content.entity.ManticoreEntity::new, MobCategory.MONSTER)
.sized(1.95F, 2.75F)
.clientTrackingRange(10)
.fireImmune()
.build("manticore"));
public static final DeferredHolder<EntityType<?>, EntityType<com.craisinlord.antarchy.content.entity.JerryEntity>> JERRY = ENTITY_TYPES.register("jerry",
() -> EntityType.Builder.of(com.craisinlord.antarchy.content.entity.JerryEntity::new, MobCategory.MONSTER)
@@ -535,6 +630,53 @@ public final class AntarchyFabricEntities {
.clientTrackingRange(12)
.build("hercules_beetle"));
public static final DeferredHolder<EntityType<?>, 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 DeferredHolder<EntityType<?>, 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 DeferredHolder<EntityType<?>, 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 DeferredHolder<EntityType<?>, 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 DeferredHolder<EntityType<?>, 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 DeferredHolder<EntityType<?>, 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 DeferredHolder<EntityType<?>, 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 DeferredHolder<EntityType<?>, EntityType<com.craisinlord.antarchy.content.entity.OuranwoodDeerEntity>> OURANWOOD_DEER = ENTITY_TYPES.register("ouranwood_deer",
() -> EntityType.Builder.of(com.craisinlord.antarchy.content.entity.OuranwoodDeerEntity::new, MobCategory.CREATURE)
@@ -1,7 +1,7 @@
package com.craisinlord.antarchy.fabric.registry;
import com.craisinlord.antarchy.config.AntarchySettings;
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.ButterflyEntity;
import com.craisinlord.antarchy.content.entity.CaterpillarEntity;
@@ -10,7 +10,7 @@ import com.craisinlord.antarchy.content.entity.flying_squirrel.FlyingSquirrelEnt
import com.craisinlord.antarchy.content.entity.ReverieEntity;
import com.craisinlord.antarchy.content.entity.MissileSquidEntity;
import com.craisinlord.antarchy.content.entity.lucid.LucidEntity;
import com.craisinlord.antarchy.content.entity.JumpyBugEntity;
import com.craisinlord.antarchy.content.entity.SpringbugEntity;
import com.craisinlord.antarchy.content.entity.StinkBugEntity;
import com.craisinlord.antarchy.content.entity.AlphaMantisEntity;
import com.craisinlord.antarchy.content.entity.MantisEntity;
@@ -26,8 +26,9 @@ 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.BomberEntity;
import com.craisinlord.antarchy.content.entity.TriffidEntity;
import com.craisinlord.antarchy.content.entity.FlytrapEntity;
import com.craisinlord.antarchy.content.entity.WaspEntity;
import com.craisinlord.antarchy.content.entity.WormEntity;
import net.fabricmc.fabric.api.object.builder.v1.entity.FabricDefaultAttributeRegistry;
import net.minecraft.world.entity.ai.attributes.AttributeSupplier;
import net.minecraft.world.entity.ai.attributes.Attributes;
@@ -51,7 +52,7 @@ public final class AntarchyFabricEntityAttributes {
FabricDefaultAttributeRegistry.register(
net.minecraft.world.entity.EntityType.PLAYER,
net.minecraft.world.entity.player.Player.createAttributes()
.add(AntarchyFabricMisc.SCALE.get())
.add(AntarchyFabricMisc.ENTITY_INTERACTION_RANGE.get())
.add(AntarchyFabricMisc.DOUBLE_DAMAGE_CHANCE.get())
.add(AntarchyFabricMisc.BLOODGLASS_MAX_HEARTS.get())
.build()
@@ -70,7 +71,7 @@ public final class AntarchyFabricEntityAttributes {
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.GOLDEN_APPLE_COW.get(), cowAttributes);
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.ENCHANTED_GOLDEN_APPLE_COW.get(), cowAttributes);
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.DR_TRAYAURUS.get(), Villager.createAttributes().build());
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.CLOUD_SHARK.get(), CloudSharkEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.STRATOSHARK.get(), StratosharkEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.KRAKEN.get(), KrakenEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.MISSILE_SQUID.get(), MissileSquidEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.OCTOPUS_BOMB.get(), OctopusBombEntity.createAttributes().build());
@@ -80,26 +81,33 @@ public final class AntarchyFabricEntityAttributes {
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.STINK_BUG.get(), StinkBugEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.WASP.get(), WaspEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.BOMBER.get(), BomberEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.JUMPY_BUG.get(), JumpyBugEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.SPRINGBUG.get(), SpringbugEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.SPIT_BUG.get(), com.craisinlord.antarchy.content.entity.SpitBugEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.MANTIS.get(), MantisEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.ALPHA_MANTIS.get(), AlphaMantisEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.ROLLY_POLLY.get(), RollyPollyEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.TRIFFID.get(), TriffidEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.FLYTRAP.get(), FlytrapEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.LUCID.get(), LucidEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.VORTEX.get(), com.craisinlord.antarchy.content.entity.vortex.VortexEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.SCORPION.get(), ScorpionEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.BASILISK.get(), BasiliskEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.EMPEROR_SCORPION.get(), EmperorScorpionEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.TORETERROR.get(), ToreterrorEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.CREEPING_HORROR.get(), com.craisinlord.antarchy.content.entity.CreepingHorrorEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.LURKING_TERROR.get(), com.craisinlord.antarchy.content.entity.LurkingTerrorEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.CRAWLING_BLIGHT.get(), com.craisinlord.antarchy.content.entity.CrawlingBlightEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.SKULKING_FRIGHT.get(), com.craisinlord.antarchy.content.entity.SkulkingFrightEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.MANTICORE.get(), com.craisinlord.antarchy.content.entity.ManticoreEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.JERRY.get(), com.craisinlord.antarchy.content.entity.JerryEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.CHEEP.get(), com.craisinlord.antarchy.content.entity.CheepEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.DORRIE.get(), com.craisinlord.antarchy.content.entity.DorrieEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.HERCULES_BEETLE.get(), com.craisinlord.antarchy.content.entity.HerculesBeetleEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.PRINCE.get(), com.craisinlord.antarchy.content.entity.royal.PrinceEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.PRINCESS.get(), com.craisinlord.antarchy.content.entity.royal.PrincessEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.KING.get(), com.craisinlord.antarchy.content.entity.royal.KingEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.QUEEN.get(), com.craisinlord.antarchy.content.entity.royal.QueenEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.OURANWOOD_DEER.get(), com.craisinlord.antarchy.content.entity.OuranwoodDeerEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.GLIMMER.get(), com.craisinlord.antarchy.content.entity.glimmer.GlimmerEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.ELKA.get(), com.craisinlord.antarchy.content.entity.ElkaEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.HOVERBOARD.get(), com.craisinlord.antarchy.content.entity.HoverboardEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.RED_ANT.get(), buildAntAttributes(
AntarchySettings.redAntHealth(),
@@ -122,6 +130,7 @@ public final class AntarchyFabricEntityAttributes {
AntarchySettings.termiteAttackDamage()
).build());
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.MOLEWORM.get(), MolewormEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.WORM.get(), WormEntity.createAttributes().build());
FabricDefaultAttributeRegistry.register(AntarchyFabricEntities.MOLEVORE.get(), MolevoreEntity.createAttributes().build());
}
@@ -2,63 +2,29 @@ package com.craisinlord.antarchy.fabric.registry;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.config.AntarchySettings;
import com.craisinlord.antarchy.content.item.BloodCrystalArmorItem;
import com.craisinlord.antarchy.content.item.BloodCrystalAppleItem;
import com.craisinlord.antarchy.content.item.BloodCrystalKatanaItem;
import com.craisinlord.antarchy.content.item.CritterCageItem;
import com.craisinlord.antarchy.content.item.*;
import com.craisinlord.antarchy.fabric.item.DeferredSpawnEggItem;
import com.craisinlord.antarchy.content.item.LucidAnchorBlockItem;
import com.craisinlord.antarchy.content.item.LucidEyeItem;
import com.craisinlord.antarchy.content.item.LucidPearlItem;
import com.craisinlord.antarchy.content.item.PrimordialArmorItem;
import com.craisinlord.antarchy.content.item.WaterCannonItem;
import com.craisinlord.antarchy.content.entity.SizeRayProjectileEntity;
import com.craisinlord.antarchy.content.item.BattleAxeItem;
import com.craisinlord.antarchy.content.item.AttitudeAdjusterItem;
import com.craisinlord.antarchy.content.item.BasiliskDaggerItem;
import com.craisinlord.antarchy.content.item.BigBerthaItem;
import com.craisinlord.antarchy.content.item.KrakensGraspItem;
import com.craisinlord.antarchy.content.item.AntimetalBlockItem;
import com.craisinlord.antarchy.content.item.AntimetalScaffoldingItem;
import com.craisinlord.antarchy.content.item.CloudSharkFinSoupItem;
import com.craisinlord.antarchy.content.item.CorneaEarItem;
import com.craisinlord.antarchy.content.item.GravityGunItem;
import com.craisinlord.antarchy.content.item.MantisClawItem;
import com.craisinlord.antarchy.content.item.DuctTapeBlockItem;
import com.craisinlord.antarchy.content.item.BrutalflyElytraItem;
import com.craisinlord.antarchy.content.item.BluestoneDustItem;
import com.craisinlord.antarchy.content.item.CeilingPlacementTooltipBlockItem;
import com.craisinlord.antarchy.content.item.CeilingPlacementTooltipItem;
import com.craisinlord.antarchy.content.item.MobComingSoonTooltipItem;
import com.craisinlord.antarchy.content.item.MogglesItem;
import com.craisinlord.antarchy.content.item.ultimate.UltimateAxeItem;
import com.craisinlord.antarchy.content.item.ultimate.UltimateHoeItem;
import com.craisinlord.antarchy.content.item.ultimate.UltimatePickaxeItem;
import com.craisinlord.antarchy.content.item.ultimate.UtlimateShovelItem;
import com.craisinlord.antarchy.content.item.ultimate.UltimateSwordItem;
import com.craisinlord.antarchy.content.item.DiamondMinecartItem;
import com.craisinlord.antarchy.content.item.ReverieBottleItem;
import com.craisinlord.antarchy.content.item.ScorpionWhipItem;
import com.craisinlord.antarchy.content.item.SizeRayItem;
import com.craisinlord.antarchy.content.item.SquidzookaItem;
import com.craisinlord.antarchy.content.item.RpoLauncherItem;
import com.craisinlord.antarchy.content.item.SimpleToolTier;
import com.craisinlord.antarchy.content.item.ultimate.UltimateArmorItem;
import com.craisinlord.antarchy.content.item.ultimate.UltimateBowItem;
import com.craisinlord.antarchy.content.item.ultimate.UltimateCrossbowItem;
import com.craisinlord.antarchy.content.item.NightmareArmorItem;
import com.craisinlord.antarchy.content.item.NightmareSwordItem;
import com.craisinlord.antarchy.content.item.OuranwoodBoatOnlyItem;
import com.craisinlord.antarchy.content.item.OuranwoodChestBoatItem;
import com.craisinlord.antarchy.content.item.RainbowSugarItem;
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.world.effect.MobEffectInstance;
import net.minecraft.world.effect.MobEffects;
import net.minecraft.world.item.ArmorItem;
import net.minecraft.world.item.BucketItem;
import net.minecraft.world.item.DyeColor;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.Items;
import net.minecraft.world.item.MobBucketItem;
import net.minecraft.world.item.Rarity;
import net.minecraft.world.item.StandingAndWallBlockItem;
import net.minecraft.world.food.FoodProperties;
@@ -66,6 +32,7 @@ import net.minecraft.world.item.Tier;
import net.minecraft.world.item.Tiers;
import net.minecraft.world.item.crafting.Ingredient;
import net.minecraft.core.Direction;
import net.minecraft.sounds.SoundEvents;
public final class AntarchyFabricItems {
@@ -99,9 +66,43 @@ public final class AntarchyFabricItems {
() -> Ingredient.of(AntarchyFabricItems.HERCULES_HORN.get())
);
private static final Tier ROYAL_GUARDIAN_TIER = new SimpleToolTier(
AntarchySettings.royalWeaponDurability(),
12.0F,
0.0F,
Tiers.NETHERITE.getLevel(),
AntarchySettings.royalWeaponEnchantability(),
() -> Ingredient.of(AntarchyFabricItems.KING_SCALE.get())
);
private static final Tier ROYAL_ASSAILANT_TIER = new SimpleToolTier(
AntarchySettings.royalWeaponDurability(),
12.0F,
0.0F,
Tiers.NETHERITE.getLevel(),
AntarchySettings.royalWeaponEnchantability(),
() -> Ingredient.of(AntarchyFabricItems.QUEEN_SCALE.get())
);
public static final DeferredItem<Item> NIGHTMARE_SCALE = ITEMS.registerSimpleItem("nightmare_scale", new Item.Properties().rarity(Rarity.RARE).fireResistant());
public static final DeferredItem<net.minecraft.world.item.RecordItem> MUSIC_DISC_UNDERSIDE = ITEMS.register("music_disc_underside",
() -> new net.minecraft.world.item.RecordItem(13, AntarchyFabricSounds.MUSIC_DISC_UNDERSIDE.get(),
new Item.Properties().stacksTo(1).rarity(Rarity.RARE), 225));
public static final DeferredItem<net.minecraft.world.item.RecordItem> MUSIC_DISC_THE_QUEEN = ITEMS.register("music_disc_the_queen",
() -> new net.minecraft.world.item.RecordItem(13, AntarchyFabricSounds.THE_QUEEN.get(),
new Item.Properties().stacksTo(1).rarity(Rarity.RARE), 180));
public static final DeferredItem<net.minecraft.world.item.RecordItem> MUSIC_DISC_VERDANCE = ITEMS.register("music_disc_verdance",
() -> new net.minecraft.world.item.RecordItem(13, AntarchyFabricSounds.MUSIC_DISC_VERDANCE.get(),
new Item.Properties().stacksTo(1).rarity(Rarity.RARE), 136));
public static final DeferredItem<net.minecraft.world.item.RecordItem> MUSIC_DISC_GROTESQUE = ITEMS.register("music_disc_grotesque",
() -> new net.minecraft.world.item.RecordItem(13, AntarchyFabricSounds.MUSIC_DISC_GROTESQUE.get(),
new Item.Properties().stacksTo(1).rarity(Rarity.RARE), 207));
public static final DeferredItem<Item> PRIMORDIAL_SCUTE = ITEMS.registerSimpleItem("primordial_scute",
new Item.Properties().rarity(Rarity.UNCOMMON));
@@ -256,6 +257,7 @@ public final class AntarchyFabricItems {
public static final DeferredItem<net.minecraft.world.item.BlockItem> PINK_MILKWEED_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.PINK_MILKWEED);
public static final DeferredItem<net.minecraft.world.item.BlockItem> GLIMMERING_REED_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.GLIMMERING_REED);
public static final DeferredItem<net.minecraft.world.item.BlockItem> CAMELLIA_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.CAMELLIA);
@@ -269,6 +271,9 @@ public final class AntarchyFabricItems {
public static final DeferredItem<net.minecraft.world.item.BlockItem> SEASHELL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.SEASHELL);
public static final DeferredItem<net.minecraft.world.item.BlockItem> LUCID_ANCHOR_ITEM = ITEMS.register("lucid_anchor",
() -> new LucidAnchorBlockItem(AntarchyFabricBlocks.LUCID_ANCHOR.get(), new Item.Properties().rarity(Rarity.UNCOMMON)));
public static final DeferredItem<net.minecraft.world.item.BlockItem> UNDERTRIAL_SPAWNER_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.UNDERTRIAL_SPAWNER);
public static final DeferredItem<net.minecraft.world.item.BlockItem> UNDERVAULT_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.UNDERVAULT);
public static final DeferredItem<Item> UNDERTRIAL_KEY = ITEMS.register("undertrial_key", () -> new Item(new Item.Properties()));
public static final DeferredItem<net.minecraft.world.item.BlockItem> LOTUS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.LOTUS);
@@ -288,6 +293,42 @@ public final class AntarchyFabricItems {
() -> new OuranwoodChestBoatItem(AntarchyFabricEntities.OURANWOOD_CHEST_BOAT_ENTITY, new Item.Properties().stacksTo(1)));
public static final DeferredItem<Item> HOVERBOARD = ITEMS.register("hoverboard",
() -> new HoverboardItem(AntarchyFabricEntities.HOVERBOARD.get(), null, new Item.Properties().stacksTo(1)));
public static final DeferredItem<Item> HOVERBOARD_WHITE = ITEMS.register("hoverboard_white",
() -> new HoverboardItem(AntarchyFabricEntities.HOVERBOARD.get(), DyeColor.WHITE, new Item.Properties().stacksTo(1)));
public static final DeferredItem<Item> HOVERBOARD_ORANGE = ITEMS.register("hoverboard_orange",
() -> new HoverboardItem(AntarchyFabricEntities.HOVERBOARD.get(), DyeColor.ORANGE, new Item.Properties().stacksTo(1)));
public static final DeferredItem<Item> HOVERBOARD_MAGENTA = ITEMS.register("hoverboard_magenta",
() -> new HoverboardItem(AntarchyFabricEntities.HOVERBOARD.get(), DyeColor.MAGENTA, new Item.Properties().stacksTo(1)));
public static final DeferredItem<Item> HOVERBOARD_LIGHT_BLUE = ITEMS.register("hoverboard_light_blue",
() -> new HoverboardItem(AntarchyFabricEntities.HOVERBOARD.get(), DyeColor.LIGHT_BLUE, new Item.Properties().stacksTo(1)));
public static final DeferredItem<Item> HOVERBOARD_YELLOW = ITEMS.register("hoverboard_yellow",
() -> new HoverboardItem(AntarchyFabricEntities.HOVERBOARD.get(), DyeColor.YELLOW, new Item.Properties().stacksTo(1)));
public static final DeferredItem<Item> HOVERBOARD_LIME = ITEMS.register("hoverboard_lime",
() -> new HoverboardItem(AntarchyFabricEntities.HOVERBOARD.get(), DyeColor.LIME, new Item.Properties().stacksTo(1)));
public static final DeferredItem<Item> HOVERBOARD_PINK = ITEMS.register("hoverboard_pink",
() -> new HoverboardItem(AntarchyFabricEntities.HOVERBOARD.get(), DyeColor.PINK, new Item.Properties().stacksTo(1)));
public static final DeferredItem<Item> HOVERBOARD_GRAY = ITEMS.register("hoverboard_gray",
() -> new HoverboardItem(AntarchyFabricEntities.HOVERBOARD.get(), DyeColor.GRAY, new Item.Properties().stacksTo(1)));
public static final DeferredItem<Item> HOVERBOARD_LIGHT_GRAY = ITEMS.register("hoverboard_light_gray",
() -> new HoverboardItem(AntarchyFabricEntities.HOVERBOARD.get(), DyeColor.LIGHT_GRAY, new Item.Properties().stacksTo(1)));
public static final DeferredItem<Item> HOVERBOARD_CYAN = ITEMS.register("hoverboard_cyan",
() -> new HoverboardItem(AntarchyFabricEntities.HOVERBOARD.get(), DyeColor.CYAN, new Item.Properties().stacksTo(1)));
public static final DeferredItem<Item> HOVERBOARD_PURPLE = ITEMS.register("hoverboard_purple",
() -> new HoverboardItem(AntarchyFabricEntities.HOVERBOARD.get(), DyeColor.PURPLE, new Item.Properties().stacksTo(1)));
public static final DeferredItem<Item> HOVERBOARD_BLUE = ITEMS.register("hoverboard_blue",
() -> new HoverboardItem(AntarchyFabricEntities.HOVERBOARD.get(), DyeColor.BLUE, new Item.Properties().stacksTo(1)));
public static final DeferredItem<Item> HOVERBOARD_BROWN = ITEMS.register("hoverboard_brown",
() -> new HoverboardItem(AntarchyFabricEntities.HOVERBOARD.get(), DyeColor.BROWN, new Item.Properties().stacksTo(1)));
public static final DeferredItem<Item> HOVERBOARD_GREEN = ITEMS.register("hoverboard_green",
() -> new HoverboardItem(AntarchyFabricEntities.HOVERBOARD.get(), DyeColor.GREEN, new Item.Properties().stacksTo(1)));
public static final DeferredItem<Item> HOVERBOARD_RED = ITEMS.register("hoverboard_red",
() -> new HoverboardItem(AntarchyFabricEntities.HOVERBOARD.get(), DyeColor.RED, new Item.Properties().stacksTo(1)));
public static final DeferredItem<Item> HOVERBOARD_BLACK = ITEMS.register("hoverboard_black",
() -> new HoverboardItem(AntarchyFabricEntities.HOVERBOARD.get(), DyeColor.BLACK, new Item.Properties().stacksTo(1)));
public static final DeferredItem<net.minecraft.world.item.SignItem> PEACH_SIGN_ITEM = ITEMS.register("peach_sign",
() -> new net.minecraft.world.item.SignItem(new Item.Properties().stacksTo(16), AntarchyFabricBlocks.PEACH_SIGN.get(), AntarchyFabricBlocks.PEACH_WALL_SIGN.get()));
@@ -320,6 +361,146 @@ public final class AntarchyFabricItems {
() -> new com.craisinlord.antarchy.content.item.NadirChestBoatItem(AntarchyFabricEntities.NADIR_CHEST_BOAT_ENTITY, new Item.Properties().stacksTo(1)));
public static final DeferredItem<net.minecraft.world.item.BlockItem> ROYAL_LOG_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.ROYAL_LOG);
public static final DeferredItem<net.minecraft.world.item.BlockItem> ROYAL_WOOD_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.ROYAL_WOOD);
public static final DeferredItem<net.minecraft.world.item.BlockItem> STRIPPED_ROYAL_LOG_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.STRIPPED_ROYAL_LOG);
public static final DeferredItem<net.minecraft.world.item.BlockItem> STRIPPED_ROYAL_WOOD_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.STRIPPED_ROYAL_WOOD);
public static final DeferredItem<net.minecraft.world.item.BlockItem> ROYAL_PLANKS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.ROYAL_PLANKS);
public static final DeferredItem<net.minecraft.world.item.BlockItem> ROYAL_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.ROYAL_STAIRS);
public static final DeferredItem<net.minecraft.world.item.BlockItem> ROYAL_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.ROYAL_SLAB);
public static final DeferredItem<net.minecraft.world.item.BlockItem> ROYAL_FENCE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.ROYAL_FENCE);
public static final DeferredItem<net.minecraft.world.item.BlockItem> ROYAL_FENCE_GATE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.ROYAL_FENCE_GATE);
public static final DeferredItem<net.minecraft.world.item.BlockItem> ROYAL_DOOR_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.ROYAL_DOOR);
public static final DeferredItem<net.minecraft.world.item.BlockItem> ROYAL_TRAPDOOR_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.ROYAL_TRAPDOOR);
public static final DeferredItem<net.minecraft.world.item.BlockItem> ROYAL_PRESSURE_PLATE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.ROYAL_PRESSURE_PLATE);
public static final DeferredItem<net.minecraft.world.item.BlockItem> ROYAL_BUTTON_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.ROYAL_BUTTON);
public static final DeferredItem<net.minecraft.world.item.BlockItem> ROYAL_LEAVES_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.ROYAL_LEAVES);
public static final DeferredItem<net.minecraft.world.item.BlockItem> ROYAL_FLOWERING_LEAVES_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.ROYAL_FLOWERING_LEAVES);
public static final DeferredItem<net.minecraft.world.item.BlockItem> ROYAL_SAPLING_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.ROYAL_SAPLING);
public static final DeferredItem<net.minecraft.world.item.SignItem> ROYAL_SIGN_ITEM = ITEMS.register("royal_sign",
() -> new net.minecraft.world.item.SignItem(new Item.Properties().stacksTo(16), AntarchyFabricBlocks.ROYAL_SIGN.get(), AntarchyFabricBlocks.ROYAL_WALL_SIGN.get()));
public static final DeferredItem<net.minecraft.world.item.HangingSignItem> ROYAL_HANGING_SIGN_ITEM = ITEMS.register("royal_hanging_sign",
() -> new net.minecraft.world.item.HangingSignItem(AntarchyFabricBlocks.ROYAL_HANGING_SIGN.get(), AntarchyFabricBlocks.ROYAL_WALL_HANGING_SIGN.get(), new Item.Properties().stacksTo(16)));
public static final DeferredItem<Item> ROYAL_BOAT = ITEMS.register("royal_boat",
() -> new com.craisinlord.antarchy.content.item.RoyalBoatOnlyItem(AntarchyFabricEntities.ROYAL_BOAT_ENTITY.get(), new Item.Properties().stacksTo(1)));
public static final DeferredItem<Item> ROYAL_CHEST_BOAT = ITEMS.register("royal_chest_boat",
() -> new com.craisinlord.antarchy.content.item.RoyalChestBoatItem(AntarchyFabricEntities.ROYAL_CHEST_BOAT_ENTITY.get(), new Item.Properties().stacksTo(1)));
public static final DeferredItem<net.minecraft.world.item.BlockItem> TRUFFALO_LOG_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TRUFFALO_LOG);
public static final DeferredItem<net.minecraft.world.item.BlockItem> TRUFFALO_WOOD_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TRUFFALO_WOOD);
public static final DeferredItem<net.minecraft.world.item.BlockItem> STRIPPED_TRUFFALO_LOG_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.STRIPPED_TRUFFALO_LOG);
public static final DeferredItem<net.minecraft.world.item.BlockItem> STRIPPED_TRUFFALO_WOOD_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.STRIPPED_TRUFFALO_WOOD);
public static final DeferredItem<net.minecraft.world.item.BlockItem> TRUFFALO_PLANKS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TRUFFALO_PLANKS);
public static final DeferredItem<net.minecraft.world.item.BlockItem> TRUFFALO_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TRUFFALO_STAIRS);
public static final DeferredItem<net.minecraft.world.item.BlockItem> TRUFFALO_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TRUFFALO_SLAB);
public static final DeferredItem<net.minecraft.world.item.BlockItem> TRUFFALO_FENCE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TRUFFALO_FENCE);
public static final DeferredItem<net.minecraft.world.item.BlockItem> TRUFFALO_FENCE_GATE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TRUFFALO_FENCE_GATE);
public static final DeferredItem<net.minecraft.world.item.BlockItem> TRUFFALO_DOOR_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TRUFFALO_DOOR);
public static final DeferredItem<net.minecraft.world.item.BlockItem> TRUFFALO_TRAPDOOR_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TRUFFALO_TRAPDOOR);
public static final DeferredItem<net.minecraft.world.item.BlockItem> TRUFFALO_PRESSURE_PLATE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TRUFFALO_PRESSURE_PLATE);
public static final DeferredItem<net.minecraft.world.item.BlockItem> TRUFFALO_BUTTON_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TRUFFALO_BUTTON);
public static final DeferredItem<net.minecraft.world.item.BlockItem> TRUFFALO_SAPLING_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TRUFFALO_SAPLING);
public static final DeferredItem<net.minecraft.world.item.SignItem> TRUFFALO_SIGN_ITEM = ITEMS.register("truffalo_sign",
() -> new net.minecraft.world.item.SignItem(new Item.Properties().stacksTo(16), AntarchyFabricBlocks.TRUFFALO_SIGN.get(), AntarchyFabricBlocks.TRUFFALO_WALL_SIGN.get()));
public static final DeferredItem<net.minecraft.world.item.HangingSignItem> TRUFFALO_HANGING_SIGN_ITEM = ITEMS.register("truffalo_hanging_sign",
() -> new net.minecraft.world.item.HangingSignItem(AntarchyFabricBlocks.TRUFFALO_HANGING_SIGN.get(), AntarchyFabricBlocks.TRUFFALO_WALL_HANGING_SIGN.get(), new Item.Properties().stacksTo(16)));
public static final DeferredItem<Item> TRUFFALO_BOAT = ITEMS.register("truffalo_boat",
() -> new com.craisinlord.antarchy.content.item.TruffaloBoatOnlyItem(AntarchyFabricEntities.TRUFFALO_BOAT_ENTITY.get(), new Item.Properties().stacksTo(1)));
public static final DeferredItem<Item> TRUFFALO_CHEST_BOAT = ITEMS.register("truffalo_chest_boat",
() -> new com.craisinlord.antarchy.content.item.TruffaloChestBoatItem(AntarchyFabricEntities.TRUFFALO_CHEST_BOAT_ENTITY.get(), new Item.Properties().stacksTo(1)));
public static final DeferredItem<net.minecraft.world.item.BlockItem> TRUFFALO_TUFT_WHITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TRUFFALO_TUFT_WHITE);
public static final DeferredItem<net.minecraft.world.item.BlockItem> TRUFFALO_TUFT_ORANGE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TRUFFALO_TUFT_ORANGE);
public static final DeferredItem<net.minecraft.world.item.BlockItem> TRUFFALO_TUFT_MAGENTA_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TRUFFALO_TUFT_MAGENTA);
public static final DeferredItem<net.minecraft.world.item.BlockItem> TRUFFALO_TUFT_LIGHT_BLUE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TRUFFALO_TUFT_LIGHT_BLUE);
public static final DeferredItem<net.minecraft.world.item.BlockItem> TRUFFALO_TUFT_YELLOW_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TRUFFALO_TUFT_YELLOW);
public static final DeferredItem<net.minecraft.world.item.BlockItem> TRUFFALO_TUFT_LIME_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TRUFFALO_TUFT_LIME);
public static final DeferredItem<net.minecraft.world.item.BlockItem> TRUFFALO_TUFT_PINK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TRUFFALO_TUFT_PINK);
public static final DeferredItem<net.minecraft.world.item.BlockItem> TRUFFALO_TUFT_GRAY_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TRUFFALO_TUFT_GRAY);
public static final DeferredItem<net.minecraft.world.item.BlockItem> TRUFFALO_TUFT_LIGHT_GRAY_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TRUFFALO_TUFT_LIGHT_GRAY);
public static final DeferredItem<net.minecraft.world.item.BlockItem> TRUFFALO_TUFT_CYAN_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TRUFFALO_TUFT_CYAN);
public static final DeferredItem<net.minecraft.world.item.BlockItem> TRUFFALO_TUFT_PURPLE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TRUFFALO_TUFT_PURPLE);
public static final DeferredItem<net.minecraft.world.item.BlockItem> TRUFFALO_TUFT_BLUE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TRUFFALO_TUFT_BLUE);
public static final DeferredItem<net.minecraft.world.item.BlockItem> TRUFFALO_TUFT_BROWN_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TRUFFALO_TUFT_BROWN);
public static final DeferredItem<net.minecraft.world.item.BlockItem> TRUFFALO_TUFT_GREEN_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TRUFFALO_TUFT_GREEN);
public static final DeferredItem<net.minecraft.world.item.BlockItem> TRUFFALO_TUFT_RED_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TRUFFALO_TUFT_RED);
public static final DeferredItem<net.minecraft.world.item.BlockItem> TRUFFALO_TUFT_BLACK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TRUFFALO_TUFT_BLACK);
public static final DeferredItem<CritterCageItem> CRITTER_CAGE = ITEMS.register("critter_cage",
() -> new CritterCageItem(new Item.Properties().stacksTo(16)));
@@ -336,6 +517,11 @@ public final class AntarchyFabricItems {
public static final DeferredItem<net.minecraft.world.item.BlockItem> RAINBOW_ANT_NEST_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.RAINBOW_ANT_NEST);
public static final DeferredItem<net.minecraft.world.item.BlockItem> TERMITE_NEST_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TERMITE_NEST);
public static final DeferredItem<net.minecraft.world.item.BlockItem> ANT_TRAP_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.ANT_TRAP);
public static final DeferredItem<Item> BUG_SPRAY = ITEMS.register("bug_spray",
() -> new com.craisinlord.antarchy.content.item.BugSprayItem(new Item.Properties().durability(128)));
public static final DeferredItem<net.minecraft.world.item.BlockItem> URANIUM_ORE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.URANIUM_ORE, new Item.Properties().rarity(Rarity.UNCOMMON));
@@ -353,6 +539,8 @@ public final class AntarchyFabricItems {
() -> new BluestoneDustItem(AntarchyFabricBlocks.BLUESTONE_WIRE.get(), new Item.Properties()));
public static final DeferredItem<net.minecraft.world.item.BlockItem> BLUESTONE_ORE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BLUESTONE_ORE);
public static final DeferredItem<net.minecraft.world.item.BlockItem> BLUESTONE_BLOCK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BLUESTONE_BLOCK);
public static final DeferredItem<VortexLensBlockItem> VORTEX_LENS_ITEM = ITEMS.register("vortex_lens",
() -> new VortexLensBlockItem(AntarchyFabricBlocks.VORTEX_LENS.get(), new Item.Properties()));
public static final DeferredItem<CeilingPlacementTooltipBlockItem> BLUESTONE_REPEATER_ITEM = ITEMS.register("bluestone_repeater",
() -> new CeilingPlacementTooltipBlockItem(AntarchyFabricBlocks.BLUESTONE_REPEATER.get(), new Item.Properties()));
public static final DeferredItem<CeilingPlacementTooltipBlockItem> BLUESTONE_COMPARATOR_ITEM = ITEMS.register("bluestone_comparator",
@@ -362,6 +550,7 @@ public final class AntarchyFabricItems {
public static final DeferredItem<net.minecraft.world.item.BlockItem> BLUESTONE_LAMP_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BLUESTONE_LAMP);
public static final DeferredItem<net.minecraft.world.item.BlockItem> TIGERS_EYE_BLOCK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TIGERS_EYE_BLOCK, new Item.Properties().rarity(Rarity.UNCOMMON));
public static final DeferredItem<net.minecraft.world.item.BlockItem> URANIUM_BLOCK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.URANIUM_BLOCK, new Item.Properties().rarity(Rarity.UNCOMMON));
@@ -477,6 +666,12 @@ public final class AntarchyFabricItems {
public static final DeferredItem<net.minecraft.world.item.BlockItem> DREAM_SAND_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.DREAM_SAND);
public static final DeferredItem<net.minecraft.world.item.BlockItem> ANTIGRAVEL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.ANTIGRAVEL);
public static final DeferredItem<net.minecraft.world.item.BlockItem> LOAM_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.LOAM);
public static final DeferredItem<net.minecraft.world.item.BlockItem> PACKED_LOAM_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.PACKED_LOAM);
public static final DeferredItem<net.minecraft.world.item.BlockItem> LOAM_BRICKS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.LOAM_BRICKS);
public static final DeferredItem<net.minecraft.world.item.BlockItem> LOAM_BRICK_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.LOAM_BRICK_STAIRS);
public static final DeferredItem<net.minecraft.world.item.BlockItem> LOAM_BRICK_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.LOAM_BRICK_SLAB);
public static final DeferredItem<net.minecraft.world.item.BlockItem> LOAM_BRICK_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.LOAM_BRICK_WALL);
public static final DeferredItem<net.minecraft.world.item.BlockItem> CHISELED_LOAM_BRICKS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.CHISELED_LOAM_BRICKS);
public static final DeferredItem<net.minecraft.world.item.BlockItem> MUCUS_ITEM = ITEMS.register("mucus",
() -> new com.craisinlord.antarchy.content.item.MucusBlockItem(AntarchyFabricBlocks.MUCUS.get(), new Item.Properties()));
@@ -511,6 +706,32 @@ public final class AntarchyFabricItems {
public static final DeferredItem<net.minecraft.world.item.BlockItem> CUT_DREAM_SANDSTONE_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.CUT_DREAM_SANDSTONE_SLAB);
public static final DeferredItem<net.minecraft.world.item.BlockItem> TYPHONITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TYPHONITE);
public static final DeferredItem<net.minecraft.world.item.BlockItem> NADIR_NYXIUM_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.NADIR_NYXIUM);
public static final DeferredItem<net.minecraft.world.item.BlockItem> VERDANT_NYXIUM_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.VERDANT_NYXIUM);
public static final DeferredItem<net.minecraft.world.item.BlockItem> TYPHONITE_PILLAR_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TYPHONITE_PILLAR);
public static final DeferredItem<net.minecraft.world.item.BlockItem> TYPHONITE_BRICKS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TYPHONITE_BRICKS);
public static final DeferredItem<net.minecraft.world.item.BlockItem> CHISELED_TYPHONITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.CHISELED_TYPHONITE);
public static final DeferredItem<net.minecraft.world.item.BlockItem> POLISHED_TYPHONITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.POLISHED_TYPHONITE);
public static final DeferredItem<net.minecraft.world.item.BlockItem> VEINED_TYPHONITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.VEINED_TYPHONITE);
public static final DeferredItem<net.minecraft.world.item.BlockItem> TYPHONITE_SPIKE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TYPHONITE_SPIKE);
public static final DeferredItem<net.minecraft.world.item.BlockItem> TYPHONITE_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TYPHONITE_STAIRS);
public static final DeferredItem<net.minecraft.world.item.BlockItem> TYPHONITE_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TYPHONITE_SLAB);
public static final DeferredItem<net.minecraft.world.item.BlockItem> TYPHONITE_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TYPHONITE_WALL);
public static final DeferredItem<net.minecraft.world.item.BlockItem> TYPHONITE_BRICK_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TYPHONITE_BRICK_STAIRS);
public static final DeferredItem<net.minecraft.world.item.BlockItem> TYPHONITE_BRICK_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TYPHONITE_BRICK_SLAB);
public static final DeferredItem<net.minecraft.world.item.BlockItem> TYPHONITE_BRICK_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.TYPHONITE_BRICK_WALL);
public static final DeferredItem<net.minecraft.world.item.BlockItem> POLISHED_TYPHONITE_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.POLISHED_TYPHONITE_STAIRS);
public static final DeferredItem<net.minecraft.world.item.BlockItem> POLISHED_TYPHONITE_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.POLISHED_TYPHONITE_SLAB);
public static final DeferredItem<net.minecraft.world.item.BlockItem> POLISHED_TYPHONITE_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.POLISHED_TYPHONITE_WALL);
public static final DeferredItem<net.minecraft.world.item.BlockItem> SPIRALING_VINES_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.SPIRALING_VINES);
public static final DeferredItem<net.minecraft.world.item.BlockItem> GOREVINE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.GOREVINE);
public static final DeferredItem<net.minecraft.world.item.BlockItem> WHIRLFLOWER_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.WHIRLFLOWER);
public static final DeferredItem<net.minecraft.world.item.BlockItem> NADIR_FERN_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.NADIR_FERN);
public static final DeferredItem<net.minecraft.world.item.BlockItem> LARGE_NADIR_FERN_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.LARGE_NADIR_FERN);
public static final DeferredItem<net.minecraft.world.item.BlockItem> DUSKBELL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.DUSKBELL);
public static final DeferredItem<net.minecraft.world.item.BlockItem> NADIR_ROOTS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.NADIR_ROOTS);
public static final DeferredItem<net.minecraft.world.item.BlockItem> VERDANT_ROOTS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.VERDANT_ROOTS);
public static final DeferredItem<net.minecraft.world.item.BlockItem> DEAD_STAR_CORAL_BLOCK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.DEAD_STAR_CORAL_BLOCK);
@@ -543,6 +764,23 @@ public final class AntarchyFabricItems {
public static final DeferredItem<net.minecraft.world.item.BlockItem> NYXITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.NYXITE);
public static final DeferredItem<net.minecraft.world.item.BlockItem> MYRMITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MYRMITE);
public static final DeferredItem<net.minecraft.world.item.BlockItem> MYRMITE_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MYRMITE_STAIRS);
public static final DeferredItem<net.minecraft.world.item.BlockItem> MYRMITE_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MYRMITE_SLAB);
public static final DeferredItem<net.minecraft.world.item.BlockItem> MYRMITE_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MYRMITE_WALL);
public static final DeferredItem<net.minecraft.world.item.BlockItem> POLISHED_MYRMITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.POLISHED_MYRMITE);
public static final DeferredItem<net.minecraft.world.item.BlockItem> POLISHED_MYRMITE_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.POLISHED_MYRMITE_STAIRS);
public static final DeferredItem<net.minecraft.world.item.BlockItem> POLISHED_MYRMITE_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.POLISHED_MYRMITE_SLAB);
public static final DeferredItem<net.minecraft.world.item.BlockItem> POLISHED_MYRMITE_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.POLISHED_MYRMITE_WALL);
public static final DeferredItem<net.minecraft.world.item.BlockItem> CHISELED_MYRMITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.CHISELED_MYRMITE);
public static final DeferredItem<net.minecraft.world.item.BlockItem> MYRMITE_BRICKS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MYRMITE_BRICKS);
public static final DeferredItem<net.minecraft.world.item.BlockItem> MYRMITE_BRICK_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MYRMITE_BRICK_STAIRS);
public static final DeferredItem<net.minecraft.world.item.BlockItem> MYRMITE_BRICK_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MYRMITE_BRICK_SLAB);
public static final DeferredItem<net.minecraft.world.item.BlockItem> MYRMITE_BRICK_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MYRMITE_BRICK_WALL);
public static final DeferredItem<net.minecraft.world.item.BlockItem> MOSSY_MYRMITE_BRICKS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MOSSY_MYRMITE_BRICKS);
public static final DeferredItem<net.minecraft.world.item.BlockItem> MOSSY_MYRMITE_BRICK_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MOSSY_MYRMITE_BRICK_STAIRS);
public static final DeferredItem<net.minecraft.world.item.BlockItem> MOSSY_MYRMITE_BRICK_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MOSSY_MYRMITE_BRICK_SLAB);
public static final DeferredItem<net.minecraft.world.item.BlockItem> MOSSY_MYRMITE_BRICK_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MOSSY_MYRMITE_BRICK_WALL);
public static final DeferredItem<net.minecraft.world.item.BlockItem> MYRMITE_PILLAR_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MYRMITE_PILLAR);
public static final DeferredItem<net.minecraft.world.item.BlockItem> BIOMITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BIOMITE);
public static final DeferredItem<net.minecraft.world.item.BlockItem> BIOMITE_TURF_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BIOMITE_TURF);
public static final DeferredItem<net.minecraft.world.item.BlockItem> BIOWART_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BIOWART);
@@ -551,6 +789,7 @@ public final class AntarchyFabricItems {
public static final DeferredItem<net.minecraft.world.item.BlockItem> POLISHED_BROODSTONE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.POLISHED_BROODSTONE);
public static final DeferredItem<net.minecraft.world.item.BlockItem> CHISELED_BROODSTONE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.CHISELED_BROODSTONE);
public static final DeferredItem<net.minecraft.world.item.BlockItem> BROODSTONE_BRICKS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BROODSTONE_BRICKS);
public static final DeferredItem<net.minecraft.world.item.BlockItem> MOSSY_BROODSTONE_BRICKS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MOSSY_BROODSTONE_BRICKS);
public static final DeferredItem<net.minecraft.world.item.BlockItem> BROODSTONE_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BROODSTONE_STAIRS);
public static final DeferredItem<net.minecraft.world.item.BlockItem> BROODSTONE_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BROODSTONE_SLAB);
public static final DeferredItem<net.minecraft.world.item.BlockItem> BROODSTONE_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BROODSTONE_WALL);
@@ -560,6 +799,10 @@ public final class AntarchyFabricItems {
public static final DeferredItem<net.minecraft.world.item.BlockItem> BROODSTONE_BRICK_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BROODSTONE_BRICK_STAIRS);
public static final DeferredItem<net.minecraft.world.item.BlockItem> BROODSTONE_BRICK_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BROODSTONE_BRICK_SLAB);
public static final DeferredItem<net.minecraft.world.item.BlockItem> BROODSTONE_BRICK_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BROODSTONE_BRICK_WALL);
public static final DeferredItem<net.minecraft.world.item.BlockItem> MOSSY_BROODSTONE_BRICK_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MOSSY_BROODSTONE_BRICK_STAIRS);
public static final DeferredItem<net.minecraft.world.item.BlockItem> MOSSY_BROODSTONE_BRICK_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MOSSY_BROODSTONE_BRICK_SLAB);
public static final DeferredItem<net.minecraft.world.item.BlockItem> MOSSY_BROODSTONE_BRICK_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MOSSY_BROODSTONE_BRICK_WALL);
public static final DeferredItem<net.minecraft.world.item.BlockItem> BROODSTONE_PILLAR_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BROODSTONE_PILLAR);
public static final DeferredItem<net.minecraft.world.item.BlockItem> MYRMITE_COAL_ORE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MYRMITE_COAL_ORE);
public static final DeferredItem<net.minecraft.world.item.BlockItem> BROODSTONE_URANIUM_ORE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BROODSTONE_URANIUM_ORE, new Item.Properties().rarity(Rarity.UNCOMMON));
public static final DeferredItem<net.minecraft.world.item.BlockItem> BROODSTONE_TITANIUM_ORE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BROODSTONE_TITANIUM_ORE, new Item.Properties().rarity(Rarity.UNCOMMON));
@@ -572,6 +815,7 @@ public final class AntarchyFabricItems {
public static final DeferredItem<net.minecraft.world.item.BlockItem> NYXITE_BRICKS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.NYXITE_BRICKS);
public static final DeferredItem<net.minecraft.world.item.BlockItem> MOSSY_NYXITE_BRICKS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MOSSY_NYXITE_BRICKS);
public static final DeferredItem<net.minecraft.world.item.BlockItem> CHITIN_BLOCK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.CHITIN_BLOCK);
@@ -603,6 +847,10 @@ public final class AntarchyFabricItems {
public static final DeferredItem<net.minecraft.world.item.BlockItem> NYXITE_BRICK_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.NYXITE_BRICK_WALL);
public static final DeferredItem<net.minecraft.world.item.BlockItem> MOSSY_NYXITE_BRICK_STAIRS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MOSSY_NYXITE_BRICK_STAIRS);
public static final DeferredItem<net.minecraft.world.item.BlockItem> MOSSY_NYXITE_BRICK_SLAB_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MOSSY_NYXITE_BRICK_SLAB);
public static final DeferredItem<net.minecraft.world.item.BlockItem> MOSSY_NYXITE_BRICK_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MOSSY_NYXITE_BRICK_WALL);
public static final DeferredItem<net.minecraft.world.item.BlockItem> NYXITE_PILLAR_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.NYXITE_PILLAR);
public static final DeferredItem<net.minecraft.world.item.BlockItem> SHELLSTONE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.SHELLSTONE);
@@ -657,10 +905,11 @@ public final class AntarchyFabricItems {
public static final DeferredItem<net.minecraft.world.item.BlockItem> SHELLSTONE_BRICK_WALL_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.SHELLSTONE_BRICK_WALL);
public static final DeferredItem<net.minecraft.world.item.BlockItem> SHELLSTONE_PILLAR_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.SHELLSTONE_PILLAR);
public static final DeferredItem<net.minecraft.world.item.BlockItem> TRIFFID_GOO_BLOCK_ITEM = ITEMS.register("flytrap_goo_block",
() -> new com.craisinlord.antarchy.content.item.TriffidGooBlockItem(AntarchyFabricBlocks.TRIFFID_GOO_BLOCK.get(), new Item.Properties()));
public static final DeferredItem<net.minecraft.world.item.BlockItem> FLYTRAP_GOO_BLOCK_ITEM = ITEMS.register("flytrap_goo_block",
() -> new com.craisinlord.antarchy.content.item.FlytrapGooBlockItem(AntarchyFabricBlocks.FLYTRAP_GOO_BLOCK.get(), new Item.Properties()));
public static final DeferredItem<net.minecraft.world.item.BlockItem> PALE_NYXITE_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.PALE_NYXITE);
@@ -701,11 +950,15 @@ public final class AntarchyFabricItems {
public static final DeferredItem<net.minecraft.world.item.BlockItem> BED_BUG_EGG_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.BED_BUG_EGG);
public static final DeferredItem<net.minecraft.world.item.BlockItem> CREEPING_HORROR_EGG_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.CREEPING_HORROR_EGG);
public static final DeferredItem<net.minecraft.world.item.BlockItem> JUMPY_BUG_EGG_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.JUMPY_BUG_EGG);
public static final DeferredItem<net.minecraft.world.item.BlockItem> CRAWLING_BLIGHT_EGG_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.CRAWLING_BLIGHT_EGG);
public static final DeferredItem<net.minecraft.world.item.BlockItem> PRINCE_EGG_ITEM = ITEMS.register("prince_egg",
() -> new net.minecraft.world.item.BlockItem(AntarchyFabricBlocks.PRINCE_EGG.get(), new Item.Properties().rarity(Rarity.EPIC).fireResistant()));
public static final DeferredItem<net.minecraft.world.item.BlockItem> PRINCESS_EGG_ITEM = ITEMS.register("princess_egg",
() -> new net.minecraft.world.item.BlockItem(AntarchyFabricBlocks.PRINCESS_EGG.get(), new Item.Properties().rarity(Rarity.EPIC).fireResistant()));
public static final DeferredItem<net.minecraft.world.item.BlockItem> SPRINGBUG_EGG_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.SPRINGBUG_EGG);
public static final DeferredItem<net.minecraft.world.item.BlockItem> SPIT_BUG_EGG_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.SPIT_BUG_EGG);
public static final DeferredItem<net.minecraft.world.item.BlockItem> JERRY_EGG_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.JERRY_EGG);
public static final DeferredItem<net.minecraft.world.item.BlockItem> LURKING_TERROR_EGG_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.LURKING_TERROR_EGG);
public static final DeferredItem<net.minecraft.world.item.BlockItem> SKULKING_FRIGHT_EGG_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.SKULKING_FRIGHT_EGG);
public static final DeferredItem<net.minecraft.world.item.BlockItem> WASP_NEST_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.WASP_NEST);
@@ -715,9 +968,6 @@ public final class AntarchyFabricItems {
public static final DeferredItem<net.minecraft.world.item.BlockItem> HANGING_CREEPROOTS_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.HANGING_CREEPROOTS);
public static final DeferredItem<net.minecraft.world.item.BlockItem> GLOWCAP_MUSHROOM_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.GLOWCAP_MUSHROOM);
public static final DeferredItem<net.minecraft.world.item.BlockItem> GLOWCAP_MUSHROOM_BLOCK_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.GLOWCAP_MUSHROOM_BLOCK);
public static final DeferredItem<net.minecraft.world.item.BlockItem> UNDERTRIAL_SPAWNER_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.UNDERTRIAL_SPAWNER);
public static final DeferredItem<net.minecraft.world.item.BlockItem> UNDERVAULT_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.UNDERVAULT);
public static final DeferredItem<Item> UNDERTRIAL_KEY = ITEMS.registerSimpleItem("undertrial_key", new Item.Properties());
public static final DeferredItem<net.minecraft.world.item.BlockItem> MOLTING_VINES_ITEM = ITEMS.registerSimpleBlockItem(AntarchyFabricBlocks.MOLTING_VINES);
@@ -804,6 +1054,9 @@ public final class AntarchyFabricItems {
AntarchySettings.bloodCrystalKatanaAttackDamage(),
-2.2F
));
public static final DeferredItem<BloodGodsBladeItem> BLOOD_GODS_BLADE = ITEMS.register("blood_gods_blade",
() -> new BloodGodsBladeItem(ULTIMATE_TIER,
new Item.Properties().stacksTo(1).durability(4096).rarity(Rarity.EPIC).fireResistant(), 24, -2.4F));
public static final DeferredItem<MantisClawItem> MANTIS_CLAW = ITEMS.register("mantis_claw",
@@ -811,12 +1064,12 @@ public final class AntarchyFabricItems {
public static final DeferredItem<Item> HERCULES_HORN = ITEMS.registerSimpleItem("hercules_horn", new Item.Properties().rarity(Rarity.UNCOMMON));
public static final DeferredItem<Item> KING_SCALE = ITEMS.register("king_scale",
() -> new MobComingSoonTooltipItem(new Item.Properties().rarity(Rarity.RARE)));
public static final DeferredItem<Item> KING_SCALE = ITEMS.registerSimpleItem("king_scale", new Item.Properties().rarity(Rarity.RARE).fireResistant());
public static final DeferredItem<Item> QUEEN_SCALE = ITEMS.register("queen_scale",
() -> new MobComingSoonTooltipItem(new Item.Properties().rarity(Rarity.RARE)));
public static final DeferredItem<Item> QUEEN_SCALE = ITEMS.registerSimpleItem("queen_scale", new Item.Properties().rarity(Rarity.RARE).fireResistant());
public static final DeferredItem<com.craisinlord.antarchy.content.item.TemporalTunerItem> TEMPORAL_TUNER = ITEMS.register("temporal_tuner",
() -> new com.craisinlord.antarchy.content.item.TemporalTunerItem(new Item.Properties().rarity(Rarity.RARE).fireResistant()));
public static final DeferredItem<Item> CHITIN = ITEMS.registerSimpleItem("chitin", new Item.Properties().rarity(Rarity.UNCOMMON));
@@ -833,13 +1086,13 @@ public final class AntarchyFabricItems {
public static final DeferredItem<Item> STINK_BUG_ITEM = ITEMS.registerSimpleItem("stink_bug", new Item.Properties().rarity(Rarity.UNCOMMON));
public static final DeferredItem<Item> JUMPY_BUG_LEG = ITEMS.registerSimpleItem("springbug_leg", new Item.Properties().rarity(Rarity.UNCOMMON));
public static final DeferredItem<Item> SPRINGBUG_LEG = ITEMS.registerSimpleItem("springbug_leg", new Item.Properties().rarity(Rarity.UNCOMMON));
public static final DeferredItem<com.craisinlord.antarchy.content.item.JumpyBootsItem> JUMPY_BOOTS = ITEMS.register("springy_boots",
() -> new com.craisinlord.antarchy.content.item.JumpyBootsItem(
AntarchyFabricMisc.JUMPY_BOOTS_ARMOR_MATERIAL,
new Item.Properties().stacksTo(1).rarity(Rarity.UNCOMMON).fireResistant().durability(AntarchyFabricMisc.JUMPY_BOOTS_ARMOR_MATERIAL.getDurabilityForType(ArmorItem.Type.BOOTS))
public static final DeferredItem<com.craisinlord.antarchy.content.item.SpringyBootsItem> SPRINGY_BOOTS = ITEMS.register("springy_boots",
() -> new com.craisinlord.antarchy.content.item.SpringyBootsItem(
AntarchyFabricMisc.SPRINGY_BOOTS_ARMOR_MATERIAL,
new Item.Properties().stacksTo(1).rarity(Rarity.UNCOMMON).fireResistant().durability(AntarchyFabricMisc.SPRINGY_BOOTS_ARMOR_MATERIAL.getDurabilityForType(ArmorItem.Type.BOOTS))
));
@@ -848,6 +1101,9 @@ public final class AntarchyFabricItems {
public static final DeferredItem<BrutalflyElytraItem> BRUTALFLY_ELYTRA = ITEMS.register("brutalfly_elytra",
() -> new BrutalflyElytraItem(new Item.Properties().rarity(Rarity.UNCOMMON).durability(480)));
public static final DeferredItem<Item> MANTICORE_WING = ITEMS.registerSimpleItem("manticore_wing", new Item.Properties().rarity(Rarity.UNCOMMON));
public static final DeferredItem<ManticoreWingsItem> MANTICORE_WINGS = ITEMS.register("manticore_wings",
() -> new ManticoreWingsItem(new Item.Properties().rarity(Rarity.RARE).durability(480)));
public static final DeferredItem<Item> CORNEA_EAR = ITEMS.register("cornea_ear",
@@ -883,6 +1139,13 @@ public final class AntarchyFabricItems {
.nutrition(2)
.saturationMod(0.1F)
.effect(new MobEffectInstance(MobEffects.DAMAGE_BOOST, 100, 0), 1.0F)
.build())));
public static final DeferredItem<Item> BROODFRUIT_COBBLER = ITEMS.register("broodfruit_cobbler",
() -> new Item(new Item.Properties()
.food(new FoodProperties.Builder()
.nutrition(8)
.saturationMod(0.8F)
.effect(new MobEffectInstance(MobEffects.DAMAGE_BOOST, 20 * 90, 1), 1.0F)
.build())));
public static final DeferredItem<Item> RAW_BUG_MEAT = ITEMS.register("raw_bug_meat",
() -> new Item(new Item.Properties()
@@ -977,12 +1240,12 @@ public final class AntarchyFabricItems {
.build())));
public static final DeferredItem<Item> TRIFFID_GOO = ITEMS.registerSimpleItem("flytrap_goo",
public static final DeferredItem<Item> FLYTRAP_GOO = ITEMS.registerSimpleItem("flytrap_goo",
new Item.Properties().rarity(Rarity.UNCOMMON));
public static final DeferredItem<Item> VORTEX_EYE = ITEMS.register("vortex_eye",
() -> new MobComingSoonTooltipItem(new Item.Properties().rarity(Rarity.RARE)));
public static final DeferredItem<VortexChargeItem> VORTEX_CHARGE = ITEMS.register("vortex_charge",
() -> new VortexChargeItem(new Item.Properties().stacksTo(64).rarity(Rarity.RARE), AntarchyFabricEntities.VORTEX_CHARGE_PROJECTILE));
public static final DeferredItem<Item> RAW_URANIUM_SCRAP = ITEMS.registerSimpleItem("raw_uranium_scrap", new Item.Properties().rarity(Rarity.UNCOMMON));
@@ -1034,13 +1297,17 @@ public final class AntarchyFabricItems {
.saturationMod(0.0F)
.effect(new MobEffectInstance(MobEffects.HUNGER, 600), 0.8F)
.build())));
public static final DeferredItem<Item> WORM_TOOTH = ITEMS.register("worm_tooth",
() -> new Item(new Item.Properties().rarity(Rarity.UNCOMMON)));
public static final DeferredItem<WormHookItem> WORM_HOOK = ITEMS.register("worm_hook",
() -> new WormHookItem(new Item.Properties().stacksTo(1).durability(256).rarity(Rarity.UNCOMMON)));
public static final DeferredItem<Item> CLOUD_SHARK_FIN = ITEMS.registerSimpleItem("stratoshark_fin", new Item.Properties().rarity(Rarity.UNCOMMON));
public static final DeferredItem<Item> STRATOSHARK_FIN = ITEMS.registerSimpleItem("stratoshark_fin", new Item.Properties().rarity(Rarity.UNCOMMON));
public static final DeferredItem<CloudSharkFinSoupItem> CLOUD_SHARK_FIN_SOUP = ITEMS.register("stratoshark_fin_soup",
() -> new CloudSharkFinSoupItem(new Item.Properties()
public static final DeferredItem<StratosharkFinSoupItem> STRATOSHARK_FIN_SOUP = ITEMS.register("stratoshark_fin_soup",
() -> new StratosharkFinSoupItem(new Item.Properties()
.stacksTo(1)
.craftRemainder(Items.BOWL)
.food(new FoodProperties.Builder()
@@ -1229,6 +1496,47 @@ public final class AntarchyFabricItems {
));
public static final DeferredItem<RoyalGuardianArmorItem> ROYAL_GUARDIAN_HELMET = ITEMS.register("royal_guardian_helmet",
() -> new RoyalGuardianArmorItem(AntarchyFabricMisc.ROYAL_GUARDIAN_ARMOR_MATERIAL, ArmorItem.Type.HELMET,
new Item.Properties().rarity(Rarity.EPIC).fireResistant()));
public static final DeferredItem<RoyalGuardianArmorItem> ROYAL_GUARDIAN_CHESTPLATE = ITEMS.register("royal_guardian_chestplate",
() -> new RoyalGuardianArmorItem(AntarchyFabricMisc.ROYAL_GUARDIAN_ARMOR_MATERIAL, ArmorItem.Type.CHESTPLATE,
new Item.Properties().rarity(Rarity.EPIC).fireResistant()));
public static final DeferredItem<RoyalGuardianArmorItem> ROYAL_GUARDIAN_LEGGINGS = ITEMS.register("royal_guardian_leggings",
() -> new RoyalGuardianArmorItem(AntarchyFabricMisc.ROYAL_GUARDIAN_ARMOR_MATERIAL, ArmorItem.Type.LEGGINGS,
new Item.Properties().rarity(Rarity.EPIC).fireResistant()));
public static final DeferredItem<RoyalGuardianArmorItem> ROYAL_GUARDIAN_BOOTS = ITEMS.register("royal_guardian_boots",
() -> new RoyalGuardianArmorItem(AntarchyFabricMisc.ROYAL_GUARDIAN_ARMOR_MATERIAL, ArmorItem.Type.BOOTS,
new Item.Properties().rarity(Rarity.EPIC).fireResistant()));
public static final DeferredItem<RoyalAssailantArmorItem> ROYAL_ASSAILANT_HELMET = ITEMS.register("royal_assailant_helmet",
() -> new RoyalAssailantArmorItem(AntarchyFabricMisc.ROYAL_ASSAILANT_ARMOR_MATERIAL, ArmorItem.Type.HELMET,
new Item.Properties().rarity(Rarity.EPIC).fireResistant()));
public static final DeferredItem<RoyalAssailantArmorItem> ROYAL_ASSAILANT_CHESTPLATE = ITEMS.register("royal_assailant_chestplate",
() -> new RoyalAssailantArmorItem(AntarchyFabricMisc.ROYAL_ASSAILANT_ARMOR_MATERIAL, ArmorItem.Type.CHESTPLATE,
new Item.Properties().rarity(Rarity.EPIC).fireResistant()));
public static final DeferredItem<RoyalAssailantArmorItem> ROYAL_ASSAILANT_LEGGINGS = ITEMS.register("royal_assailant_leggings",
() -> new RoyalAssailantArmorItem(AntarchyFabricMisc.ROYAL_ASSAILANT_ARMOR_MATERIAL, ArmorItem.Type.LEGGINGS,
new Item.Properties().rarity(Rarity.EPIC).fireResistant()));
public static final DeferredItem<RoyalAssailantArmorItem> ROYAL_ASSAILANT_BOOTS = ITEMS.register("royal_assailant_boots",
() -> new RoyalAssailantArmorItem(AntarchyFabricMisc.ROYAL_ASSAILANT_ARMOR_MATERIAL, ArmorItem.Type.BOOTS,
new Item.Properties().rarity(Rarity.EPIC).fireResistant()));
public static final DeferredItem<RoyalGuardianSwordItem> ROYAL_GUARDIAN_SWORD = ITEMS.register("royal_guardian_sword",
() -> new RoyalGuardianSwordItem(ROYAL_GUARDIAN_TIER,
new Item.Properties().stacksTo(1).rarity(Rarity.EPIC).fireResistant()));
public static final DeferredItem<GiantFryingPanItem> GIANT_FRYING_PAN = ITEMS.register("giant_frying_pan",
() -> new GiantFryingPanItem(ROYAL_GUARDIAN_TIER,
new Item.Properties().stacksTo(1).rarity(Rarity.EPIC).fireResistant()));
public static final DeferredItem<RoyalAssailantBattleAxeItem> ROYAL_ASSAILANT_BATTLEAXE = ITEMS.register("royal_assailant_battleaxe",
() -> new RoyalAssailantBattleAxeItem(ROYAL_ASSAILANT_TIER,
new Item.Properties().stacksTo(1).rarity(Rarity.EPIC).fireResistant()));
public static final DeferredItem<RoyalGuardianShieldItem> ROYAL_GUARDIAN_SHIELD = ITEMS.register("royal_guardian_shield",
() -> new RoyalGuardianShieldItem(
new Item.Properties().durability(AntarchySettings.royalGuardianShieldDurability()).rarity(Rarity.EPIC).fireResistant(),
() -> Ingredient.of(AntarchyFabricItems.KING_SCALE.get())));
public static final DeferredItem<SizeRayItem> SHRINK_RAY = ITEMS.register("shrink_ray",
() -> new SizeRayItem(
new Item.Properties().stacksTo(1).durability(512).rarity(Rarity.RARE).fireResistant(),
@@ -1256,6 +1564,55 @@ public final class AntarchyFabricItems {
public static final DeferredItem<GravityGunItem> GRAVITY_GUN = ITEMS.register("gravity_gun",
() -> new GravityGunItem(new Item.Properties().stacksTo(1).durability(512).rarity(Rarity.RARE).fireResistant()));
public static final DeferredItem<PortalGunItem> PORTAL_GUN = ITEMS.register("portal_gun",
() -> new PortalGunItem(
new Item.Properties().stacksTo(1).durability(256).rarity(Rarity.RARE),
AntarchyFabricEntities.PORTAL_GUN_PORTAL,
AntarchyFabricEntities.PORTAL_GUN_PROJECTILE,
AntarchyFabricBlocks.PORTAL_GUN_PORTAL_MASTER,
AntarchyFabricBlocks.PORTAL_GUN_PORTAL_BASE,
com.craisinlord.antarchy.content.portalgun.PortalGunVariant.DEFAULT
));
public static final DeferredItem<PortalGunItem> PORTAL_GUN_ATLAS = ITEMS.register("portal_gun_atlas",
() -> new PortalGunItem(
new Item.Properties().stacksTo(1).durability(256).rarity(Rarity.RARE),
AntarchyFabricEntities.PORTAL_GUN_PORTAL,
AntarchyFabricEntities.PORTAL_GUN_PROJECTILE,
AntarchyFabricBlocks.PORTAL_GUN_PORTAL_MASTER,
AntarchyFabricBlocks.PORTAL_GUN_PORTAL_BASE,
com.craisinlord.antarchy.content.portalgun.PortalGunVariant.ATLAS
));
public static final DeferredItem<PortalGunItem> PORTAL_GUN_P_BODY = ITEMS.register("portal_gun_p_body",
() -> new PortalGunItem(
new Item.Properties().stacksTo(1).durability(256).rarity(Rarity.RARE),
AntarchyFabricEntities.PORTAL_GUN_PORTAL,
AntarchyFabricEntities.PORTAL_GUN_PROJECTILE,
AntarchyFabricBlocks.PORTAL_GUN_PORTAL_MASTER,
AntarchyFabricBlocks.PORTAL_GUN_PORTAL_BASE,
com.craisinlord.antarchy.content.portalgun.PortalGunVariant.P_BODY
));
public static final DeferredItem<PortalGunItem> PORTAL_GUN_CRAISIN = ITEMS.register("portal_gun_craisin",
() -> new PortalGunItem(
new Item.Properties().stacksTo(1).durability(256).rarity(Rarity.RARE),
AntarchyFabricEntities.PORTAL_GUN_PORTAL,
AntarchyFabricEntities.PORTAL_GUN_PROJECTILE,
AntarchyFabricBlocks.PORTAL_GUN_PORTAL_MASTER,
AntarchyFabricBlocks.PORTAL_GUN_PORTAL_BASE,
com.craisinlord.antarchy.content.portalgun.PortalGunVariant.CRAISIN
));
public static final DeferredItem<PortalGunItem> PORTAL_GUN_LAYNCE = ITEMS.register("portal_gun_laynce",
() -> new PortalGunItem(
new Item.Properties().stacksTo(1).durability(256).rarity(Rarity.RARE),
AntarchyFabricEntities.PORTAL_GUN_PORTAL,
AntarchyFabricEntities.PORTAL_GUN_PROJECTILE,
AntarchyFabricBlocks.PORTAL_GUN_PORTAL_MASTER,
AntarchyFabricBlocks.PORTAL_GUN_PORTAL_BASE,
com.craisinlord.antarchy.content.portalgun.PortalGunVariant.LAYNCE
));
public static final DeferredItem<EyeOfTheStormItem> EYE_OF_THE_STORM = ITEMS.register("eye_of_the_storm",
() -> new EyeOfTheStormItem(new Item.Properties().stacksTo(1).durability(384).rarity(Rarity.EPIC)));
@@ -1363,6 +1720,18 @@ public final class AntarchyFabricItems {
public static final DeferredItem<DeferredSpawnEggItem> BRUTALFLY_SPAWN_EGG = ITEMS.register("brutalfly_spawn_egg",
() -> new DeferredSpawnEggItem(AntarchyFabricEntities.BRUTALFLY, 0x4A2214, 0xFF8A1D, new Item.Properties().rarity(Rarity.EPIC)));
public static final DeferredItem<DeferredSpawnEggItem> KING_SPAWN_EGG = ITEMS.register("king_spawn_egg",
() -> new DeferredSpawnEggItem(AntarchyFabricEntities.KING, 0xFFFFFF, 0xD4AF37, new Item.Properties().rarity(Rarity.EPIC).fireResistant()));
public static final DeferredItem<DeferredSpawnEggItem> QUEEN_SPAWN_EGG = ITEMS.register("queen_spawn_egg",
() -> new DeferredSpawnEggItem(AntarchyFabricEntities.QUEEN, 0x080608, 0xB11226, new Item.Properties().rarity(Rarity.EPIC).fireResistant()));
public static final DeferredItem<DeferredSpawnEggItem> PRINCE_SPAWN_EGG = ITEMS.register("prince_spawn_egg",
() -> new DeferredSpawnEggItem(AntarchyFabricEntities.PRINCE, 0xFFFFFF, 0xD4AF37, new Item.Properties().rarity(Rarity.EPIC).fireResistant()));
public static final DeferredItem<DeferredSpawnEggItem> PRINCESS_SPAWN_EGG = ITEMS.register("princess_spawn_egg",
() -> new DeferredSpawnEggItem(AntarchyFabricEntities.PRINCESS, 0x3B0A45, 0xB11226, new Item.Properties().rarity(Rarity.EPIC).fireResistant()));
public static final DeferredItem<DeferredSpawnEggItem> RED_ANT_SPAWN_EGG = ITEMS.register("red_ant_spawn_egg",
() -> new DeferredSpawnEggItem(AntarchyFabricEntities.RED_ANT, 0xA31818, 0x2B0909, new Item.Properties()));
@@ -1382,6 +1751,8 @@ public final class AntarchyFabricItems {
public static final DeferredItem<DeferredSpawnEggItem> MOLEWORM_SPAWN_EGG = ITEMS.register("moleworm_spawn_egg",
() -> new DeferredSpawnEggItem(AntarchyFabricEntities.MOLEWORM, 0xB8B8B8, 0x8A623A, new Item.Properties()));
public static final DeferredItem<DeferredSpawnEggItem> WORM_SPAWN_EGG = ITEMS.register("worm_spawn_egg",
() -> new DeferredSpawnEggItem(AntarchyFabricEntities.WORM, 0x7A5742, 0xE4D2A6, new Item.Properties()));
public static final DeferredItem<DeferredSpawnEggItem> MANTIS_SPAWN_EGG = ITEMS.register("mantis_spawn_egg",
@@ -1400,8 +1771,8 @@ public final class AntarchyFabricItems {
() -> new DeferredSpawnEggItem(AntarchyFabricEntities.MOLEVORE, 0x4A4A4A, 0x6B4A2B, new Item.Properties().rarity(Rarity.UNCOMMON)));
public static final DeferredItem<DeferredSpawnEggItem> TRIFFID_SPAWN_EGG = ITEMS.register("flytrap_spawn_egg",
() -> new DeferredSpawnEggItem(AntarchyFabricEntities.TRIFFID, 0x4C8F3A, 0xFF2FB3, new Item.Properties().rarity(Rarity.UNCOMMON)));
public static final DeferredItem<DeferredSpawnEggItem> FLYTRAP_SPAWN_EGG = ITEMS.register("flytrap_spawn_egg",
() -> new DeferredSpawnEggItem(AntarchyFabricEntities.FLYTRAP, 0x4C8F3A, 0xFF2FB3, new Item.Properties().rarity(Rarity.UNCOMMON)));
public static final DeferredItem<DeferredSpawnEggItem> APPLE_COW_SPAWN_EGG = ITEMS.register("apple_cow_spawn_egg",
@@ -1428,8 +1799,8 @@ public final class AntarchyFabricItems {
() -> new DeferredSpawnEggItem(AntarchyFabricEntities.BOMBER, 0x7A7A7A, 0xB32020, new Item.Properties()));
public static final DeferredItem<DeferredSpawnEggItem> JUMPY_BUG_SPAWN_EGG = ITEMS.register("springbug_spawn_egg",
() -> new DeferredSpawnEggItem(AntarchyFabricEntities.JUMPY_BUG, 0x0A1636, 0x8A3E00, new Item.Properties()));
public static final DeferredItem<DeferredSpawnEggItem> SPRINGBUG_SPAWN_EGG = ITEMS.register("springbug_spawn_egg",
() -> new DeferredSpawnEggItem(AntarchyFabricEntities.SPRINGBUG, 0x0A1636, 0x8A3E00, new Item.Properties()));
public static final DeferredItem<DeferredSpawnEggItem> SPIT_BUG_SPAWN_EGG = ITEMS.register("spit_bug_spawn_egg",
@@ -1440,8 +1811,8 @@ public final class AntarchyFabricItems {
() -> new DeferredSpawnEggItem(AntarchyFabricEntities.STINK_BUG, 0x111111, 0xFF7A00, new Item.Properties()));
public static final DeferredItem<DeferredSpawnEggItem> CLOUD_SHARK_SPAWN_EGG = ITEMS.register("stratoshark_spawn_egg",
() -> new DeferredSpawnEggItem(AntarchyFabricEntities.CLOUD_SHARK, 0xDDEAF4, 0x7F96A8, new Item.Properties()));
public static final DeferredItem<DeferredSpawnEggItem> STRATOSHARK_SPAWN_EGG = ITEMS.register("stratoshark_spawn_egg",
() -> new DeferredSpawnEggItem(AntarchyFabricEntities.STRATOSHARK, 0xDDEAF4, 0x7F96A8, new Item.Properties()));
public static final DeferredItem<DeferredSpawnEggItem> KRAKEN_SPAWN_EGG = ITEMS.register("kraken_spawn_egg",
@@ -1467,6 +1838,9 @@ public final class AntarchyFabricItems {
public static final DeferredItem<DeferredSpawnEggItem> LUCID_SPAWN_EGG = ITEMS.register("lucid_spawn_egg",
() -> new DeferredSpawnEggItem(AntarchyFabricEntities.LUCID, 0xE53935, 0xF4D03F, new Item.Properties().rarity(Rarity.RARE)));
public static final DeferredItem<DeferredSpawnEggItem> VORTEX_SPAWN_EGG = ITEMS.register("vortex_spawn_egg",
() -> new DeferredSpawnEggItem(AntarchyFabricEntities.VORTEX, 0x36FF6A, 0x0A5C2A, new Item.Properties().rarity(Rarity.RARE)));
public static final DeferredItem<DeferredSpawnEggItem> SCORPION_SPAWN_EGG = ITEMS.register("scorpion_spawn_egg",
() -> new DeferredSpawnEggItem(AntarchyFabricEntities.SCORPION, 0xA8D8FF, 0xE04B5A, new Item.Properties()));
@@ -1489,6 +1863,8 @@ public final class AntarchyFabricItems {
new Item.Properties().stacksTo(16).rarity(Rarity.UNCOMMON),
AntarchyFabricEntities.LUCID_PEARL_PROJECTILE
));
public static final DeferredItem<RoyalAssailantStaffItem> ROYAL_ASSAILANT_STAFF = ITEMS.register("royal_assailant_staff",
() -> new RoyalAssailantStaffItem(new Item.Properties().stacksTo(1).rarity(Rarity.EPIC).fireResistant()));
public static final DeferredItem<WaterCannonItem> WATER_CANNON = ITEMS.register("water_cannon",
@@ -1515,12 +1891,15 @@ public final class AntarchyFabricItems {
new Item.Properties().stacksTo(1).rarity(Rarity.RARE).fireResistant().durability(AntarchyFabricMisc.PRIMORDIAL_ARMOR_MATERIAL.getDurabilityForType(ArmorItem.Type.BOOTS))));
public static final DeferredItem<DeferredSpawnEggItem> CREEPING_HORROR_SPAWN_EGG = ITEMS.register("crawling_blight_spawn_egg",
() -> new DeferredSpawnEggItem(AntarchyFabricEntities.CREEPING_HORROR, 0x6B3A1F, 0x6B0000, new Item.Properties()));
public static final DeferredItem<DeferredSpawnEggItem> CRAWLING_BLIGHT_SPAWN_EGG = ITEMS.register("crawling_blight_spawn_egg",
() -> new DeferredSpawnEggItem(AntarchyFabricEntities.CRAWLING_BLIGHT, 0x6B3A1F, 0x6B0000, new Item.Properties()));
public static final DeferredItem<DeferredSpawnEggItem> LURKING_TERROR_SPAWN_EGG = ITEMS.register("skulking_fright_spawn_egg",
() -> new DeferredSpawnEggItem(AntarchyFabricEntities.LURKING_TERROR, 0x2D5A1B, 0x8B0000, new Item.Properties()));
public static final DeferredItem<DeferredSpawnEggItem> SKULKING_FRIGHT_SPAWN_EGG = ITEMS.register("skulking_fright_spawn_egg",
() -> new DeferredSpawnEggItem(AntarchyFabricEntities.SKULKING_FRIGHT, 0x2D5A1B, 0x8B0000, new Item.Properties()));
public static final DeferredItem<DeferredSpawnEggItem> MANTICORE_SPAWN_EGG = ITEMS.register("manticore_spawn_egg",
() -> new DeferredSpawnEggItem(AntarchyFabricEntities.MANTICORE, 0xA3AEE9, 0x956570, new Item.Properties()));
public static final DeferredItem<DeferredSpawnEggItem> HERCULES_BEETLE_SPAWN_EGG = ITEMS.register("hercules_beetle_spawn_egg",
@@ -1542,6 +1921,14 @@ public final class AntarchyFabricItems {
.nutrition(2)
.saturationMod(0.1F)
.build())));
public static final DeferredItem<Item> COOKED_CHEEP = ITEMS.register("cooked_cheep",
() -> new Item(new Item.Properties()
.food(new net.minecraft.world.food.FoodProperties.Builder()
.nutrition(5)
.saturationMod(0.6F)
.build())));
public static final DeferredItem<MobBucketItem> CHEEP_BUCKET = ITEMS.register("cheep_bucket",
() -> new MobBucketItem(AntarchyFabricEntities.CHEEP.get(), net.minecraft.world.level.material.Fluids.WATER, SoundEvents.BUCKET_EMPTY_FISH, new Item.Properties().craftRemainder(Items.BUCKET).stacksTo(1)));
public static final DeferredItem<DeferredSpawnEggItem> DORRIE_SPAWN_EGG = ITEMS.register("dorrie_spawn_egg",
() -> new DeferredSpawnEggItem(AntarchyFabricEntities.DORRIE, 0x6F8CFF, 0xD2F2FF, new Item.Properties()));
@@ -1,10 +1,9 @@
package com.craisinlord.antarchy.fabric.registry;
import com.craisinlord.anthology.effect.AnthologyEffects;
import com.craisinlord.antarchy.Antarchy;
import com.craisinlord.antarchy.config.AntarchySettings;
import com.craisinlord.antarchy.content.recipe.AmericanizeRecipe;
import com.craisinlord.antarchy.content.enchantment.ChronosphereEnchantment;
import com.craisinlord.antarchy.content.enchantment.FeatherRisingEnchantment;
import com.craisinlord.antarchy.content.worldgen.ants.BrownAntNestFeature;
import com.craisinlord.antarchy.content.worldgen.ants.RainbowAntNestFeature;
import com.craisinlord.antarchy.content.worldgen.ants.RedAntNestFeature;
@@ -20,21 +19,23 @@ import com.craisinlord.antarchy.content.worldgen.overworld.CornPatchFeature;
import com.craisinlord.antarchy.content.worldgen.thoraxis.NyxiteSpikeConfiguration;
import com.craisinlord.antarchy.content.worldgen.thoraxis.AntiwaterSpringsConfiguration;
import com.craisinlord.antarchy.content.worldgen.thoraxis.AntiwaterSpringsFeature;
import com.craisinlord.antarchy.content.worldgen.thoraxis.DimensionalTearFeature;
import com.craisinlord.antarchy.content.worldgen.thoraxis.NyxiteSpikeFeature;
import com.craisinlord.antarchy.content.worldgen.thoraxis.TyphoniteSpikeConfiguration;
import com.craisinlord.antarchy.content.worldgen.thoraxis.TyphoniteSpikeFeature;
import com.craisinlord.antarchy.content.worldgen.thoraxis.TyphoniteSwirlFeature;
import com.craisinlord.antarchy.content.worldgen.thoraxis.PotentNyxiteFeature;
import com.craisinlord.antarchy.content.worldgen.thoraxis.ThoraxisTransitionThroatFeature;
import com.craisinlord.antarchy.content.worldgen.thoraxis.QueenHavocTrailFeature;
import com.craisinlord.antarchy.content.worldgen.thoraxis.ThoraxisIchorLakeFeature;
import com.craisinlord.antarchy.fabric.content.fluid.AntiwaterFluid;
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.worldgen.elythia.CoralSpikeFeature;
import com.craisinlord.antarchy.content.worldgen.elythia.ElythiaBiomeSource;
import com.craisinlord.antarchy.content.worldgen.elythia.ElythiaRiverCarveFunction;
@@ -62,23 +63,30 @@ import com.craisinlord.antarchy.content.worldgen.elythia.OuranwoodTreeConfigurat
import com.craisinlord.antarchy.content.worldgen.elythia.OuranwoodTreeFeature;
import com.craisinlord.antarchy.content.worldgen.elythia.PeachTreeConfiguration;
import com.craisinlord.antarchy.content.worldgen.elythia.PeachTreeFeature;
import com.craisinlord.antarchy.content.worldgen.elythia.TriffidPatchFeature;
import com.craisinlord.antarchy.content.worldgen.elythia.FlytrapPatchFeature;
import com.craisinlord.antarchy.content.worldgen.cavaryn.CavarynEggPatchFeature;
import com.craisinlord.antarchy.content.worldgen.cavaryn.ChitinSpikeConfiguration;
import com.craisinlord.antarchy.content.worldgen.cavaryn.ChitinSpikeFeature;
import com.craisinlord.antarchy.content.worldgen.thoraxis.BedBugNestFeature;
import com.craisinlord.antarchy.content.worldgen.thoraxis.BedBugSurfaceClusterFeature;
import com.craisinlord.antarchy.content.worldgen.thoraxis.DimensionalTearFeature;
import com.craisinlord.antarchy.content.worldgen.elythia.ElythiaCloudFeature;
import com.craisinlord.antarchy.content.worldgen.thoraxis.LucidAntiwaterPoolFeature;
import com.craisinlord.antarchy.content.worldgen.thoraxis.NadirTreeConfiguration;
import com.craisinlord.antarchy.content.worldgen.thoraxis.NadirTreeFeature;
import com.craisinlord.antarchy.content.worldgen.truffalo.TruffaloTreeConfiguration;
import com.craisinlord.antarchy.content.worldgen.truffalo.TruffaloTreeFeature;
import com.craisinlord.antarchy.content.worldgen.royal.RoyalTreeConfiguration;
import com.craisinlord.antarchy.content.worldgen.royal.RoyalTreeFeature;
import com.craisinlord.antarchy.content.worldgen.thoraxis.ThoraxisBiomeSource;
import com.craisinlord.antarchy.content.worldgen.thoraxis.ThoraxisDuneConfiguration;
import com.craisinlord.antarchy.content.worldgen.thoraxis.ThoraxisDuneFeature;
import com.craisinlord.antarchy.content.worldgen.thoraxis.ThoraxisFissureConfiguration;
import com.craisinlord.antarchy.content.worldgen.thoraxis.ThoraxisFissureFeature;
import com.craisinlord.antarchy.content.worldgen.thoraxis.ThoraxisTransitionThroatFeature;
import com.craisinlord.antarchy.content.worldgen.thoraxis.ThoraxisBloodCrystalConfiguration;
import com.craisinlord.antarchy.content.worldgen.thoraxis.ThoraxisBloodCrystalFeature;
import com.craisinlord.antarchy.content.worldgen.thoraxis.ThoraxisAntiwaterPoolConfiguration;
import com.craisinlord.antarchy.content.worldgen.thoraxis.ThoraxisAntiwaterPoolFeature;
import com.craisinlord.antarchy.content.worldgen.thoraxis.ThoraxisRibColumnsConfiguration;
import com.craisinlord.antarchy.content.worldgen.thoraxis.ThoraxisRibColumnsFeature;
import com.craisinlord.antarchy.content.worldgen.thoraxis.ThoraxisSpikeConfiguration;
@@ -88,22 +96,24 @@ import com.craisinlord.antarchy.content.client.particle.InvertedGeyserParticleOp
import java.util.List;
import com.mojang.serialization.MapCodec;
import net.minecraft.advancements.critereon.EntitySubPredicate;
import net.minecraft.core.Holder;
import net.minecraft.core.registries.Registries;
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.sounds.SoundEvents;
import net.minecraft.world.item.alchemy.Potion;
import net.minecraft.world.effect.MobEffect;
import net.minecraft.world.item.enchantment.Enchantment;
import net.minecraft.world.entity.EquipmentSlot;
import net.minecraft.world.effect.MobEffect;
import com.craisinlord.antarchy.content.enchantment.ChronosphereEnchantment;
import com.craisinlord.antarchy.content.enchantment.FeatherRisingEnchantment;
import net.minecraft.world.effect.MobEffectInstance;
import net.minecraft.world.effect.MobEffects;
import net.minecraft.tags.TagKey;
import net.minecraft.world.damagesource.DamageType;
import net.minecraft.world.entity.ai.attributes.Attribute;
import net.minecraft.world.entity.ai.village.poi.PoiType;
import net.minecraft.world.entity.npc.VillagerProfession;
import net.minecraft.world.item.ArmorItem;
import net.minecraft.world.item.ArmorMaterial;
import net.minecraft.world.item.Items;
@@ -121,6 +131,26 @@ import com.craisinlord.antarchy.fabric.AntarchyFabricContent;
public final class AntarchyFabricMisc {
public static final DeferredRegister<PoiType> POI_TYPES = DeferredRegister.create(Registries.POINT_OF_INTEREST_TYPE, Antarchy.MODID);
public static final DeferredRegister<VillagerProfession> VILLAGER_PROFESSIONS = DeferredRegister.create(Registries.VILLAGER_PROFESSION, Antarchy.MODID);
public static final DeferredHolder<PoiType, PoiType> PEST_CONTROL_POI = POI_TYPES.register("pest_control",
() -> new PoiType(java.util.Set.copyOf(AntarchyFabricBlocks.ANT_TRAP.get().getStateDefinition().getPossibleStates()), 1, 1));
public static final DeferredHolder<PoiType, PoiType> ELYTHIA_PORTAL_POI = POI_TYPES.register("elythia_portal",
() -> new PoiType(java.util.Set.copyOf(AntarchyFabricBlocks.ELYTHIA_PORTAL.get().getStateDefinition().getPossibleStates()), 0, 1));
public static final DeferredHolder<PoiType, PoiType> THORAXIS_PORTAL_POI = POI_TYPES.register("thoraxis_portal",
() -> new PoiType(java.util.Set.copyOf(AntarchyFabricBlocks.THORAXIS_PORTAL.get().getStateDefinition().getPossibleStates()), 0, 1));
public static final DeferredHolder<PoiType, PoiType> CAVARYN_PORTAL_POI = POI_TYPES.register("cavaryn_portal",
() -> new PoiType(java.util.Set.copyOf(AntarchyFabricBlocks.CAVARYN_PORTAL.get().getStateDefinition().getPossibleStates()), 0, 1));
public static final DeferredHolder<VillagerProfession, 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(), SoundEvents.VILLAGER_WORK_FLETCHER));
private static final java.util.Map<ArmorItem.Type, Integer> BASE_DURABILITY = java.util.Map.of(
ArmorItem.Type.BOOTS, 13,
ArmorItem.Type.LEGGINGS, 15,
@@ -132,7 +162,7 @@ public final class AntarchyFabricMisc {
int durabilityMultiplier,
java.util.Map<ArmorItem.Type, Integer> defense,
int enchantmentValue,
net.minecraft.sounds.SoundEvent equipSound,
java.util.function.Supplier<net.minecraft.sounds.SoundEvent> equipSound,
java.util.function.Supplier<Ingredient> repairIngredient,
float toughness,
float knockbackResistance,
@@ -156,7 +186,7 @@ public final class AntarchyFabricMisc {
@Override
public net.minecraft.sounds.SoundEvent getEquipSound() {
return equipSound;
return equipSound.get();
}
@Override
@@ -201,9 +231,9 @@ public final class AntarchyFabricMisc {
TagKey.create(net.minecraft.core.registries.Registries.DAMAGE_TYPE, new ResourceLocation("antarchy", "bypasses_bloodglass"));
public static final DeferredHolder<Attribute, 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 DeferredHolder<Attribute, Attribute> ENTITY_INTERACTION_RANGE = ATTRIBUTES.register(
"entity_interaction_range",
() -> new net.minecraft.world.entity.ai.attributes.RangedAttribute("attribute.antarchy.entity_interaction_range", 3.0, 0.0, 64.0).setSyncable(true)
);
@@ -225,9 +255,9 @@ public final class AntarchyFabricMisc {
public static final DeferredRegister<net.minecraft.world.inventory.MenuType<?>> MENUS = DeferredRegister.create(Registries.MENU, Antarchy.MODID);
public static final DeferredRegister<Enchantment> ENCHANTMENTS = DeferredRegister.create(Registries.ENCHANTMENT, Antarchy.MODID);
public static final DeferredHolder<Enchantment, Enchantment> FEATHER_RISING = ENCHANTMENTS.register("feather_rising",
() -> new FeatherRisingEnchantment(Enchantment.Rarity.RARE, EquipmentSlot.FEET));
() -> new FeatherRisingEnchantment());
public static final DeferredHolder<Enchantment, Enchantment> CHRONOSPHERE = ENCHANTMENTS.register("chronosphere",
() -> new ChronosphereEnchantment(Enchantment.Rarity.RARE, EquipmentSlot.CHEST));
() -> new ChronosphereEnchantment());
public static final DeferredRegister<net.minecraft.world.entity.animal.FrogVariant> FROG_VARIANTS = DeferredRegister.create(Registries.FROG_VARIANT, Antarchy.MODID);
@@ -241,6 +271,10 @@ public final class AntarchyFabricMisc {
public static final DeferredHolder<net.minecraft.world.inventory.MenuType<?>, net.minecraft.world.inventory.MenuType<com.craisinlord.antarchy.content.menu.DorrieInventoryMenu>> DORRIE_INVENTORY_MENU =
MENUS.register("dorrie_inventory", () -> new net.minecraft.world.inventory.MenuType<>(com.craisinlord.antarchy.content.menu.DorrieInventoryMenu::new, FeatureFlags.DEFAULT_FLAGS));
public static final DeferredHolder<net.minecraft.world.inventory.MenuType<?>, net.minecraft.world.inventory.MenuType<com.craisinlord.antarchy.content.menu.RoyalJudgmentMenu>> ROYAL_JUDGMENT_MENU =
MENUS.register("royal_judgment", () -> new net.minecraft.world.inventory.MenuType<>(com.craisinlord.antarchy.content.menu.RoyalJudgmentMenu::new, FeatureFlags.DEFAULT_FLAGS));
public static final DeferredHolder<net.minecraft.world.inventory.MenuType<?>, net.minecraft.world.inventory.MenuType<com.craisinlord.antarchy.content.menu.GiantFryingPanMenu>> GIANT_FRYING_PAN_MENU =
MENUS.register("giant_frying_pan", () -> new net.minecraft.world.inventory.MenuType<>(com.craisinlord.antarchy.content.menu.GiantFryingPanMenu::new, FeatureFlags.DEFAULT_FLAGS));
public static final DeferredRegister<net.minecraft.world.item.crafting.RecipeSerializer<?>> RECIPE_SERIALIZERS =
@@ -249,47 +283,57 @@ public final class AntarchyFabricMisc {
public static final DeferredHolder<net.minecraft.world.item.crafting.RecipeSerializer<?>, net.minecraft.world.item.crafting.RecipeSerializer<AmericanizeRecipe>> AMERICANIZE_SERIALIZER =
RECIPE_SERIALIZERS.register("americanize", () -> AmericanizeRecipe.SERIALIZER);
public static final DeferredHolder<net.minecraft.world.item.crafting.RecipeSerializer<?>, 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 ArmorMaterial ULTIMATE_ARMOR_MATERIAL = armorMaterial(
40, createUltimateArmorDefense(), 10, SoundEvents.ARMOR_EQUIP_DIAMOND,
AntarchyFabricItems::ultimateRepairIngredient, 2.0F,
(float) AntarchySettings.ultimateArmorKnockbackResistance(), "ultimate_armor");
62, createUltimateArmorDefense(), 10, () -> SoundEvents.ARMOR_EQUIP_DIAMOND,
AntarchyFabricItems::ultimateRepairIngredient, 2.0F, (float) AntarchySettings.ultimateArmorKnockbackResistance(), "ultimate_armor");
public static final ArmorMaterial NIGHTMARE_ARMOR_MATERIAL = armorMaterial(
37, createNightmareArmorDefense(), 10, SoundEvents.ARMOR_EQUIP_NETHERITE,
() -> Ingredient.of(AntarchyFabricItems.NIGHTMARE_SCALE.get()), 3.0F,
(float) AntarchySettings.nightmareArmorKnockbackResistance(), "nightmare_armor");
41, createNightmareArmorDefense(), 10, () -> SoundEvents.ARMOR_EQUIP_NETHERITE,
() -> Ingredient.of(AntarchyFabricItems.NIGHTMARE_SCALE.get()), 3.0F, (float) AntarchySettings.nightmareArmorKnockbackResistance(), "nightmare_armor");
public static final ArmorMaterial PRIMORDIAL_ARMOR_MATERIAL = armorMaterial(
33, createPrimordialArmorDefense(), 15, SoundEvents.ARMOR_EQUIP_NETHERITE,
() -> Ingredient.of(AntarchyFabricItems.PRIMORDIAL_SCUTE.get()), 3.0F, 0.1F, "primordial");
37, createPrimordialArmorDefense(), 15, () -> SoundEvents.ARMOR_EQUIP_NETHERITE,
() -> Ingredient.of(AntarchyFabricItems.PRIMORDIAL_SCUTE.get()), 3.5F, 0.1F, "primordial");
public static final ArmorMaterial BLOOD_CRYSTAL_ARMOR_MATERIAL = armorMaterial(
33, createBloodCrystalArmorDefense(), 30, SoundEvents.ARMOR_EQUIP_DIAMOND,
33, createBloodCrystalArmorDefense(), 30, AntarchyFabricSounds.BLOOD_CRYSTAL_ARMOR_EQUIP,
AntarchyFabricItems::bloodCrystalRepairIngredient, 0.0F, 0.0F, "blood_crystal");
public static final ArmorMaterial TIGERS_EYE_ARMOR_MATERIAL = armorMaterial(
18, createDiamondArmorDefense(), 18, () -> SoundEvents.ARMOR_EQUIP_GOLD,
() -> Ingredient.of(AntarchyFabricItems.TIGERS_EYE.get()), 2.0F, 0.0F, "tigers_eye");
public static final ArmorMaterial MOGGLES_ARMOR_MATERIAL = armorMaterial(
25, createMogglesArmorDefense(), 12, SoundEvents.ARMOR_EQUIP_GOLD,
0, createMogglesArmorDefense(), 12, () -> SoundEvents.ARMOR_EQUIP_GOLD,
() -> Ingredient.of(Items.GOLD_INGOT), 0.0F, 0.0F, "moggles");
public static final ArmorMaterial FALLEN_KING_CROWN_ARMOR_MATERIAL = armorMaterial(
25, createFallenKingCrownDefense(), 25, SoundEvents.ARMOR_EQUIP_GOLD,
7, createFallenKingCrownDefense(), 25, () -> SoundEvents.ARMOR_EQUIP_GOLD,
() -> Ingredient.of(Items.GOLD_INGOT), 0.0F, 0.0F, "fallen_king_crown");
public static final ArmorMaterial TIGERS_EYE_ARMOR_MATERIAL = armorMaterial(
18, createDiamondArmorDefense(), 18, SoundEvents.ARMOR_EQUIP_GOLD,
() -> Ingredient.of(AntarchyFabricItems.TIGERS_EYE.get()), 2.0F, 0.0F, "tigers_eye");
public static final ArmorMaterial ROYAL_GUARDIAN_ARMOR_MATERIAL = armorMaterial(
37, new java.util.EnumMap<>(ArmorItem.Type.class), AntarchySettings.royalArmorEnchantability(), () -> SoundEvents.ARMOR_EQUIP_NETHERITE,
() -> Ingredient.of(AntarchyFabricItems.KING_SCALE.get()), 0.0F, 0.0F, "royal_guardian");
public static final ArmorMaterial ROYAL_ASSAILANT_ARMOR_MATERIAL = armorMaterial(
37, new java.util.EnumMap<>(ArmorItem.Type.class), AntarchySettings.royalArmorEnchantability(), () -> SoundEvents.ARMOR_EQUIP_NETHERITE,
() -> Ingredient.of(AntarchyFabricItems.QUEEN_SCALE.get()), 0.0F, 0.0F, "royal_assailant");
public static final DeferredHolder<ParticleType<?>, SimpleParticleType> DREAM_FIRE_FLAME = PARTICLE_TYPES.register("dream_fire_flame",
() -> simpleParticleType());
public static final DeferredHolder<ParticleType<?>, SimpleParticleType> BUG_SPRAY_PARTICLE = PARTICLE_TYPES.register("bug_spray",
() -> simpleParticleType());
public static final DeferredHolder<ParticleType<?>, SimpleParticleType> NIGHTMARE_FIRE_FLAME = PARTICLE_TYPES.register("nightmare_fire_flame",
() -> simpleParticleType());
@@ -343,7 +387,6 @@ public final class AntarchyFabricMisc {
public static final DeferredHolder<ParticleType<?>, SimpleParticleType> UNDERVAULT_CONNECTION = PARTICLE_TYPES.register("undervault_connection",
() -> simpleParticleType());
public static final DeferredHolder<ParticleType<?>, ParticleType<InvertedGeyserBaseParticleOptions>> INVERTED_GEYSER_BASE = PARTICLE_TYPES.register("inverted_geyser_base",
() -> particleType(InvertedGeyserBaseParticleOptions.deserializer()));
@@ -361,15 +404,14 @@ public final class AntarchyFabricMisc {
public static final DeferredHolder<MobEffect, DreadMobEffect> DREAD = MOB_EFFECTS.register("dread", DreadMobEffect::new);
public static final DeferredHolder<MobEffect, BleedingMobEffect> BLEEDING = MOB_EFFECTS.register("bleeding", BleedingMobEffect::new);
public static final DeferredHolder<MobEffect, BloodMoonMobEffect> BLOOD_MOON = MOB_EFFECTS.register("blood_moon", BloodMoonMobEffect::new);
public static final DeferredHolder<MobEffect, ParalyzedMobEffect> PARALYZED = MOB_EFFECTS.register("paralyzed", ParalyzedMobEffect::new);
public static final DeferredHolder<MobEffect, InvertedMobEffect> INVERTED = MOB_EFFECTS.register("inverted", InvertedMobEffect::new);
public static final DeferredHolder<MobEffect, DilatedMobEffect> DILATED = MOB_EFFECTS.register("dilated", DilatedMobEffect::new);
public static final DeferredHolder<MobEffect, ContractedMobEffect> CONTRACTED = MOB_EFFECTS.register("contracted", ContractedMobEffect::new);
public static final DeferredHolder<MobEffect, CommandedMobEffect> COMMANDED = MOB_EFFECTS.register("commanded", CommandedMobEffect::new);
public static final DeferredHolder<MobEffect, StinkyMobEffect> STINKY = MOB_EFFECTS.register("stinky", StinkyMobEffect::new);
@@ -381,6 +423,10 @@ public final class AntarchyFabricMisc {
public static final DeferredHolder<MobEffect, com.craisinlord.antarchy.content.effect.BloodglassWardEffect> BLOODGLASS_WARD = MOB_EFFECTS.register("bloodglass_ward", com.craisinlord.antarchy.content.effect.BloodglassWardEffect::new);
public static final DeferredHolder<MobEffect, com.craisinlord.antarchy.content.effect.GlimmeringMobEffect> GLIMMERING = MOB_EFFECTS.register("glimmering", com.craisinlord.antarchy.content.effect.GlimmeringMobEffect::new);
public static final DeferredHolder<MobEffect, 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 DeferredHolder<Attribute, Attribute> BLOODGLASS_MAX_HEARTS = ATTRIBUTES.register(
"bloodglass_max_hearts",
() -> new net.minecraft.world.entity.ai.attributes.RangedAttribute("attribute.antarchy.bloodglass_max_hearts", 0.0, 0.0, 8.0).setSyncable(true)
@@ -396,17 +442,23 @@ public final class AntarchyFabricMisc {
public static final DeferredHolder<Potion, Potion> INVERSION = POTIONS.register("inversion",
() -> new Potion(new MobEffectInstance(mobEffectHolder(INVERTED), 600)));
() -> new Potion(new MobEffectInstance(AnthologyEffects.inverted(), 600)));
public static final DeferredHolder<Potion, 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 DeferredHolder<Potion, Potion> COMMAND = POTIONS.register("command",
() -> new Potion(new MobEffectInstance(mobEffectHolder(COMMANDED), 600)));
public static final DeferredHolder<Potion, Potion> LONG_COMMAND = POTIONS.register("long_command",
() -> new Potion("command", new MobEffectInstance(mobEffectHolder(COMMANDED), 1200)));
public static final DeferredHolder<Potion, Potion> TIME_DILATION = POTIONS.register("time_dilation",
() -> new Potion(new MobEffectInstance(mobEffectHolder(DILATED), 1200)));
() -> new Potion(new MobEffectInstance(AnthologyEffects.dilated(), 1200)));
public static final DeferredHolder<Potion, 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 DeferredHolder<Potion, Potion> TIME_CONTRACTION = POTIONS.register("time_contraction",
() -> new Potion(new MobEffectInstance(AnthologyEffects.contracted(), 1200)));
public static final DeferredHolder<Potion, Potion> LONG_TIME_CONTRACTION = POTIONS.register("long_time_contraction",
() -> new Potion("time_contraction", new MobEffectInstance(AnthologyEffects.contracted(), 1200, 1)));
public static final DeferredHolder<Potion, Potion> STINKY_POTION = POTIONS.register("stinky",
@@ -421,7 +473,6 @@ public final class AntarchyFabricMisc {
public static final DeferredHolder<MobEffect, GrowthMobEffect> GROWTH_EFFECT = MOB_EFFECTS.register("growth", GrowthMobEffect::new);
public static final DeferredHolder<MobEffect, com.craisinlord.antarchy.content.effect.GlimmeringMobEffect> GLIMMERING = MOB_EFFECTS.register("glimmering", com.craisinlord.antarchy.content.effect.GlimmeringMobEffect::new);
public static final DeferredHolder<Potion, Potion> PARALYSIS = POTIONS.register("paralysis",
@@ -586,13 +637,25 @@ public final class AntarchyFabricMisc {
() -> new PeachTreeFeature(PeachTreeConfiguration.CODEC));
public static final DeferredHolder<Feature<?>, ElythiaFloraFeature> ELYTHIA_FOREST_FLORA = FEATURES.register("elythia_forest_flora",
() -> new ElythiaFloraFeature(NoneFeatureConfiguration.CODEC, ElythiaFloraFeature.Variant.FOREST));
public static final DeferredHolder<Feature<?>, NadirTreeFeature> NADIR_TREE_FEATURE = FEATURES.register("nadir_tree",
() -> new NadirTreeFeature(NadirTreeConfiguration.CODEC));
public static final DeferredHolder<Feature<?>, TruffaloTreeFeature> TRUFFALO_TREE_FEATURE = FEATURES.register("truffalo_tree",
() -> new TruffaloTreeFeature(TruffaloTreeConfiguration.CODEC));
public static final DeferredHolder<Feature<?>, RoyalTreeFeature> ROYAL_TREE_FEATURE = FEATURES.register("royal_tree",
() -> new RoyalTreeFeature(RoyalTreeConfiguration.CODEC));
public static final DeferredHolder<Feature<?>, KingsTreeGridFeature> KINGS_TREE_GRID = FEATURES.register("kings_tree_grid",
() -> new KingsTreeGridFeature(NoneFeatureConfiguration.CODEC));
public static final DeferredHolder<Feature<?>, ElythiaFloraFeature> ELYTHIA_FOREST_FLORA = FEATURES.register("elythia_forest_flora",
() -> new ElythiaFloraFeature(NoneFeatureConfiguration.CODEC, ElythiaFloraFeature.Variant.FOREST));
public static final DeferredHolder<Feature<?>, ElythiaFloraFeature> ELYTHIA_MEADOW_FLORA = FEATURES.register("elythia_meadow_flora",
() -> new ElythiaFloraFeature(NoneFeatureConfiguration.CODEC, ElythiaFloraFeature.Variant.MEADOW));
@@ -647,16 +710,16 @@ public final class AntarchyFabricMisc {
() -> new MolewormSurfaceMoundsFeature(NoneFeatureConfiguration.CODEC));
public static final DeferredHolder<Feature<?>, TriffidPatchFeature> TRIFFID_PATCH = FEATURES.register("flytrap_patch",
() -> new TriffidPatchFeature(NoneFeatureConfiguration.CODEC));
public static final DeferredHolder<Feature<?>, FlytrapPatchFeature> FLYTRAP_PATCH = FEATURES.register("flytrap_patch",
() -> new FlytrapPatchFeature(NoneFeatureConfiguration.CODEC));
public static final DeferredHolder<com.mojang.serialization.Codec<? extends BiomeSource>, com.mojang.serialization.Codec<? extends BiomeSource>> ELYTHIA_BIOME_SOURCE = BIOME_SOURCES.register("elythia_biome_source",
() -> (com.mojang.serialization.Codec<? extends net.minecraft.world.level.biome.BiomeSource>) (com.mojang.serialization.Codec<?>) ElythiaBiomeSource.CODEC);
() -> ElythiaBiomeSource.CODEC);
public static final DeferredHolder<com.mojang.serialization.Codec<? extends DensityFunction>, com.mojang.serialization.Codec<? extends DensityFunction>> ELYTHIA_RIVER_CARVE = DENSITY_FUNCTION_TYPES.register("elythia_river_carve",
() -> (com.mojang.serialization.Codec<? extends net.minecraft.world.level.levelgen.DensityFunction>) (com.mojang.serialization.Codec<?>) ElythiaRiverCarveFunction.KEY_CODEC.codec());
() -> ElythiaRiverCarveFunction.KEY_CODEC.codec());
public static final DeferredHolder<Feature<?>, ElythiaPondFeature> ELYTHIA_POND = FEATURES.register("elythia_pond",
@@ -669,6 +732,12 @@ public final class AntarchyFabricMisc {
public static final DeferredHolder<Feature<?>, LumenLilyPadFeature> LUMEN_LILY_PADS = FEATURES.register("lumen_lily_pads",
() -> new LumenLilyPadFeature(NoneFeatureConfiguration.CODEC));
public static final DeferredHolder<Feature<?>, 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 DeferredHolder<Feature<?>, com.craisinlord.antarchy.content.worldgen.thoraxis.NaturalDirectionalVineFeature> SPIRALING_VINES = FEATURES.register("spiraling_vines",
() -> new com.craisinlord.antarchy.content.worldgen.thoraxis.NaturalDirectionalVineFeature(NoneFeatureConfiguration.CODEC, "spiraling_vines", net.minecraft.core.Direction.UP, 4, 12));
public static final DeferredHolder<Feature<?>, com.craisinlord.antarchy.content.worldgen.thoraxis.NaturalDirectionalVineFeature> GOREVINE = FEATURES.register("gorevine",
() -> new com.craisinlord.antarchy.content.worldgen.thoraxis.NaturalDirectionalVineFeature(NoneFeatureConfiguration.CODEC, "gorevine", net.minecraft.core.Direction.DOWN, 8, 16));
public static final DeferredHolder<Feature<?>, 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));
@@ -701,10 +770,11 @@ public final class AntarchyFabricMisc {
public static final DeferredHolder<Feature<?>, ThoraxisFissureFeature> THORAXIS_FISSURE = FEATURES.register("thoraxis_fissure",
() -> new ThoraxisFissureFeature(ThoraxisFissureConfiguration.CODEC));
public static final DeferredHolder<Feature<?>, QueenHavocTrailFeature> QUEEN_HAVOC_TRAIL = FEATURES.register("queen_havoc_trail",
QueenHavocTrailFeature::new);
public static final DeferredHolder<Feature<?>, ThoraxisTransitionThroatFeature> THORAXIS_TRANSITION_THROAT = FEATURES.register("thoraxis_transition_throat",
ThoraxisTransitionThroatFeature::new);
public static final DeferredHolder<Feature<?>, QueenHavocTrailFeature> QUEEN_HAVOC_TRAIL = FEATURES.register("queen_havoc_trail",
QueenHavocTrailFeature::new);
public static final DeferredHolder<Feature<?>, ThoraxisRibColumnsFeature> THORAXIS_RIB_COLUMNS = FEATURES.register("thoraxis_rib_columns",
@@ -717,6 +787,10 @@ public final class AntarchyFabricMisc {
public static final DeferredHolder<Feature<?>, NyxiteSpikeFeature> NYXITE_SPIKES = FEATURES.register("nyxite_spikes",
() -> new NyxiteSpikeFeature(NyxiteSpikeConfiguration.CODEC));
public static final DeferredHolder<Feature<?>, TyphoniteSpikeFeature> TYPHONITE_SPIKES = FEATURES.register("typhonite_spikes",
() -> new TyphoniteSpikeFeature(TyphoniteSpikeConfiguration.CODEC));
public static final DeferredHolder<Feature<?>, TyphoniteSwirlFeature> TYPHONITE_SWIRLS = FEATURES.register("typhonite_swirls",
() -> new TyphoniteSwirlFeature(NoneFeatureConfiguration.CODEC));
public static final DeferredHolder<Feature<?>, ChitinSpikeFeature> CAVARYN_CHITIN_SPIKES = FEATURES.register("cavaryn_chitin_spikes",
@@ -744,8 +818,8 @@ public final class AntarchyFabricMisc {
public static final DeferredHolder<Feature<?>, 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 DeferredHolder<Feature<?>, 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 DeferredHolder<Feature<?>, 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 DeferredHolder<Feature<?>, 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 DeferredHolder<Feature<?>, com.craisinlord.antarchy.content.worldgen.cavaryn.RollyCavesGiantCavernFeature> ROLLY_CAVES_GIANT_CAVERN = FEATURES.register("rolly_caves_giant_cavern",
@@ -790,9 +864,6 @@ public final class AntarchyFabricMisc {
() -> new com.craisinlord.antarchy.content.worldgen.mushroom.GlowcapHugeMushroomWorldgenFeature(NoneFeatureConfiguration.CODEC));
public static final DeferredHolder<Feature<?>, ThoraxisAntiwaterPoolFeature> THORAXIS_ANTIWATER_POOL = FEATURES.register("thoraxis_antiwater_pool",
() -> new ThoraxisAntiwaterPoolFeature(ThoraxisAntiwaterPoolConfiguration.CODEC));
public static final DeferredHolder<Feature<?>, LucidAntiwaterPoolFeature> LUCID_ANTIWATER_POOL = FEATURES.register("lucid_antiwater_pool",
() -> new LucidAntiwaterPoolFeature(ThoraxisAntiwaterPoolConfiguration.CODEC));
@@ -801,15 +872,17 @@ public final class AntarchyFabricMisc {
public static final DeferredHolder<Feature<?>, ThoraxisDuneFeature> THORAXIS_DUNE = FEATURES.register("thoraxis_dune",
() -> new ThoraxisDuneFeature(ThoraxisDuneConfiguration.CODEC));
public static final DeferredHolder<Feature<?>, DimensionalTearFeature> DIMENSIONAL_TEAR = FEATURES.register("dimensional_tear",
() -> new DimensionalTearFeature(NoneFeatureConfiguration.CODEC));
public static final DeferredHolder<Feature<?>, ThoraxisIchorLakeFeature> THORAXIS_ICHOR_LAKE = FEATURES.register("thoraxis_ichor_lake",
() -> new ThoraxisIchorLakeFeature(NoneFeatureConfiguration.CODEC));
public static final DeferredHolder<Feature<?>, CoralSpikeFeature> ELYTHIA_CORAL_SPIKE = FEATURES.register("elythia_coral_spike",
() -> new CoralSpikeFeature(NoneFeatureConfiguration.CODEC));
public static final DeferredHolder<Feature<?>, DimensionalTearFeature> DIMENSIONAL_TEAR = FEATURES.register("dimensional_tear",
() -> new DimensionalTearFeature(NoneFeatureConfiguration.CODEC));
public static final DeferredHolder<Feature<?>, 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));
@@ -819,11 +892,11 @@ public final class AntarchyFabricMisc {
public static final DeferredHolder<com.mojang.serialization.Codec<? extends BiomeSource>, com.mojang.serialization.Codec<? extends BiomeSource>> THORAXIS_BIOME_SOURCE = BIOME_SOURCES.register("thoraxis_biome_source",
() -> (com.mojang.serialization.Codec<? extends net.minecraft.world.level.biome.BiomeSource>) (com.mojang.serialization.Codec<?>) ThoraxisBiomeSource.CODEC);
() -> ThoraxisBiomeSource.CODEC);
public static final ArmorMaterial JUMPY_BOOTS_ARMOR_MATERIAL = armorMaterial(
37, createJumpyBootsDefense(), 15, net.minecraft.sounds.SoundEvents.ARMOR_EQUIP_NETHERITE,
public static final ArmorMaterial SPRINGY_BOOTS_ARMOR_MATERIAL = armorMaterial(
37, createSpringyBootsDefense(), 15, () -> net.minecraft.sounds.SoundEvents.ARMOR_EQUIP_NETHERITE,
() -> Ingredient.of(net.minecraft.world.item.Items.NETHERITE_BOOTS), 3.0F, 0.1F, "springy_boots");
@@ -840,9 +913,6 @@ public final class AntarchyFabricMisc {
private static java.util.EnumMap<ArmorItem.Type, Integer> createUltimateArmorDefense() {
java.util.EnumMap<ArmorItem.Type, Integer> defense = new java.util.EnumMap<>(ArmorItem.Type.class);
defense.put(ArmorItem.Type.BOOTS, 6);
@@ -865,7 +935,7 @@ public final class AntarchyFabricMisc {
private static java.util.EnumMap<ArmorItem.Type, Integer> createJumpyBootsDefense() {
private static java.util.EnumMap<ArmorItem.Type, Integer> createSpringyBootsDefense() {
java.util.EnumMap<ArmorItem.Type, Integer> defense = new java.util.EnumMap<>(ArmorItem.Type.class);
defense.put(ArmorItem.Type.BOOTS, 3);
defense.put(ArmorItem.Type.LEGGINGS, 0);
@@ -876,17 +946,6 @@ public final class AntarchyFabricMisc {
private static java.util.EnumMap<ArmorItem.Type, Integer> createDiamondArmorDefense() {
java.util.EnumMap<ArmorItem.Type, Integer> defense = new java.util.EnumMap<>(ArmorItem.Type.class);
defense.put(ArmorItem.Type.BOOTS, 3);
defense.put(ArmorItem.Type.LEGGINGS, 6);
defense.put(ArmorItem.Type.CHESTPLATE, 8);
defense.put(ArmorItem.Type.HELMET, 3);
return defense;
}
private static java.util.EnumMap<ArmorItem.Type, Integer> createBloodCrystalArmorDefense() {
java.util.EnumMap<ArmorItem.Type, Integer> defense = new java.util.EnumMap<>(ArmorItem.Type.class);
defense.put(ArmorItem.Type.BOOTS, 2);
@@ -896,6 +955,15 @@ public final class AntarchyFabricMisc {
return defense;
}
private static java.util.EnumMap<ArmorItem.Type, Integer> createDiamondArmorDefense() {
java.util.EnumMap<ArmorItem.Type, Integer> defense = new java.util.EnumMap<>(ArmorItem.Type.class);
defense.put(ArmorItem.Type.BOOTS, 3);
defense.put(ArmorItem.Type.LEGGINGS, 6);
defense.put(ArmorItem.Type.CHESTPLATE, 8);
defense.put(ArmorItem.Type.HELMET, 3);
return defense;
}
private static java.util.EnumMap<ArmorItem.Type, Integer> createMogglesArmorDefense() {
@@ -951,6 +1019,8 @@ public final class AntarchyFabricMisc {
public static void register() {
POI_TYPES.register();
VILLAGER_PROFESSIONS.register();
FLUIDS.register();
ATTRIBUTES.register();
PARTICLE_TYPES.register();
@@ -960,6 +1030,7 @@ public final class AntarchyFabricMisc {
MOB_EFFECTS.register();
POTIONS.register();
MENUS.register();
ENCHANTMENTS.register();
FROG_VARIANTS.register();
RECIPE_SERIALIZERS.register();
}
@@ -13,13 +13,25 @@ public final class AntarchyFabricSounds {
public static final DeferredHolder<SoundEvent, SoundEvent> SQUIDZOOKA_FIRE = registerSoundEvent("squidzooka_fire");
public static final DeferredHolder<SoundEvent, SoundEvent> SHRINK_RAY_SOUND = registerSoundEvent("shrink_ray");
public static final DeferredHolder<SoundEvent, SoundEvent> SHRINK_RAY_CHARGE = registerSoundEvent("shrink_ray_charge");
public static final DeferredHolder<SoundEvent, SoundEvent> GROWTH_RAY_SOUND = registerSoundEvent("growth_ray");
public static final DeferredHolder<SoundEvent, SoundEvent> SHRINK_RAY_LOOP = registerSoundEvent("shrink_ray_loop");
public static final DeferredHolder<SoundEvent, SoundEvent> SIZE_RAY_CHARGE = registerSoundEvent("size_ray_charge");
public static final DeferredHolder<SoundEvent, SoundEvent> GROWTH_RAY_CHARGE = registerSoundEvent("growth_ray_charge");
public static final DeferredHolder<SoundEvent, SoundEvent> GROWTH_RAY_LOOP = registerSoundEvent("growth_ray_loop");
public static final DeferredHolder<SoundEvent, SoundEvent> SIZE_RAY_WEAKSHOT = registerSoundEvent("size_ray_weakshot");
public static final DeferredHolder<SoundEvent, SoundEvent> SIZE_RAY_MEDIUMSHOT = registerSoundEvent("size_ray_mediumshot");
public static final DeferredHolder<SoundEvent, SoundEvent> SIZE_RAY_CRITSHOT = registerSoundEvent("size_ray_critshot");
public static final DeferredHolder<SoundEvent, SoundEvent> ANT_AMBIENT = registerSoundEvent("ant_ambient");
@@ -40,19 +52,19 @@ public final class AntarchyFabricSounds {
public static final DeferredHolder<SoundEvent, SoundEvent> ANT_NEST = registerSoundEvent("ant_nest");
public static final DeferredHolder<SoundEvent, SoundEvent> CLOUD_SHARK_BITE = registerSoundEvent("stratoshark_bite");
public static final DeferredHolder<SoundEvent, SoundEvent> STRATOSHARK_BITE = registerSoundEvent("stratoshark_bite");
public static final DeferredHolder<SoundEvent, SoundEvent> CLOUD_SHARK_IDLE = registerSoundEvent("stratoshark_idle");
public static final DeferredHolder<SoundEvent, SoundEvent> STRATOSHARK_IDLE = registerSoundEvent("stratoshark_idle");
public static final DeferredHolder<SoundEvent, SoundEvent> CLOUD_SHARK_HURT = registerSoundEvent("stratoshark_hurt");
public static final DeferredHolder<SoundEvent, SoundEvent> STRATOSHARK_HURT = registerSoundEvent("stratoshark_hurt");
public static final DeferredHolder<SoundEvent, SoundEvent> CLOUD_SHARK_DEATH = registerSoundEvent("stratoshark_death");
public static final DeferredHolder<SoundEvent, SoundEvent> STRATOSHARK_DEATH = registerSoundEvent("stratoshark_death");
public static final DeferredHolder<SoundEvent, SoundEvent> CLOUD_SHARK_FLY = registerSoundEvent("stratoshark_fly");
public static final DeferredHolder<SoundEvent, SoundEvent> STRATOSHARK_FLY = registerSoundEvent("stratoshark_fly");
public static final DeferredHolder<SoundEvent, SoundEvent> CATERPILLAR_IDLE = registerSoundEvent("caterpillar_idle");
@@ -169,6 +181,28 @@ public final class AntarchyFabricSounds {
public static final DeferredHolder<SoundEvent, SoundEvent> THORAXIS_LUCID_POOLS_MOOD = registerSoundEvent("thoraxis_lucid_pools_mood");
public static final DeferredHolder<SoundEvent, SoundEvent> LUCID_LULLABY = registerSoundEvent("lucid_lullaby");
public static final DeferredHolder<SoundEvent, SoundEvent> WHISTLING_VOID = registerSoundEvent("whistling_void");
public static final DeferredHolder<SoundEvent, SoundEvent> MUSIC_GAME_THORAXIS = registerSoundEvent("music.game.thoraxis");
public static final DeferredHolder<SoundEvent, SoundEvent> DIMENSIONAL_TEAR_OPEN = registerSoundEvent("dimensional_tear_open");
public static final DeferredHolder<SoundEvent, SoundEvent> DIMENSIONAL_TEAR_IDLE = registerSoundEvent("dimensional_tear_idle");
public static final DeferredHolder<SoundEvent, SoundEvent> DIMENSIONAL_TEAR_CREATURE_LEAVES = registerSoundEvent("dimensional_tear_creature_leaves");
public static final DeferredHolder<SoundEvent, SoundEvent> DIMENSIONAL_TEAR_CLOSE = registerSoundEvent("dimensional_tear_close");
public static final DeferredHolder<SoundEvent, SoundEvent> MUSIC_GAME_CAVARYN = registerSoundEvent("music.game.cavaryn");
public static final DeferredHolder<SoundEvent, SoundEvent> WISTFUL_WANDERINGS = registerSoundEvent("wistful_wanderings");
public static final DeferredHolder<SoundEvent, SoundEvent> MUSIC_GAME_ELYTHIA = registerSoundEvent("music.game.elythia");
public static final DeferredHolder<SoundEvent, SoundEvent> LUCID_AMBIENT = registerSoundEvent("lucid_ambient");
@@ -241,22 +275,22 @@ public final class AntarchyFabricSounds {
public static final DeferredHolder<SoundEvent, SoundEvent> NIGHTMARE_FLAP = registerSoundEvent("nightmare_flap");
public static final DeferredHolder<SoundEvent, SoundEvent> TRIFFID_ATTACK = registerSoundEvent("flytrap_attack");
public static final DeferredHolder<SoundEvent, SoundEvent> FLYTRAP_ATTACK = registerSoundEvent("flytrap_attack");
public static final DeferredHolder<SoundEvent, SoundEvent> TRIFFID_GRAB = registerSoundEvent("flytrap_grab");
public static final DeferredHolder<SoundEvent, SoundEvent> FLYTRAP_GRAB = registerSoundEvent("flytrap_grab");
public static final DeferredHolder<SoundEvent, SoundEvent> TRIFFID_HURT = registerSoundEvent("flytrap_hurt");
public static final DeferredHolder<SoundEvent, SoundEvent> FLYTRAP_HURT = registerSoundEvent("flytrap_hurt");
public static final DeferredHolder<SoundEvent, SoundEvent> TRIFFID_DEATH = registerSoundEvent("flytrap_death");
public static final DeferredHolder<SoundEvent, SoundEvent> FLYTRAP_DEATH = registerSoundEvent("flytrap_death");
public static final DeferredHolder<SoundEvent, SoundEvent> TRIFFID_HISS = registerSoundEvent("flytrap_hiss");
public static final DeferredHolder<SoundEvent, SoundEvent> FLYTRAP_HISS = registerSoundEvent("flytrap_hiss");
public static final DeferredHolder<SoundEvent, SoundEvent> TRIFFID_GROWL = registerSoundEvent("flytrap_growl");
public static final DeferredHolder<SoundEvent, SoundEvent> FLYTRAP_GROWL = registerSoundEvent("flytrap_growl");
public static final DeferredHolder<SoundEvent, SoundEvent> MANTIS_AMBIENT = registerSoundEvent("mantis_ambient");
@@ -271,6 +305,14 @@ public final class AntarchyFabricSounds {
public static final DeferredHolder<SoundEvent, SoundEvent> MANTIS_FLY_LOOP = registerSoundEvent("mantis_fly_loop");
public static final DeferredHolder<SoundEvent, SoundEvent> MANTICORE_IDLE = registerSoundEvent("manticore_idle");
public static final DeferredHolder<SoundEvent, SoundEvent> MANTICORE_WALK = registerSoundEvent("manticore_walk");
public static final DeferredHolder<SoundEvent, SoundEvent> MANTICORE_FLY = registerSoundEvent("manticore_fly");
public static final DeferredHolder<SoundEvent, SoundEvent> MANTICORE_BITE = registerSoundEvent("manticore_bite");
public static final DeferredHolder<SoundEvent, SoundEvent> GRAVITY_GUN_PICKUP = registerSoundEvent("gravity_gun_pickup");
@@ -286,6 +328,27 @@ public final class AntarchyFabricSounds {
public static final DeferredHolder<SoundEvent, SoundEvent> GRAVITY_GUN_DRYFIRE = registerSoundEvent("gravity_gun_dryfire");
public static final DeferredHolder<SoundEvent, SoundEvent> PORTAL_GUN_FIRE_BLUE = registerSoundEvent("portal_gun_fire_blue");
public static final DeferredHolder<SoundEvent, SoundEvent> PORTAL_GUN_FIRE_ORANGE = registerSoundEvent("portal_gun_fire_orange");
public static final DeferredHolder<SoundEvent, SoundEvent> PORTAL_GUN_INVALID_SURFACE = registerSoundEvent("portal_gun_invalid_surface");
public static final DeferredHolder<SoundEvent, SoundEvent> PORTAL_OPEN_BLUE = registerSoundEvent("portal_open_blue");
public static final DeferredHolder<SoundEvent, SoundEvent> PORTAL_OPEN_ORANGE = registerSoundEvent("portal_open_orange");
public static final DeferredHolder<SoundEvent, SoundEvent> PORTAL_FIZZLE = registerSoundEvent("portal_fizzle");
public static final DeferredHolder<SoundEvent, SoundEvent> PORTAL_ENTER = registerSoundEvent("portal_enter");
public static final DeferredHolder<SoundEvent, SoundEvent> PORTAL_EXIT = registerSoundEvent("portal_exit");
public static final DeferredHolder<SoundEvent, SoundEvent> PORTAL_AMBIENT = registerSoundEvent("portal_ambient");
public static final DeferredHolder<SoundEvent, SoundEvent> BED_BUG_AMBIENT = registerSoundEvent("bed_bug_ambient");
@@ -400,6 +463,9 @@ public final class AntarchyFabricSounds {
public static final DeferredHolder<SoundEvent, SoundEvent> CAVARYN_HEARTBEAT = registerSoundEvent("cavaryn_heartbeat");
public static final DeferredHolder<SoundEvent, SoundEvent> VENENATUS = registerSoundEvent("venenatus");
public static final DeferredHolder<SoundEvent, SoundEvent> ROLLY_POLLY_IDLE = registerSoundEvent("rolly_polly_idle");
public static final DeferredHolder<SoundEvent, SoundEvent> ROLLY_POLLY_WHEEL_MODE = registerSoundEvent("rolly_polly_wheel_mode");
public static final DeferredHolder<SoundEvent, SoundEvent> ROLLY_POLLY_NORMAL_MODE = registerSoundEvent("rolly_polly_normal_mode");
@@ -414,35 +480,35 @@ public final class AntarchyFabricSounds {
public static final DeferredHolder<SoundEvent, SoundEvent> JERRY_ADULT_ATTACK = registerSoundEvent("jerry_adult_attack");
public static final DeferredHolder<SoundEvent, SoundEvent> CREEPING_HORROR_GROWL = registerSoundEvent("crawling_blight_growl");
public static final DeferredHolder<SoundEvent, SoundEvent> CRAWLING_BLIGHT_GROWL = registerSoundEvent("crawling_blight_growl");
public static final DeferredHolder<SoundEvent, SoundEvent> CREEPING_HORROR_HURT = registerSoundEvent("crawling_blight_hurt");
public static final DeferredHolder<SoundEvent, SoundEvent> CRAWLING_BLIGHT_HURT = registerSoundEvent("crawling_blight_hurt");
public static final DeferredHolder<SoundEvent, SoundEvent> CREEPING_HORROR_BITE = registerSoundEvent("crawling_blight_bite");
public static final DeferredHolder<SoundEvent, SoundEvent> CRAWLING_BLIGHT_BITE = registerSoundEvent("crawling_blight_bite");
public static final DeferredHolder<SoundEvent, SoundEvent> LURKING_TERROR_SNARL = registerSoundEvent("skulking_fright_snarl");
public static final DeferredHolder<SoundEvent, SoundEvent> SKULKING_FRIGHT_SNARL = registerSoundEvent("skulking_fright_snarl");
public static final DeferredHolder<SoundEvent, SoundEvent> LURKING_TERROR_HURT = registerSoundEvent("skulking_fright_hurt");
public static final DeferredHolder<SoundEvent, SoundEvent> SKULKING_FRIGHT_HURT = registerSoundEvent("skulking_fright_hurt");
public static final DeferredHolder<SoundEvent, SoundEvent> LURKING_TERROR_BITE = registerSoundEvent("skulking_fright_bite");
public static final DeferredHolder<SoundEvent, SoundEvent> SKULKING_FRIGHT_BITE = registerSoundEvent("skulking_fright_bite");
public static final DeferredHolder<SoundEvent, SoundEvent> LURKING_TERROR_FLY_LOOP = registerSoundEvent("skulking_fright_fly_loop");
public static final DeferredHolder<SoundEvent, SoundEvent> SKULKING_FRIGHT_FLY_LOOP = registerSoundEvent("skulking_fright_fly_loop");
public static final DeferredHolder<SoundEvent, SoundEvent> HERCULES_BEETLE_IDLE = registerSoundEvent("hercules_beetle_idle");
public static final DeferredHolder<SoundEvent, SoundEvent> HERCULES_BEETLE_HURT = registerSoundEvent("hercules_beetle_hurt");
public static final DeferredHolder<SoundEvent, SoundEvent> HERCULES_BEETLE_ATTACK = registerSoundEvent("hercules_beetle_attack");
public static final DeferredHolder<SoundEvent, SoundEvent> HERCULES_BEETLE_CRY = registerSoundEvent("hercules_beetle_cry");
public static final DeferredHolder<SoundEvent, SoundEvent> HERCULES_BEETLE_CHARGE_START = registerSoundEvent("hercules_beetle_charge_start");
public static final DeferredHolder<SoundEvent, SoundEvent> HERCULES_BEETLE_KNOCKED_DOWN = registerSoundEvent("hercules_beetle_knocked_down");
public static final DeferredHolder<SoundEvent, SoundEvent> JUMPY_BUG_IDLE = registerSoundEvent("springbug_idle");
public static final DeferredHolder<SoundEvent, SoundEvent> SPRINGBUG_IDLE = registerSoundEvent("springbug_idle");
public static final DeferredHolder<SoundEvent, SoundEvent> SPIT_BUG_IDLE = registerSoundEvent("spit_bug_idle");
public static final DeferredHolder<SoundEvent, SoundEvent> JUMPY_BUG_HURT = registerSoundEvent("springbug_hurt");
public static final DeferredHolder<SoundEvent, SoundEvent> JUMPY_BUG_JUMP = registerSoundEvent("springbug_jump");
public static final DeferredHolder<SoundEvent, SoundEvent> SPRINGBUG_HURT = registerSoundEvent("springbug_hurt");
public static final DeferredHolder<SoundEvent, SoundEvent> SPRINGBUG_JUMP = registerSoundEvent("springbug_jump");
public static final DeferredHolder<SoundEvent, SoundEvent> SPIT_BUG_HURT = registerSoundEvent("spit_bug_hurt");
public static final DeferredHolder<SoundEvent, SoundEvent> SPIT_BUG_SPIT = registerSoundEvent("spit_bug_spit");
public static final DeferredHolder<SoundEvent, SoundEvent> BRUTALFLY_SPIT = registerSoundEvent("brutalfly_spit");
@@ -464,6 +530,69 @@ public final class AntarchyFabricSounds {
public static final DeferredHolder<SoundEvent, SoundEvent> POTENT_NYXITE_GEYSER_CONTINUOUS_ACTIVE = registerSoundEvent("potent_nyxite_geyser_continuous_active");
public static final DeferredHolder<SoundEvent, SoundEvent> MUSIC_DISC_UNDERSIDE = registerSoundEvent("music_disc_underside");
public static final DeferredHolder<SoundEvent, SoundEvent> THE_QUEEN = registerSoundEvent("the_queen");
public static final DeferredHolder<SoundEvent, SoundEvent> MUSIC_DISC_VERDANCE = registerSoundEvent("music_disc_verdance");
public static final DeferredHolder<SoundEvent, SoundEvent> MUSIC_DISC_GROTESQUE = registerSoundEvent("music_disc_grotesque");
public static final DeferredHolder<SoundEvent, SoundEvent> WORM_HOOK_FLYING = registerSoundEvent("worm_hook_flying");
public static final DeferredHolder<SoundEvent, SoundEvent> BLOOD_CRYSTAL_KATANA_DASH = registerSoundEvent("blood_crystal_katana_dash");
public static final DeferredHolder<SoundEvent, SoundEvent> BLOOD_CRYSTAL_ARMOR_EQUIP = registerSoundEvent("blood_crystal_armor_equip");
public static final DeferredHolder<SoundEvent, SoundEvent> BLOODGLASS_WARD_HEART_BREAK = registerSoundEvent("bloodglass_ward_heart_break");
public static final DeferredHolder<SoundEvent, SoundEvent> BLOODGLASS_WARD_HEART_REGEN = registerSoundEvent("bloodglass_ward_heart_regen");
public static final DeferredHolder<SoundEvent, SoundEvent> ANTIMETAL_PLACE = registerSoundEvent("antimetal_place");
public static final DeferredHolder<SoundEvent, SoundEvent> ANTIMETAL_STEP = registerSoundEvent("antimetal_step");
public static final DeferredHolder<SoundEvent, SoundEvent> ANTIMETAL_SCAFFOLD = registerSoundEvent("antimetal_scaffold");
public static final DeferredHolder<SoundEvent, SoundEvent> UNDERTRIAL_DETECT_PLAYER1 = registerSoundEvent("undertrial_detect_player1");
public static final DeferredHolder<SoundEvent, SoundEvent> UNDERTRIAL_DETECT_PLAYER2 = registerSoundEvent("undertrial_detect_player2");
public static final DeferredHolder<SoundEvent, SoundEvent> KING_IDLE = registerSoundEvent("king_idle");
public static final DeferredHolder<SoundEvent, SoundEvent> KING_WALK = registerSoundEvent("king_walk");
public static final DeferredHolder<SoundEvent, SoundEvent> KING_FLY_LOOP = registerSoundEvent("king_fly_loop");
public static final DeferredHolder<SoundEvent, SoundEvent> KING_WING_FLAP = registerSoundEvent("king_wing_flap");
public static final DeferredHolder<SoundEvent, SoundEvent> KING_BITE = registerSoundEvent("king_bite");
public static final DeferredHolder<SoundEvent, SoundEvent> KING_STOMP = registerSoundEvent("king_stomp");
public static final DeferredHolder<SoundEvent, SoundEvent> KING_ROAR = registerSoundEvent("king_roar");
public static final DeferredHolder<SoundEvent, SoundEvent> KING_HURT = registerSoundEvent("king_hurt");
public static final DeferredHolder<SoundEvent, SoundEvent> KING_DEATH = registerSoundEvent("king_death");
public static final DeferredHolder<SoundEvent, SoundEvent> KING_BEAM_SHOOT = registerSoundEvent("king_beam_shoot");
public static final DeferredHolder<SoundEvent, SoundEvent> KING_FIREBALL_SHOOT = registerSoundEvent("king_fireball_shoot");
public static final DeferredHolder<SoundEvent, SoundEvent> KING_ICE_SPIKES = registerSoundEvent("king_ice_spikes");
public static final DeferredHolder<SoundEvent, SoundEvent> KING_DECREE_CAST = registerSoundEvent("king_decree_cast");
public static final DeferredHolder<SoundEvent, SoundEvent> KING_DECREE = registerSoundEvent("king_decree");
public static final DeferredHolder<SoundEvent, SoundEvent> KING_SUCCESS = registerSoundEvent("king_success");
public static final DeferredHolder<SoundEvent, SoundEvent> KING_JUDGEMENT = registerSoundEvent("king_judgement");
public static final DeferredHolder<SoundEvent, SoundEvent> QUEEN_IDLE = registerSoundEvent("queen_idle");
public static final DeferredHolder<SoundEvent, SoundEvent> QUEEN_WALK = registerSoundEvent("queen_walk");
public static final DeferredHolder<SoundEvent, SoundEvent> QUEEN_FLY_LOOP = registerSoundEvent("queen_fly_loop");
public static final DeferredHolder<SoundEvent, SoundEvent> QUEEN_WING_FLAP = registerSoundEvent("queen_wing_flap");
public static final DeferredHolder<SoundEvent, SoundEvent> QUEEN_BITE = registerSoundEvent("queen_bite");
public static final DeferredHolder<SoundEvent, SoundEvent> QUEEN_STOMP = registerSoundEvent("queen_stomp");
public static final DeferredHolder<SoundEvent, SoundEvent> QUEEN_ROAR = registerSoundEvent("queen_roar");
public static final DeferredHolder<SoundEvent, SoundEvent> QUEEN_HURT = registerSoundEvent("queen_hurt");
public static final DeferredHolder<SoundEvent, SoundEvent> QUEEN_DEATH = registerSoundEvent("queen_death");
public static final DeferredHolder<SoundEvent, SoundEvent> QUEEN_BEAM_SHOOT = registerSoundEvent("queen_beam_shoot");
public static final DeferredHolder<SoundEvent, SoundEvent> QUEEN_BEAM_START = registerSoundEvent("queen_beam_start");
public static final DeferredHolder<SoundEvent, SoundEvent> QUEEN_BEAM_LOOP = registerSoundEvent("queen_beam_loop");
public static final DeferredHolder<SoundEvent, SoundEvent> QUEEN_BEAM_END = registerSoundEvent("queen_beam_end");
public static final DeferredHolder<SoundEvent, SoundEvent> QUEEN_BLACK_HOLE_SHOOT = registerSoundEvent("queen_black_hole_shoot");
public static final DeferredHolder<SoundEvent, SoundEvent> QUEEN_CAST_SHOOT = registerSoundEvent("queen_cast_shoot");
public static final DeferredHolder<SoundEvent, SoundEvent> PRINCE_IDLE = registerSoundEvent("prince_idle");
public static final DeferredHolder<SoundEvent, SoundEvent> PRINCE_BITE = registerSoundEvent("prince_bite");
public static final DeferredHolder<SoundEvent, SoundEvent> PRINCE_SHOOT = registerSoundEvent("prince_shoot");
public static final DeferredHolder<SoundEvent, SoundEvent> PRINCE_FLY = registerSoundEvent("prince_fly");
public static final DeferredHolder<SoundEvent, SoundEvent> PRINCE_STEP = registerSoundEvent("prince_step");
public static final DeferredHolder<SoundEvent, SoundEvent> PRINCESS_IDLE = registerSoundEvent("princess_idle");
public static final DeferredHolder<SoundEvent, SoundEvent> PRINCESS_BITE = registerSoundEvent("princess_bite");
public static final DeferredHolder<SoundEvent, SoundEvent> PRINCESS_SHOOT = registerSoundEvent("princess_shoot");
public static final DeferredHolder<SoundEvent, SoundEvent> PRINCESS_FLY = registerSoundEvent("princess_fly");
public static final DeferredHolder<SoundEvent, SoundEvent> PRINCESS_STEP = registerSoundEvent("princess_step");
public static final DeferredHolder<SoundEvent, SoundEvent> HOVERBOARD_MOUNT = registerSoundEvent("hoverboard_mount");
public static final DeferredHolder<SoundEvent, SoundEvent> HOVERBOARD_DISMOUNT = registerSoundEvent("hoverboard_dismount");
public static final DeferredHolder<SoundEvent, SoundEvent> HOVERBOARD_IDLE = registerSoundEvent("hoverboard_idle");
@@ -1,6 +1,6 @@
package com.craisinlord.antarchy.fabric.registry;
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.ButterflyEntity;
import com.craisinlord.antarchy.content.entity.CaterpillarEntity;
@@ -8,7 +8,7 @@ import com.craisinlord.antarchy.content.entity.flying_squirrel.FlyingSquirrelEnt
import com.craisinlord.antarchy.content.entity.ReverieEntity;
import com.craisinlord.antarchy.content.entity.MissileSquidEntity;
import com.craisinlord.antarchy.content.entity.lucid.LucidEntity;
import com.craisinlord.antarchy.content.entity.JumpyBugEntity;
import com.craisinlord.antarchy.content.entity.SpringbugEntity;
import com.craisinlord.antarchy.content.entity.StinkBugEntity;
import com.craisinlord.antarchy.content.entity.AlphaMantisEntity;
import com.craisinlord.antarchy.content.entity.MantisEntity;
@@ -21,6 +21,7 @@ import com.craisinlord.antarchy.content.entity.kraken.KrakenEntity;
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.BomberEntity;
import com.craisinlord.antarchy.content.entity.WaspEntity;
import net.minecraft.world.entity.animal.Cow;
@@ -40,10 +41,10 @@ public final class AntarchyFabricSpawnPlacements {
SpawnPlacements.register(AntarchyFabricEntities.APPLE_COW.get(), SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, Cow::checkAnimalSpawnRules);
SpawnPlacements.register(AntarchyFabricEntities.GOLDEN_APPLE_COW.get(), SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, Cow::checkAnimalSpawnRules);
SpawnPlacements.register(AntarchyFabricEntities.ENCHANTED_GOLDEN_APPLE_COW.get(), SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, Cow::checkAnimalSpawnRules);
SpawnPlacements.register(AntarchyFabricEntities.CLOUD_SHARK.get(), SpawnPlacements.Type.NO_RESTRICTIONS, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, CloudSharkEntity::canSpawn);
SpawnPlacements.register(AntarchyFabricEntities.STRATOSHARK.get(), SpawnPlacements.Type.NO_RESTRICTIONS, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, StratosharkEntity::canSpawn);
SpawnPlacements.register(AntarchyFabricEntities.WASP.get(), SpawnPlacements.Type.NO_RESTRICTIONS, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, WaspEntity::canSpawn);
SpawnPlacements.register(AntarchyFabricEntities.BOMBER.get(), SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, BomberEntity::canSpawn);
SpawnPlacements.register(AntarchyFabricEntities.JUMPY_BUG.get(), SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, JumpyBugEntity::canSpawn);
SpawnPlacements.register(AntarchyFabricEntities.SPRINGBUG.get(), SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, SpringbugEntity::canSpawn);
SpawnPlacements.register(AntarchyFabricEntities.SPIT_BUG.get(), SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, com.craisinlord.antarchy.content.entity.SpitBugEntity::canSpawn);
SpawnPlacements.register(AntarchyFabricEntities.KRAKEN.get(), SpawnPlacements.Type.IN_WATER, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, KrakenEntity::canSpawn);
SpawnPlacements.register(AntarchyFabricEntities.MISSILE_SQUID.get(), SpawnPlacements.Type.IN_WATER, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, MissileSquidEntity::canSpawn);
@@ -55,21 +56,24 @@ public final class AntarchyFabricSpawnPlacements {
SpawnPlacements.register(AntarchyFabricEntities.ELKA.get(), SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, net.minecraft.world.entity.animal.Animal::checkAnimalSpawnRules);
SpawnPlacements.register(AntarchyFabricEntities.NIGHTMARE.get(), SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, NightmareEntity::canSpawn);
SpawnPlacements.register(AntarchyFabricEntities.MOLEWORM.get(), SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, MolewormEntity::canSpawn);
SpawnPlacements.register(AntarchyFabricEntities.WORM.get(), SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, WormEntity::canSpawn);
SpawnPlacements.register(AntarchyFabricEntities.MANTIS.get(), SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, MantisEntity::canSpawn);
SpawnPlacements.register(AntarchyFabricEntities.ALPHA_MANTIS.get(), SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, AlphaMantisEntity::checkAlphaMantisSpawnRules);
SpawnPlacements.register(AntarchyFabricEntities.MOLEVORE.get(), SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, MolevoreEntity::canSpawn);
SpawnPlacements.register(AntarchyFabricEntities.BED_BUG.get(), SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, BedBugEntity::canSpawn);
SpawnPlacements.register(AntarchyFabricEntities.STINK_BUG.get(), SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, StinkBugEntity::canSpawn);
SpawnPlacements.register(AntarchyFabricEntities.STINK_BUG.get(), SpawnPlacements.Type.NO_RESTRICTIONS, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, StinkBugEntity::canSpawn);
SpawnPlacements.register(AntarchyFabricEntities.LUCID.get(), SpawnPlacements.Type.NO_RESTRICTIONS, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, LucidEntity::canSpawn);
SpawnPlacements.register(AntarchyFabricEntities.VORTEX.get(), SpawnPlacements.Type.NO_RESTRICTIONS, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, com.craisinlord.antarchy.content.entity.vortex.VortexEntity::canSpawn);
SpawnPlacements.register(AntarchyFabricEntities.SCORPION.get(), SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, ScorpionEntity::canSpawn);
SpawnPlacements.register(AntarchyFabricEntities.BASILISK.get(), SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, BasiliskEntity::canSpawn);
SpawnPlacements.register(AntarchyFabricEntities.EMPEROR_SCORPION.get(), SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, EmperorScorpionEntity::canSpawn);
SpawnPlacements.register(AntarchyFabricEntities.EMPEROR_SCORPION.get(), SpawnPlacements.Type.NO_RESTRICTIONS, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, EmperorScorpionEntity::canSpawn);
SpawnPlacements.register(AntarchyFabricEntities.TORETERROR.get(), SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, ToreterrorEntity::canSpawn);
SpawnPlacements.register(AntarchyFabricEntities.CREEPING_HORROR.get(), SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, com.craisinlord.antarchy.content.entity.CreepingHorrorEntity::canSpawn);
SpawnPlacements.register(AntarchyFabricEntities.LURKING_TERROR.get(), SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, com.craisinlord.antarchy.content.entity.LurkingTerrorEntity::canSpawn);
SpawnPlacements.register(AntarchyFabricEntities.CRAWLING_BLIGHT.get(), SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, com.craisinlord.antarchy.content.entity.CrawlingBlightEntity::canSpawn);
SpawnPlacements.register(AntarchyFabricEntities.SKULKING_FRIGHT.get(), SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, com.craisinlord.antarchy.content.entity.SkulkingFrightEntity::canSpawn);
SpawnPlacements.register(AntarchyFabricEntities.MANTICORE.get(), SpawnPlacements.Type.NO_RESTRICTIONS, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, com.craisinlord.antarchy.content.entity.ManticoreEntity::canSpawn);
SpawnPlacements.register(AntarchyFabricEntities.JERRY.get(), SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, com.craisinlord.antarchy.content.entity.JerryEntity::canSpawn);
SpawnPlacements.register(AntarchyFabricEntities.TERMITE.get(), SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, net.minecraft.world.entity.animal.Animal::checkAnimalSpawnRules);
SpawnPlacements.register(AntarchyFabricEntities.ROLLY_POLLY.get(), SpawnPlacements.Type.ON_GROUND, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, com.craisinlord.antarchy.content.entity.RollyPollyEntity::canSpawn);
SpawnPlacements.register(AntarchyFabricEntities.ROLLY_POLLY.get(), SpawnPlacements.Type.NO_RESTRICTIONS, Heightmap.Types.MOTION_BLOCKING_NO_LEAVES, com.craisinlord.antarchy.content.entity.RollyPollyEntity::canSpawn);
}
}
@@ -1,6 +1,7 @@
package com.craisinlord.antarchy.fabric.registry;
import java.util.function.Supplier;
import net.minecraft.resources.ResourceKey;
import net.minecraft.resources.ResourceLocation;
@@ -2,45 +2,45 @@ package com.craisinlord.antarchy.fabric.util;
import com.craisinlord.antarchy.content.fluid.AntarchyFluidChecks;
import net.minecraft.core.BlockPos;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.material.FluidState;
import net.minecraft.world.phys.AABB;
import net.minecraft.world.phys.Vec3;
import java.util.function.Predicate;
public final class CustomFluidPhysicsChecks {
private CustomFluidPhysicsChecks() {
}
public static boolean isTouchingAntiwater(Entity entity) {
AABB box = entity.getBoundingBox().inflate(0.05D);
BlockPos min = BlockPos.containing(box.minX, box.minY, box.minZ);
BlockPos max = BlockPos.containing(box.maxX, box.maxY, box.maxZ);
BlockPos.MutableBlockPos cursor = new BlockPos.MutableBlockPos();
for (int x = min.getX(); x <= max.getX(); x++) {
for (int y = min.getY(); y <= max.getY(); y++) {
for (int z = min.getZ(); z <= max.getZ(); z++) {
cursor.set(x, y, z);
FluidState fluidState = entity.level().getFluidState(cursor);
if (AntarchyFluidChecks.isAntiwater(fluidState)) {
return true;
}
}
}
}
return false;
return isTouching(entity, AntarchyFluidChecks::isAntiwater);
}
public static boolean isTouchingWaterlikeFluid(Entity entity) {
AABB box = entity.getBoundingBox().inflate(0.05D);
BlockPos min = BlockPos.containing(box.minX, box.minY, box.minZ);
BlockPos max = BlockPos.containing(box.maxX, box.maxY, box.maxZ);
return isTouching(entity, AntarchyFluidChecks::usesWaterLikePhysics);
}
public static Vec3 getAntiwaterFlow(Entity entity) {
return getAverageFlow(entity, AntarchyFluidChecks::isAntiwater);
}
public static Vec3 getWaterlikeFlow(Entity entity) {
return getAverageFlow(entity, AntarchyFluidChecks::usesWaterLikePhysics);
}
private static boolean isTouching(Entity entity, Predicate<FluidState> matches) {
AABB box = entity.getBoundingBox().deflate(0.001D);
Level level = entity.level();
BlockPos.MutableBlockPos cursor = new BlockPos.MutableBlockPos();
for (int x = min.getX(); x <= max.getX(); x++) {
for (int y = min.getY(); y <= max.getY(); y++) {
for (int z = min.getZ(); z <= max.getZ(); z++) {
for (int x = Mth.floor(box.minX); x < Mth.ceil(box.maxX); x++) {
for (int y = Mth.floor(box.minY); y < Mth.ceil(box.maxY); y++) {
for (int z = Mth.floor(box.minZ); z < Mth.ceil(box.maxZ); z++) {
cursor.set(x, y, z);
FluidState fluidState = entity.level().getFluidState(cursor);
if (AntarchyFluidChecks.usesWaterLikePhysics(fluidState)) {
FluidState fluidState = level.getFluidState(cursor);
if (matches.test(fluidState) && y + fluidState.getHeight(level, cursor) >= box.minY) {
return true;
}
}
@@ -49,43 +49,31 @@ public final class CustomFluidPhysicsChecks {
return false;
}
public static Vec3 getAntiwaterFlow(Entity entity) {
return getAverageFlow(entity, true);
}
public static Vec3 getWaterlikeFlow(Entity entity) {
return getAverageFlow(entity, false);
}
private static Vec3 getAverageFlow(Entity entity, boolean antiwater) {
AABB box = entity.getBoundingBox().inflate(0.05D);
BlockPos min = BlockPos.containing(box.minX, box.minY, box.minZ);
BlockPos max = BlockPos.containing(box.maxX, box.maxY, box.maxZ);
private static Vec3 getAverageFlow(Entity entity, Predicate<FluidState> matches) {
AABB box = entity.getBoundingBox().deflate(0.001D);
Level level = entity.level();
BlockPos.MutableBlockPos cursor = new BlockPos.MutableBlockPos();
Vec3 totalFlow = Vec3.ZERO;
int matches = 0;
for (int x = min.getX(); x <= max.getX(); x++) {
for (int y = min.getY(); y <= max.getY(); y++) {
for (int z = min.getZ(); z <= max.getZ(); z++) {
int count = 0;
for (int x = Mth.floor(box.minX); x < Mth.ceil(box.maxX); x++) {
for (int y = Mth.floor(box.minY); y < Mth.ceil(box.maxY); y++) {
for (int z = Mth.floor(box.minZ); z < Mth.ceil(box.maxZ); z++) {
cursor.set(x, y, z);
FluidState fluidState = entity.level().getFluidState(cursor);
boolean matchesFluid = antiwater
? AntarchyFluidChecks.isAntiwater(fluidState)
: AntarchyFluidChecks.usesWaterLikePhysics(fluidState);
if (!matchesFluid) {
FluidState fluidState = level.getFluidState(cursor);
if (!matches.test(fluidState) || y + fluidState.getHeight(level, cursor) < box.minY) {
continue;
}
totalFlow = totalFlow.add(fluidState.getFlow(entity.level(), cursor));
matches++;
totalFlow = totalFlow.add(fluidState.getFlow(level, cursor));
count++;
}
}
}
if (matches == 0 || totalFlow.lengthSqr() < 1.0E-6D) {
if (count == 0 || totalFlow.lengthSqr() < 1.0E-6D) {
return Vec3.ZERO;
}
return totalFlow.scale(1.0D / matches);
return totalFlow.scale(1.0D / count);
}
}
@@ -6,7 +6,7 @@ import java.util.Map;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
public class JumpyBootsFabricHelper {
public class SpringyBootsFabricHelper {
private static final Map<UUID, Long> PROTECTION_TIMES = new ConcurrentHashMap<>();
public static long getProtectionUntil(LivingEntity entity) {
@@ -4,10 +4,38 @@
"refmap": "antarchy.mixins.refmap.json",
"compatibilityLevel": "JAVA_17",
"mixins": [
"AntiwaterLivingEntityMixin",
"AntiwaterItemEntityMixin",
"LivingEntityJumpingAccessor",
"WaterlikeFluidLivingEntityMixin",
"WaterlikeFluidItemEntityMixin",
"AntimetalInversionMixin",
"BrewingStandCustomIngredientMixin",
"ElytraStartFlyingMixin",
"ElytraFallFlyingMixin",
"BloodglassEquipMixin",
"BloodglassEffectMixin",
"BloodglassRespawnMixin",
"DreamCampfireBlockEntityMixin",
"SpringyBootsFallDamageMixin",
"ThoraxisWaterBucketMixin",
"entity.ParalyzedMobFreezeMixin",
"WoodTypeInvoker",
"infinity.PortalCreatorMixin",
"infinity.WarpLogicMixin",
"infinity.AmendmentRareOresMixin",
"BrewingStandCustomIngredientMixin"
"EntityReachInteractMixin"
],
"client": [
"client.SeparateLargeItemModelsMixin",
"client.SeparateLargeItemGuiLightingMixin",
"client.BrutalflyElytraExperienceBarMixin",
"client.BloodglassChatOrderMixin",
"client.LiquidFogMixin",
"client.GravityGunMouseScrollMixin",
"client.KeybindingConflictFixMixin",
"client.CrossbowArmPoseMixin",
"client.EntityReachPickMixin"
],
"injectors": {
"defaultRequire": 1
@@ -1,3 +1,4 @@
{
"parent": "antarchy:item/attitude_adjuster_held"
"parent": "antarchy:item/attitude_adjuster_held",
"gui_light": "front"
}
@@ -0,0 +1,3 @@
{
"parent": "antarchy:item/giant_frying_pan_held"
}
@@ -1,3 +1,4 @@
{
"parent": "antarchy:item/krakens_grasp_held"
"parent": "antarchy:item/krakens_grasp_held",
"gui_light": "front"
}
@@ -0,0 +1,3 @@
{
"parent": "antarchy:item/portal_gun_held_geo"
}
@@ -0,0 +1,3 @@
{
"parent": "antarchy:item/portal_gun_held_geo"
}
@@ -0,0 +1,3 @@
{
"parent": "antarchy:item/portal_gun_held_geo"
}
@@ -0,0 +1,3 @@
{
"parent": "antarchy:item/portal_gun_held_geo"
}
@@ -0,0 +1,7 @@
{
"parent": "minecraft:item/generated",
"gui_light": "front",
"textures": {
"layer0": "antarchy:item/royal_assailant_staff_item"
}
}
@@ -21,6 +21,9 @@
],
"client": [
"com.craisinlord.antarchy.fabric.client.AntarchyFabricClient"
],
"modmenu": [
"com.craisinlord.antarchy.fabric.client.AntarchyModMenuIntegration"
]
},
"mixins": [
@@ -28,12 +31,23 @@
"antarchy-fabric.mixins.json"
],
"depends": {
"anthology": ">=1.0.0",
"fabricloader": ">=${fabric_loader_version}",
"minecraft": "~${minecraft_version}",
"java": ">=17",
"fabric-api": "*"
"fabric-api": "*",
"integrated_api": ">=1.8.1",
"geckolib": "*",
"sizeable_foliage": "*",
"pehkui": "*"
},
"breaks": {
"apple_cows": "*"
"infinity": "<2.7.2",
"apple_cows": "*",
"hoverboards": "*"
},
"suggests": {
"modmenu": "*",
"cloth-config": "*"
}
}