Skip to content

Commit

Permalink
networking port
Browse files Browse the repository at this point in the history
  • Loading branch information
mrsterner committed Sep 13, 2024
1 parent 7bc15ef commit e17c8b4
Show file tree
Hide file tree
Showing 35 changed files with 237 additions and 370 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ public void tick() {
int lifeTime = RandomHelper.randomBetween(random, 12, 14);
float scale = RandomHelper.randomBetween(random, 0.16f, 0.2f);
float velocity = RandomHelper.randomBetween(random, 0.02f, 0.03f);
WorldParticleBuilder.create(LodestoneParticleRegistry.WISP_PARTICLE)
WorldParticleBuilder.create(LodestoneParticleTypes.WISP_PARTICLE)
.setRenderTarget(RenderHandler.LATE_DELAYED_RENDER)
.setScaleData(GenericParticleData.create(scale, 0).setEasing(Easing.SINE_IN).build())
.setTransparencyData(GenericParticleData.create(0.4f, 0.8f, 0.2f).setEasing(Easing.QUAD_OUT).build())
Expand All @@ -157,7 +157,7 @@ public void tick() {
.spawn(level, x, y, z);
lifeTime = 20;
scale = 0.4f;
WorldParticleBuilder.create(LodestoneParticleRegistry.TWINKLE_PARTICLE)
WorldParticleBuilder.create(LodestoneParticleTypes.TWINKLE_PARTICLE)
.setRenderTarget(RenderHandler.LATE_DELAYED_RENDER)
.setScaleData(GenericParticleData.create(scale, 0f).build())
.setTransparencyData(GenericParticleData.create(0.2f, 0.8f).build())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -251,7 +251,7 @@ public Vec3 getItemPos() {
@OnlyIn(value = Dist.CLIENT)
public void spawnUseParticles(Level level, BlockPos pos, MalumSpiritType type) {
Color color = type.getPrimaryColor();
WorldParticleBuilder.create(LodestoneParticleRegistry.WISP_PARTICLE)
WorldParticleBuilder.create(LodestoneParticleTypes.WISP_PARTICLE)
.setTransparencyData(GenericParticleData.create(0.15f, 0f).build())
.setScaleData(GenericParticleData.create(0.3f, 0).build())
.setSpinData(SpinParticleData.create(0.2f).build())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,15 @@
import net.minecraft.client.Minecraft;
import net.minecraft.client.multiplayer.ClientLevel;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.network.NetworkEvent;
import net.minecraftforge.network.simple.SimpleChannel;
import team.lodestar.lodestone.systems.network.LodestoneClientPacket;
import net.neoforged.api.distmarker.Dist;
import net.neoforged.api.distmarker.OnlyIn;
import net.neoforged.neoforge.network.handling.IPayloadContext;
import team.lodestar.lodestone.systems.network.OneSidedPayloadData;

import javax.annotation.Nullable;
import java.util.function.Supplier;

public class ParticleEffectPacket extends LodestoneClientPacket {
public class ParticleEffectPacket extends OneSidedPayloadData {

private final String id;
private final PositionEffectData positionData;
Expand All @@ -26,14 +25,16 @@ public class ParticleEffectPacket extends LodestoneClientPacket {
@Nullable
private final NBTEffectData nbtData;

public ParticleEffectPacket(String id, PositionEffectData positionData, @Nullable ColorEffectData colorData, @Nullable NBTEffectData nbtData) {
this.id = id;
this.positionData = positionData;
this.colorData = colorData;
this.nbtData = nbtData;
public ParticleEffectPacket(FriendlyByteBuf buf) {
super(buf);
this.id = buf.readUtf();
this.positionData = new PositionEffectData(buf);
this.colorData = buf.readBoolean() ? new ColorEffectData(buf) : null;
this.nbtData = buf.readBoolean() ? new NBTEffectData(buf.readNbt()) : null;
}

public void encode(FriendlyByteBuf buf) {
@Override
public void serialize(FriendlyByteBuf buf) {
buf.writeUtf(id);
positionData.encode(buf);
boolean nonNullColorData = colorData != null;
Expand All @@ -49,7 +50,8 @@ public void encode(FriendlyByteBuf buf) {
}

@OnlyIn(Dist.CLIENT)
public void execute(Supplier<NetworkEvent.Context> context) {
@Override
public void handle(IPayloadContext iPayloadContext) {
Minecraft instance = Minecraft.getInstance();
ClientLevel level = instance.level;
ParticleEffectType particleEffectType = ParticleEffectTypeRegistry.EFFECT_TYPES.get(id);
Expand All @@ -59,12 +61,4 @@ public void execute(Supplier<NetworkEvent.Context> context) {
ParticleEffectType.ParticleEffectActor particleEffectActor = particleEffectType.get().get();
particleEffectActor.act(level, level.random, positionData, colorData, nbtData);
}

public static void register(SimpleChannel instance, int index) {
instance.registerMessage(index, ParticleEffectPacket.class, ParticleEffectPacket::encode, ParticleEffectPacket::decode, ParticleEffectPacket::handle);
}

public static ParticleEffectPacket decode(FriendlyByteBuf buf) {
return new ParticleEffectPacket(buf.readUtf(), new PositionEffectData(buf), buf.readBoolean() ? new ColorEffectData(buf) : null, buf.readBoolean() ? new NBTEffectData(buf.readNbt()) : null);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,37 +6,32 @@
import net.minecraft.core.registries.*;
import net.minecraft.network.*;
import net.minecraft.world.item.*;
import net.minecraftforge.api.distmarker.*;
import net.minecraftforge.network.*;
import net.minecraftforge.network.simple.*;
import team.lodestar.lodestone.systems.network.*;
import net.neoforged.api.distmarker.Dist;
import net.neoforged.api.distmarker.OnlyIn;
import net.neoforged.neoforge.network.handling.IPayloadContext;
import team.lodestar.lodestone.systems.network.OneSidedPayloadData;

import java.util.function.*;

public class SyncStaffCooldownChangesPacket extends LodestoneClientPacket {
public class SyncStaffCooldownChangesPacket extends OneSidedPayloadData {
private final Item item;
private final int enchantmentLevel;

public SyncStaffCooldownChangesPacket(Item pItem, int enchantmentLevel) {
this.item = pItem;
this.enchantmentLevel = enchantmentLevel;
public SyncStaffCooldownChangesPacket(FriendlyByteBuf buf) {
super(buf);
this.item = ItemStack.OPTIONAL_STREAM_CODEC.decode(buf);
this.enchantmentLevel = buf.readInt();
}

public void encode(FriendlyByteBuf buf) {
buf.writeId(BuiltInRegistries.ITEM, item);
buf.writeInt(enchantmentLevel);
@Override
public void serialize(FriendlyByteBuf friendlyByteBuf) {
friendlyByteBuf.writeById();
friendlyByteBuf.writeInt(this.enchantmentLevel);
}

@OnlyIn(Dist.CLIENT)
public void execute(Supplier<NetworkEvent.Context> context) {
@Override
public void handle(IPayloadContext iPayloadContext) {
ReplenishingEnchantment.replenishStaffCooldown((AbstractStaffItem) item, Minecraft.getInstance().player, enchantmentLevel);
}

public static void register(SimpleChannel instance, int index) {
instance.registerMessage(index, SyncStaffCooldownChangesPacket.class, SyncStaffCooldownChangesPacket::encode, SyncStaffCooldownChangesPacket::decode, SyncStaffCooldownChangesPacket::handle);
}

public static SyncStaffCooldownChangesPacket decode(FriendlyByteBuf buf) {
return new SyncStaffCooldownChangesPacket(buf.readById(BuiltInRegistries.ITEM), buf.readInt());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,38 +5,32 @@
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.LivingEntity;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.network.NetworkEvent;
import net.minecraftforge.network.simple.SimpleChannel;
import team.lodestar.lodestone.systems.network.LodestoneClientPacket;
import net.neoforged.api.distmarker.Dist;
import net.neoforged.api.distmarker.OnlyIn;
import net.neoforged.neoforge.network.handling.IPayloadContext;
import team.lodestar.lodestone.systems.network.OneSidedPayloadData;

import java.util.function.Supplier;

public class VoidRejectionPacket extends LodestoneClientPacket {
public class VoidRejectionPacket extends OneSidedPayloadData {
private final int entityId;

public VoidRejectionPacket(int entityId) {
this.entityId = entityId;
}

public void encode(FriendlyByteBuf buf) {
buf.writeInt(entityId);
public VoidRejectionPacket(FriendlyByteBuf byteBuf) {
super(byteBuf);
this.entityId = byteBuf.readInt();
}

@OnlyIn(Dist.CLIENT)
public void execute(Supplier<NetworkEvent.Context> context) {
@Override
public void handle(IPayloadContext iPayloadContext) {
Entity entity = Minecraft.getInstance().level.getEntity(entityId);
if (entity instanceof LivingEntity livingEntity) {
MalumLivingEntityDataCapability.getCapabilityOptional(livingEntity).ifPresent(c -> c.touchOfDarknessHandler.reject(livingEntity));
}
}

public static void register(SimpleChannel instance, int index) {
instance.registerMessage(index, VoidRejectionPacket.class, VoidRejectionPacket::encode, VoidRejectionPacket::decode, VoidRejectionPacket::handle);
}

public static VoidRejectionPacket decode(FriendlyByteBuf buf) {
return new VoidRejectionPacket(buf.readInt());
@Override
public void serialize(FriendlyByteBuf buf) {
buf.writeInt(entityId);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,18 @@

import net.minecraft.core.BlockPos;
import net.minecraft.network.FriendlyByteBuf;
import team.lodestar.lodestone.systems.network.LodestoneClientPacket;
import team.lodestar.lodestone.systems.network.OneSidedPayloadData;

public abstract class BlockBasedParticleEffectPacket extends LodestoneClientPacket {
public abstract class BlockBasedParticleEffectPacket extends OneSidedPayloadData {
protected final BlockPos pos;

public BlockBasedParticleEffectPacket(BlockPos pos) {
this.pos = pos;
public BlockBasedParticleEffectPacket(FriendlyByteBuf buf) {
super(buf);
this.pos = buf.readBlockPos();
}

public void encode(FriendlyByteBuf buf) {
buf.writeInt(pos.getX());
buf.writeInt(pos.getY());
buf.writeInt(pos.getZ());
@Override
public void serialize(FriendlyByteBuf buf) {
buf.writeBlockPos(this.pos);
}
}
Original file line number Diff line number Diff line change
@@ -1,20 +1,22 @@
package com.sammy.malum.common.packets.particle.base;

import net.minecraft.network.FriendlyByteBuf;
import team.lodestar.lodestone.systems.network.LodestoneClientPacket;
import team.lodestar.lodestone.systems.network.OneSidedPayloadData;

public abstract class PositionBasedParticleEffectPacket extends LodestoneClientPacket {
public abstract class PositionBasedParticleEffectPacket extends OneSidedPayloadData {
protected final double posX;
protected final double posY;
protected final double posZ;

public PositionBasedParticleEffectPacket(double posX, double posY, double posZ) {
this.posX = posX;
this.posY = posY;
this.posZ = posZ;
public PositionBasedParticleEffectPacket(FriendlyByteBuf buf) {
super(buf);
this.posX = buf.readDouble();
this.posY = buf.readDouble();
this.posZ = buf.readDouble();
}

public void encode(FriendlyByteBuf buf) {
@Override
public void serialize(FriendlyByteBuf buf) {
buf.writeDouble(posX);
buf.writeDouble(posY);
buf.writeDouble(posZ);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,28 +9,16 @@
public abstract class ColorBasedBlockParticleEffectPacket extends BlockBasedParticleEffectPacket {
protected final Color color;

public ColorBasedBlockParticleEffectPacket(Color color, BlockPos pos) {
super(pos);
this.color = color;
public ColorBasedBlockParticleEffectPacket(FriendlyByteBuf buf) {
super(buf);
this.color = new Color(buf.readInt(), buf.readInt(), buf.readInt());
}

public void encode(FriendlyByteBuf buf) {
@Override
public void serialize(FriendlyByteBuf buf) {
buf.writeInt(color.getRed());
buf.writeInt(color.getGreen());
buf.writeInt(color.getBlue());
super.encode(buf);
super.serialize(buf);
}

public static <T extends ColorBasedBlockParticleEffectPacket> T decode(PacketProvider<T> provider, FriendlyByteBuf buf) {
Color color = new Color(buf.readInt(), buf.readInt(), buf.readInt());
int posX = buf.readInt();
int posY = buf.readInt();
int posZ = buf.readInt();
return provider.getPacket(color, new BlockPos(posX, posY, posZ));
}

public interface PacketProvider<T extends ColorBasedBlockParticleEffectPacket> {
T getPacket(Color color, BlockPos pos);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -8,28 +8,16 @@
public abstract class ColorBasedParticleEffectPacket extends PositionBasedParticleEffectPacket {
protected final Color color;

public ColorBasedParticleEffectPacket(Color color, double posX, double posY, double posZ) {
super(posX, posY, posZ);
this.color = color;
public ColorBasedParticleEffectPacket(FriendlyByteBuf buf) {
super(buf);
this.color = new Color(buf.readInt(), buf.readInt(), buf.readInt());
}

public void encode(FriendlyByteBuf buf) {
@Override
public void serialize(FriendlyByteBuf buf) {
buf.writeInt(color.getRed());
buf.writeInt(color.getGreen());
buf.writeInt(color.getBlue());
super.encode(buf);
super.serialize(buf);
}

public static <T extends ColorBasedParticleEffectPacket> T decode(PacketProvider<T> provider, FriendlyByteBuf buf) {
Color color = new Color(buf.readInt(), buf.readInt(), buf.readInt());
double posX = buf.readDouble();
double posY = buf.readDouble();
double posZ = buf.readDouble();
return provider.getPacket(color, posX, posY, posZ);
}

public interface PacketProvider<T extends ColorBasedParticleEffectPacket> {
T getPacket(Color color, double posX, double posY, double posZ);
}

}
Loading

0 comments on commit e17c8b4

Please sign in to comment.