예제 #1
0
        private void setAfkProp(PropDefinition propDefinition)
        {
            if (propDefinition == null)
            {
            }
            DHeldObject dHeldObject = new DHeldObject();

            switch (propDefinition.PropType)
            {
            case PropDefinition.PropTypes.Consumable:
                dHeldObject.ObjectType = HeldObjectType.CONSUMABLE;
                break;

            case PropDefinition.PropTypes.Durable:
                dHeldObject.ObjectType = HeldObjectType.DURABLE;
                break;

            case PropDefinition.PropTypes.InteractiveObject:
                dHeldObject.ObjectType = HeldObjectType.DISPENSABLE;
                break;

            case PropDefinition.PropTypes.PartyGame:
                dHeldObject.ObjectType = HeldObjectType.PARTYGAME;
                break;
            }
            dHeldObject.ObjectId = propDefinition.NameOnServer;
            if (AvatarDataHandle.TryGetPlayerHandle(base.gameObject, out var handle))
            {
                dataEntityCollection.GetComponent <HeldObjectsData>(handle).HeldObject = dHeldObject;
                isUsingAFKProp = true;
            }
        }
예제 #2
0
 private void clearAfkProp()
 {
     if (AvatarDataHandle.TryGetPlayerHandle(base.gameObject, out var handle))
     {
         if (presenceData.AFKState.EquippedObject != null)
         {
             DHeldObject dHeldObject = new DHeldObject();
             dHeldObject.ObjectId = presenceData.AFKState.EquippedObject.EquippedObjectId;
             if (presenceData.AFKState.EquippedObject.IsConsumable())
             {
                 dHeldObject.ObjectType = HeldObjectType.CONSUMABLE;
             }
             else if (presenceData.AFKState.EquippedObject.IsDurable())
             {
                 dHeldObject.ObjectType = HeldObjectType.DURABLE;
             }
             else if (presenceData.AFKState.EquippedObject.IsDispensable())
             {
                 dHeldObject.ObjectType = HeldObjectType.DISPENSABLE;
             }
             else if (presenceData.AFKState.EquippedObject.isPartyGame())
             {
                 dHeldObject.ObjectType = HeldObjectType.PARTYGAME;
             }
             dataEntityCollection.GetComponent <HeldObjectsData>(handle).HeldObject = dHeldObject;
         }
         else
         {
             dataEntityCollection.GetComponent <HeldObjectsData>(handle).HeldObject = null;
         }
     }
     isUsingAFKProp = false;
 }
예제 #3
0
 private void changedHeldObject(DHeldObject obj)
 {
     if (this.PlayerHeldObjectChanged != null)
     {
         this.PlayerHeldObjectChanged(obj);
     }
 }
예제 #4
0
        private bool onHeldObjectEquipped(long sessionId, string objectId, HeldObjectType type)
        {
            if (isLocalPlayer(sessionId) && type != HeldObjectType.PARTYGAME)
            {
                return(false);
            }
            DataEntityHandle dataEntityHandle = dataEntityCollection.FindEntity <SessionIdData, long>(sessionId);

            if (!dataEntityHandle.IsNull && dataEntityCollection.HasComponent <HeldObjectsData>(dataEntityHandle))
            {
                DHeldObject dHeldObject = new DHeldObject();
                dHeldObject.ObjectId   = objectId;
                dHeldObject.ObjectType = type;
                dataEntityCollection.GetComponent <HeldObjectsData>(dataEntityHandle).HeldObject = dHeldObject;
            }
            return(false);
        }