private void ProcessSimpleEquipment(SceneObjectEntity entity, RayCastTarget target) { var equip = entity.simpleEquipment; var category = entity.simpleEquipment.Category; var entityId = entity.entityKey.Value.EntityId; SceneObjCastData.Make(target, entityId, equip.Id, equip.Count, category); switch ((ECategory)category) { case ECategory.Weapon: var weaponCfg = SingletonManager.Get <WeaponResourceConfigManager>().GetConfigById(equip.Id); if (null == weaponCfg) { break; } var weaponType = (EWeaponType_Config)weaponCfg.Type; if (weaponType.CanAutoPick()) { EnableAutoPickup(entityId, target.gameObject); } break; default: break; } }
private void ProcessWeapon(SceneObjectEntity entity, RayCastTarget target) { var weapon = entity.weaponObject; var entityId = entity.entityKey.Value.EntityId; SceneObjCastData.Make(target, entityId, weapon.ConfigId, 1, (int)ECategory.Weapon); var weaponType = (EWeaponType_Config)SingletonManager .Get <WeaponResourceConfigManager>().GetConfigById(weapon.ConfigId) .Type; if (weaponType.CanAutoPick()) { EnableAutoPickup(entityId, target.gameObject); } }
private void ProcessWeaonCastSetting(SceneObjectEntity entity, RayCastTarget target) { var weapon = entity.weaponObject; var entityId = entity.entityKey.Value.EntityId; SceneObjCastData.Make(target, entityId, weapon.ConfigId, entity.hasSimpleItem ? entity.simpleItem.Count : 1, (int)ECategory.Weapon); /*var weaponType = (EWeaponType_Config) SingletonManager * .Get<WeaponResourceConfigManager>().GetConfigById(weapon.ConfigId) * .Type; * if (weaponType.CanAutoPick()) * { * EnableAutoPickup(entityId, target.gameObject); * }*/ }
public override void OnAction() { var entityId = SceneObjCastData.EntityId(_pointerData.IdList); var category = SceneObjCastData.Category(_pointerData.IdList); var itemId = SceneObjCastData.ItemId(_pointerData.IdList); var count = SceneObjCastData.Count(_pointerData.IdList); var player = _playerContext.flagSelfEntity; if (null == player) { return; } player.stateInterface.State.InterruptAction(); player.stateInterface.State.PickUp(); player.ModeController().SendPickup(player.WeaponController(), entityId, itemId, category, count); }
protected override void DoSetData(PointerData data) { _pointerData = data; var entityId = SceneObjCastData.EntityId(_pointerData.IdList); var sceneObj = _sceneObjectContext.GetEntityWithEntityKey(new Core.EntityComponent.EntityKey(entityId, (short)EEntityType.SceneObject)); if (null != sceneObj) { if (!sceneObj.hasPosition) { Logger.Error("sceneobject has no postion"); return; } var player = _playerContext.flagSelfEntity; if (!player.hasPosition) { Logger.Error("player has no position"); return; } if (IsUntouchable(sceneObj, player)) { return; } if (!sceneObj.IsCanPickUpByPlayer(player)) { return; } if (player.hasGamePlay && !player.gamePlay.CanAutoPick()) { return; } } else { return; } var itemId = SceneObjCastData.ItemId(_pointerData.IdList); var count = SceneObjCastData.Count(_pointerData.IdList); var category = SceneObjCastData.Category(_pointerData.IdList); switch ((ECategory)category) { case ECategory.Weapon: var itemCfg = SingletonManager.Get <WeaponResourceConfigManager>().GetConfigById(itemId); if (null != itemCfg) { if (itemCfg.Type == (int)EWeaponType_Config.ThrowWeapon) { Tip = string.Format(ScriptLocalization.client_actiontip.pickup, itemCfg.Name, string.Format("({0})", count)); } else { Tip = string.Format(ScriptLocalization.client_actiontip.pickandequip, itemCfg.Name); } } else { Tip = string.Format("weapon {0} doesn't exist ", itemId); } break; case ECategory.Avatar: var equip = SingletonManager.Get <RoleAvatarConfigManager>().GetConfigById(itemId); if (null != equip) { Tip = string.Format(ScriptLocalization.client_actiontip.pickandequip, equip.Name); } else { Tip = string.Format("avatar {0} doesn't exist ", itemId); } break; case ECategory.WeaponPart: var part = SingletonManager.Get <WeaponPartSurvivalConfigManager>().FindConfigBySetId(itemId); if (null != part) { Tip = string.Format(ScriptLocalization.client_actiontip.pickup, part.Name, ""); } else { Tip = string.Format("part {0} doesn't exist", itemId); } break; case ECategory.GameItem: var item = SingletonManager.Get <GameItemConfigManager>().GetConfigById(itemId); if (null != item) { Tip = string.Format(ScriptLocalization.client_actiontip.pickup, item.Name, string.Format("({0})", count)); } else { Tip = string.Format("item {0} doesn't exist", itemId); } break; default: Tip = string.Format("EntityId {0} ItemId {1} do not exist in config ", entityId, itemId); break; } }