コード例 #1
0
        void CopyActions(MyObjectBuilder_ToolItemDefinition.MyToolActionDefinition[] sourceActions, List <MyToolActionDefinition> targetList)
        {
            if (sourceActions != null && sourceActions.Length > 0)
            {
                for (int i = 0; i < sourceActions.Length; ++i)
                {
                    MyToolActionDefinition actionDef = new MyToolActionDefinition();

                    actionDef.Name            = MyStringId.GetOrCompute(sourceActions[i].Name);
                    actionDef.StartTime       = sourceActions[i].StartTime;
                    actionDef.EndTime         = sourceActions[i].EndTime;
                    actionDef.Efficiency      = sourceActions[i].Efficiency;
                    actionDef.StatsEfficiency = sourceActions[i].StatsEfficiency;

                    actionDef.SwingSound        = sourceActions[i].SwingSound;
                    actionDef.SwingSoundStart   = sourceActions[i].SwingSoundStart;
                    actionDef.HitStart          = sourceActions[i].HitStart;
                    actionDef.HitDuration       = sourceActions[i].HitDuration;
                    actionDef.HitSound          = sourceActions[i].HitSound;
                    actionDef.CustomShapeRadius = sourceActions[i].CustomShapeRadius;

                    actionDef.Crosshair = sourceActions[i].Crosshair;

                    if (sourceActions[i].HitConditions != null)
                    {
                        actionDef.HitConditions = new MyToolHitCondition[sourceActions[i].HitConditions.Length];
                        for (int j = 0; j < actionDef.HitConditions.Length; j++)
                        {
                            actionDef.HitConditions[j].EntityType         = sourceActions[i].HitConditions[j].EntityType;
                            actionDef.HitConditions[j].Animation          = sourceActions[i].HitConditions[j].Animation;
                            actionDef.HitConditions[j].AnimationTimeScale = sourceActions[i].HitConditions[j].AnimationTimeScale;
                            actionDef.HitConditions[j].StatsAction        = sourceActions[i].HitConditions[j].StatsAction;
                            actionDef.HitConditions[j].StatsActionIfHit   = sourceActions[i].HitConditions[j].StatsActionIfHit;
                            actionDef.HitConditions[j].StatsModifier      = sourceActions[i].HitConditions[j].StatsModifier;
                            actionDef.HitConditions[j].StatsModifierIfHit = sourceActions[i].HitConditions[j].StatsModifierIfHit;
                            actionDef.HitConditions[j].Component          = sourceActions[i].HitConditions[j].Component;
                        }
                    }

                    targetList.Add(actionDef);
                }

                // targetList.Sort((x, y) => y.Efficiency.CompareTo(x.Efficiency));
            }
        }
コード例 #2
0
        void CopyActions(MyObjectBuilder_ToolItemDefinition.MyToolActionDefinition[] sourceActions, List<MyToolActionDefinition> targetList)
        {
            if (sourceActions != null && sourceActions.Length > 0)
            {
                for (int i = 0; i < sourceActions.Length; ++i)
                {
                    MyToolActionDefinition actionDef = new MyToolActionDefinition();

                    actionDef.Name = MyStringId.GetOrCompute(sourceActions[i].Name);
                    actionDef.StartTime = sourceActions[i].StartTime;
                    actionDef.EndTime = sourceActions[i].EndTime;
                    actionDef.Efficiency = sourceActions[i].Efficiency;
                    actionDef.StatsEfficiency = sourceActions[i].StatsEfficiency;

                    actionDef.SwingSound = sourceActions[i].SwingSound;
                    actionDef.SwingSoundStart = sourceActions[i].SwingSoundStart;
                    actionDef.HitStart = sourceActions[i].HitStart;
                    actionDef.HitDuration = sourceActions[i].HitDuration;
                    actionDef.HitSound = sourceActions[i].HitSound;
                    actionDef.CustomShapeRadius = sourceActions[i].CustomShapeRadius;

                    actionDef.Crosshair = sourceActions[i].Crosshair;

                    if (sourceActions[i].HitConditions != null)
                    {
                        actionDef.HitConditions = new MyToolHitCondition[sourceActions[i].HitConditions.Length];
                        for (int j = 0; j < actionDef.HitConditions.Length; j++)
                        {
                            actionDef.HitConditions[j].EntityType = sourceActions[i].HitConditions[j].EntityType;
                            actionDef.HitConditions[j].Animation = sourceActions[i].HitConditions[j].Animation;
                            actionDef.HitConditions[j].AnimationTimeScale = sourceActions[i].HitConditions[j].AnimationTimeScale;
                            actionDef.HitConditions[j].StatsAction = sourceActions[i].HitConditions[j].StatsAction;
                            actionDef.HitConditions[j].StatsActionIfHit = sourceActions[i].HitConditions[j].StatsActionIfHit;
                            actionDef.HitConditions[j].StatsModifier = sourceActions[i].HitConditions[j].StatsModifier;
                            actionDef.HitConditions[j].StatsModifierIfHit = sourceActions[i].HitConditions[j].StatsModifierIfHit;
                            actionDef.HitConditions[j].Component = sourceActions[i].HitConditions[j].Component;
                        }
                    }

                    targetList.Add(actionDef);
                }

               // targetList.Sort((x, y) => y.Efficiency.CompareTo(x.Efficiency));
            }
        }