123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 |
- using CommonAI.Zone;
- using CommonAI.Zone.Helper;
- using CommonAI.Zone.Instance;
- using System;
- using CommonAI.Zone.ZoneEditor;
- using CommonAI.ZoneClient;
- using XmdsCommon.ZoneClient;
- using CommonAI.Zone.Formula;
- using XmdsCommon.Message;
- using XmdsCommon.ZoneClient.XmdsClientVirtual;
- using XmdsCommon.EditorData;
- using System.IO;
- using CommonLang.Concurrent;
- using System.Collections.Generic;
- namespace XmdsCommon.Plugin
- {
- public class XmdsZoneFactory : InstanceZoneFactory
- {
- private XmdsClientFormula mFormula = new XmdsClientFormula();
- public override CommonAI.Zone.Formula.IFormula Formula
- {
- get { return mFormula; }
- }
- public XmdsZoneFactory()
- {
- }
-
- public override IUnitProperties CreateUnitProperties()
- {
- return new XmdsUnitProperties();
- }
- public override IAttackProperties CreateAttackProperties()
- {
- return new XmdsAttackProperties();
- }
- public override IBuffProperties CreateBuffProperties()
- {
- return new XmdsBuffProperties();
- }
- public override IItemProperties CreateItemProperties()
- {
- return new XmdsItemProperties();
- }
- public override ISkillProperties CreateSkillProperties()
- {
- return new XmdsSkillProperties();
- }
- public override ISpellProperties CreateSpellProperties()
- {
- return new XmdsSpellProperties();
- }
- public override IUnitTriggerProperties CreateTriggerProperties()
- {
- return new XmdsUnitTriggerProperties();
- }
- public override ISceneProperties CreateSceneProperties()
- {
- return new XmdsSceneProperties();
- }
- public override ICommonConfig CreateCommonCFG()
- {
- return new XmdsConfig();
- }
- public override IQuestAdapter CreateQuestAdapter(InstanceZone zone)
- {
- throw new NotImplementedException();
- }
- public override ZoneLayer CreateClientZoneLayer(EditorTemplates templates, ILayerClient listener)
- {
- return new HZZoneLayer(templates, listener);
- }
- public override IVirtualClientUnit CreateClientUnitVirtual(ZoneUnit owner)
- {
- //是否主角.
- if (owner is ZoneActor)
- {
- return new XmdsClientVirtual_Actor();
- }
- IUnitVisibleData data = owner.SyncInfo.VisibleInfo;
- //根据数据类型,确定中间层数据类型.
- if (data == null)
- {
- switch (owner.Info.UType)
- {
- case UnitInfo.UnitType.TYPE_MONSTER:
- return new XmdsClientVirtual_Monster();
- case UnitInfo.UnitType.TYPE_NPC:
- return new XmdsClientVirtual_Monster();
- case UnitInfo.UnitType.TYPE_PET:
- return new XmdsClientVirtual_Pet();
- case UnitInfo.UnitType.TYPE_PLAYER:
- return new XmdsClientVirtual_Player();
- case UnitInfo.UnitType.TYPE_SUMMON:
- return new XmdsClientVirtual_SummonUnit();
- default:
- return new XmdsClientVirtual();
- }
- }
- else if (data is SummonUnitVisibleDataB2C)
- {
- return new XmdsClientVirtual_SummonUnit();
- }
- else if (data is PlayerVisibleDataB2C)
- {
- return new XmdsClientVirtual_Player();
- }
- else if (data is PetVisibleDataB2C)
- {
- return new XmdsClientVirtual_Pet();
- }
- else if (data is MonsterVisibleDataB2C)
- {
- return new XmdsClientVirtual_Monster();
- }
- return base.CreateClientUnitVirtual(owner);
- }
- public override string ToClientDisplayName(UnitInfo info, SyncUnitInfo syncInfo)
- {
- if (!string.IsNullOrEmpty(syncInfo.Alias))
- {
- return syncInfo.Alias;
- }
- var prop = info.Properties as XmdsCommon.Plugin.XmdsUnitProperties;
- if (prop.ServerData != null && prop.ServerData.BaseInfo != null)
- {
- return prop.ServerData.BaseInfo.name;
- }
- var visible = syncInfo.VisibleInfo as PlayerVisibleDataB2C;
- if (visible != null && visible.BaseInfo != null)
- {
- return visible.BaseInfo.name;
- }
- return info.Name;
- }
- }
- public class XmdsClientFormula : IFormula
- {
- public override void OnEditorSaving(EditorTemplatesData datas, DirectoryInfo data_root, List<FileInfo> savedfiles, AtomicFloat progress_percent)
- {
- base.OnEditorSaving(datas, data_root, savedfiles, progress_percent);
- SceneSnapManager.SaveAllSceneSnap(datas, new DirectoryInfo(data_root.FullName + "/scene_snaps"));
- //UnitSnapData dataTemp = SceneSnapManager.LoadSceneUnitSnapData(10099);
- SceneSnapManager.SaveAllSceneSnapExt(datas, new DirectoryInfo(data_root.FullName + "/scene_unitsnaps"));
- }
- public override void InitPluginsData(EditorTemplates data_root)
- {
- base.InitPluginsData(data_root);
- SceneSnapManager.InitSceneSnap(data_root.DataRoot + "/scene_snaps", data_root.DataRoot + "/scene_unitsnaps");
- }
- }
- }
|