public GuidedMissileLauncher(FixedWeapon weapon) { myFixed = weapon; FuncBlock = CubeBlock as IMyFunctionalBlock; myLogger = new Logger("GuidedMissileLauncher", CubeBlock); MissileSpawnBox = CubeBlock.LocalAABB; // might need this again for shorter range missiles //MissileSpawnBox = MissileSpawnBox.Include(MissileSpawnBox.Min + CubeBlock.LocalMatrix.Forward * 10f); //MissileSpawnBox = MissileSpawnBox.Include(MissileSpawnBox.Max + CubeBlock.LocalMatrix.Forward * 10f); myLogger.debugLog("MissileSpawnBox: " + MissileSpawnBox, "GuidedMissileLauncher()"); myInventory = (CubeBlock as Interfaces.IMyInventoryOwner).GetInventory(0); myFixed.AllowedState = WeaponTargeting.State.GetOptions; Registrar.Add(weapon.FuncBlock, this); }
public GuidedMissileLauncher(WeaponTargeting weapon) { m_weaponTarget = weapon; FuncBlock = CubeBlock as IMyFunctionalBlock; myLogger = new Logger("GuidedMissileLauncher", CubeBlock); var defn = CubeBlock.GetCubeBlockDefinition(); Vector3[] points = new Vector3[3]; Vector3 forwardAdjust = Vector3.Forward * WeaponDescription.GetFor(CubeBlock).MissileSpawnForward; points[0] = CubeBlock.LocalAABB.Min + forwardAdjust; points[1] = CubeBlock.LocalAABB.Max + forwardAdjust; points[2] = CubeBlock.LocalAABB.Min + Vector3.Up * CubeBlock.GetCubeBlockDefinition().Size.Y * CubeBlock.CubeGrid.GridSize + forwardAdjust; MissileSpawnBox = BoundingBox.CreateFromPoints(points); if (m_weaponTarget.myTurret != null) { myLogger.debugLog("original box: " + MissileSpawnBox, "GuidedMissileLauncher()"); MissileSpawnBox.Inflate(CubeBlock.CubeGrid.GridSize * 2f); } myLogger.debugLog("MissileSpawnBox: " + MissileSpawnBox, "GuidedMissileLauncher()"); myInventory = (CubeBlock as Interfaces.IMyInventoryOwner).GetInventory(0); Registrar.Add(weapon.FuncBlock, this); m_weaponTarget.GuidedLauncher = true; }