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);
 }
Beispiel #2
0
 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);
 }
Beispiel #3
0
 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);
 }
Beispiel #6
0
        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();
 }
Beispiel #10
0
 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();
 }
Beispiel #12
0
        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();
        }
Beispiel #13
0
 public void Read(IConfigElement element)
 {
     this.Factor   = GeneratorUtility.Get(element, "Factor", this.Factor);
     this.MaxCount = GeneratorUtility.Get(element, "MaxCount", this.MaxCount);
 }
Beispiel #14
0
 public void Read(IConfigElement element)
 {
     this.X = GeneratorUtility.Get(element, "X", this.X);
     this.Y = GeneratorUtility.Get(element, "Y", this.Y);
 }
Beispiel #15
0
 public void Read(IConfigElement element)
 {
     this.Max = GeneratorUtility.Get(element, "Max", this.Max);
     this.Min = GeneratorUtility.Get(element, "Min", this.Min);
 }
Beispiel #16
0
 public static T Load <T>()
     where T : BattleParamTemplate, new ()
 {
     return(GeneratorUtility.Load <T>("BattleParamTemplate"));
 }
Beispiel #17
0
 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();
 }
Beispiel #18
0
 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"));
 }
Beispiel #22
0
 public static T[] Load <T>()
     where T : DailyTasksTemplate, new ()
 {
     return(GeneratorUtility.Load <T>("DailyTasksTemplate", "DailyTask"));
 }
Beispiel #23
0
        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);
 }
Beispiel #25
0
 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;
        }
Beispiel #27
0
 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);
 }