public void Read(IConfigElement element) { this.TriggerType = GeneratorUtility.Get(element, "TriggerType", this.TriggerType); this.Num1 = GeneratorUtility.Get(element, "Num1", this.Num1); this.Num2 = GeneratorUtility.Get(element, "Num2", this.Num2); this.Num3 = GeneratorUtility.Get(element, "Num3", this.Num3); }
public void Read(IConfigElement element) { this.Type = GeneratorUtility.Get(element, "Type", this.Type); this.Param1 = GeneratorUtility.Get(element, "Param1", this.Param1); this.Param2 = GeneratorUtility.Get(element, "Param2", this.Param2); this.Param3 = GeneratorUtility.Get(element, "Param3", this.Param3); }
public void Read(IConfigElement element) { this.Type = GeneratorUtility.Get(element, "Type", this.Type); this.Id = GeneratorUtility.Get(element, "Id", this.Id); this.Count = GeneratorUtility.Get(element, "Count", this.Count); this.Param1 = GeneratorUtility.Get(element, "Param1", this.Param1); }
public void Read(ConfigElement element) { this.NameLimit = GeneratorUtility.Get(element, "NameLimit", this.NameLimit); this.HitCorrection = GeneratorUtility.Get(element, "HitCorrection", this.HitCorrection); this.LevelRange = GeneratorUtility.Get(element, "LevelRange", this.LevelRange); this.InitItems = GeneratorUtility.Get(element, "InitItems", this.InitItems); this.OnInit(); }
public void Read(IConfigElement element) { this.Action = GeneratorUtility.Get(element, "Action", this.Action); this.Type = GeneratorUtility.Get(element, "Type", this.Type); this.Num1 = GeneratorUtility.Get(element, "Num1", this.Num1); this.Num2 = GeneratorUtility.Get(element, "Num2", this.Num2); this.Num3 = GeneratorUtility.Get(element, "Num3", this.Num3); this.Num4 = GeneratorUtility.Get(element, "Num4", this.Num4); }
public static void Main(string[] args) { var source = @"D:\projects\TerrificNet\TerrificNet.Sample"; Console.Write(GeneratorUtility.ExecuteStringAsync(source)); //CompileTask.ExecuteAsync(source, @"C:\Users\mschaelle\Source\Repos\TerrificNet\TerrificNet.Sample.Net.Models\bin\Debug\Models.dll"); //CompileTask.ExecuteFileAsync(source, @"C:\Users\mschaelle\Source\Repos\TerrificNet\TerrificNet.Sample.Net.Models\bin\Debug\Models.cs"); Console.ReadLine(); }
public void Read(IConfigElement element) { this.Type = GeneratorUtility.Get(element, "Type", this.Type); this.X = GeneratorUtility.Get(element, "X", this.X); this.Y = GeneratorUtility.Get(element, "Y", this.Y); this.Condition1 = GeneratorUtility.Get(element, "Condition1", this.Condition1); this.Condition2 = GeneratorUtility.Get(element, "Condition2", this.Condition2); this.Num = GeneratorUtility.Get(element, "Num", this.Num); this.Kind = GeneratorUtility.Get(element, "Kind", this.Kind); }
public void Read(ConfigElement element) { this.Id = GeneratorUtility.Get(element, "Id", this.Id); this.MountId = GeneratorUtility.Get(element, "MountId", this.MountId); this.Sex = GeneratorUtility.Get(element, "Sex", this.Sex); this.Height = GeneratorUtility.Get(element, "Height", this.Height); this.Weapons = GeneratorUtility.Get(element, "Weapons", this.Weapons); this.Property = GeneratorUtility.Get(element, "Property", this.Property); this.Bags = GeneratorUtility.Get(element, "Bags", this.Bags); this.OnInit(); }
public void Read(IConfigElement element) { this.Id = GeneratorUtility.Get(element, "Id", this.Id); this.ShowProgress = GeneratorUtility.Get(element, "ShowProgress", this.ShowProgress); this.AccessId = GeneratorUtility.Get(element, "AccessId", this.AccessId); this.TaskInfo = GeneratorUtility.Get(element, "TaskInfo", this.TaskInfo); this.BindEventIds = GeneratorUtility.Get(element, "BindEventIds", this.BindEventIds); this.NextTask = GeneratorUtility.Get(element, "NextTask", this.NextTask); this.Rewards = GeneratorUtility.Get(element, "Rewards", this.Rewards); this.OnInit(); }
public void Read(IConfigElement element) { this.Id = GeneratorUtility.Get(element, "Id", this.Id); this.Kind = GeneratorUtility.Get(element, "Kind", this.Kind); this.LevelRange = GeneratorUtility.Get(element, "LevelRange", this.LevelRange); this.Quality = GeneratorUtility.Get(element, "Quality", this.Quality); this.Level = GeneratorUtility.Get(element, "Level", this.Level); this.ShowProgress = GeneratorUtility.Get(element, "ShowProgress", this.ShowProgress); this.AccessId = GeneratorUtility.Get(element, "AccessId", this.AccessId); this.TaskInfo = GeneratorUtility.Get(element, "TaskInfo", this.TaskInfo); this.Rewards = GeneratorUtility.Get(element, "Rewards", this.Rewards); this.ShowRewards = GeneratorUtility.Get(element, "ShowRewards", this.ShowRewards); this.OnInit(); }
public void Read(IConfigElement element) { this.Id = GeneratorUtility.Get(element, "Id", this.Id); this.Group = GeneratorUtility.Get(element, "Group", this.Group); this.Type = GeneratorUtility.Get(element, "Type", this.Type); this.Kind = GeneratorUtility.Get(element, "Kind", this.Kind); this.LastTime = GeneratorUtility.Get(element, "LastTime", this.LastTime); this.StackLimit = GeneratorUtility.Get(element, "StackLimit", this.StackLimit); this.Cover = GeneratorUtility.Get(element, "Cover", this.Cover); this.Trigger = GeneratorUtility.Get(element, "Trigger", this.Trigger); this.Probility = GeneratorUtility.Get(element, "Probility", this.Probility); this.SearchTarget = GeneratorUtility.Get(element, "SearchTarget", this.SearchTarget); this.Actions = GeneratorUtility.Get(element, "Actions", this.Actions); this.EndCondition = GeneratorUtility.Get(element, "EndCondition", this.EndCondition); this.IsOwnText = GeneratorUtility.Get(element, "IsOwnText", this.IsOwnText); this.EffectIds = GeneratorUtility.Get(element, "EffectIds", this.EffectIds); this.Powers = GeneratorUtility.Get(element, "Powers", this.Powers); this.Icon = GeneratorUtility.Get(element, "Icon", this.Icon); this.OnInit(); }
static void Main(string[] args) { //string path = @"C:\Users\k.priftis.PROSVASISHQ\Desktop\data\ApplicationModule.vb"; IFileReader reader = new SourceFileReader(PathProvider.GetPath()); IFileWriter writer = new SourceFileWriter(PathProvider.GetPath()); int x = GeneratorUtility.GetClassDeclarationIndex(); int y = GeneratorUtility.GetInterfaceDeclarationIndex(); int f = GeneratorUtility.GetInterfaceIndexToImplement(); List <IGenerator> generators = new List <IGenerator>() { new InterFaceGenerator(new ImportGenerator("Prosvasis.Common", reader, writer), new companyLoggableImplementation(reader, writer), new InterfaceDeclarationGenerator("ICompanyLoggable", reader, writer)), //new ProsvasisCommonImportGenerator(reader,writer), new ImportGenerator("Chrysikos", reader, writer), new EntityLogGenerator("Kwstas", reader, writer), }; new CompanyLoggableDeclaration("dkfjvnkjf", reader, writer); ClassTranformer tranformer = new ClassTranformer(generators); tranformer.Transform(); }
public void Read(IConfigElement element) { this.Factor = GeneratorUtility.Get(element, "Factor", this.Factor); this.MaxCount = GeneratorUtility.Get(element, "MaxCount", this.MaxCount); }
public void Read(IConfigElement element) { this.X = GeneratorUtility.Get(element, "X", this.X); this.Y = GeneratorUtility.Get(element, "Y", this.Y); }
public void Read(IConfigElement element) { this.Max = GeneratorUtility.Get(element, "Max", this.Max); this.Min = GeneratorUtility.Get(element, "Min", this.Min); }
public static T Load <T>() where T : BattleParamTemplate, new () { return(GeneratorUtility.Load <T>("BattleParamTemplate")); }
public void Read(IConfigElement element) { this.BattleStartWaitTime = GeneratorUtility.Get(element, "BattleStartWaitTime", this.BattleStartWaitTime); this.BattleMapSizes = GeneratorUtility.Get(element, "BattleMapSizes", this.BattleMapSizes); this.DodgeEffectLimit = GeneratorUtility.Get(element, "DodgeEffectLimit", this.DodgeEffectLimit); this.CritEffectLimit = GeneratorUtility.Get(element, "CritEffectLimit", this.CritEffectLimit); this.CritDamEffectLimit = GeneratorUtility.Get(element, "CritDamEffectLimit", this.CritDamEffectLimit); this.DefenseRateEffectLimit = GeneratorUtility.Get(element, "DefenseRateEffectLimit", this.DefenseRateEffectLimit); this.DamageReduceLimit = GeneratorUtility.Get(element, "DamageReduceLimit", this.DamageReduceLimit); this.CoolDownLimits = GeneratorUtility.Get(element, "CoolDownLimits", this.CoolDownLimits); this.ElementEffectLimits = GeneratorUtility.Get(element, "ElementEffectLimits", this.ElementEffectLimits); this.ElementAttackBase = GeneratorUtility.Get(element, "ElementAttackBase", this.ElementAttackBase); this.ElementDefenseBase = GeneratorUtility.Get(element, "ElementDefenseBase", this.ElementDefenseBase); this.ElementEffectBase = GeneratorUtility.Get(element, "ElementEffectBase", this.ElementEffectBase); this.DamageCorrectionRange = GeneratorUtility.Get(element, "DamageCorrectionRange", this.DamageCorrectionRange); this.DodgeCorrection = GeneratorUtility.Get(element, "DodgeCorrection", this.DodgeCorrection); this.CritCorrection = GeneratorUtility.Get(element, "CritCorrection", this.CritCorrection); this.BlckEffect = GeneratorUtility.Get(element, "BlckEffect", this.BlckEffect); this.BlockEffectLimit = GeneratorUtility.Get(element, "BlockEffectLimit", this.BlockEffectLimit); this.HeroMaxEnergyValue = GeneratorUtility.Get(element, "HeroMaxEnergyValue", this.HeroMaxEnergyValue); this.HeroMaxEnergyNum = GeneratorUtility.Get(element, "HeroMaxEnergyNum", this.HeroMaxEnergyNum); this.LordMaxEnergy = GeneratorUtility.Get(element, "LordMaxEnergy", this.LordMaxEnergy); this.MaxAttackSpeed = GeneratorUtility.Get(element, "MaxAttackSpeed", this.MaxAttackSpeed); this.HeroSkillCount = GeneratorUtility.Get(element, "HeroSkillCount", this.HeroSkillCount); this.MonsterWalkModeTime = GeneratorUtility.Get(element, "MonsterWalkModeTime", this.MonsterWalkModeTime); this.MonsterDropModeTime = GeneratorUtility.Get(element, "MonsterDropModeTime", this.MonsterDropModeTime); this.BattleMapGrid = GeneratorUtility.Get(element, "BattleMapGrid", this.BattleMapGrid); this.GridSize = GeneratorUtility.Get(element, "GridSize", this.GridSize); this.LordGrid = GeneratorUtility.Get(element, "LordGrid", this.LordGrid); this.SkillMoveTime = GeneratorUtility.Get(element, "SkillMoveTime", this.SkillMoveTime); this.SkillFlashTime = GeneratorUtility.Get(element, "SkillFlashTime", this.SkillFlashTime); this.MonsterDropRange = GeneratorUtility.Get(element, "MonsterDropRange", this.MonsterDropRange); this.OffsetDistance = GeneratorUtility.Get(element, "OffsetDistance", this.OffsetDistance); this.DropItemStayTime = GeneratorUtility.Get(element, "DropItemStayTime", this.DropItemStayTime); this.BannerStayMaxtime = GeneratorUtility.Get(element, "BannerStayMaxtime", this.BannerStayMaxtime); this.LordMoveSpeed = GeneratorUtility.Get(element, "LordMoveSpeed", this.LordMoveSpeed); this.DropItemRange = GeneratorUtility.Get(element, "DropItemRange", this.DropItemRange); this.MaxRoom = GeneratorUtility.Get(element, "MaxRoom", this.MaxRoom); this.LordHealthFactor = GeneratorUtility.Get(element, "LordHealthFactor", this.LordHealthFactor); this.RuneRefreshPrices = GeneratorUtility.Get(element, "RuneRefreshPrices", this.RuneRefreshPrices); this.HeroMaxRuneCount = GeneratorUtility.Get(element, "HeroMaxRuneCount", this.HeroMaxRuneCount); this.MaxSoulStampDemand = GeneratorUtility.Get(element, "MaxSoulStampDemand", this.MaxSoulStampDemand); this.SoulStampDemandFactor = GeneratorUtility.Get(element, "SoulStampDemandFactor", this.SoulStampDemandFactor); this.BagCapacity = GeneratorUtility.Get(element, "BagCapacity", this.BagCapacity); this.ResolveFactor = GeneratorUtility.Get(element, "ResolveFactor", this.ResolveFactor); this.SkillFadeOutTime = GeneratorUtility.Get(element, "SkillFadeOutTime", this.SkillFadeOutTime); this.PvpEnemyLordGrid = GeneratorUtility.Get(element, "PvpEnemyLordGrid", this.PvpEnemyLordGrid); this.PvpSceneBuffs = GeneratorUtility.Get(element, "PvpSceneBuffs", this.PvpSceneBuffs); this.PvpFirstHandWaiting = GeneratorUtility.Get(element, "PvpFirstHandWaiting", this.PvpFirstHandWaiting); this.PvpSecondHandWaiting = GeneratorUtility.Get(element, "PvpSecondHandWaiting", this.PvpSecondHandWaiting); this.PvpStartCountDown = GeneratorUtility.Get(element, "PvpStartCountDown", this.PvpStartCountDown); this.PvpOverCountDown = GeneratorUtility.Get(element, "PvpOverCountDown", this.PvpOverCountDown); this.SoulInterest = GeneratorUtility.Get(element, "SoulInterest", this.SoulInterest); this.BattleHeroDieValue = GeneratorUtility.Get(element, "BattleHeroDieValue", this.BattleHeroDieValue); this.BattleMaxTimeValue = GeneratorUtility.Get(element, "BattleMaxTimeValue", this.BattleMaxTimeValue); this.BattleJumpTime = GeneratorUtility.Get(element, "BattleJumpTime", this.BattleJumpTime); this.ProfessionUpgradeCount = GeneratorUtility.Get(element, "ProfessionUpgradeCount", this.ProfessionUpgradeCount); this.HandCardLimit = GeneratorUtility.Get(element, "HandCardLimit", this.HandCardLimit); this.ForgetCosts = GeneratorUtility.Get(element, "ForgetCosts", this.ForgetCosts); this.PrayCosts = GeneratorUtility.Get(element, "PrayCosts", this.PrayCosts); this.CardLevelUpNeedNum = GeneratorUtility.Get(element, "CardLevelUpNeedNum", this.CardLevelUpNeedNum); this.CardUseToDrawUnique = GeneratorUtility.Get(element, "CardUseToDrawUnique", this.CardUseToDrawUnique); this.OriginalHandCardLimit = GeneratorUtility.Get(element, "OriginalHandCardLimit", this.OriginalHandCardLimit); this.UniqueSkillCardLimitCountOT = GeneratorUtility.Get(element, "UniqueSkillCardLimitCountOT", this.UniqueSkillCardLimitCountOT); this.DropCoefficientInEliteRoom = GeneratorUtility.Get(element, "DropCoefficientInEliteRoom", this.DropCoefficientInEliteRoom); this.DropCoefficientInBossRoom = GeneratorUtility.Get(element, "DropCoefficientInBossRoom", this.DropCoefficientInBossRoom); this.HeroRebornTime = GeneratorUtility.Get(element, "HeroRebornTime", this.HeroRebornTime); this.HeroRebornHpCostFactor = GeneratorUtility.Get(element, "HeroRebornHpCostFactor", this.HeroRebornHpCostFactor); this.OriginalHandCardNum = GeneratorUtility.Get(element, "OriginalHandCardNum", this.OriginalHandCardNum); this.ChallengeFirstHandChance = GeneratorUtility.Get(element, "ChallengeFirstHandChance", this.ChallengeFirstHandChance); this.PvpChallengeTime = GeneratorUtility.Get(element, "PvpChallengeTime", this.PvpChallengeTime); this.FirstHandEnergyCardCount = GeneratorUtility.Get(element, "FirstHandEnergyCardCount", this.FirstHandEnergyCardCount); this.SecondtHandEnergyCardCount = GeneratorUtility.Get(element, "SecondtHandEnergyCardCount", this.SecondtHandEnergyCardCount); this.PvpFirstHandTime = GeneratorUtility.Get(element, "PvpFirstHandTime", this.PvpFirstHandTime); this.PvpSecondHandTime = GeneratorUtility.Get(element, "PvpSecondHandTime", this.PvpSecondHandTime); this.LordCardSpacing = GeneratorUtility.Get(element, "LordCardSpacing", this.LordCardSpacing); this.EnergyCardCheckUp = GeneratorUtility.Get(element, "EnergyCardCheckUp", this.EnergyCardCheckUp); this.PvpOriginalHandCardNum = GeneratorUtility.Get(element, "PvpOriginalHandCardNum", this.PvpOriginalHandCardNum); this.BattleSpeedUpRates = GeneratorUtility.Get(element, "BattleSpeedUpRates", this.BattleSpeedUpRates); this.HangUpIntervalTime = GeneratorUtility.Get(element, "HangUpIntervalTime", this.HangUpIntervalTime); this.NextWaveAppearInterval = GeneratorUtility.Get(element, "NextWaveAppearInterval", this.NextWaveAppearInterval); this.Dice = GeneratorUtility.Get(element, "Dice", this.Dice); this.RemainsCompoundOriginalCount = GeneratorUtility.Get(element, "RemainsCompoundOriginalCount", this.RemainsCompoundOriginalCount); this.MazeValueFactor = GeneratorUtility.Get(element, "MazeValueFactor", this.MazeValueFactor); this.BattleDashTime = GeneratorUtility.Get(element, "BattleDashTime", this.BattleDashTime); this.BattleDashBackTime = GeneratorUtility.Get(element, "BattleDashBackTime", this.BattleDashBackTime); this.BattleRoundSafeTime = GeneratorUtility.Get(element, "BattleRoundSafeTime", this.BattleRoundSafeTime); this.BattleWaitNextTime = GeneratorUtility.Get(element, "BattleWaitNextTime", this.BattleWaitNextTime); this.BattleRoundTime = GeneratorUtility.Get(element, "BattleRoundTime", this.BattleRoundTime); this.BattleHitFlyForce = GeneratorUtility.Get(element, "BattleHitFlyForce", this.BattleHitFlyForce); this.BattleHitDownForce = GeneratorUtility.Get(element, "BattleHitDownForce", this.BattleHitDownForce); this.BattleHitFlyMaxHeight = GeneratorUtility.Get(element, "BattleHitFlyMaxHeight", this.BattleHitFlyMaxHeight); this.BattleGravity = GeneratorUtility.Get(element, "BattleGravity", this.BattleGravity); this.BattleFlyUpGravity = GeneratorUtility.Get(element, "BattleFlyUpGravity", this.BattleFlyUpGravity); this.BattleNearTopGravity = GeneratorUtility.Get(element, "BattleNearTopGravity", this.BattleNearTopGravity); this.BattleNearTopSpeed = GeneratorUtility.Get(element, "BattleNearTopSpeed", this.BattleNearTopSpeed); this.OnInit(); }
public override bool Execute() { GeneratorUtility.ExecuteAsync(SourcePath, OutputAssembly, RootNamespace); return(true); }
public void Read(IConfigElement element) { this.Id = GeneratorUtility.Get(element, "Id", this.Id); this.Param1 = GeneratorUtility.Get(element, "Param1", this.Param1); }
public void Read(ConfigElement element) { this.Id = GeneratorUtility.Get(element, "Id", this.Id); this.OnInit(); }
public static T[] Load <T>() where T : BuffsTemplate, new () { return(GeneratorUtility.Load <T>("BuffsTemplate", "Buff")); }
public static T[] Load <T>() where T : DailyTasksTemplate, new () { return(GeneratorUtility.Load <T>("DailyTasksTemplate", "DailyTask")); }
public override IEnumerator BeginGeneration() { var surface = surfaceInputSlot.GetAsset <QuadrilateralSurface>(); var topology = topologyInputSlot.GetAsset <Topology>(); var facePositions = facePositionsInputSlot.GetAsset <IFaceAttribute <Vector3> >(); int groupCount = 0; var faceGroupFaceIndices = new List <int> [axisDivisions.x * axisDivisions.y]; var waitHandle = executive.GenerateConcurrently(() => { var axis0Vector = surface.axis0.vector; var axis1Vector = surface.axis1.vector; var surfaceNormal = Vector3.Cross(axis0Vector, axis1Vector).normalized; var axis0Normal = Vector3.Cross(axis0Vector, surfaceNormal).normalized; var axis1Normal = Vector3.Cross(axis1Vector, surfaceNormal).normalized; var axis0DividedVector = axis0Vector / axisDivisions.x; var axis1DividedVector = axis1Vector / axisDivisions.y; var axis0Dot = Vector3.Dot(axis1Normal, axis0DividedVector); var axis1Dot = Vector3.Dot(axis0Normal, axis1DividedVector); var origin = surface.origin; for (int i = 0; i < faceGroupFaceIndices.Length; ++i) { faceGroupFaceIndices[i] = new List <int>(); } foreach (var face in topology.internalFaces) { var facePosition = facePositions[face]; var axis0Offset = Vector3.Dot(axis1Normal, facePosition - origin) / axis0Dot; var axis1Offset = Vector3.Dot(axis0Normal, facePosition - origin) / axis1Dot; var axis0Index = Mathf.Clamp(Mathf.FloorToInt(axis0Offset), 0, axisDivisions.x - 1); var axis1Index = Mathf.Clamp(Mathf.FloorToInt(axis1Offset), 0, axisDivisions.y - 1); faceGroupFaceIndices[axis0Index + axis1Index * axisDivisions.x].Add(face.index); } foreach (var group in faceGroupFaceIndices) { if (group.Count > 0) { ++groupCount; } } }); while (waitHandle.WaitOne(10) == false) { yield return(null); } faceGroupOutputSlots = GeneratorUtility.ResizeArray(faceGroupOutputSlots, groupCount, (int index) => { return(null); }, (OutputSlot output, int index) => { output.DisconnectAll(); return(output); }); var faceGroupCollection = FaceGroupCollection.Create(groupCount); var faceGroupIndices = new int[topology.internalFaces.Count]; var groupIndex = 0; for (int axis1Index = 0; axis1Index < axisDivisions.y; ++axis1Index) { for (int axis0Index = 0; axis0Index < axisDivisions.x; ++axis0Index) { var group = faceGroupFaceIndices[axis0Index + axis1Index * axisDivisions.x]; if (group.Count > 0) { var faceGroupName = string.Format("Face Group [{0}, {1}]", axis0Index, axis1Index); var faceGroup = ArrayFaceGroup.Create(topology, group.ToArray()).SetName(faceGroupName); if (faceGroupOutputSlots[groupIndex] == null) { faceGroupOutputSlots[groupIndex] = OutputSlot.CreateGrouped <FaceGroup>(this, faceGroupName, faceGroupCollectionOutputSlot.name, true, OutputSlot.Availability.DuringGeneration); } else { faceGroupOutputSlots[groupIndex].name = faceGroupName; faceGroupOutputSlots[groupIndex].path = faceGroupCollectionOutputSlot.name; } faceGroupCollection.faceGroups[groupIndex] = faceGroupOutputSlots[groupIndex].SetAsset(faceGroup); foreach (var faceIndex in group) { faceGroupIndices[faceIndex] = groupIndex; } ++groupIndex; } } } faceGroupCollectionOutputSlot.SetAsset(faceGroupCollection); faceGroupIndicesOutputSlot.SetAsset(IntFaceAttribute.Create(faceGroupIndices)); yield break; }
public void Read(IConfigElement element) { this.Type = GeneratorUtility.Get(element, "Type", this.Type); this.Num = GeneratorUtility.Get(element, "Num", this.Num); this.Time = GeneratorUtility.Get(element, "Time", this.Time); }
public void Read(IConfigElement element) { this.DiceCount = GeneratorUtility.Get(element, "DiceCount", this.DiceCount); this.DiceValue = GeneratorUtility.Get(element, "DiceValue", this.DiceValue); }
public override IEnumerator BeginGeneration() { var topology = topologyInputSlot.GetAsset <Topology>(); var faceGroupIndices = new int[topology.internalFaces.Count].AsFaceAttribute(); List <int>[] faceGroupFaceIndices; var random = randomness.GetRandom(); var clampedRootCount = Mathf.Clamp(groupCount, 1, topology.internalFaces.Count); faceGroupFaceIndices = new List <int> [clampedRootCount]; var waitHandle = executive.GenerateConcurrently(() => { var rootFaces = new List <Topology.Face>(); var rootFaceEdges = new List <Topology.FaceEdge>(); for (int faceGroupIndex = 0; faceGroupIndex < clampedRootCount; ++faceGroupIndex) { faceGroupFaceIndices[faceGroupIndex] = new List <int>(); Topology.Face face; do { face = topology.internalFaces[random.Index(topology.internalFaces.Count)]; } while (rootFaces.Contains(face)); rootFaces.Add(face); foreach (var edge in face.edges) { if (edge.face.isInternal) { rootFaceEdges.Add(edge); } } faceGroupIndices[face] = faceGroupIndex; faceGroupFaceIndices[faceGroupIndex].Add(face.index); } TopologyVisitor.VisitFacesInRandomOrder( rootFaceEdges, (FaceEdgeVisitor visitor) => { var faceGroupIndex = faceGroupIndices[visitor.edge.nearFace]; faceGroupIndices[visitor.edge] = faceGroupIndex; faceGroupFaceIndices[faceGroupIndex].Add(visitor.edge.face.index); visitor.VisitInternalNeighborsExceptSource(); }, random); }); while (waitHandle.WaitOne(10) == false) { yield return(null); } faceGroupOutputSlots = GeneratorUtility.ResizeArray(faceGroupOutputSlots, faceGroupFaceIndices.Length, (int index) => { return(OutputSlot.CreateGrouped <FaceGroup>(this, string.Format("Face Group {0}", index), faceGroupCollectionOutputSlot.name, true, OutputSlot.Availability.DuringGeneration)); }, (OutputSlot output, int index) => { output.DisconnectAll(); output.path = faceGroupCollectionOutputSlot.name; return(output); }); var faceGroupCollection = FaceGroupCollection.Create(faceGroupFaceIndices.Length); for (int faceGroupIndex = 0; faceGroupIndex < faceGroupFaceIndices.Length; ++faceGroupIndex) { var faceGroup = ArrayFaceGroup.Create(topology, faceGroupFaceIndices[faceGroupIndex].ToArray()).SetName(faceGroupOutputSlots[faceGroupIndex].name); faceGroupCollection.faceGroups[faceGroupIndex] = faceGroupOutputSlots[faceGroupIndex].SetAsset(faceGroup); } faceGroupCollectionOutputSlot.SetAsset(faceGroupCollection); faceGroupIndicesOutputSlot.SetAsset(IntFaceAttribute.Create(faceGroupIndices.array)); yield break; }
public void Read(IConfigElement element) { this.AtkRate = GeneratorUtility.Get(element, "AtkRate", this.AtkRate); this.Factor = GeneratorUtility.Get(element, "Factor", this.Factor); }
public static T Load <T>() where T : GlobalTemplate, new() { return(GeneratorUtility.Load <T>("GlobalConfig")); }
public static T[] Load <T>() where T : MountTemplate, new() { return(GeneratorUtility.Load <T>("MountsConfig", "Mount")); }
public void Read(IConfigElement element) { this.TypeId = GeneratorUtility.Get(element, "TypeId", this.TypeId); this.Condition = GeneratorUtility.Get(element, "Condition", this.Condition); this.Num = GeneratorUtility.Get(element, "Num", this.Num); }