コード例 #1
0
        protected override void Init(MyObjectBuilder_DefinitionBase builder)
        {
            base.Init(builder);
            MyObjectBuilder_ToolItemDefinition definition = builder as MyObjectBuilder_ToolItemDefinition;

            if ((definition.VoxelMinings != null) && (definition.VoxelMinings.Length != 0))
            {
                this.VoxelMinings = new Sandbox.Definitions.MyVoxelMiningDefinition[definition.VoxelMinings.Length];
                for (int i = 0; i < definition.VoxelMinings.Length; i++)
                {
                    this.VoxelMinings[i].MinedOre          = definition.VoxelMinings[i].MinedOre;
                    this.VoxelMinings[i].HitCount          = definition.VoxelMinings[i].HitCount;
                    this.VoxelMinings[i].PhysicalItemId    = definition.VoxelMinings[i].PhysicalItemId;
                    this.VoxelMinings[i].RemovedRadius     = definition.VoxelMinings[i].RemovedRadius;
                    this.VoxelMinings[i].OnlyApplyMaterial = definition.VoxelMinings[i].OnlyApplyMaterial;
                }
            }
            this.CopyActions(definition.PrimaryActions, this.PrimaryActions);
            this.CopyActions(definition.SecondaryActions, this.SecondaryActions);
            this.HitDistance = definition.HitDistance;
        }
コード例 #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));
            }
        }