public bool IsPointIn(Vec3 point)
        {
            MatrixFrame globalFrame = this.GameEntity.GetGlobalFrame();
            Vec3        scaleVector = globalFrame.rotation.GetScaleVector();

            globalFrame.rotation.ApplyScaleLocal(new Vec3(1f / scaleVector.x, 1f / scaleVector.y, 1f / scaleVector.z));
            point = globalFrame.TransformToLocal(point);
            return((double)MathF.Abs(point.x) <= (double)scaleVector.x / 2.0 && (double)MathF.Abs(point.y) <= (double)scaleVector.y / 2.0 && (double)MathF.Abs(point.z) <= (double)scaleVector.z / 2.0);
        }
        protected internal override void OnInit()
        {
            this.ballistaBody   = this.GameEntity.CollectObjectsWithTag <SynchedMissionObject>(this.BodyTag)[0];
            this.ballistaNavel  = this.GameEntity.CollectObjectsWithTag <SynchedMissionObject>(this.NavelTag)[0];
            this.RotationObject = (SynchedMissionObject)this;
            base.OnInit();
            this.UsesMouseForAiming = true;
            this.GetSoundEventIndices();
            this._ballistaNavelInitialFrame = this.ballistaNavel.GameEntity.GetFrame();
            MatrixFrame globalFrame1 = this.ballistaBody.GameEntity.GetGlobalFrame();

            this._ballistaBodyInitialLocalFrame = this.ballistaBody.GameEntity.GetFrame();
            MatrixFrame globalFrame2 = this.PilotStandingPoint.GameEntity.GetGlobalFrame();

            this._pilotInitialLocalFrame   = this.PilotStandingPoint.GameEntity.GetFrame();
            this._pilotInitialLocalIKFrame = globalFrame2.TransformToLocal(globalFrame1);
            this._missileInitialLocalFrame = this.Projectile.GameEntity.GetFrame();
            this.PilotStandingPoint.AddComponent((UsableMissionObjectComponent) new ClearHandInverseKinematicsOnStopUsageComponent());
            this.EnemyRangeToStopUsing    = 5f;
            this.AttackClickWillReload    = true;
            this.WeaponNeedsClickToReload = true;
            this.SetScriptComponentToTick(this.GetTickRequirement());
        }
		private static void GetItemPoseAndCameraForCraftedItem(ItemObject item, Scene scene, ref Camera camera, ref MatrixFrame itemFrame, ref MatrixFrame itemFrame1, ref MatrixFrame itemFrame2)
		{
			if (camera == null)
			{
				camera = Camera.CreateCamera();
			}
			itemFrame = MatrixFrame.Identity;
			WeaponClass weaponClass = item.WeaponDesign.Template.WeaponUsageDatas.First<WeaponUsageData>().WeaponClass;
			Vec3 u = itemFrame.rotation.u;
			Vec3 v = itemFrame.origin - u * (item.WeaponDesign.CraftedWeaponLength * 0.5f);
			Vec3 v2 = v + u * item.WeaponDesign.CraftedWeaponLength;
			Vec3 v3 = v - u * item.WeaponDesign.BottomPivotOffset;
			int num = 0;
			Vec3 v4 = default(Vec3);
			foreach (float num2 in item.WeaponDesign.TopPivotOffsets)
			{
				if (num2 > Math.Abs(1E-05f))
				{
					Vec3 vec = v + u * num2;
					if (num == 1)
					{
						v4 = vec;
					}
					num++;
				}
			}
			if (weaponClass == WeaponClass.OneHandedSword || weaponClass == WeaponClass.TwoHandedSword)
			{
				GameEntity gameEntity = scene.FindEntityWithTag("sword_camera");
				Vec3 vec2 = default(Vec3);
				gameEntity.GetCameraParamsFromCameraScript(camera, ref vec2);
				gameEntity.SetVisibilityExcludeParents(false);
				Vec3 v5 = itemFrame.TransformToLocal(v3);
				MatrixFrame identity = MatrixFrame.Identity;
				identity.origin = -v5;
				GameEntity gameEntity2 = scene.FindEntityWithTag("sword");
				gameEntity2.SetVisibilityExcludeParents(false);
				itemFrame = gameEntity2.GetGlobalFrame();
				itemFrame = itemFrame.TransformToParent(identity);
			}
			if (weaponClass == WeaponClass.OneHandedAxe || weaponClass == WeaponClass.TwoHandedAxe)
			{
				GameEntity gameEntity3 = scene.FindEntityWithTag("axe_camera");
				Vec3 vec3 = default(Vec3);
				gameEntity3.GetCameraParamsFromCameraScript(camera, ref vec3);
				gameEntity3.SetVisibilityExcludeParents(false);
				Vec3 v6 = itemFrame.TransformToLocal(v4);
				MatrixFrame identity2 = MatrixFrame.Identity;
				identity2.origin = -v6;
				GameEntity gameEntity4 = scene.FindEntityWithTag("axe");
				gameEntity4.SetVisibilityExcludeParents(false);
				itemFrame = gameEntity4.GetGlobalFrame();
				itemFrame = itemFrame.TransformToParent(identity2);
			}
			if (weaponClass == WeaponClass.Dagger)
			{
				GameEntity gameEntity5 = scene.FindEntityWithTag("sword_camera");
				Vec3 vec4 = default(Vec3);
				gameEntity5.GetCameraParamsFromCameraScript(camera, ref vec4);
				gameEntity5.SetVisibilityExcludeParents(false);
				Vec3 v7 = itemFrame.TransformToLocal(v3);
				MatrixFrame identity3 = MatrixFrame.Identity;
				identity3.origin = -v7;
				GameEntity gameEntity6 = scene.FindEntityWithTag("sword");
				gameEntity6.SetVisibilityExcludeParents(false);
				itemFrame = gameEntity6.GetGlobalFrame();
				itemFrame = itemFrame.TransformToParent(identity3);
			}
			if (weaponClass == WeaponClass.ThrowingAxe)
			{
				GameEntity gameEntity7 = scene.FindEntityWithTag("throwing_axe_camera");
				Vec3 vec5 = default(Vec3);
				gameEntity7.GetCameraParamsFromCameraScript(camera, ref vec5);
				gameEntity7.SetVisibilityExcludeParents(false);
				Vec3 v8 = v + u * item.PrimaryWeapon.CenterOfMass;
				Vec3 v9 = itemFrame.TransformToLocal(v8);
				MatrixFrame identity4 = MatrixFrame.Identity;
				identity4.origin = -v9 * 2.5f;
				GameEntity gameEntity8 = scene.FindEntityWithTag("throwing_axe");
				gameEntity8.SetVisibilityExcludeParents(false);
				itemFrame = gameEntity8.GetGlobalFrame();
				itemFrame = itemFrame.TransformToParent(identity4);
				gameEntity8 = scene.FindEntityWithTag("throwing_axe_1");
				gameEntity8.SetVisibilityExcludeParents(false);
				itemFrame1 = gameEntity8.GetGlobalFrame();
				itemFrame1 = itemFrame1.TransformToParent(identity4);
				gameEntity8 = scene.FindEntityWithTag("throwing_axe_2");
				gameEntity8.SetVisibilityExcludeParents(false);
				itemFrame2 = gameEntity8.GetGlobalFrame();
				itemFrame2 = itemFrame2.TransformToParent(identity4);
			}
			if (weaponClass == WeaponClass.Javelin)
			{
				GameEntity gameEntity9 = scene.FindEntityWithTag("javelin_camera");
				Vec3 vec6 = default(Vec3);
				gameEntity9.GetCameraParamsFromCameraScript(camera, ref vec6);
				gameEntity9.SetVisibilityExcludeParents(false);
				Vec3 v10 = itemFrame.TransformToLocal(v4);
				MatrixFrame identity5 = MatrixFrame.Identity;
				identity5.origin = -v10 * 2.2f;
				GameEntity gameEntity10 = scene.FindEntityWithTag("javelin");
				gameEntity10.SetVisibilityExcludeParents(false);
				itemFrame = gameEntity10.GetGlobalFrame();
				itemFrame = itemFrame.TransformToParent(identity5);
				gameEntity10 = scene.FindEntityWithTag("javelin_1");
				gameEntity10.SetVisibilityExcludeParents(false);
				itemFrame1 = gameEntity10.GetGlobalFrame();
				itemFrame1 = itemFrame1.TransformToParent(identity5);
				gameEntity10 = scene.FindEntityWithTag("javelin_2");
				gameEntity10.SetVisibilityExcludeParents(false);
				itemFrame2 = gameEntity10.GetGlobalFrame();
				itemFrame2 = itemFrame2.TransformToParent(identity5);
			}
			if (weaponClass == WeaponClass.ThrowingKnife)
			{
				GameEntity gameEntity11 = scene.FindEntityWithTag("javelin_camera");
				Vec3 vec7 = default(Vec3);
				gameEntity11.GetCameraParamsFromCameraScript(camera, ref vec7);
				gameEntity11.SetVisibilityExcludeParents(false);
				Vec3 v11 = itemFrame.TransformToLocal(v2);
				MatrixFrame identity6 = MatrixFrame.Identity;
				identity6.origin = -v11 * 1.4f;
				GameEntity gameEntity12 = scene.FindEntityWithTag("javelin");
				gameEntity12.SetVisibilityExcludeParents(false);
				itemFrame = gameEntity12.GetGlobalFrame();
				itemFrame = itemFrame.TransformToParent(identity6);
				gameEntity12 = scene.FindEntityWithTag("javelin_1");
				gameEntity12.SetVisibilityExcludeParents(false);
				itemFrame1 = gameEntity12.GetGlobalFrame();
				itemFrame1 = itemFrame1.TransformToParent(identity6);
				gameEntity12 = scene.FindEntityWithTag("javelin_2");
				gameEntity12.SetVisibilityExcludeParents(false);
				itemFrame2 = gameEntity12.GetGlobalFrame();
				itemFrame2 = itemFrame2.TransformToParent(identity6);
			}
			if (weaponClass == WeaponClass.TwoHandedPolearm || weaponClass == WeaponClass.OneHandedPolearm || weaponClass == WeaponClass.LowGripPolearm || weaponClass == WeaponClass.Mace || weaponClass == WeaponClass.TwoHandedMace)
			{
				GameEntity gameEntity13 = scene.FindEntityWithTag("spear_camera");
				Vec3 vec8 = default(Vec3);
				gameEntity13.GetCameraParamsFromCameraScript(camera, ref vec8);
				gameEntity13.SetVisibilityExcludeParents(false);
				Vec3 v12 = itemFrame.TransformToLocal(v4);
				MatrixFrame identity7 = MatrixFrame.Identity;
				identity7.origin = -v12;
				GameEntity gameEntity14 = scene.FindEntityWithTag("spear");
				gameEntity14.SetVisibilityExcludeParents(false);
				itemFrame = gameEntity14.GetGlobalFrame();
				itemFrame = itemFrame.TransformToParent(identity7);
			}
		}