Newer
Older
DungeonShooting / DungeonShooting_Godot / src / config / ExcelConfig_ActivityMaterial.cs
using System.Text.Json.Serialization;
using System.Collections.Generic;

namespace Config;

public static partial class ExcelConfig
{
    public partial class ActivityMaterial
    {
        /// <summary>
        /// 表Id
        /// </summary>
        [JsonInclude]
        public string Id;

        /// <summary>
        /// 备注
        /// </summary>
        [JsonInclude]
        public string Remark;

        /// <summary>
        /// 摩擦力
        /// </summary>
        [JsonInclude]
        public float Friction;

        /// <summary>
        /// 重力缩放,如果为0则会关闭重力
        /// </summary>
        [JsonInclude]
        public float GravityScale;

        /// <summary>
        /// 物体旋转控制类型: <br/>
        /// 0.不受运动影响 <br/>
        /// 1.只受水平方向运动速度影响 <br/>
        /// 2.受水平和垂直运动方向影响, 可以做迫击炮炮弹的效果
        /// </summary>
        [JsonInclude]
        public byte RotationType;

        /// <summary>
        /// 旋转摩擦力
        /// </summary>
        [JsonInclude]
        public float RotationFriction;

        /// <summary>
        /// 落地之后是否回弹
        /// </summary>
        [JsonInclude]
        public bool Bounce;

        /// <summary>
        /// 物体水平回弹强度
        /// </summary>
        [JsonInclude]
        public float BounceStrength;

        /// <summary>
        /// 物体下坠回弹的强度
        /// </summary>
        [JsonInclude]
        public float FallBounceStrength;

        /// <summary>
        /// 物体下坠回弹后的运动速度衰比例
        /// </summary>
        [JsonInclude]
        public float FallBounceSpeed;

        /// <summary>
        /// 物体下坠回弹后的旋转速度衰减比例
        /// </summary>
        [JsonInclude]
        public float FallBounceRotation;

        /// <summary>
        /// 动态开关碰撞器,在物体高度大于32时是否关闭碰撞检测
        /// </summary>
        [JsonInclude]
        public bool DynamicCollision;

        /// <summary>
        /// 返回浅拷贝出的新对象
        /// </summary>
        public ActivityMaterial Clone()
        {
            var inst = new ActivityMaterial();
            inst.Id = Id;
            inst.Remark = Remark;
            inst.Friction = Friction;
            inst.GravityScale = GravityScale;
            inst.RotationType = RotationType;
            inst.RotationFriction = RotationFriction;
            inst.Bounce = Bounce;
            inst.BounceStrength = BounceStrength;
            inst.FallBounceStrength = FallBounceStrength;
            inst.FallBounceSpeed = FallBounceSpeed;
            inst.FallBounceRotation = FallBounceRotation;
            inst.DynamicCollision = DynamicCollision;
            return inst;
        }
    }
}