Пример #1
0
        public MyShipWelder()
        {
#if XB1 // XB1_SYNC_NOREFLECTION
            m_helpOthers = SyncType.CreateAndAddProp<bool>();
#endif // XB1
            CreateTerminalControls();
        }
Пример #2
0
        public MyBeacon()
        {
#if XB1 // XB1_SYNC_NOREFLECTION
            m_radius = SyncType.CreateAndAddProp<float>();
#endif // XB1
            CreateTerminalControls();

            m_radius.ValueChanged += (obj) => ChangeRadius();
        }
        public MyCryoChamber()
        {
#if XB1 // XB1_SYNC_NOREFLECTION
            m_attachedPlayerId = SyncType.CreateAndAddProp<MyPlayer.PlayerId?>();
#endif // XB1

            ControllerInfo.ControlAcquired += OnCryoChamberControlAcquired;
            m_attachedPlayerId.ValueChanged += (x) => AttachedPlayerChanged();
        }
 public MyGasGenerator()
 {
     #if XB1 // XB1_SYNC_NOREFLECTION
     m_useConveyorSystem = SyncType.CreateAndAddProp<bool>();
     #endif // XB1
     CreateTerminalControls();
     SourceComp = new MyResourceSourceComponent(2);
     ResourceSink = new MyResourceSinkComponent();
 }
 public MyLargeConveyorTurretBase()
     : base()
 {
     #if XB1 // XB1_SYNC_NOREFLECTION
     m_useConveyorSystem = SyncType.CreateAndAddProp<bool>();
     #endif // XB1
     CreateTerminalControls();
     NeedsUpdate |= MyEntityUpdateEnum.EACH_100TH_FRAME;
 }
        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();
        }
Пример #8
0
        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();
        }
Пример #9
0
        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 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();
        }
Пример #11
0
        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 MyTimerBlock()
        {
            #if XB1 // XB1_SYNC_NOREFLECTION
            m_isCountingDown = SyncType.CreateAndAddProp<bool>();
            m_silent = SyncType.CreateAndAddProp<bool>();
            m_timerSync = SyncType.CreateAndAddProp<int>();
            #endif // XB1
            CreateTerminalControls();

            m_openedToolbars = new List<MyToolbar>();
            m_timerSync.ValueChanged += (x) => TimerChanged();
            m_isCountingDown.ValueChanged += (x) => CountDownChanged();
            m_isCountingDown.ValidateNever();
        }
Пример #13
0
        public MyJumpDrive()
        {
            #if XB1 // XB1_SYNC_NOREFLECTION
            m_storedPower = SyncType.CreateAndAddProp<float>();
            m_targetSync = SyncType.CreateAndAddProp<int?>();
            m_jumpDistanceRatio = SyncType.CreateAndAddProp<float>();
            m_isRecharging = SyncType.CreateAndAddProp<bool>();
            #endif // XB1
            CreateTerminalControls();

            m_isRecharging.ValueChanged += x => RaisePropertiesChanged();   //GR: Maybe not needed since called every 100 frames either way
            m_targetSync.ValueChanged += x => TargetChanged();
            m_storedPower.ValidateNever();
        }
Пример #14
0
        public MyDoor()
        {
#if XB1 // XB1_SYNC_NOREFLECTION
            m_currOpening = SyncType.CreateAndAddProp<float>();
            m_open = SyncType.CreateAndAddProp<bool>();
#endif // XB1
            CreateTerminalControls();

            m_currOpening.ValidateNever();
            m_currOpening.Value = 0f;
            m_currSpeed = 0f;
            m_open.ValidateNever();
            m_open.ValueChanged += x => OnStateChange();
        }
        public MyAdvancedDoor()
        {
#if XB1 // XB1_SYNC_NOREFLECTION
            m_open = SyncType.CreateAndAddProp<bool>();
#endif // XB1
            CreateTerminalControls();

            m_subparts.Clear();
            m_subpartIDs.Clear();
            m_currentOpening.Clear();
            m_currentSpeed.Clear();
            m_emitter.Clear();
            m_hingePosition.Clear();
            m_openingSequence.Clear();
            m_open.ValueChanged += x => OnStateChange();
        }
        public MyMechanicalConnectionBlockBase()
        {
#if XB1 // XB1_SYNC_NOREFLECTION
            m_connectionState = SyncType.CreateAndAddProp<State>();
            m_topAndBottomSamePhysicsBody = SyncType.CreateAndAddProp<bool>();
            m_forceWeld = SyncType.CreateAndAddProp<bool>();
            m_speedWeld = SyncType.CreateAndAddProp<bool>();
            m_weldSpeedSq = SyncType.CreateAndAddProp<float>();
#endif // XB1

            m_forceWeld.ValueChanged += (o) => OnForceWeldChanged();
            m_connectionState.ValueChanged += (o) => OnAttachTargetChanged();
            m_connectionState.Validate = ValidateTopBlockId;
            m_topAndBottomSamePhysicsBody.ValidateNever();

            m_speedWeld.Value = false;
            CreateTerminalControls();     
        }
Пример #17
0
        public MyTextPanel()
        {
            #if XB1 // XB1_SYNC_NOREFLECTION
            m_backgroundColor = SyncType.CreateAndAddProp<Color>();
            m_fontColor = SyncType.CreateAndAddProp<Color>();
            m_accessFlag = SyncType.CreateAndAddProp<TextPanelAccessFlag>();
            m_showFlag = SyncType.CreateAndAddProp<ShowTextOnScreenFlag>();
            m_changeInterval = SyncType.CreateAndAddProp<float>();
            m_fontSize = SyncType.CreateAndAddProp<float>();
            #endif // XB1
            CreateTerminalControls();

            m_publicDescription = new StringBuilder();
            m_textBox = null;
            m_publicTitle = new StringBuilder();
            m_isOpen = false;

            m_privateDescription = new StringBuilder();
            m_privateTitle = new StringBuilder();

            Render = new MyRenderComponentTextPanel();
            m_definitions.Clear();
            foreach (var textureDefinition in MyDefinitionManager.Static.GetLCDTexturesDefinitions())
            {
                m_definitions.Add(textureDefinition);
            }

            m_backgroundColor.Value = Color.Black;
            m_fontColor.Value = Color.White;
            m_changeInterval.Value = 0;
            m_fontSize.Value = 1.0f;

            m_backgroundColor.ValueChanged += m_backgroundColor_ValueChanged;
            m_fontColor.ValueChanged += m_fontColor_ValueChanged;
            m_showFlag.ValueChanged += m_showFlag_ValueChanged;
            m_changeInterval.ValueChanged += m_changeInterval_ValueChanged;
            m_fontSize.ValueChanged += m_fontSize_ValueChanged;
        }
Пример #18
0
        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 MyShipConnector()
        {
#if XB1 // XB1_SYNC_NOREFLECTION
            ThrowOut = SyncType.CreateAndAddProp<bool>();
            CollectAll = SyncType.CreateAndAddProp<bool>();
            Strength = SyncType.CreateAndAddProp<float>();
            m_connectionState = SyncType.CreateAndAddProp<State>();
#endif // XB1
            CreateTerminalControls();

            m_connectionState.ValueChanged += (o) => OnConnectionStateChanged();
            m_connectionState.ValidateNever(); // Never set by client
            m_manualDisconnectTime = new MyTimeSpan(-DisconnectSleepTime.Ticks);
            Strength.Validate = (o) => Strength >= 0 && Strength <= 1;
        }
Пример #20
0
        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();

            NeedsUpdate |= MyEntityUpdateEnum.EACH_FRAME;
            m_gyroPower.ValueChanged += x => GyroPowerChanged();
            m_gyroOverride.ValueChanged += x => GyroOverrideChanged();
        }
Пример #21
0
        public MySensorBlock()
        {
#if XB1 // XB1_SYNC_NOREFLECTION
            m_playProximitySound = SyncType.CreateAndAddProp<bool>();
            m_active = SyncType.CreateAndAddProp<bool>();
            m_fieldMin = SyncType.CreateAndAddProp<Vector3>();
            m_fieldMax = SyncType.CreateAndAddProp<Vector3>();
            m_flags = SyncType.CreateAndAddProp<MySensorFilterFlags>();
#endif // XB1
            CreateTerminalControls();

            m_active.ValueChanged += (x) => IsActiveChanged();
            m_fieldMax.ValueChanged += (x) => UpdateField();
            m_fieldMin.ValueChanged +=(x) => UpdateField();
        }
Пример #22
0
        public MyThrust()
        {
#if XB1 // XB1_SYNC_NOREFLECTION
            m_thrustOverride = SyncType.CreateAndAddProp<float>();
#endif // XB1
            CreateTerminalControls();

            Render.NeedsDrawFromParent = true;
            NeedsUpdate = MyEntityUpdateEnum.EACH_10TH_FRAME | MyEntityUpdateEnum.EACH_100TH_FRAME;
            m_flameCollisionsList = new List<HkBodyCollision>();
            m_damagedEntities = new List<IMyEntity>();
            m_gridRayCastLst = new List<MyPhysics.HitInfo>();
            Render = new MyRenderComponentThrust();
            AddDebugRenderComponent(new MyDebugRenderComponentThrust(this));
            m_thrustOverride.ValueChanged += (x) => ThrustOverrideValueChanged();
        }
Пример #23
0
        public MyProductionBlock()
        {
#if XB1 // XB1_SYNC_NOREFLECTION
            m_useConveyorSystem = SyncType.CreateAndAddProp<bool>();
#endif // XB1
            CreateTerminalControls();

            m_soundEmitter = new MyEntity3DSoundEmitter(this, true);
            m_queue = new List<QueueItem>();

            NeedsUpdate |= MyEntityUpdateEnum.EACH_10TH_FRAME;

            IsProducing = false;
            Components.ComponentAdded += OnComponentAdded;
        }
Пример #24
0
        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();
	    }
Пример #25
0
        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();
        }
Пример #26
0
        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();
        }
Пример #27
0
        public MyCockpit()
        {
#if XB1 // XB1_SYNC_NOREFLECTION
            m_pilotRelativeWorld = SyncType.CreateAndAddProp<Matrix?>();
            m_attachedCharacterId = SyncType.CreateAndAddProp<long?>();
            m_storeOriginalPlayerWorldMatrix = SyncType.CreateAndAddProp<bool>();
#endif // XB1
            m_pilotClosedHandler = new Action<MyEntity>(m_pilot_OnMarkForClose);
            ResourceSink = new MyResourceSinkComponent(2);

            m_attachedCharacterId.ValueChanged += (o) => OnCharacterChanged();
            m_soundEmitter.EmitterMethods[MyEntity3DSoundEmitter.MethodsEnum.ShouldPlay2D].Add((Func<bool>)ShouldPlay2D);
            m_pilotRelativeWorld.ValidateNever();
        }
Пример #28
0
        public MyRemoteControl()
        {
#if XB1 // XB1_SYNC_NOREFLECTION
            m_autopilotSpeedLimit = SyncType.CreateAndAddProp<float>();
            m_useCollisionAvoidance = SyncType.CreateAndAddProp<bool>();
            m_autoPilotEnabled = SyncType.CreateAndAddProp<bool>();
            m_dockingModeEnabled = SyncType.CreateAndAddProp<bool>();
            m_currentFlightMode = SyncType.CreateAndAddProp<FlightMode>();
            m_currentDirection = SyncType.CreateAndAddProp<Base6Directions.Direction>();
            m_waypointThresholdDistance = SyncType.CreateAndAddProp<float>();
#endif // XB1
            CreateTerminalControls();
            TargettingAimDelta = 0;
            m_autoPilotEnabled.ValueChanged += (x) => OnSetAutoPilotEnabled();
        }
Пример #29
0
        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());
        }
        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(); };
        }