public class ParticleTypeASM_1_13 extends ParticleBaseASM implements ParticleTypesImplProvider
Class responsible for providing version-dependent code of particle types in MC 1.13.
particleType, particleTypeBlock, particleTypeBlockMotion, particleTypeColorable, particleTypeDust, particleTypeItemMotion, particleTypeMotion, particleTypeNote, particleTypeRedstoneAALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_DEPRECATED, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_MANDATED, ACC_MODULE, ACC_NATIVE, ACC_OPEN, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STATIC_PHASE, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_TRANSITIVE, ACC_VARARGS, ACC_VOLATILE, ACONST_NULL, ALOAD, ANEWARRAY, ARETURN, ARRAYLENGTH, ASM4, ASM5, ASM6, ASM7, ASM8_EXPERIMENTAL, ASTORE, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DMUL, DNEG, DOUBLE, DREM, DRETURN, DSTORE, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F_APPEND, F_CHOP, F_FULL, F_NEW, F_SAME, F_SAME1, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAT, FMUL, FNEG, FREM, FRETURN, FSTORE, FSUB, GETFIELD, GETSTATIC, GOTO, H_GETFIELD, H_GETSTATIC, H_INVOKEINTERFACE, H_INVOKESPECIAL, H_INVOKESTATIC, H_INVOKEVIRTUAL, H_NEWINVOKESPECIAL, H_PUTFIELD, H_PUTSTATIC, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILOAD, IMUL, INEG, INSTANCEOF, INTEGER, INVOKEDYNAMIC, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISUB, IUSHR, IXOR, JSR, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDIV, LLOAD, LMUL, LNEG, LONG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, NULL, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, SOURCE_DEPRECATED, SOURCE_MASK, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, TOP, UNINITIALIZED_THIS, V_PREVIEW, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6, V1_7, V1_8, V10, V11, V12, V13, V14, V15, V9| Constructor and Description |
|---|
ParticleTypeASM_1_13(java.lang.String version) |
| Modifier and Type | Method and Description |
|---|---|
protected byte[] |
createParticleTypeBase(org.objectweb.asm.Type superType)
Creates a bytecode of class extending
ParticleType
related class represented by parameter Type object. |
protected byte[] |
createParticleTypeRedstone(org.objectweb.asm.Type superType)
Creates a bytecode of class extending
ParticleTypeRedstone
related class represented by parameter Type object. |
void |
defineImplementation(TempClassLoader cl)
Defines all implementations of certain particle
types version on parameter class loader.
|
protected org.objectweb.asm.Type |
getTypeImpl(org.objectweb.asm.Type superType)
Gets a
Type object representing
class implementation of parameter Type object
class representation. |
protected void |
visitConstructor(org.objectweb.asm.ClassWriter cw,
org.objectweb.asm.Type implType,
org.objectweb.asm.Type superType,
java.lang.String fieldType)
Visits constructor on class represented by
Type implType parameter
extending class represented by Type superType parameter |
protected void |
visitFields(org.objectweb.asm.ClassWriter cw,
java.lang.String fieldType)
Visits fields necessary to properly represent certain particle.
|
void |
visitParticleTypes(org.objectweb.asm.MethodVisitor mv,
ParticleVersion interfaceVersion)
Visits all particle types implementation
on parameter
MethodVisitor using
parameter interface version. |
addIsValiddesc, getTypeImplprotected org.objectweb.asm.Type getTypeImpl(org.objectweb.asm.Type superType)
ParticleBaseASMGets a Type object representing
class implementation of parameter Type object
class representation.
getTypeImpl in class ParticleBaseASMsuperType - a Type object representing
certain class.Type object representing class that implements
class represented by parameter Type object.public void defineImplementation(TempClassLoader cl)
ParticleTypesImplProviderDefines all implementations of certain particle types version on parameter class loader.
defineImplementation in interface ParticleTypesImplProvidercl - a class loader on which implementation
should be defined.public void visitParticleTypes(org.objectweb.asm.MethodVisitor mv,
ParticleVersion interfaceVersion)
ParticleTypesImplProviderVisits all particle types implementation
on parameter MethodVisitor using
parameter interface version.
Technically speaking, it generates bytecode for instantiating all particle types implementations and storing them in instance fields.
visitParticleTypes in interface ParticleTypesImplProvidermv - a MethodVisitor on which
instructions visiting occurs.interfaceVersion - a ParticleVersion enum
providing informations about processed
interface version.protected byte[] createParticleTypeBase(org.objectweb.asm.Type superType)
Creates a bytecode of class extending ParticleType
related class represented by parameter Type object.
superType - a Type object representing
ParticleType related class.byte[] array containing bytecode of class
extending ParticleType related class.protected byte[] createParticleTypeRedstone(org.objectweb.asm.Type superType)
Creates a bytecode of class extending ParticleTypeRedstone
related class represented by parameter Type object.
superType - a Type object representing
ParticleType related class.byte[] array containing bytecode of class
extending ParticleType related class.protected void visitFields(org.objectweb.asm.ClassWriter cw,
java.lang.String fieldType)
Visits fields necessary to properly represent certain particle.
cw - a ClassWriter on which fields visiting should happen.fieldType - a NMS string field name.protected void visitConstructor(org.objectweb.asm.ClassWriter cw,
org.objectweb.asm.Type implType,
org.objectweb.asm.Type superType,
java.lang.String fieldType)
Visits constructor on class represented by Type implType parameter
extending class represented by Type superType parameter
cw - a ClassWriter on which constructor visiting
should happen.implType - a Type object representing implementation class.superType - a Type object representing super class.fieldType - a NMS string field name.Copyright © 2020. All Rights Reserved.