Пример #1
0
    public WeaponInformation Clone()
    {
        WeaponInformation newWI = new WeaponInformation();

        newWI.weaponPrefab              = weaponPrefab;
        newWI.usagesForStart            = usagesForStart;
        newWI.canBeDroppedInRandomCrate = canBeDroppedInRandomCrate;
        return(newWI);
    }
Пример #2
0
        private static MyObjectBuilder_CubeBlock CreateReplacementWeaponBlock(WeaponInformation weaponInformation, MyObjectBuilder_CubeBlock block, MyCubeSize size, MyWeaponBlockDefinition myWeaponBlock)
        {
            int zOffset = Math.Abs(myWeaponBlock.Size.Z) - Math.Abs(weaponInformation.SizeZ);
            MyObjectBuilder_CubeBlock myNewWeapon = MyObjectBuilderSerializer.CreateNewObject(
                weaponInformation.TypeId, weaponInformation.SubtypeName) as MyObjectBuilder_CubeBlock;

            if (myNewWeapon == null)
            {
                Core.GeneralLog.WriteToLog("CreateReplacementWeaponBlock", $"Replacement came up null...");
                return(block);
            }
            ((MyObjectBuilder_UserControllableGun)myNewWeapon).EntityId         = block.EntityId;
            ((MyObjectBuilder_UserControllableGun)myNewWeapon).SubtypeName      = weaponInformation.SubtypeName;
            ((MyObjectBuilder_UserControllableGun)myNewWeapon).IntegrityPercent = block.IntegrityPercent;
            ((MyObjectBuilder_UserControllableGun)myNewWeapon).BuildPercent     = block.BuildPercent;
            ((MyObjectBuilder_UserControllableGun)myNewWeapon).Orientation      = block.Orientation;
            ((MyObjectBuilder_UserControllableGun)myNewWeapon).BlockOrientation = block.BlockOrientation;
            ((MyObjectBuilder_UserControllableGun)myNewWeapon).ColorMaskHSV     = block.ColorMaskHSV;
            ((MyObjectBuilder_UserControllableGun)myNewWeapon).Min = block.Min;
            if (zOffset != 0 && block.Min.Z < 0)
            {
                ((MyObjectBuilder_UserControllableGun)myNewWeapon).Min.Z += zOffset;
            }
            ((MyObjectBuilder_UserControllableGun)myNewWeapon).ShowInTerminal = true;
            ((MyObjectBuilder_UserControllableGun)myNewWeapon).ShowOnHUD      = false;
            ((MyObjectBuilder_UserControllableGun)myNewWeapon).Enabled        = ((MyObjectBuilder_UserControllableGun)block).Enabled;
            if (weaponInformation.TypeId == typeof(MyObjectBuilder_SmallMissileLauncherReload) || weaponInformation.TypeId == typeof(MyObjectBuilder_SmallMissileLauncher))
            {
                if (weaponInformation.TypeId == typeof(MyObjectBuilder_SmallMissileLauncherReload))
                {
                    ((MyObjectBuilder_SmallMissileLauncherReload)myNewWeapon).Inventory = new MyObjectBuilder_Inventory();
                }
                else
                {
                    ((MyObjectBuilder_SmallMissileLauncher)myNewWeapon).Inventory = new MyObjectBuilder_Inventory();
                }
                return(myNewWeapon);
            }
            ((MyObjectBuilder_UserControllableGun)myNewWeapon).ComponentContainer = new MyObjectBuilder_ComponentContainer()
            {
                Components = new List <MyObjectBuilder_ComponentContainer.ComponentData>()
                {
                    new MyObjectBuilder_ComponentContainer.ComponentData()
                    {
                        TypeId    = "MyInventoryBase",
                        Component = new MyObjectBuilder_Inventory()
                        {
                            InventoryFlags      = MyInventoryFlags.CanReceive,
                            RemoveEntityOnEmpty = false,
                        }
                    }
                }
            };
            return(myNewWeapon);
        }
Пример #3
0
        private static MyObjectBuilder_CubeBlock CreateReplacementTurretBase(WeaponInformation weaponInformation, MyObjectBuilder_CubeBlock block, MyCubeSize size, MyLargeTurretBaseDefinition myLargeTurret)
        {
            MyObjectBuilder_CubeBlock myNewWeapon = MyObjectBuilderSerializer.CreateNewObject(
                weaponInformation.TypeId, weaponInformation.SubtypeName) as MyObjectBuilder_CubeBlock;

            if (myNewWeapon == null)
            {
                Core.GeneralLog.WriteToLog("CreateReplacementTurretBase", $"Replacement came up null...");
                return(block);
            }
            ((MyObjectBuilder_TurretBase)myNewWeapon).EntityId         = block.EntityId;
            ((MyObjectBuilder_TurretBase)myNewWeapon).SubtypeName      = weaponInformation.SubtypeName;
            ((MyObjectBuilder_TurretBase)myNewWeapon).IntegrityPercent = block.IntegrityPercent;
            ((MyObjectBuilder_TurretBase)myNewWeapon).BuildPercent     = block.BuildPercent;
            ((MyObjectBuilder_TurretBase)myNewWeapon).Range            = 2500;
            ((MyObjectBuilder_TurretBase)myNewWeapon).Orientation      = block.Orientation;
            ((MyObjectBuilder_TurretBase)myNewWeapon).BlockOrientation = block.BlockOrientation;
            ((MyObjectBuilder_TurretBase)myNewWeapon).ColorMaskHSV     = block.ColorMaskHSV;
            ((MyObjectBuilder_TurretBase)myNewWeapon).Min                = block.Min;
            ((MyObjectBuilder_TurretBase)myNewWeapon).ShowInTerminal     = true;
            ((MyObjectBuilder_TurretBase)myNewWeapon).ShowOnHUD          = false;
            ((MyObjectBuilder_TurretBase)myNewWeapon).TargetCharacters   = ((MyObjectBuilder_TurretBase)block).TargetCharacters;
            ((MyObjectBuilder_TurretBase)myNewWeapon).TargetLargeGrids   = ((MyObjectBuilder_TurretBase)block).TargetLargeGrids;
            ((MyObjectBuilder_TurretBase)myNewWeapon).TargetMeteors      = ((MyObjectBuilder_TurretBase)block).TargetMeteors;
            ((MyObjectBuilder_TurretBase)myNewWeapon).TargetMissiles     = ((MyObjectBuilder_TurretBase)block).TargetMissiles;
            ((MyObjectBuilder_TurretBase)myNewWeapon).TargetNeutrals     = ((MyObjectBuilder_TurretBase)block).TargetNeutrals;
            ((MyObjectBuilder_TurretBase)myNewWeapon).TargetSmallGrids   = ((MyObjectBuilder_TurretBase)block).TargetSmallGrids;
            ((MyObjectBuilder_TurretBase)myNewWeapon).TargetStations     = ((MyObjectBuilder_TurretBase)block).TargetStations;
            ((MyObjectBuilder_TurretBase)myNewWeapon).EnableIdleRotation = ((MyObjectBuilder_TurretBase)block).EnableIdleRotation;
            ((MyObjectBuilder_TurretBase)myNewWeapon).Enabled            = ((MyObjectBuilder_TurretBase)block).Enabled;
            ((MyObjectBuilder_TurretBase)myNewWeapon).ComponentContainer = new MyObjectBuilder_ComponentContainer()
            {
                Components = new List <MyObjectBuilder_ComponentContainer.ComponentData>()
                {
                    new MyObjectBuilder_ComponentContainer.ComponentData()
                    {
                        TypeId    = "MyInventoryBase",
                        Component = new MyObjectBuilder_Inventory()
                        {
                            InventoryFlags      = MyInventoryFlags.CanReceive,
                            RemoveEntityOnEmpty = false,
                        }
                    }
                }
            };
            return(myNewWeapon);
        }
Пример #4
0
 private static void ProcessLargeTurretBase(MyDefinitionBase myDefinition)
 {
     try
     {
         if (WeaponIgnoreList.Contains(myDefinition.Id.SubtypeId) || !myDefinition.Public)
         {
             return;
         }
         //MyCubeBlockDefinition myCubeBlock = MyDefinitionManager.Static.GetCubeBlockDefinition(myDefinition.Id);
         MyLargeTurretBaseDefinition myLargeTurret       = (MyLargeTurretBaseDefinition)MyDefinitionManager.Static.GetCubeBlockDefinition(myDefinition.Id);
         List <BlockSideEnum>        mountPoints         = myLargeTurret.MountPoints.Select(myMountPoint => myMountPoint.GetObjectBuilder(myMountPoint.Normal).Side).ToList();
         WeaponInformation           myWeaponInformation = new WeaponInformation(
             mountPoints,
             myLargeTurret.CubeSize,
             myLargeTurret.Size.X,
             myLargeTurret.Size.Y,
             myLargeTurret.Size.Z,
             myDefinition.Id.SubtypeId,
             myDefinition.Id.SubtypeName,
             myDefinition.Id.TypeId,
             myDefinition.Context?.ModName ?? "Vanilla",
             myDefinition.Id.ToString(),
             null, myLargeTurret
             );
         if (myLargeTurret.CubeSize == MyCubeSize.Large)
         {
             LargeGridWeaponTurretBases.Add(myWeaponInformation);
         }
         else
         {
             SmallGridWeaponTurretBases.Add(myWeaponInformation);
         }
         //Core.GeneralLog.WriteToLog("ProcessLargeTurretBase", myWeaponInformation.ToString());
     }
     catch (Exception e)
     {
         Core.GeneralLog.WriteToLog("ProcessLargeTurretBase", $"Exception! {e}");
     }
 }
Пример #5
0
 public TestWeapon(WeaponInformation information)
     : base(information.Id)
 {
 }
Пример #6
0
 //get the weapon prefab when the player collides with the pickup
 private void OnTriggerEnter2D(Collider2D collision)
 {
     weaponInfo = collision.GetComponent <WeaponInformation>();
 }