public MyFracturedPiece() : base() { //EntityId = MyEntityIdentifier.AllocateId(); //TODO: Synchronize through manager to avoid performance hits SyncFlag = true; base.PositionComp = new MyFracturePiecePositionComponent(); base.Render = new MyRenderComponentFracturedPiece(); base.Render.NeedsDraw = true; base.Render.PersistentFlags = MyPersistentEntityFlags2.Enabled; AddDebugRenderComponent(new MyFracturedPieceDebugDraw(this)); UseDamageSystem = false; NeedsUpdate = MyEntityUpdateEnum.EACH_10TH_FRAME | MyEntityUpdateEnum.EACH_100TH_FRAME; #if !XB1 // !XB1_SYNC_NOREFLECTION SyncType = SyncHelpers.Compose(this); #else // XB1 SyncType = new SyncType(new List <SyncBase>()); m_fallSoundShouldPlay = SyncType.CreateAndAddProp <bool>(); m_fallSoundString = SyncType.CreateAndAddProp <string>(); #endif // XB1 m_fallSoundShouldPlay.Value = false; m_fallSoundString.Value = ""; m_fallSoundString.ValueChanged += (x) => SetFallSound(); }
public MySmallGatlingGun() { #if XB1 // XB1_SYNC_NOREFLECTION m_useConveyorSystem = SyncType.CreateAndAddProp <bool>(); #endif // XB1 CreateTerminalControls(); m_rotationAngle = MyUtils.GetRandomRadian(); m_lastTimeShoot = MyConstants.FAREST_TIME_IN_PAST; m_smokeLastTime = MyConstants.FAREST_TIME_IN_PAST; m_smokesToGenerate = 0; m_cannonMotorEndPlayed = true; m_rotationTimeout = (float)MyGatlingConstants.ROTATION_TIMEOUT + MyUtils.GetRandomFloat(-500, +500); m_soundEmitter = new MyEntity3DSoundEmitter(this, true); #if XB1// XB1_SYNC_NOREFLECTION m_gunBase = new MyGunBase(SyncType); #else // !XB1 m_gunBase = new MyGunBase(); #endif // !XB1 NeedsUpdate |= MyEntityUpdateEnum.EACH_FRAME | MyEntityUpdateEnum.EACH_10TH_FRAME; Render.NeedsDrawFromParent = true; Render = new MyRenderComponentSmallGatlingGun(); AddDebugRenderComponent(new MyDebugRenderComponentSmallGatlingGun(this)); #if !XB1 // !XB1_SYNC_NOREFLECTION SyncType.Append(m_gunBase); #endif // !XB1 }
public MyDoorBase() { #if XB1 // XB1_SYNC_NOREFLECTION m_open = SyncType.CreateAndAddProp <bool>(); #endif // XB1 CreateTerminalControls(); }
public MyShipToolBase() { #if XB1 // XB1_SYNC_NOREFLECTION m_useConveyorSystem = SyncType.CreateAndAddProp <bool>(); #endif // XB1 CreateTerminalControls(); }
public MyMotorSuspension() { #if XB1 // XB1_SYNC_NOREFLECTION m_dummyDisplacement = SyncType.CreateAndAddProp <float>(); //<== from base class m_steerAngle = SyncType.CreateAndAddProp <float>(); m_brake = SyncType.CreateAndAddProp <bool>(); m_damping = SyncType.CreateAndAddProp <float>(); m_strenth = SyncType.CreateAndAddProp <float>(); m_friction = SyncType.CreateAndAddProp <float>(); m_height = SyncType.CreateAndAddProp <float>(); m_suspensionTravel = SyncType.CreateAndAddProp <float>(); m_speedLimit = SyncType.CreateAndAddProp <float>(); m_maxSteerAngle = SyncType.CreateAndAddProp <float>(); m_steerSpeed = SyncType.CreateAndAddProp <float>(); m_steerReturSpeed = SyncType.CreateAndAddProp <float>(); m_invertSteer = SyncType.CreateAndAddProp <bool>(); m_invertPropulsion = SyncType.CreateAndAddProp <bool>(); m_power = SyncType.CreateAndAddProp <float>(); m_steering = SyncType.CreateAndAddProp <bool>(); m_propulsion = SyncType.CreateAndAddProp <bool>(); #endif // XB1 CreateTerminalControls(); m_brake.ValueChanged += (x) => UpdateBrake(); m_friction.ValueChanged += (x) => FrictionChanged(); m_damping.ValueChanged += (x) => DampingChanged(); m_strenth.ValueChanged += (x) => StrenghtChanged(); m_height.ValueChanged += (x) => ReattachConstraint(); m_suspensionTravel.ValueChanged += (x) => ReattachConstraint(); }
public MyBatteryBlock() { #if XB1 // XB1_SYNC_NOREFLECTION m_isFull = SyncType.CreateAndAddProp <bool>(); m_onlyRecharge = SyncType.CreateAndAddProp <bool>(); m_onlyDischarge = SyncType.CreateAndAddProp <bool>(); m_semiautoEnabled = SyncType.CreateAndAddProp <bool>(); m_producerEnabled = SyncType.CreateAndAddProp <bool>(); m_storedPower = SyncType.CreateAndAddProp <float>(); #endif // XB1 CreateTerminalControls(); SourceComp = new MyResourceSourceComponent(); ResourceSink = new MyResourceSinkComponent(); m_semiautoEnabled.ValueChanged += (x) => UpdateMaxOutputAndEmissivity(); m_onlyRecharge.ValueChanged += (x) => { if (m_onlyRecharge.Value) { m_onlyDischarge.Value = false; } UpdateMaxOutputAndEmissivity(); }; m_onlyDischarge.ValueChanged += (x) => { if (m_onlyDischarge.Value) { m_onlyRecharge.Value = false; } UpdateMaxOutputAndEmissivity(); }; m_producerEnabled.ValueChanged += (x) => ProducerEnadChanged(); m_storedPower.ValueChanged += (x) => CapacityChanged(); }
public MyShipWelder() { #if XB1 // XB1_SYNC_NOREFLECTION m_helpOthers = SyncType.CreateAndAddProp <bool>(); #endif // XB1 CreateTerminalControls(); }
public MyGravityGeneratorSphere() { #if XB1 // XB1_SYNC_NOREFLECTION m_radius = SyncType.CreateAndAddProp <float>(); #endif // XB1 CreateTerminalControls(); m_radius.ValueChanged += (x) => UpdateFieldShape(); }
public MyGravityGeneratorBase() : base() { #if XB1 // XB1_SYNC_NOREFLECTION m_gravityAcceleration = SyncType.CreateAndAddProp <float>(); #endif // XB1 m_gravityAcceleration.ValueChanged += (x) => AccelerationChanged(); }
public MyButtonPanel() { #if XB1 // XB1_SYNC_NOREFLECTION m_anyoneCanUse = SyncType.CreateAndAddProp <bool>(); #endif // XB1 CreateTerminalControls(); m_openedToolbars = new List <MyToolbar>(); }
public MyBeacon() { #if XB1 // XB1_SYNC_NOREFLECTION m_radius = SyncType.CreateAndAddProp <float>(); #endif // XB1 CreateTerminalControls(); m_radius.ValueChanged += (obj) => ChangeRadius(); }
public MyUserControllableGun() { #if XB1 // XB1_SYNC_NOREFLECTION m_isShooting = SyncType.CreateAndAddProp <bool>(); #endif // XB1 CreateTerminalControls(); m_isShooting.ValueChanged += (x) => ShootingChanged(); }
public MyCameraBlock() { #if XB1 // XB1_SYNC_NOREFLECTION m_syncFov = SyncType.CreateAndAddProp <float>(); #endif // XB1 CreateTerminalControls(); m_syncFov.ValueChanged += (x) => OnSyncFov(); }
public MyFunctionalBlock() { #if XB1 // XB1_SYNC_NOREFLECTION m_enabled = SyncType.CreateAndAddProp <bool>(); #endif // BX1 CreateTerminalControls(); m_enabled.ValueChanged += (x) => EnabledSyncChanged(); }
public MyGravityGenerator() { #if XB1 // XB1_SYNC_NOREFLECTION m_fieldSize = SyncType.CreateAndAddProp <Vector3>(); #endif // XB1 CreateTerminalControls(); m_fieldSize.ValueChanged += (x) => UpdateFieldShape(); }
public MyCryoChamber() { #if XB1 // XB1_SYNC_NOREFLECTION m_attachedPlayerId = SyncType.CreateAndAddProp <MyPlayer.PlayerId?>(); #endif // XB1 ControllerInfo.ControlAcquired += OnCryoChamberControlAcquired; m_attachedPlayerId.ValueChanged += (x) => AttachedPlayerChanged(); }
public MyConveyorSorter() { #if XB1 // XB1_SYNC_NOREFLECTION m_drainAll = SyncType.CreateAndAddProp <bool>(); #endif // XB1 CreateTerminalControls(); m_drainAll.ValueChanged += x => DoChangeDrainAll(); }
public MyLargeConveyorTurretBase() : base() { #if XB1 // XB1_SYNC_NOREFLECTION m_useConveyorSystem = SyncType.CreateAndAddProp <bool>(); #endif // XB1 CreateTerminalControls(); NeedsUpdate |= MyEntityUpdateEnum.EACH_100TH_FRAME; }
public MyGasGenerator() { #if XB1 // XB1_SYNC_NOREFLECTION m_useConveyorSystem = SyncType.CreateAndAddProp <bool>(); #endif // XB1 CreateTerminalControls(); SourceComp = new MyResourceSourceComponent(2); ResourceSink = new MyResourceSinkComponent(); }
public MyOreDetector() { #if XB1 // XB1_SYNC_NOREFLECTION m_broadcastUsingAntennas = SyncType.CreateAndAddProp <bool>(); #endif // XB1 CreateTerminalControls(); m_broadcastUsingAntennas.ValueChanged += (entity) => BroadcastChanged(); }
public MyWarhead() { #if XB1 // XB1_SYNC_NOREFLECTION m_countdownMs = SyncType.CreateAndAddProp <int>(); m_isArmed = SyncType.CreateAndAddProp <bool>(); #endif // XB1 CreateTerminalControls(); m_isArmed.ValueChanged += (x) => UpdateEmissivity(); }
public MyFunctionalBlock() { #if XB1 // XB1_SYNC_NOREFLECTION m_enabled = SyncType.CreateAndAddProp <bool>(); #endif // BX1 CreateTerminalControls(); NeedsUpdate |= MyEntityUpdateEnum.EACH_100TH_FRAME; m_enabled.ValueChanged += (x) => EnabledSyncChanged(); }
public MyAirVent() { #if XB1 // XB1_SYNC_NOREFLECTION m_isDepressurizing = SyncType.CreateAndAddProp <bool>(); #endif // XB1 CreateTerminalControls(); ResourceSink = new MyResourceSinkComponent(2); SourceComp = new MyResourceSourceComponent(); m_isDepressurizing.ValueChanged += (x) => SetDepressurizing(); }
public MyShipDrill() { #if XB1 // XB1_SYNC_NOREFLECTION m_useConveyorSystem = SyncType.CreateAndAddProp <bool>(); #endif // XB1 CreateTerminalControls(); NeedsUpdate |= MyEntityUpdateEnum.EACH_FRAME | MyEntityUpdateEnum.EACH_100TH_FRAME; Debug.Assert((NeedsUpdate & MyEntityUpdateEnum.EACH_10TH_FRAME) == 0, "Base class of ship drill uses Update10, and ship drill turns it on and off. Things might break!"); SetupDrillFrameCountdown(); }
public MyAirtightDoorGeneric() { #if XB1 // XB1_SYNC_NOREFLECTION m_open = SyncType.CreateAndAddProp <bool>(); #endif // XB1 CreateTerminalControls(); m_open.Value = false; m_currOpening = 0f; m_currSpeed = 0f; m_open.ValueChanged += (x) => DoChangeOpenClose(); }
public MyPistonBase() { #if XB1 // XB1_SYNC_NOREFLECTION m_currentPos = SyncType.CreateAndAddProp <float>(); Velocity = SyncType.CreateAndAddProp <float>(); MinLimit = SyncType.CreateAndAddProp <float>(); MaxLimit = SyncType.CreateAndAddProp <float>(); #endif // XB1 CreateTerminalControls(); m_currentPos.ValueChanged += (o) => UpdatePosition(true); }
public MyReactor() { #if XB1 // XB1_SYNC_NOREFLECTION m_remainingPowerCapacity = SyncType.CreateAndAddProp <float>(); m_useConveyorSystem = SyncType.CreateAndAddProp <bool>(); #endif // XB1 CreateTerminalControls(); SourceComp = new MyResourceSourceComponent(); m_remainingPowerCapacity.ValueChanged += (x) => RemainingCapacityChanged(); m_remainingPowerCapacity.ValidateNever(); }
public MyRadioAntenna() { #if XB1 // XB1_SYNC_NOREFLECTION m_radius = SyncType.CreateAndAddProp <float>(); m_enableBroadcasting = SyncType.CreateAndAddProp <bool>(); m_showShipName = SyncType.CreateAndAddProp <bool>(); #endif // XB1 CreateTerminalControls(); m_radius.ValueChanged += (obj) => ChangeRadius(); m_enableBroadcasting.ValueChanged += (obj) => ChangeEnableBroadcast(); }
public MyGyro() { #if XB1 // XB1_SYNC_NOREFLECTION m_gyroPower = SyncType.CreateAndAddProp <float>(); m_gyroOverride = SyncType.CreateAndAddProp <bool>(); m_gyroOverrideVelocity = SyncType.CreateAndAddProp <Vector3>(); #endif // XB1 CreateTerminalControls(); m_gyroPower.ValueChanged += x => GyroPowerChanged(); m_gyroOverride.ValueChanged += x => GyroOverrideChanged(); }
public MyDoor() : base() { #if XB1 // XB1_SYNC_NOREFLECTION m_open = SyncType.CreateAndAddProp <bool>(); #endif // XB1 //GR: added to base class do not use here //CreateTerminalControls(); m_currOpening = 0f; m_currSpeed = 0f; m_open.ValidateNever(); m_open.ValueChanged += x => OnStateChange(); }
public MyInventory(MyFixedPoint maxVolume, MyFixedPoint maxMass, Vector3 size, MyInventoryFlags flags) : base("Inventory") { m_maxVolume = maxVolume; m_maxMass = maxMass; m_flags = flags; #if !XB1 // !XB1_SYNC_NOREFLECTION SyncType = SyncHelpers.Compose(this); #else // XB1 SyncType = new SyncType(new List<SyncBase>()); m_currentVolume = SyncType.CreateAndAddProp<MyFixedPoint>(); m_currentMass = SyncType.CreateAndAddProp<MyFixedPoint>(); #endif // XB1 m_currentVolume.ValueChanged += (x) => PropertiesChanged(); m_currentVolume.ValidateNever(); m_currentMass.ValueChanged += (x) => PropertiesChanged(); m_currentMass.ValidateNever(); m_inventoryNotEmptyNotification = new MyHudNotification(font: MyFontEnum.Red, priority: 2, text: MyCommonTexts.NotificationInventoryNotEmpty); Clear(); }
public MyFracturedPiece() : base() { //EntityId = MyEntityIdentifier.AllocateId(); //TODO: Synchronize through manager to avoid performance hits SyncFlag = true; base.PositionComp = new MyFracturePiecePositionComponent(); base.Render = new MyRenderComponentFracturedPiece(); base.Render.NeedsDraw = true; base.Render.PersistentFlags = MyPersistentEntityFlags2.Enabled; AddDebugRenderComponent(new MyFracturedPieceDebugDraw(this)); UseDamageSystem = false; NeedsUpdate = MyEntityUpdateEnum.EACH_10TH_FRAME | MyEntityUpdateEnum.EACH_100TH_FRAME; #if !XB1 // !XB1_SYNC_NOREFLECTION SyncType = SyncHelpers.Compose(this); #else // XB1 SyncType = new SyncType(new List<SyncBase>()); m_fallSoundShouldPlay = SyncType.CreateAndAddProp<bool>(); m_fallSoundString = SyncType.CreateAndAddProp<string>(); #endif // XB1 m_fallSoundShouldPlay.Value = false; m_fallSoundString.Value = ""; m_fallSoundString.ValueChanged += (x) => SetFallSound(); }
public MyFloatingObject() { WasRemovedFromWorld = false; m_soundEmitter = new MyEntity3DSoundEmitter(this); m_lastTimePlayedSound = MySandboxGame.TotalGamePlayTimeInMilliseconds; Render = new Components.MyRenderComponentFloatingObject(); #if !XB1 // !XB1_SYNC_NOREFLECTION SyncType = SyncHelpers.Compose(this); #else // XB1 SyncType = new SyncType(new List<SyncBase>()); Amount = SyncType.CreateAndAddProp<MyFixedPoint>(); #endif // XB1 Amount.ValueChanged += (x) => { Item.Amount = Amount.Value; UpdateInternalState(); }; }
public MyCharacter() { ControllerInfo.ControlAcquired += OnControlAcquired; ControllerInfo.ControlReleased += OnControlReleased; RadioReceiver = new MyRadioReceiver(); Components.Add<MyDataBroadcaster>(new MyRadioBroadcaster()); RadioBroadcaster.BroadcastRadius = 200; CustomNameWithFaction = new StringBuilder(); PositionComp = new MyCharacterPosition(); (PositionComp as MyPositionComponent).WorldPositionChanged = WorldPositionChanged; Render = new MyRenderComponentCharacter(); Render.EnableColorMaskHsv = true; Render.NeedsDraw = true; Render.CastShadows = true; Render.NeedsResolveCastShadow = false; Render.SkipIfTooSmall = false; SinkComp = new MyResourceSinkComponent(); #if !XB1 // !XB1_SYNC_NOREFLECTION SyncType = SyncHelpers.Compose(this); #else // XB1 SyncType = new SyncType(new List<SyncBase>()); m_currentAmmoCount = SyncType.CreateAndAddProp<int>(); m_currentMagazineAmmoCount = SyncType.CreateAndAddProp<int>(); m_controlInfo = SyncType.CreateAndAddProp<Sandbox.Game.World.MyPlayer.PlayerId>(); m_localHeadPosition = SyncType.CreateAndAddProp<Vector3>(); m_animLeaning = SyncType.CreateAndAddProp<float>(); m_animTurningSpeed = SyncType.CreateAndAddProp<float>(); m_localHeadTransform = SyncType.CreateAndAddProp<MyTransform>(); m_localHeadTransformTool = SyncType.CreateAndAddProp<MyTransform>(); m_isPromoted = SyncType.CreateAndAddProp<bool>(); //m_weaponPosition = SyncType.CreateAndAddProp<Vector3>(); #endif // XB1 AddDebugRenderComponent(new MyDebugRenderComponentCharacter(this)); if (MyPerGameSettings.CharacterDetectionComponent != null) Components.Add<MyCharacterDetectorComponent>((MyCharacterDetectorComponent)Activator.CreateInstance(MyPerGameSettings.CharacterDetectionComponent)); else Components.Add<MyCharacterDetectorComponent>(new MyCharacterRaycastDetectorComponent()); m_currentAmmoCount.ValidateNever(); m_currentMagazineAmmoCount.ValidateNever(); m_controlInfo.ValueChanged += (x) => ControlChanged(); m_controlInfo.ValidateNever(); m_isPromoted.ValidateNever(); m_isShooting = new bool[(int)MyEnum<MyShootActionEnum>.Range.Max + 1]; //m_weaponPosition.Value = Vector3D.Zero; m_localHeadTransformTool.ValueChanged += (x) => ToolHeadTransformChanged(); //Components.Add<MyCharacterDetectorComponent>(new MyCharacterShapecastDetectorComponent()); }