123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using CommonLang.Property;
- using CommonAI.Zone.Instance;
- using CommonAI.Zone.Attributes;
- using CommonAI.Zone.EventTrigger;
- namespace CommonAI.Zone.ZoneEditor.EventTrigger
- {
- [DescAttribute("Flag")]
- public abstract class FlagValue : AbstractValue<InstanceFlag>
- {
- [DescAttribute("值 - 没有Flag", "值")]
- public class NA : FlagValue
- {
- public override string ToString()
- {
- return "没有Flag";
- }
- public override InstanceFlag GetValue(IEditorValueAdapter api, EventArguments args)
- {
- return null;
- }
- }
- //---------------------------------------------------------------------------------------
- #region Editor
- [DescAttribute("编辑器 - 区域", "编辑器")]
- public class EditorRegion : FlagValue
- {
- [DescAttribute("场景中的名字")]
- [SceneObjectIDAttribute(typeof(RegionData))]
- public string EditorName;
- public override string ToString()
- {
- return "区域:" + EditorName;
- }
- public override InstanceFlag GetValue(IEditorValueAdapter api, EventArguments args)
- {
- return api.ZoneAPI.get_edit_flag(EditorName) as ZoneRegion;
- }
- }
- [DescAttribute("编辑器 - 路点", "编辑器")]
- public class EditorPoint : FlagValue
- {
- [DescAttribute("场景中的名字")]
- [SceneObjectIDAttribute(typeof(PointData))]
- public string EditorName;
- public override string ToString()
- {
- return "路点:" + EditorName;
- }
- public override InstanceFlag GetValue(IEditorValueAdapter api, EventArguments args)
- {
- return api.ZoneAPI.get_edit_flag(EditorName) as ZoneWayPoint;
- }
- }
- [DescAttribute("编辑器 - 装饰物", "编辑器")]
- public class EditorDecoration : FlagValue
- {
- [DescAttribute("场景中的名字")]
- [SceneObjectIDAttribute(typeof(DecorationData))]
- public string EditorName;
- public override string ToString()
- {
- return "装饰物:" + EditorName;
- }
- public override InstanceFlag GetValue(IEditorValueAdapter api, EventArguments args)
- {
- return api.ZoneAPI.get_edit_flag(EditorName) as ZoneDecoration;
- }
- }
- [DescAttribute("编辑器 - Area", "编辑器")]
- public class EditorArea : FlagValue
- {
- [DescAttribute("场景中的名字")]
- [SceneObjectIDAttribute(typeof(AreaData))]
- public string EditorName;
- public override string ToString()
- {
- return "Area:" + EditorName;
- }
- public override InstanceFlag GetValue(IEditorValueAdapter api, EventArguments args)
- {
- return api.ZoneAPI.get_edit_flag(EditorName) as ZoneArea;
- }
- }
- #endregion
- //---------------------------------------------------------------------------------------
- #region Trigging
- [DescAttribute("功能 - 触发的区域", "功能")]
- public class TriggingRegion : FlagValue
- {
- public override string ToString()
- {
- return "触发的区域";
- }
- public override InstanceFlag GetValue(IEditorValueAdapter api, EventArguments args)
- {
- return args.TriggingRegion;
- }
- }
- [DescAttribute("功能 - 触发的装饰物", "功能")]
- public class TriggingDecoration : FlagValue
- {
- public override string ToString()
- {
- return "触发的装饰物";
- }
- public override InstanceFlag GetValue(IEditorValueAdapter api, EventArguments args)
- {
- return args.TriggingDecoration;
- }
- }
- [DescAttribute("功能 - 触发的Area", "功能")]
- public class TriggingArea : FlagValue
- {
- public override string ToString()
- {
- return "触发的Area";
- }
- public override InstanceFlag GetValue(IEditorValueAdapter api, EventArguments args)
- {
- return args.TriggingArea;
- }
- }
- #endregion
- //---------------------------------------------------------------------------------------
- #region Field
- [DescAttribute("单位当前Area", "Area")]
- public class UnitCurrentArea : FlagValue
- {
- [DescAttribute("单位")]
- public UnitValue Unit = new UnitValue.Trigging();
- public override string ToString()
- {
- return string.Format("单位({0})当前Area", Unit);
- }
- public override InstanceFlag GetValue(IEditorValueAdapter api, EventArguments args)
- {
- var unit = Unit.GetValue(api, args);
- if (unit != null)
- {
- return unit.CurrentArea;
- }
- return null;
- }
- }
- [DescAttribute("坐标所在Area", "Area")]
- public class PositionArea : FlagValue
- {
- [DescAttribute("坐标")]
- public PositionValue Pos = new PositionValue.VALUE();
- public override string ToString()
- {
- return string.Format("坐标({0})位置Area", Pos);
- }
- public override InstanceFlag GetValue(IEditorValueAdapter api, EventArguments args)
- {
- var pos = Pos.GetValue(api, args);
- if (pos != null)
- {
- return api.ZoneAPI.GetArea(pos.X, pos.Y);
- }
- return null;
- }
- }
- #endregion
- //---------------------------------------------------------------------------------------
- }
- }
|