Mirror von
https://github.com/ViaVersion/ViaVersion.git
synchronisiert 2024-12-27 08:30:09 +01:00
New particle meta type
Dieser Commit ist enthalten in:
Ursprung
a4d1ac3b95
Commit
5954c16f62
@ -0,0 +1,50 @@
|
|||||||
|
package us.myles.ViaVersion.api.minecraft.metadata.types;
|
||||||
|
|
||||||
|
import us.myles.ViaVersion.api.minecraft.metadata.MetaType;
|
||||||
|
import us.myles.ViaVersion.api.type.Type;
|
||||||
|
import us.myles.ViaVersion.api.type.types.version.Types1_17;
|
||||||
|
|
||||||
|
public enum MetaType1_17 implements MetaType {
|
||||||
|
Byte(0, Type.BYTE),
|
||||||
|
VarInt(1, Type.VAR_INT),
|
||||||
|
Float(2, Type.FLOAT),
|
||||||
|
String(3, Type.STRING),
|
||||||
|
Chat(4, Type.COMPONENT),
|
||||||
|
OptChat(5, Type.OPTIONAL_COMPONENT),
|
||||||
|
Slot(6, Type.FLAT_VAR_INT_ITEM),
|
||||||
|
Boolean(7, Type.BOOLEAN),
|
||||||
|
Vector3F(8, Type.ROTATION),
|
||||||
|
Position(9, Type.POSITION1_14),
|
||||||
|
OptPosition(10, Type.OPTIONAL_POSITION_1_14),
|
||||||
|
Direction(11, Type.VAR_INT),
|
||||||
|
OptUUID(12, Type.OPTIONAL_UUID),
|
||||||
|
BlockID(13, Type.VAR_INT),
|
||||||
|
NBTTag(14, Type.NBT),
|
||||||
|
PARTICLE(15, Types1_17.PARTICLE),
|
||||||
|
VillagerData(16, Type.VILLAGER_DATA),
|
||||||
|
OptVarInt(17, Type.OPTIONAL_VAR_INT),
|
||||||
|
Pose(18, Type.VAR_INT),
|
||||||
|
Discontinued(99, null);
|
||||||
|
|
||||||
|
private final int typeID;
|
||||||
|
private final Type type;
|
||||||
|
|
||||||
|
MetaType1_17(int typeID, Type type) {
|
||||||
|
this.typeID = typeID;
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static MetaType1_17 byId(int id) {
|
||||||
|
return values()[id];
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getTypeID() {
|
||||||
|
return typeID;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Type getType() {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,56 @@
|
|||||||
|
package us.myles.ViaVersion.api.type.types.minecraft;
|
||||||
|
|
||||||
|
import io.netty.buffer.ByteBuf;
|
||||||
|
import us.myles.ViaVersion.api.type.Type;
|
||||||
|
import us.myles.ViaVersion.api.type.types.Particle;
|
||||||
|
|
||||||
|
public class Particle1_17Type extends Type<Particle> {
|
||||||
|
|
||||||
|
public Particle1_17Type() {
|
||||||
|
super("Particle", Particle.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void write(ByteBuf buffer, Particle object) throws Exception {
|
||||||
|
Type.VAR_INT.writePrimitive(buffer, object.getId());
|
||||||
|
for (Particle.ParticleData data : object.getArguments()) {
|
||||||
|
data.getType().write(buffer, data.getValue());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Particle read(ByteBuf buffer) throws Exception {
|
||||||
|
int type = Type.VAR_INT.readPrimitive(buffer);
|
||||||
|
Particle particle = new Particle(type);
|
||||||
|
|
||||||
|
switch (type) {
|
||||||
|
// Block / Falling Dust
|
||||||
|
case 3:
|
||||||
|
case 24:
|
||||||
|
particle.getArguments().add(new Particle.ParticleData(Type.VAR_INT, Type.VAR_INT.readPrimitive(buffer))); // Flat Block
|
||||||
|
break;
|
||||||
|
// Dust
|
||||||
|
case 14:
|
||||||
|
case 15:
|
||||||
|
particle.getArguments().add(new Particle.ParticleData(Type.FLOAT, Type.FLOAT.readPrimitive(buffer))); // Red 0 - 1
|
||||||
|
particle.getArguments().add(new Particle.ParticleData(Type.FLOAT, Type.FLOAT.readPrimitive(buffer))); // Green 0 - 1
|
||||||
|
particle.getArguments().add(new Particle.ParticleData(Type.FLOAT, Type.FLOAT.readPrimitive(buffer))); // Blue 0 - 1
|
||||||
|
particle.getArguments().add(new Particle.ParticleData(Type.FLOAT, Type.FLOAT.readPrimitive(buffer))); // Scale 0.01 - 4
|
||||||
|
if (type == 15) {
|
||||||
|
// Transition to color
|
||||||
|
particle.getArguments().add(new Particle.ParticleData(Type.FLOAT, Type.FLOAT.readPrimitive(buffer))); // Red 0 - 1
|
||||||
|
particle.getArguments().add(new Particle.ParticleData(Type.FLOAT, Type.FLOAT.readPrimitive(buffer))); // Green 0 - 1
|
||||||
|
particle.getArguments().add(new Particle.ParticleData(Type.FLOAT, Type.FLOAT.readPrimitive(buffer))); // Blue 0 - 1
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
// Item
|
||||||
|
case 33:
|
||||||
|
particle.getArguments().add(new Particle.ParticleData(Type.FLAT_VAR_INT_ITEM, Type.FLAT_VAR_INT_ITEM.read(buffer))); // Flat item
|
||||||
|
break;
|
||||||
|
case 36:
|
||||||
|
|
||||||
|
}
|
||||||
|
return particle;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,13 @@
|
|||||||
|
package us.myles.ViaVersion.api.type.types.version;
|
||||||
|
|
||||||
|
import us.myles.ViaVersion.api.minecraft.metadata.MetaType;
|
||||||
|
import us.myles.ViaVersion.api.minecraft.metadata.types.MetaType1_17;
|
||||||
|
import us.myles.ViaVersion.api.type.types.minecraft.ModernMetaType;
|
||||||
|
|
||||||
|
public class Metadata1_17Type extends ModernMetaType {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected MetaType getType(final int index) {
|
||||||
|
return MetaType1_17.byId(index);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,13 @@
|
|||||||
|
package us.myles.ViaVersion.api.type.types.version;
|
||||||
|
|
||||||
|
import us.myles.ViaVersion.api.minecraft.metadata.Metadata;
|
||||||
|
import us.myles.ViaVersion.api.type.Type;
|
||||||
|
import us.myles.ViaVersion.api.type.types.minecraft.ModernMetaListType;
|
||||||
|
|
||||||
|
public class MetadataList1_17Type extends ModernMetaListType {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Type<Metadata> getType() {
|
||||||
|
return Types1_17.METADATA;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
package us.myles.ViaVersion.api.type.types.version;
|
||||||
|
|
||||||
|
import us.myles.ViaVersion.api.minecraft.metadata.Metadata;
|
||||||
|
import us.myles.ViaVersion.api.type.Type;
|
||||||
|
import us.myles.ViaVersion.api.type.types.Particle;
|
||||||
|
import us.myles.ViaVersion.api.type.types.minecraft.Particle1_17Type;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class Types1_17 {
|
||||||
|
|
||||||
|
public static final Type<List<Metadata>> METADATA_LIST = new MetadataList1_17Type();
|
||||||
|
public static final Type<Metadata> METADATA = new Metadata1_17Type();
|
||||||
|
public static final Type<Particle> PARTICLE = new Particle1_17Type();
|
||||||
|
}
|
@ -2,6 +2,7 @@ package us.myles.ViaVersion.protocols.protocol1_17to1_16_4.packets;
|
|||||||
|
|
||||||
import us.myles.ViaVersion.api.entities.Entity1_16_2Types;
|
import us.myles.ViaVersion.api.entities.Entity1_16_2Types;
|
||||||
import us.myles.ViaVersion.api.type.types.version.Types1_14;
|
import us.myles.ViaVersion.api.type.types.version.Types1_14;
|
||||||
|
import us.myles.ViaVersion.api.type.types.version.Types1_17;
|
||||||
import us.myles.ViaVersion.protocols.protocol1_16_2to1_16_1.ClientboundPackets1_16_2;
|
import us.myles.ViaVersion.protocols.protocol1_16_2to1_16_1.ClientboundPackets1_16_2;
|
||||||
import us.myles.ViaVersion.protocols.protocol1_17to1_16_4.Protocol1_17To1_16_4;
|
import us.myles.ViaVersion.protocols.protocol1_17to1_16_4.Protocol1_17To1_16_4;
|
||||||
import us.myles.ViaVersion.protocols.protocol1_17to1_16_4.metadata.MetadataRewriter1_17To1_16_4;
|
import us.myles.ViaVersion.protocols.protocol1_17to1_16_4.metadata.MetadataRewriter1_17To1_16_4;
|
||||||
@ -13,7 +14,7 @@ public class EntityPackets {
|
|||||||
metadataRewriter.registerSpawnTrackerWithData(ClientboundPackets1_16_2.SPAWN_ENTITY, Entity1_16_2Types.EntityType.FALLING_BLOCK);
|
metadataRewriter.registerSpawnTrackerWithData(ClientboundPackets1_16_2.SPAWN_ENTITY, Entity1_16_2Types.EntityType.FALLING_BLOCK);
|
||||||
metadataRewriter.registerTracker(ClientboundPackets1_16_2.SPAWN_MOB);
|
metadataRewriter.registerTracker(ClientboundPackets1_16_2.SPAWN_MOB);
|
||||||
metadataRewriter.registerTracker(ClientboundPackets1_16_2.SPAWN_PLAYER, Entity1_16_2Types.EntityType.PLAYER);
|
metadataRewriter.registerTracker(ClientboundPackets1_16_2.SPAWN_PLAYER, Entity1_16_2Types.EntityType.PLAYER);
|
||||||
metadataRewriter.registerMetadataRewriter(ClientboundPackets1_16_2.ENTITY_METADATA, Types1_14.METADATA_LIST);
|
metadataRewriter.registerMetadataRewriter(ClientboundPackets1_16_2.ENTITY_METADATA, Types1_14.METADATA_LIST, Types1_17.METADATA_LIST);
|
||||||
metadataRewriter.registerEntityDestroy(ClientboundPackets1_16_2.DESTROY_ENTITIES);
|
metadataRewriter.registerEntityDestroy(ClientboundPackets1_16_2.DESTROY_ENTITIES);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren