Files

57 lines
2.0 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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