Files
Gen_Hack-and-Slash-Roguelite/Client/Assets/Scripts/Data/MapDef.cs

52 lines
1.8 KiB
C#
Raw Normal View History

using System.Collections.Generic;
using System.Xml.Linq;
using UnityEngine;
using UnityEngine.Tilemaps;
namespace Data
{
public class TileDef : Define
{
public Tile.ColliderType collider = Tile.ColliderType.None;
public string texture;
public RuleTileRuleDef[] rules;
}
public class RuleTileRuleDef : Define
{
public enum NeighborConditionType
{
Any, // 可以是任何瓦片
This, // 必须是当前 Rule Tile 自身 (用于[4]位置)
NotThis, // 不能是当前 Rule Tile 自身
}
public NeighborConditionType[] neighborConditions = new NeighborConditionType[8];
public RuleTile.TilingRuleOutput.OutputSprite outputType = RuleTile.TilingRuleOutput.OutputSprite.Single;
public RuleTile.TilingRuleOutput.Transform transform = RuleTile.TilingRuleOutput.Transform.Fixed;
// --- 输出碰撞器类型 (Output Collider Type) ---
// 如果需要为该规则设置特定的碰撞器类型
public Tile.ColliderType outputCollider = Tile.ColliderType.None;
// --- 概率 (Probability) / Perlin Offset ---
// 决定此规则被选中的可能性或者用于Perlin噪声偏移
public float chance = 0.5f; // 默认为100%
// --- 动画精灵 (Animation Sprites) ---
// 如果 outputType 是 Animation这里可以定义一系列动画帧的纹理路径或名称
public List<string> animationTextures;
public float animationSpeed = 1f;
// 构造函数或其他辅助方法
public RuleTileRuleDef()
{
for (int i = 0; i < neighborConditions.Length; i++)
{
neighborConditions[i] = NeighborConditionType.Any;
}
}
}
}