first herc beetle implementation
This commit is contained in:
1 parent
14a1dfda1e
commit
8cabdb33bf
52 files changed
+2102
-411
No files matched your search
@@ -114,6 +114,7 @@ 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.ScorpionWhipTetherSync;
|
||||
import com.craisinlord.antarchy.content.network.HerculesBeetleImpactShakeSync;
|
||||
import com.craisinlord.antarchy.content.item.SizeRayItem;
|
||||
import com.craisinlord.antarchy.content.item.SquidzookaItem;
|
||||
import com.craisinlord.antarchy.content.item.SimpleToolTier;
|
||||
@@ -1820,14 +1821,19 @@ public final class AntarchyFabricContent {
|
||||
.sized(2.4F, 2.0F)
|
||||
.clientTrackingRange(10)
|
||||
.build("dorrie"));
|
||||
public static final DeferredHolder<EntityType<?>, EntityType<com.craisinlord.antarchy.content.entity.HerculesBeetleEntity>> HERCULES_BEETLE = ENTITY_TYPES.register("hercules_beetle",
|
||||
() -> EntityType.Builder.of(com.craisinlord.antarchy.content.entity.HerculesBeetleEntity::new, MobCategory.MONSTER)
|
||||
.sized(3.0F, 4.0F)
|
||||
.clientTrackingRange(12)
|
||||
.build("hercules_beetle"));
|
||||
public static final DeferredItem<Item> CHEEP_ITEM = ITEMS.register("cheep",
|
||||
() -> new Item(new Item.Properties().food(new FoodProperties.Builder().nutrition(2).saturationModifier(0.2F).build())));
|
||||
public static final DeferredItem<com.craisinlord.antarchy.content.item.CheepOnAStickItem> CHEEP_ON_A_STICK = ITEMS.register("cheep_on_a_stick",
|
||||
() -> new com.craisinlord.antarchy.content.item.CheepOnAStickItem(new Item.Properties().stacksTo(1).durability(25)));
|
||||
public static final DeferredItem<DeferredSpawnEggItem> CHEEP_SPAWN_EGG = ITEMS.register("cheep_spawn_egg",
|
||||
() -> new DeferredSpawnEggItem(CHEEP, 0xFF00AA, 0x00FF44, new Item.Properties()));
|
||||
public static final DeferredItem<DeferredSpawnEggItem> DORRIE_SPAWN_EGG = ITEMS.register("dorrie_spawn_egg",
|
||||
() -> new DeferredSpawnEggItem(DORRIE, 0x1B91B3, 0xC0E8FF, new Item.Properties()));
|
||||
public static final DeferredItem<DeferredSpawnEggItem> HERCULES_BEETLE_SPAWN_EGG = ITEMS.register("hercules_beetle_spawn_egg",
|
||||
() -> new DeferredSpawnEggItem(HERCULES_BEETLE, 0x6B1F2A, 0xD4AF37, new Item.Properties().rarity(Rarity.RARE)));
|
||||
|
||||
public static final DeferredHolder<CreativeModeTab, CreativeModeTab> ANTARCHY_TAB = CREATIVE_MODE_TABS.register("antarchy",
|
||||
() -> CreativeModeTab.builder(CreativeModeTab.Row.TOP, 0)
|
||||
@@ -1917,6 +1923,7 @@ public final class AntarchyFabricContent {
|
||||
FabricDefaultAttributeRegistry.register(LURKING_TERROR.get(), LurkingTerrorEntity.createAttributes().build());
|
||||
FabricDefaultAttributeRegistry.register(CHEEP.get(), com.craisinlord.antarchy.content.entity.CheepEntity.createAttributes().build());
|
||||
FabricDefaultAttributeRegistry.register(DORRIE.get(), com.craisinlord.antarchy.content.entity.DorrieEntity.createAttributes().build());
|
||||
FabricDefaultAttributeRegistry.register(HERCULES_BEETLE.get(), com.craisinlord.antarchy.content.entity.HerculesBeetleEntity.createAttributes().build());
|
||||
|
||||
FabricDefaultAttributeRegistry.register(RED_ANT.get(), buildAntAttributes(
|
||||
AntarchySettings.redAntHealth(),
|
||||
@@ -2069,10 +2076,10 @@ public final class AntarchyFabricContent {
|
||||
"bomber_spawn_egg", "jumpy_bug_spawn_egg", "spit_bug_spawn_egg", "stink_bug_spawn_egg", "cloud_shark_spawn_egg", "kraken_spawn_egg", "missile_squid_spawn_egg", "octopus_bomb_spawn_egg",
|
||||
"nightmare_spawn_egg", "bed_bug_spawn_egg", "lucid_spawn_egg", "scorpion_spawn_egg",
|
||||
"basilisk_spawn_egg", "emperor_scorpion_spawn_egg", "toreterror_spawn_egg",
|
||||
"hercules_beetle_spawn_egg",
|
||||
"creeping_horror_spawn_egg", "lurking_terror_spawn_egg" -> 90;
|
||||
case "stink_bug", "chiten" -> 22;
|
||||
case "cheep" -> 21;
|
||||
case "cheep_on_a_stick" -> 52;
|
||||
case "water_cannon" -> 52;
|
||||
case "primordial_helmet", "primordial_chestplate", "primordial_leggings", "primordial_boots" -> 53;
|
||||
case "jumpy_boots" -> 54;
|
||||
@@ -2359,6 +2366,7 @@ public final class AntarchyFabricContent {
|
||||
|
||||
// Wire common-module accessors after all registrations are complete.
|
||||
AntarchyObjects.CHEEP_ITEM = () -> CHEEP_ITEM.get();
|
||||
AntarchyObjects.setHerculesBeetle(() -> HERCULES_BEETLE.get());
|
||||
|
||||
AntarchySoundEvents.bind(
|
||||
SQUIDZOOKA_FIRE,
|
||||
@@ -2588,6 +2596,7 @@ public final class AntarchyFabricContent {
|
||||
LucidEyeProjectileEntity.invertedEffectSupplier = () -> mobEffectHolder(INVERTED);
|
||||
|
||||
ScorpionWhipTetherSync.setSink(AntarchyFabricNetworking::syncScorpionWhipTether);
|
||||
HerculesBeetleImpactShakeSync.setSink((player, ticks) -> net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking.send(player, new com.craisinlord.antarchy.content.network.HerculesBeetleImpactShakePayload(ticks)));
|
||||
BloodCrystalKatanaItem.setTrailCallback(AntarchyFabricNetworking::syncKatanaTrail);
|
||||
com.craisinlord.antarchy.content.gravity.AntarchyGravityApi.setSyncDispatcher(AntarchyFabricNetworking::syncGravityEntity);
|
||||
AntarchyFabricEvents.register();
|
||||
|
||||
+4
-4
@@ -1,6 +1,7 @@
|
||||
package com.craisinlord.antarchy.fabric.client;
|
||||
|
||||
import com.craisinlord.antarchy.Antarchy;
|
||||
import com.craisinlord.antarchy.content.client.HerculesBeetleImpactShakeClientState;
|
||||
import com.craisinlord.antarchy.content.client.renderer.*;
|
||||
import com.craisinlord.antarchy.content.client.particle.*;
|
||||
import com.craisinlord.antarchy.content.client.renderer.AntiwaterFluidRenderer;
|
||||
@@ -49,10 +50,6 @@ public final class AntarchyFabricClientBootstrap {
|
||||
|
||||
public static void register() {
|
||||
AntarchyKeyBindings.register();
|
||||
net.minecraft.client.gui.screens.MenuScreens.register(
|
||||
com.craisinlord.antarchy.fabric.AntarchyFabricContent.DORRIE_MENU.get(),
|
||||
com.craisinlord.antarchy.content.client.screen.DorrieScreen::new
|
||||
);
|
||||
registerRenderers();
|
||||
registerEntityLayers();
|
||||
registerColors();
|
||||
@@ -119,6 +116,7 @@ public final class AntarchyFabricClientBootstrap {
|
||||
EntityRendererRegistry.register(AntarchyFabricContent.LURKING_TERROR.get(), LurkingTerrorRenderer::new);
|
||||
EntityRendererRegistry.register(AntarchyFabricContent.CHEEP.get(), com.craisinlord.antarchy.content.client.renderer.CheepRenderer::new);
|
||||
EntityRendererRegistry.register(AntarchyFabricContent.DORRIE.get(), com.craisinlord.antarchy.content.client.renderer.DorrieRenderer::new);
|
||||
EntityRendererRegistry.register(AntarchyFabricContent.HERCULES_BEETLE.get(), com.craisinlord.antarchy.content.client.renderer.HerculesBeetleRenderer::new);
|
||||
|
||||
EntityModelLayerRegistry.registerModelLayer(OuranwoodBoatRenderer.boatLayer(), BoatModel::createBodyModel);
|
||||
EntityModelLayerRegistry.registerModelLayer(OuranwoodBoatRenderer.chestBoatLayer(), ChestBoatModel::createBodyModel);
|
||||
@@ -321,6 +319,7 @@ public final class AntarchyFabricClientBootstrap {
|
||||
|
||||
private static void registerClientCallbacks() {
|
||||
ClientTickEvents.END_CLIENT_TICK.register(client -> {
|
||||
HerculesBeetleImpactShakeClientState.tick();
|
||||
if (client.player != null) {
|
||||
ParalyzedClientHandler.clampPlayerInput(client.player);
|
||||
}
|
||||
@@ -332,6 +331,7 @@ public final class AntarchyFabricClientBootstrap {
|
||||
BloodCrystalKatanaTrailHandler.tick();
|
||||
ScorpionWhipTetherRenderHandler.tick();
|
||||
DorrieJumpClientHandler.tick();
|
||||
HerculesBeetleClientHandler.tick();
|
||||
});
|
||||
|
||||
GravityGunClientHandler.register();
|
||||
|
||||
@@ -24,11 +24,19 @@ public final class AntarchyKeyBindings {
|
||||
CATEGORY
|
||||
);
|
||||
|
||||
public static final KeyMapping HERCULES_BEETLE_CHARGE = new KeyMapping(
|
||||
"key.antarchy.hercules_beetle_charge",
|
||||
InputConstants.Type.KEYSYM,
|
||||
GLFW.GLFW_KEY_LEFT_CONTROL,
|
||||
CATEGORY
|
||||
);
|
||||
|
||||
private AntarchyKeyBindings() {}
|
||||
|
||||
public static void register() {
|
||||
KeyBindingHelper.registerKeyBinding(BRUTALFLY_FLAP);
|
||||
KeyBindingHelper.registerKeyBinding(DORRIE_CHARGE_JUMP);
|
||||
KeyBindingHelper.registerKeyBinding(HERCULES_BEETLE_CHARGE);
|
||||
}
|
||||
|
||||
public static boolean isBrutalflyFlapPressed() {
|
||||
@@ -38,4 +46,8 @@ public final class AntarchyKeyBindings {
|
||||
public static boolean isDorrieChargeJumpPressed() {
|
||||
return Minecraft.getInstance().screen == null && DORRIE_CHARGE_JUMP.isDown();
|
||||
}
|
||||
|
||||
public static boolean isHerculesBeetleChargePressed() {
|
||||
return Minecraft.getInstance().screen == null && HERCULES_BEETLE_CHARGE.isDown();
|
||||
}
|
||||
}
|
||||
+66
@@ -0,0 +1,66 @@
|
||||
package com.craisinlord.antarchy.fabric.client;
|
||||
|
||||
import com.craisinlord.antarchy.content.entity.HerculesBeetleEntity;
|
||||
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;
|
||||
|
||||
public final class HerculesBeetleClientHandler {
|
||||
private static final int MAX_CHARGE_TICKS = 40;
|
||||
|
||||
private static boolean wasPressingJump;
|
||||
private static boolean wasPressingAttack;
|
||||
private static boolean wasCharging;
|
||||
private static int chargeTicks;
|
||||
|
||||
private HerculesBeetleClientHandler() {
|
||||
}
|
||||
|
||||
public static void tick() {
|
||||
Minecraft mc = Minecraft.getInstance();
|
||||
LocalPlayer player = mc.player;
|
||||
if (player == null || mc.screen != null) {
|
||||
resetAll();
|
||||
return;
|
||||
}
|
||||
|
||||
if (!(player.getVehicle() instanceof HerculesBeetleEntity)) {
|
||||
resetAll();
|
||||
return;
|
||||
}
|
||||
|
||||
boolean pressingJump = mc.options.keyJump.isDown();
|
||||
if (pressingJump != wasPressingJump) {
|
||||
ClientPlayNetworking.send(new HerculesBeetleJumpInputPayload(pressingJump));
|
||||
wasPressingJump = pressingJump;
|
||||
}
|
||||
|
||||
boolean pressingAttack = mc.options.keyAttack.isDown();
|
||||
if (pressingAttack && !wasPressingAttack) {
|
||||
ClientPlayNetworking.send(new HerculesBeetleMountedAttackPayload());
|
||||
}
|
||||
wasPressingAttack = pressingAttack;
|
||||
|
||||
boolean charging = AntarchyKeyBindings.isHerculesBeetleChargePressed();
|
||||
if (charging) {
|
||||
chargeTicks = Math.min(chargeTicks + 1, MAX_CHARGE_TICKS);
|
||||
} else if (wasCharging && chargeTicks > 0) {
|
||||
ClientPlayNetworking.send(new HerculesBeetleMountedChargePayload(chargeTicks));
|
||||
chargeTicks = 0;
|
||||
}
|
||||
wasCharging = charging;
|
||||
}
|
||||
|
||||
private static void resetAll() {
|
||||
if (wasPressingJump) {
|
||||
ClientPlayNetworking.send(new HerculesBeetleJumpInputPayload(false));
|
||||
wasPressingJump = false;
|
||||
}
|
||||
wasPressingAttack = false;
|
||||
wasCharging = false;
|
||||
chargeTicks = 0;
|
||||
}
|
||||
}
|
||||
+18
-5
@@ -1,7 +1,8 @@
|
||||
package com.craisinlord.antarchy.fabric.mixin.client;
|
||||
|
||||
import com.craisinlord.antarchy.content.entity.ToreterrorEntity;
|
||||
import com.craisinlord.antarchy.content.item.BigBerthaItem;
|
||||
import com.craisinlord.antarchy.content.entity.nightmare.NightmareEntity;
|
||||
import com.craisinlord.antarchy.content.client.HerculesBeetleImpactShakeClientState;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.math.Axis;
|
||||
import net.minecraft.client.Minecraft;
|
||||
@@ -16,14 +17,15 @@ import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
@Mixin(GameRenderer.class)
|
||||
public abstract class ToreterrorCameraShakeMixin {
|
||||
public abstract class CameraShakeMixin {
|
||||
private static final double MAX_SHAKE_RANGE = 48.0D;
|
||||
private static final int TORETERROR_SHAKE_TICKS = 25;
|
||||
private static final double NIGHTMARE_SHAKE_RANGE = 32.0D;
|
||||
|
||||
@Shadow @Final private Minecraft minecraft;
|
||||
|
||||
@Inject(method = "bobView", at = @At("TAIL"))
|
||||
private void applyToreterrorShake(PoseStack poseStack, float partialTick, CallbackInfo ci) {
|
||||
private void applyCameraShake(PoseStack poseStack, float partialTick, CallbackInfo ci) {
|
||||
if (minecraft.level == null || minecraft.player == null) return;
|
||||
|
||||
Vec3 cameraPos = minecraft.gameRenderer.getMainCamera().getPosition();
|
||||
@@ -39,8 +41,19 @@ public abstract class ToreterrorCameraShakeMixin {
|
||||
shakeStrength += (float) ((1.0D - distance / MAX_SHAKE_RANGE) * 1.0F);
|
||||
}
|
||||
|
||||
if (BigBerthaItem.clientShakeTicks > 0) {
|
||||
shakeStrength += (float) BigBerthaItem.clientShakeTicks / TORETERROR_SHAKE_TICKS * 2.0F;
|
||||
for (NightmareEntity nightmare : minecraft.level.getEntitiesOfClass(
|
||||
NightmareEntity.class,
|
||||
minecraft.player.getBoundingBox().inflate(NIGHTMARE_SHAKE_RANGE),
|
||||
entity -> entity.isAlive() && entity.isRoaring()
|
||||
)) {
|
||||
double distance = Math.sqrt(cameraPos.distanceToSqr(nightmare.position().add(0.0D, nightmare.getBbHeight() * 0.5D, 0.0D)));
|
||||
if (distance > NIGHTMARE_SHAKE_RANGE) continue;
|
||||
shakeStrength += (float) ((1.0D - distance / NIGHTMARE_SHAKE_RANGE) * 1.35D);
|
||||
}
|
||||
|
||||
int beetleShakeTicks = HerculesBeetleImpactShakeClientState.getTicks();
|
||||
if (beetleShakeTicks > 0) {
|
||||
shakeStrength += (float) beetleShakeTicks / TORETERROR_SHAKE_TICKS * 2.0F;
|
||||
}
|
||||
|
||||
if (shakeStrength <= 0.0F) return;
|
||||
-63
@@ -1,63 +0,0 @@
|
||||
package com.craisinlord.antarchy.fabric.mixin.client;
|
||||
|
||||
import com.craisinlord.antarchy.content.entity.nightmare.NightmareEntity;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.math.Axis;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.renderer.GameRenderer;
|
||||
import net.minecraft.util.Mth;
|
||||
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.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.Redirect;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
//TODO FIX ON FABRIC SIDE
|
||||
@Mixin(GameRenderer.class)
|
||||
public abstract class NightmareCameraShakeMixin {
|
||||
// private static final double MAX_SHAKE_RANGE = 32.0D;
|
||||
//
|
||||
// @Shadow @Final private Minecraft minecraft;
|
||||
//
|
||||
// @Redirect(
|
||||
// method = "renderLevel",
|
||||
// at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/GameRenderer;bobView(Lcom/mojang/blaze3d/vertex/PoseStack;F)V")
|
||||
// )
|
||||
// private void applyNightmareCameraShake(GameRenderer instance, PoseStack poseStack, float partialTick) {
|
||||
// instance.bobView(poseStack, partialTick);
|
||||
// if (minecraft.level == null || minecraft.player == null) {
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// Vec3 cameraPos = minecraft.gameRenderer.getMainCamera().getPosition();
|
||||
// float shakeStrength = 0.0F;
|
||||
//
|
||||
// for (NightmareEntity nightmare : minecraft.level.getEntitiesOfClass(
|
||||
// NightmareEntity.class,
|
||||
// minecraft.player.getBoundingBox().inflate(MAX_SHAKE_RANGE),
|
||||
// e -> e.isAlive() && e.isRoaring()
|
||||
// )) {
|
||||
// double distance = Math.sqrt(cameraPos.distanceToSqr(nightmare.position().add(0.0D, nightmare.getBbHeight() * 0.5D, 0.0D)));
|
||||
// if (distance > MAX_SHAKE_RANGE) {
|
||||
// continue;
|
||||
// }
|
||||
// shakeStrength += (float) ((1.0D - distance / MAX_SHAKE_RANGE) * 1.35D);
|
||||
// }
|
||||
//
|
||||
// if (shakeStrength <= 0.0F) {
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
// float time = (float) (minecraft.player.tickCount + partialTick);
|
||||
// float yawOffset = Mth.sin(time * 1.85F) * shakeStrength * 1.8F;
|
||||
// float pitchOffset = Mth.cos(time * 2.15F) * shakeStrength * 1.45F;
|
||||
// float rollOffset = Mth.sin(time * 2.65F) * shakeStrength * 1.05F;
|
||||
//
|
||||
// poseStack.mulPose(Axis.YP.rotationDegrees(yawOffset));
|
||||
// poseStack.mulPose(Axis.XP.rotationDegrees(pitchOffset));
|
||||
// poseStack.mulPose(Axis.ZP.rotationDegrees(rollOffset));
|
||||
// }
|
||||
}
|
||||
+2
@@ -34,5 +34,7 @@ public final class AntarchyFabricClientNetworking {
|
||||
payload.anchorY(),
|
||||
payload.anchorZ()
|
||||
)));
|
||||
ClientPlayNetworking.registerGlobalReceiver(HerculesBeetleImpactShakePayload.TYPE, (payload, context) ->
|
||||
context.client().execute(() -> AntarchyFabricNetworking.triggerHerculesBeetleImpactShake(payload.durationTicks())));
|
||||
}
|
||||
}
|
||||
+35
@@ -1,12 +1,15 @@
|
||||
package com.craisinlord.antarchy.fabric.network;
|
||||
|
||||
import com.craisinlord.antarchy.content.entity.DiamondMinecartEntity;
|
||||
import com.craisinlord.antarchy.content.client.HerculesBeetleImpactShakeClientState;
|
||||
import com.craisinlord.antarchy.content.entity.multipart.MultipartEntityOwner;
|
||||
import com.craisinlord.antarchy.content.entity.multipart.network.MultipartAttackPayload;
|
||||
import com.craisinlord.antarchy.content.entity.multipart.network.MultipartInteractPayload;
|
||||
import 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;
|
||||
@@ -47,6 +50,7 @@ public final class AntarchyFabricNetworking {
|
||||
PayloadTypeRegistry.playS2C().register(ScorpionWhipTetherPayload.TYPE, ScorpionWhipTetherPayload.STREAM_CODEC);
|
||||
PayloadTypeRegistry.playS2C().register(BrutalflyElytraAnimationPayload.TYPE, BrutalflyElytraAnimationPayload.STREAM_CODEC);
|
||||
PayloadTypeRegistry.playS2C().register(ThoraxisWeatherPayload.TYPE, ThoraxisWeatherPayload.STREAM_CODEC);
|
||||
PayloadTypeRegistry.playS2C().register(HerculesBeetleImpactShakePayload.TYPE, HerculesBeetleImpactShakePayload.STREAM_CODEC);
|
||||
|
||||
PayloadTypeRegistry.playC2S().register(GravityGunPrimaryPayload.TYPE, GravityGunPrimaryPayload.STREAM_CODEC);
|
||||
PayloadTypeRegistry.playC2S().register(GravityGunScrollPayload.TYPE, GravityGunScrollPayload.STREAM_CODEC);
|
||||
@@ -55,6 +59,9 @@ public final class AntarchyFabricNetworking {
|
||||
PayloadTypeRegistry.playC2S().register(JumpyBootsLaunchPayload.TYPE, JumpyBootsLaunchPayload.STREAM_CODEC);
|
||||
PayloadTypeRegistry.playC2S().register(DorrieJumpInputPayload.TYPE, DorrieJumpInputPayload.STREAM_CODEC);
|
||||
PayloadTypeRegistry.playC2S().register(com.craisinlord.antarchy.content.network.DorrieChargeJumpPayload.TYPE, com.craisinlord.antarchy.content.network.DorrieChargeJumpPayload.STREAM_CODEC);
|
||||
PayloadTypeRegistry.playC2S().register(HerculesBeetleJumpInputPayload.TYPE, HerculesBeetleJumpInputPayload.STREAM_CODEC);
|
||||
PayloadTypeRegistry.playC2S().register(HerculesBeetleMountedAttackPayload.TYPE, HerculesBeetleMountedAttackPayload.STREAM_CODEC);
|
||||
PayloadTypeRegistry.playC2S().register(HerculesBeetleMountedChargePayload.TYPE, HerculesBeetleMountedChargePayload.STREAM_CODEC);
|
||||
PayloadTypeRegistry.playC2S().register(MultipartAttackPayload.TYPE, MultipartAttackPayload.STREAM_CODEC);
|
||||
PayloadTypeRegistry.playC2S().register(MultipartInteractPayload.TYPE, MultipartInteractPayload.STREAM_CODEC);
|
||||
}
|
||||
@@ -74,6 +81,12 @@ public final class AntarchyFabricNetworking {
|
||||
context.server().execute(() -> handleDorrieJumpInput(context.player(), payload)));
|
||||
ServerPlayNetworking.registerGlobalReceiver(com.craisinlord.antarchy.content.network.DorrieChargeJumpPayload.TYPE, (payload, context) ->
|
||||
context.server().execute(() -> handleDorrieChargeJumpInput(context.player(), payload)));
|
||||
ServerPlayNetworking.registerGlobalReceiver(HerculesBeetleJumpInputPayload.TYPE, (payload, context) ->
|
||||
context.server().execute(() -> handleHerculesBeetleJumpInput(context.player(), payload)));
|
||||
ServerPlayNetworking.registerGlobalReceiver(HerculesBeetleMountedAttackPayload.TYPE, (payload, context) ->
|
||||
context.server().execute(() -> handleHerculesBeetleMountedAttack(context.player(), payload)));
|
||||
ServerPlayNetworking.registerGlobalReceiver(HerculesBeetleMountedChargePayload.TYPE, (payload, context) ->
|
||||
context.server().execute(() -> handleHerculesBeetleMountedCharge(context.player(), payload)));
|
||||
ServerPlayNetworking.registerGlobalReceiver(MultipartAttackPayload.TYPE, (payload, context) ->
|
||||
context.server().execute(() -> handleMultipartAttack(context.player(), payload)));
|
||||
ServerPlayNetworking.registerGlobalReceiver(MultipartInteractPayload.TYPE, (payload, context) ->
|
||||
@@ -328,4 +341,26 @@ public final class AntarchyFabricNetworking {
|
||||
dorrie.releaseJump();
|
||||
}
|
||||
}
|
||||
|
||||
private static void handleHerculesBeetleJumpInput(ServerPlayer player, HerculesBeetleJumpInputPayload payload) {
|
||||
if (player.getVehicle() instanceof HerculesBeetleEntity beetle) {
|
||||
beetle.setRiderJumpPressed(payload.pressing());
|
||||
}
|
||||
}
|
||||
|
||||
private static void handleHerculesBeetleMountedAttack(ServerPlayer player, HerculesBeetleMountedAttackPayload payload) {
|
||||
if (player.getVehicle() instanceof HerculesBeetleEntity beetle) {
|
||||
beetle.handleMountedRegularAttack(player);
|
||||
}
|
||||
}
|
||||
|
||||
private static void handleHerculesBeetleMountedCharge(ServerPlayer player, HerculesBeetleMountedChargePayload payload) {
|
||||
if (player.getVehicle() instanceof HerculesBeetleEntity beetle) {
|
||||
beetle.handleMountedCharge(player, payload.chargeTicks());
|
||||
}
|
||||
}
|
||||
|
||||
public static void triggerHerculesBeetleImpactShake(int durationTicks) {
|
||||
HerculesBeetleImpactShakeClientState.trigger(durationTicks);
|
||||
}
|
||||
}
|
||||
@@ -20,7 +20,7 @@
|
||||
],
|
||||
"client": [
|
||||
"client.NightmareCameraShakeMixin",
|
||||
"client.ToreterrorCameraShakeMixin",
|
||||
"client.CameraShakeMixin",
|
||||
"client.DuctTapeInputMixin",
|
||||
"client.AntiwaterFogMixin",
|
||||
"client.GravityGunMouseScrollMixin",
|
||||
|
||||
Reference in new issue
Block a user