增加表格
This commit is contained in:
414
Assets/Scripts/Fishing/Data/FPlayerData.cs
Normal file
414
Assets/Scripts/Fishing/Data/FPlayerData.cs
Normal file
@@ -0,0 +1,414 @@
|
||||
using System;
|
||||
using System.Text;
|
||||
using cfg;
|
||||
using UnityEngine;
|
||||
|
||||
namespace NBF
|
||||
{
|
||||
public enum GearType
|
||||
{
|
||||
SpinningFloat = 0,
|
||||
Spinning = 1,
|
||||
Hand = 2,
|
||||
Feeder = 3,
|
||||
Pole = 4
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public enum PlayerState : uint
|
||||
{
|
||||
None = 0,
|
||||
|
||||
/// <summary>
|
||||
/// 闲置等待中
|
||||
/// </summary>
|
||||
Idle = 1,
|
||||
|
||||
/// <summary>
|
||||
/// 准备抛竿
|
||||
/// </summary>
|
||||
Prepare = 2,
|
||||
|
||||
/// <summary>
|
||||
/// 抛竿中
|
||||
/// </summary>
|
||||
Throw = 3,
|
||||
|
||||
/// <summary>
|
||||
/// 钓鱼中
|
||||
/// </summary>
|
||||
Fishing = 4,
|
||||
|
||||
/// <summary>
|
||||
/// 溜鱼中
|
||||
/// </summary>
|
||||
Fight = 5
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public class FPlayerData : MonoService<FPlayerData>
|
||||
{
|
||||
public int PlayerID;
|
||||
|
||||
/// <summary>
|
||||
/// 玩家当前装备的钓组
|
||||
/// </summary>
|
||||
public FPlayerGearData currentGear;
|
||||
|
||||
/// <summary>
|
||||
/// 玩家位置
|
||||
/// </summary>
|
||||
public Vector3 position;
|
||||
|
||||
/// <summary>
|
||||
/// 玩家角度
|
||||
/// </summary>
|
||||
public Quaternion rotation;
|
||||
|
||||
public float currentReelingSpeed;
|
||||
public bool isHandOnHandle;
|
||||
|
||||
/// <summary>
|
||||
/// 线长度
|
||||
/// </summary>
|
||||
public float lineLength;
|
||||
|
||||
/// <summary>
|
||||
/// 收线速度
|
||||
/// </summary>
|
||||
public float reelSpeed;
|
||||
|
||||
/// <summary>
|
||||
/// 打开手电筒
|
||||
/// </summary>
|
||||
public bool openLight;
|
||||
|
||||
/// <summary>
|
||||
/// 打开望远镜
|
||||
/// </summary>
|
||||
public bool openTelescope;
|
||||
|
||||
public float EyeAngle;
|
||||
|
||||
public bool Run;
|
||||
|
||||
public bool ChangeItem;
|
||||
|
||||
public bool IsLureRod;
|
||||
|
||||
/// <summary>
|
||||
/// 是否地面
|
||||
/// </summary>
|
||||
public bool IsGrounded;
|
||||
|
||||
/// <summary>
|
||||
/// 移动速度
|
||||
/// </summary>
|
||||
public float Speed;
|
||||
|
||||
public float RotationSpeed;
|
||||
|
||||
public Vector2 MoveInput;
|
||||
|
||||
public SelectorRodSetting selectorRodSetting = SelectorRodSetting.Speed;
|
||||
|
||||
private PlayerState _previousPlayerState = PlayerState.Idle;
|
||||
private PlayerState _playerState;
|
||||
public PlayerState PreviousState => _previousPlayerState;
|
||||
|
||||
public PlayerState State
|
||||
{
|
||||
get => _playerState;
|
||||
set
|
||||
{
|
||||
_previousPlayerState = _playerState;
|
||||
_playerState = value;
|
||||
NextState = value;
|
||||
OnStateChange?.Invoke(_playerState);
|
||||
}
|
||||
}
|
||||
|
||||
[SerializeField] private PlayerState NextState;
|
||||
|
||||
public event Action<PlayerState> OnStateChange;
|
||||
|
||||
|
||||
|
||||
private void Start()
|
||||
{
|
||||
NextState = State;
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (NextState != State)
|
||||
{
|
||||
State = NextState;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 玩家钓组数据
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
public class FPlayerGearData
|
||||
{
|
||||
public GearType Type = GearType.Spinning;
|
||||
|
||||
public FRodData rod;
|
||||
public FReelData reel;
|
||||
public FBobberData bobber;
|
||||
public FHookData hook;
|
||||
public FBaitData bait;
|
||||
public FLureData lure;
|
||||
public FWeightData weight;
|
||||
public FLineData line;
|
||||
public FLeaderData leader;
|
||||
public FFeederData feeder;
|
||||
|
||||
/// <summary>
|
||||
/// 获得唯一id
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public int GetUnitId()
|
||||
{
|
||||
int result = 0;
|
||||
if (rod != null)
|
||||
{
|
||||
result += rod.configId;
|
||||
}
|
||||
|
||||
if (reel != null)
|
||||
{
|
||||
result += reel.configId;
|
||||
}
|
||||
|
||||
if (bobber != null)
|
||||
{
|
||||
result += bobber.configId;
|
||||
}
|
||||
|
||||
if (hook != null)
|
||||
{
|
||||
result += hook.configId;
|
||||
}
|
||||
|
||||
if (bait != null)
|
||||
{
|
||||
result += bait.configId;
|
||||
}
|
||||
|
||||
if (lure != null)
|
||||
{
|
||||
result += lure.configId;
|
||||
}
|
||||
|
||||
if (weight != null)
|
||||
{
|
||||
result += weight.configId;
|
||||
}
|
||||
|
||||
if (line != null)
|
||||
{
|
||||
result += line.configId;
|
||||
}
|
||||
|
||||
if (leader != null)
|
||||
{
|
||||
result += leader.configId;
|
||||
}
|
||||
|
||||
if (feeder != null)
|
||||
{
|
||||
result += feeder.configId;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public void SetBobberLastSetGroundValue(float value)
|
||||
{
|
||||
bobber.lastSetGroundValue = value;
|
||||
}
|
||||
|
||||
public void SetReelSettings(int setType, float val, bool saveToPrefs = false)
|
||||
{
|
||||
if (setType == 0)
|
||||
{
|
||||
reel.currentSpeed = val;
|
||||
}
|
||||
|
||||
if (setType == 1)
|
||||
{
|
||||
reel.currentDrag = val;
|
||||
}
|
||||
|
||||
if (saveToPrefs)
|
||||
{
|
||||
// Instance._playerData.SaveEquipment(ItemType.Reel);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public abstract class FGearData
|
||||
{
|
||||
/// <summary>
|
||||
/// 唯一id
|
||||
/// </summary>
|
||||
public int id;
|
||||
|
||||
/// <summary>
|
||||
/// 配置id
|
||||
/// </summary>
|
||||
public int configId;
|
||||
|
||||
private Item _itemConfig;
|
||||
|
||||
public Item ItemConfig
|
||||
{
|
||||
get { return _itemConfig ??= Game.Tables.TbItem.Get(configId); }
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 鱼竿数据
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
public class FRodData : FGearData
|
||||
{
|
||||
private Rod _config;
|
||||
|
||||
public Rod Config
|
||||
{
|
||||
get { return _config ??= Game.Tables.TbRod.Get(configId); }
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 线轴数据
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
public class FReelData : FGearData
|
||||
{
|
||||
private Reel _config;
|
||||
|
||||
public Reel Config
|
||||
{
|
||||
get { return _config ??= Game.Tables.TbReel.Get(configId); }
|
||||
}
|
||||
|
||||
public float currentSpeed = 0.5f;
|
||||
|
||||
public float currentDrag = 0.7f;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 浮漂数据
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
public class FBobberData : FGearData
|
||||
{
|
||||
private Bobber _config;
|
||||
|
||||
public Bobber Config
|
||||
{
|
||||
get { return _config ??= Game.Tables.TbBobber.Get(configId); }
|
||||
}
|
||||
|
||||
public float lastSetGroundValue;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 鱼钩数据
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
public class FHookData : FGearData
|
||||
{
|
||||
private Hook _config;
|
||||
|
||||
public Hook Config
|
||||
{
|
||||
get { return _config ??= Game.Tables.TbHook.Get(configId); }
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 鱼饵数据
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
public class FBaitData : FGearData
|
||||
{
|
||||
private Bait _config;
|
||||
|
||||
public Bait Config
|
||||
{
|
||||
get { return _config ??= Game.Tables.TbBait.Get(configId); }
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 鱼饵数据
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
public class FLureData : FGearData
|
||||
{
|
||||
private Lure _config;
|
||||
|
||||
public Lure Config
|
||||
{
|
||||
get { return _config ??= Game.Tables.TbLure.Get(configId); }
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 沉子数据
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
public class FWeightData : FGearData
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 线数据
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
public class FLineData : FGearData
|
||||
{
|
||||
private Line _config;
|
||||
|
||||
public Line Config
|
||||
{
|
||||
get { return _config ??= Game.Tables.TbLine.Get(configId); }
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 引线数据
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
public class FLeaderData : FGearData
|
||||
{
|
||||
// private Leader _config;
|
||||
//
|
||||
// public Leader Config
|
||||
// {
|
||||
// get { return _config ??= Game.Tables.TbLeader.Get(configId); }
|
||||
// }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 菲德数据
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
public class FFeederData : FGearData
|
||||
{
|
||||
private Feeder _config;
|
||||
|
||||
public Feeder Config
|
||||
{
|
||||
get { return _config ??= Game.Tables.TbFeeder.Get(configId); }
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user