Пример #1
0
 public override void Write(PythonWriter pw)
 {
     pw.WriteTuple(1);
     pw.WriteList(ContextIdList.Count);
     foreach (var contextId in ContextIdList)
     {
         pw.WriteUInt(contextId);
     }
 }
Пример #2
0
        public override void Write(PythonWriter pw)
        {
            pw.WriteTuple(6);

            pw.WriteList(StateIds.Count);
            foreach (var stateId in StateIds)
            {
                pw.WriteUInt(stateId);
            }

            pw.WriteDouble(Rotation);
            pw.WriteULong(TrackingTargetEntityId);
            pw.WriteDouble(MovementModifier);
            pw.WriteUInt(DesiredPostureId);
            pw.WriteBool(IsHoldingCombatMode);
        }
        public override void Write(PythonWriter pw)
        {
            pw.WriteTuple(3);
            pw.WriteUInt(EntityId);
            pw.WriteInt((int)ClassId);

            /*
             * These packets will be called on the newly created entity. It behaves the same as if we've sent them separately. Order matters!
             *
             * Possible packets that can be appended here: (Not all of them are reasonable to include...)
             *   + PhysicalEntity
             *     - BodyAttributes
             *     - WorldLocationDescriptor
             *     - WorldPlacementDescriptor
             *     - IsTargetable
             *     - ServerSkeleton
             *     - ExamineResults
             *     - GameEffectAttached
             *     - GameEffectAttachFailed
             *     - GameEffectTick
             *     - CallGameEffectMethod
             *     - GameEffectDetached
             *     - GameEffects
             *     - GameEffectUpdateTooltip
             *     - PerformObjectAbility
             *   + CharacterSelectionPod augmentation:
             *        - CharacterInfo
             *        - CloneCreditsChanged
             *   + Other augmentations: ...
             */
            if (EntityData.Count > 0)
            {
                pw.WriteList(EntityData.Count);

                foreach (var packet in EntityData)
                {
                    pw.WriteTuple(2);
                    pw.WriteInt((int)packet.Opcode);

                    packet.Write(pw);
                }
            }
            else
            {
                pw.WriteNoneStruct();
            }
        }