public WeaponInformation Clone() { WeaponInformation newWI = new WeaponInformation(); newWI.weaponPrefab = weaponPrefab; newWI.usagesForStart = usagesForStart; newWI.canBeDroppedInRandomCrate = canBeDroppedInRandomCrate; return(newWI); }
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); }
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); }
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}"); } }
public TestWeapon(WeaponInformation information) : base(information.Id) { }
//get the weapon prefab when the player collides with the pickup private void OnTriggerEnter2D(Collider2D collision) { weaponInfo = collision.GetComponent <WeaponInformation>(); }