private bool MarkForRepair(MyPrefabLargeWeapon turret) { if (turret != null) { if (turret.Health <= 250 && turret.IsDestructible && m_turretContainerToDetectorMapping.ContainsKey(turret.Parent.EntityId.Value.NumericValue)) { MyScriptWrapper.SetEntityDestructible(turret, false); MyScriptWrapper.SetEntityEnabled(turret, false); turret.AIPriority = -1; uint detectorId = m_turretContainerToDetectorMapping[turret.Parent.EntityId.Value.NumericValue]; var repairDetector = (MyEntityDetector)MyScriptWrapper.GetEntity(detectorId); repairDetector.On(); repairDetector.OnEntityEnter += RepairDetector_Enter; repairDetector.OnEntityLeave += RepairDetector_Leave; MyScriptWrapper.SetEntityEnabled(m_detectorToParticleMapping[detectorId], true); MyScriptWrapper.MarkEntity(turret, MyTexts.Repair, MyHudIndicatorFlagsEnum.SHOW_TEXT | MyHudIndicatorFlagsEnum.SHOW_BORDER_INDICATORS); return true; } } return false; }
/// <summary> /// CreatePrefab /// </summary> /// <param name="hudLabelText"></param> /// <param name="objBuilder"></param> /// <returns></returns> public MyPrefabBase CreatePrefab(string hudLabelText, MyPrefabContainer prefabContainer, MyMwcObjectBuilder_PrefabBase prefabBuilder) { Render.MyRender.GetRenderProfiler().StartProfilingBlock("MyPrefabFactory.CreatePrefab"); MyPrefabConfiguration config = MyPrefabConstants.GetPrefabConfiguration(prefabBuilder.GetObjectBuilderType(), prefabBuilder.GetObjectBuilderId().Value); Vector3 relativePosition = MyPrefabContainer.GetRelativePositionInAbsoluteCoords(prefabBuilder.PositionInContainer); Matrix prefabLocalOrientation = Matrix.CreateFromYawPitchRoll(prefabBuilder.AnglesInContainer.X, prefabBuilder.AnglesInContainer.Y, prefabBuilder.AnglesInContainer.Z); MyPrefabBase prefab = null; if (config is MyPrefabConfigurationKinematic) { prefab = new MyPrefabKinematic(prefabContainer); } else if (config is MyPrefabConfigurationLight) { prefab = new MyPrefabLight(prefabContainer); } else if (config is MyPrefabConfigurationLargeWeapon) { prefab = new MyPrefabLargeWeapon(prefabContainer); } else if (config is MyPrefabConfigurationSound) { prefab = new MyPrefabSound(prefabContainer); } else if (config is MyPrefabConfigurationParticles) { prefab = new MyPrefabParticles(prefabContainer); } else if (config is MyPrefabConfigurationLargeShip) { prefab = new MyPrefabLargeShip(prefabContainer); } else if (config is MyPrefabConfigurationHangar) { prefab = new MyPrefabHangar(prefabContainer); } else if(config is MyPrefabConfigurationFoundationFactory) { prefab = new MyPrefabFoundationFactory(prefabContainer); } else if (config is MyPrefabConfigurationSecurityControlHUB) { prefab = new MyPrefabSecurityControlHUB(prefabContainer); } else if (config is MyPrefabConfigurationBankNode) { prefab = new MyPrefabBankNode(prefabContainer); } else if (config is MyPrefabConfigurationGenerator) { prefab = new MyPrefabGenerator(prefabContainer); } else if (config is MyPrefabConfigurationScanner) { prefab = new MyPrefabScanner(prefabContainer); } else if (config is MyPrefabConfigurationCamera) { prefab = new MyPrefabCamera(prefabContainer); } else if (config is MyPrefabConfigurationAlarm) { prefab = new MyPrefabAlarm(prefabContainer); } else { prefab = new MyPrefab(prefabContainer); //prefab.Init(hudLabelText, relativePosition, prefabLocalOrientation, prefabBuilder, config); } prefab.Init(hudLabelText, relativePosition, prefabLocalOrientation, prefabBuilder, config); Render.MyRender.GetRenderProfiler().EndProfilingBlock(); return prefab; }
public MyGuiControlPrefabLargeWeaponUse(IMyGuiControlsParent parent, MyPrefabLargeWeapon prefab, MyTexture2D texture) : base(parent, prefab,texture) { }
public MyGuiControlPrefabLargeWeaponUse(IMyGuiControlsParent parent, MyPrefabLargeWeapon prefab) : base(parent, prefab) { }
public bool IsControlledByPlayer(MyPrefabLargeWeapon largeWeapon) { return MyGuiScreenGamePlay.Static.CameraAttachedTo == MyCameraAttachedToEnum.LargeWeapon && ControlledLargeWeapon == largeWeapon; }
public void TakeControlOfLargeWeapon(MyPrefabLargeWeapon largeWeapon) { CameraAttachedTo = MyCameraAttachedToEnum.LargeWeapon; ControlledLargeWeapon = largeWeapon; MyGuiManager.GetRemoteViewWeaponTextures(); MyAudio.AddCue2D(MySoundCuesEnum.SfxAcquireWeaponOn); MySession.PlayerShip.StopSounds(); largeWeapon.StopAimingSound(); AddSwitchingNotification(); AddLargeWeaponDetachingNotification(); }
public void SwitchControlOfLargeWeapon(MyPrefabLargeWeapon prefabLargeWeapon) { if (ControlledEntity != null) { ControlledEntity.Visible = true; if (ControlledEntity == ControlledLargeWeapon) { ControlledLargeWeapon.StopAimingSound(); } } //if (m_detachNotification != null) //{ // m_detachNotification.Disappear(); //} TakeControlOfLargeWeapon(prefabLargeWeapon); }