using UnityEngine; namespace ET { public class ResourceComponentDestroySystem: DestroySystem { public override void Destroy(ResourcePointComponent self) { } } [FriendClass(typeof (ResourcePoint))] public static class ResourcePointComponentSystem { public static ResourcePoint CreateResourceByConfigId(this ResourcePointComponent self, Unit unit, int configId, float posX, float PosY, long id = 0) { ResourcePoint res; if (id > 0) { res = self.AddChildWithId(id); } else { res = self.AddChild(); } res.ConfigId = configId; res.Position = new Vector2(posX, PosY); res.MatureState = ConstValue.Mature; var config = ResourcesPointConfigCategory.Instance.Get(configId); foreach (var relateId in config.RelatedResources) { var resConfig = ResourcesConfigCategory.Instance.Get(relateId); if (unit.CanBorn(resConfig.Id)) { res.ResAttriDic[relateId] = new ResourceAttri { ConfigId = relateId, GatherAmount = resConfig.OutAmount, MaxAmount = resConfig.OutAmount }; } } return res; } #if SERVER public static ResourcePoint CreateResourceByInitResItem(this ResourcePointComponent self, Unit unit,InitResourceItem item, long monsterGroupId) { ResourcePoint res; res = self.AddChild(); res.ConfigId = item.ConfigId; res.Position = new Vector2(item.PosX, item.PosY); res.MatureState = ConstValue.Mature; var config = ResourcesPointConfigCategory.Instance.Get(item.ConfigId); // res.MaxAmount = resConfig.OutAmount; // res.CurrAmount = 0; res.MonsterGroupId = monsterGroupId; foreach (var relateId in config.RelatedResources) { var resConfig = ResourcesConfigCategory.Instance.Get(relateId); if (unit.CanBorn(resConfig.Id)) { res.ResAttriDic[relateId] = new ResourceAttri { ConfigId = relateId, GatherAmount = 0, MaxAmount = resConfig.OutAmount }; } } return res; } #endif public static ResourcePoint GetResourceById(this ResourcePointComponent self, long id) { foreach (var v in self.Children.Values) { if (v.Id == id) { return (ResourcePoint) v; } } return null; } } }