本文整理汇总了C#中Sandbox.Game.EntityComponents.MyResourceSinkComponent类的典型用法代码示例。如果您正苦于以下问题:C# MyResourceSinkComponent类的具体用法?C# MyResourceSinkComponent怎么用?C# MyResourceSinkComponent使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
MyResourceSinkComponent类属于Sandbox.Game.EntityComponents命名空间,在下文中一共展示了MyResourceSinkComponent类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。
示例1: Init
public override void Init(MyObjectBuilder_CubeBlock objectBuilder, MyCubeGrid cubeGrid)
{
m_cameraDummy = Matrix.Identity;
m_characterDummy = Matrix.Identity;
base.Init(objectBuilder, cubeGrid);
var chamberOb = objectBuilder as MyObjectBuilder_CryoChamber;
if (chamberOb.SteamId != null && chamberOb.SerialId != null)
{
m_currentPlayerId = new MyPlayer.PlayerId(chamberOb.SteamId.Value, chamberOb.SerialId.Value);
}
else
{
m_currentPlayerId = null;
}
var overlayTexture = BlockDefinition.OverlayTexture;
if (!string.IsNullOrEmpty(overlayTexture))
{
m_overlayTextureName = overlayTexture;
}
var sinkComp = new MyResourceSinkComponent();
sinkComp.Init(
MyStringHash.GetOrCompute(BlockDefinition.ResourceSinkGroup),
BlockDefinition.IdlePowerConsumption,
this.CalculateRequiredPowerInput);
sinkComp.IsPoweredChanged += Receiver_IsPoweredChanged;
ResourceSink = sinkComp;
NeedsUpdate |= MyEntityUpdateEnum.BEFORE_NEXT_FRAME;
}
开发者ID:fluxit,项目名称:SpaceEngineers,代码行数:34,代码来源:MyCryoChamber.cs
示例2: Init
public override void Init(MyObjectBuilder_CubeBlock objectBuilder, MyCubeGrid cubeGrid)
{
base.Init(objectBuilder, cubeGrid);
ResourceSink = new MyResourceSinkComponent();
ResourceSink.Init(
BlockDefinition.ResourceSinkGroup,
BlockDefinition.RequiredPowerInput,
this.CalculateRequiredPowerInput);
ResourceSink.IsPoweredChanged += Receiver_IsPoweredChanged;
ResourceSink.Update();
if (Physics != null)
{
Physics.Close();
}
var detectorShape = new HkBoxShape(new Vector3(cubeGrid.GridSize / 3.0f));
var massProperties = HkInertiaTensorComputer.ComputeBoxVolumeMassProperties(detectorShape.HalfExtents, BlockDefinition.VirtualMass);
Physics = new Engine.Physics.MyPhysicsBody(this, RigidBodyFlag.RBF_DEFAULT);
Physics.IsPhantom = false;
Physics.CreateFromCollisionObject(detectorShape, Vector3.Zero, WorldMatrix, massProperties, MyPhysics.VirtualMassLayer);
Physics.Enabled = IsWorking && cubeGrid.Physics != null && cubeGrid.Physics.Enabled;
Physics.RigidBody.Activate();
detectorShape.Base.RemoveReference();
UpdateText();
NeedsUpdate = MyEntityUpdateEnum.EACH_FRAME;
SlimBlock.ComponentStack.IsFunctionalChanged += ComponentStack_IsFunctionalChanged;
}
开发者ID:fluxit,项目名称:SpaceEngineers,代码行数:33,代码来源:MyVirtualMass.cs
示例3: MyBattery
public MyBattery(MyCharacter owner)
{
m_owner = owner;
SyncObject = new MySyncBattery(this);
ResourceSink = new MyResourceSinkComponent();
ResourceSource = new MyResourceSourceComponent();
}
开发者ID:fluxit,项目名称:SpaceEngineers,代码行数:7,代码来源:MyBattery.cs
示例4: Init
public override void Init(MyObjectBuilder_CubeBlock objectBuilder, MyCubeGrid cubeGrid)
{
base.Init(objectBuilder, cubeGrid);
var def = BlockDefinition as MyPoweredCargoContainerDefinition;
var ob = objectBuilder as MyObjectBuilder_Collector;
m_inventory = new MyInventory(def.InventorySize.Volume, def.InventorySize, MyInventoryFlags.CanSend, this);
m_inventory.Init(ob.Inventory);
m_inventory.ContentsChanged += Inventory_ContentChangedCallback;
if (Sync.IsServer && CubeGrid.CreatePhysics)
LoadDummies();
var sinkComp = new MyResourceSinkComponent();
sinkComp.Init(
MyStringHash.GetOrCompute(def.ResourceSinkGroup),
MyEnergyConstants.MAX_REQUIRED_POWER_COLLECTOR,
() => base.CheckIsWorking() ? ResourceSink.MaxRequiredInput : 0f);
ResourceSink = sinkComp;
ResourceSink.Update();
ResourceSink.IsPoweredChanged += Receiver_IsPoweredChanged;
AddDebugRenderComponent(new Components.MyDebugRenderComponentDrawPowerReciever(ResourceSink,this));
SlimBlock.ComponentStack.IsFunctionalChanged += UpdateReceiver;
base.EnabledChanged += UpdateReceiver;
m_useConveyorSystem = ob.UseConveyorSystem;
}
开发者ID:fluxit,项目名称:SpaceEngineers,代码行数:26,代码来源:MyCollector.cs
示例5: Init
public override void Init(MyObjectBuilder_CubeBlock builder, MyCubeGrid cubeGrid)
{
ResourceSink = new MyResourceSinkComponent();
ResourceSink.Init(
MyStringHash.GetOrCompute(BlockDefinition.ResourceSinkGroup),
BlockDefinition.PowerConsumptionMoving,
UpdatePowerInput);
base.Init(builder, cubeGrid);
var ob = (MyObjectBuilder_AirtightDoorGeneric)builder;
m_open.Value = ob.Open;
m_currOpening = ob.CurrOpening;
m_openingSpeed = BlockDefinition.OpeningSpeed;
m_sound = new MySoundPair(BlockDefinition.Sound);
m_subpartMovementDistance = BlockDefinition.SubpartMovementDistance;
if (!Enabled || !ResourceSink.IsPoweredByType(MyResourceDistributorComponent.ElectricityId))
UpdateDoorPosition();
OnStateChange();
ResourceSink.IsPoweredChanged += Receiver_IsPoweredChanged;
ResourceSink.Update();
SlimBlock.ComponentStack.IsFunctionalChanged += ComponentStack_IsFunctionalChanged;
ResourceSink.Update();
}
开发者ID:2asoft,项目名称:SpaceEngineers,代码行数:28,代码来源:MyAirtightDoorGeneric.cs
示例6: MyGasGenerator
public MyGasGenerator()
{
#if XB1 // XB1_SYNC_NOREFLECTION
m_useConveyorSystem = SyncType.CreateAndAddProp<bool>();
#endif // XB1
CreateTerminalControls();
SourceComp = new MyResourceSourceComponent(2);
ResourceSink = new MyResourceSinkComponent();
}
开发者ID:ChristianHeinz71,项目名称:SpaceEngineers,代码行数:9,代码来源:MyGasGenerator.cs
示例7: MyPhysicalDistributionGroup
public MyPhysicalDistributionGroup(MyDefinitionId typeId, MyResourceSinkComponent tempConnectedSink)
{
SinksByPriority = null; SourcesByPriority = null; SinkSourcePairs = null; FirstEndpoint = null;
SinkDataByPriority = null; SourceDataByPriority = null; StockpilingStorage = null; OtherStorage = null;
InputOutputData = new MyTuple<MySinkGroupData, MySourceGroupData>();
MaxAvailableResources = 0f; ResourceState = MyResourceStateEnum.NoPower;
AllocateData();
InitFromTempConnected(typeId, tempConnectedSink);
}
开发者ID:stanhebben,项目名称:SpaceEngineers,代码行数:10,代码来源:MyResourceDistributorComponent.cs
示例8: MyAirVent
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();
}
开发者ID:ChristianHeinz71,项目名称:SpaceEngineers,代码行数:11,代码来源:MyAirVent.cs
示例9: PlugIn
public void PlugIn(MyResourceSinkComponent consumer)
{
if (m_pluggedInConsumer == consumer)
return;
Debug.Assert(m_pluggedInConsumer == null, "Consumer already plugged in.");
m_pluggedInConsumer = consumer;
if (m_resourceDistributor != null)
{
m_resourceDistributor.AddSink(consumer);
consumer.Update();
}
}
开发者ID:ChristianHeinz71,项目名称:SpaceEngineers,代码行数:12,代码来源:MyRechargeSocket.cs
示例10: MyGridWheelSystem
public MyGridWheelSystem(MyCubeGrid grid)
{
m_wheels = new HashSet<MyMotorSuspension>();
m_wheelsChanged = false;
m_grid = grid;
SinkComp = new MyResourceSinkComponent();
SinkComp.Init(MyStringHash.GetOrCompute("Utility"), m_maxRequiredPowerInput, () => m_maxRequiredPowerInput);
SinkComp.IsPoweredChanged += Receiver_IsPoweredChanged;
grid.OnPhysicsChanged += grid_OnPhysicsChanged;
}
开发者ID:fluxit,项目名称:SpaceEngineers,代码行数:12,代码来源:MyGridWheelSystem.cs
示例11: MyGridGyroSystem
public MyGridGyroSystem(MyCubeGrid grid)
{
m_grid = grid;
m_gyros = new HashSet<MyGyro>();
m_gyrosChanged = false;
ResourceSink = new MyResourceSinkComponent();
ResourceSink.Init(
MyStringHash.GetOrCompute("Gyro"),
m_maxRequiredPowerInput,
() => m_maxRequiredPowerInput);
ResourceSink.IsPoweredChanged += Receiver_IsPoweredChanged;
}
开发者ID:fluxit,项目名称:SpaceEngineers,代码行数:12,代码来源:MyGridGyroSystem.cs
示例12: Init
public override void Init(MyObjectBuilder_CubeBlock objectBuilder, MyCubeGrid cubeGrid)
{
m_cameraDummy = Matrix.Identity;
m_characterDummy = Matrix.Identity;
base.Init(objectBuilder, cubeGrid);
if (ResourceSink == null)
{
// we've already created ResourceSink in ancestor!
var sinkComp = new MyResourceSinkComponent();
sinkComp.Init(
MyStringHash.GetOrCompute(BlockDefinition.ResourceSinkGroup),
BlockDefinition.IdlePowerConsumption,
this.CalculateRequiredPowerInput);
sinkComp.IsPoweredChanged += Receiver_IsPoweredChanged;
ResourceSink = sinkComp;
}
else
{
// override electricity settings
ResourceSink.SetMaxRequiredInputByType(MyResourceDistributorComponent.ElectricityId, BlockDefinition.IdlePowerConsumption);
ResourceSink.SetRequiredInputFuncByType(MyResourceDistributorComponent.ElectricityId, this.CalculateRequiredPowerInput);
ResourceSink.IsPoweredChanged += Receiver_IsPoweredChanged;
}
var chamberOb = objectBuilder as MyObjectBuilder_CryoChamber;
if (chamberOb.SteamId != null && chamberOb.SerialId != null)
{
m_currentPlayerId = new MyPlayer.PlayerId(chamberOb.SteamId.Value, chamberOb.SerialId.Value);
}
else
{
m_currentPlayerId = null;
}
var overlayTexture = BlockDefinition.OverlayTexture;
if (!string.IsNullOrEmpty(overlayTexture))
{
m_overlayTextureName = overlayTexture;
}
HorizonIndicatorEnabled = false;
NeedsUpdate |= MyEntityUpdateEnum.BEFORE_NEXT_FRAME | MyEntityUpdateEnum.EACH_10TH_FRAME;
}
开发者ID:ales-vilchytski,项目名称:SpaceEngineers,代码行数:49,代码来源:MyCryoChamber.cs
示例13: Init
public override void Init(MyObjectBuilder_CubeBlock objectBuilder, MyCubeGrid cubeGrid)
{
var ob = objectBuilder as MyObjectBuilder_Collector;
var sinkComp = new MyResourceSinkComponent();
sinkComp.Init(
MyStringHash.GetOrCompute(BlockDefinition.ResourceSinkGroup),
BlockDefinition.RequiredPowerInput,
ComputeRequiredPower);
ResourceSink = sinkComp;
base.Init(objectBuilder, cubeGrid);
m_useConveyorSystem.Value = true;
if (MyFakes.ENABLE_INVENTORY_FIX)
{
FixSingleInventory();
}
if (this.GetInventory() == null)
{
MyInventory inventory = new MyInventory(BlockDefinition.InventorySize.Volume, BlockDefinition.InventorySize, MyInventoryFlags.CanSend);
Components.Add<MyInventoryBase>(inventory);
inventory.Init(ob.Inventory);
}
Debug.Assert(this.GetInventory().Owner == this, "Ownership was not set!");
if (Sync.IsServer && CubeGrid.CreatePhysics)
LoadDummies();
ResourceSink.IsPoweredChanged += Receiver_IsPoweredChanged;
AddDebugRenderComponent(new Components.MyDebugRenderComponentDrawPowerReciever(ResourceSink,this));
SlimBlock.ComponentStack.IsFunctionalChanged += UpdateReceiver;
base.EnabledChanged += UpdateReceiver;
m_useConveyorSystem.Value = ob.UseConveyorSystem;
ResourceSink.Update();
NeedsUpdate |= MyEntityUpdateEnum.EACH_100TH_FRAME;
}
开发者ID:rem02,项目名称:SpaceEngineers,代码行数:41,代码来源:MyCollector.cs
示例14: Init
public override void Init(MyObjectBuilder_CubeBlock objectBuilder, MyCubeGrid cubeGrid)
{
var def = BlockDefinition as MyPoweredCargoContainerDefinition;
var sinkComp = new MyResourceSinkComponent();
sinkComp.Init(
MyStringHash.GetOrCompute(def.ResourceSinkGroup),
MyEnergyConstants.MAX_REQUIRED_POWER_COLLECTOR,
() => base.CheckIsWorking() ? ResourceSink.MaxRequiredInput : 0f);
ResourceSink = sinkComp;
ResourceSink.Update();
base.Init(objectBuilder, cubeGrid);
var ob = objectBuilder as MyObjectBuilder_Collector;
m_useConveyorSystem.Value = true;
if (MyFakes.ENABLE_INVENTORY_FIX)
{
FixSingleInventory();
}
if (this.GetInventory() == null)
{
Components.Add<MyInventoryBase>( new MyInventory(def.InventorySize.Volume, def.InventorySize, MyInventoryFlags.CanSend, this));
this.GetInventory().Init(ob.Inventory);
}
Debug.Assert(this.GetInventory().Owner == this, "Ownership was not set!");
if (Sync.IsServer && CubeGrid.CreatePhysics)
LoadDummies();
ResourceSink.IsPoweredChanged += Receiver_IsPoweredChanged;
AddDebugRenderComponent(new Components.MyDebugRenderComponentDrawPowerReciever(ResourceSink,this));
SlimBlock.ComponentStack.IsFunctionalChanged += UpdateReceiver;
base.EnabledChanged += UpdateReceiver;
m_useConveyorSystem.Value = ob.UseConveyorSystem;
}
开发者ID:stanhebben,项目名称:SpaceEngineers,代码行数:40,代码来源:MyCollector.cs
示例15: Init
public override void Init(MyObjectBuilder_CubeBlock objectBuilder, MyCubeGrid cubeGrid)
{
var sinkComp = new MyResourceSinkComponent();
sinkComp.Init(
BlockDefinition.ResourceSinkGroup,
BlockDefinition.RequiredPowerInput,
CalculateRequiredPowerInput);
ResourceSink = sinkComp;
base.Init(objectBuilder, cubeGrid);
if (!MyFakes.ENABLE_PROJECTOR_BLOCK)
{
return;
}
var projectorBuilder = (MyObjectBuilder_ProjectorBase)objectBuilder;
if (projectorBuilder.ProjectedGrid != null)
{
m_projectionOffset = projectorBuilder.ProjectionOffset;
m_projectionRotation = projectorBuilder.ProjectionRotation;
m_savedProjection = projectorBuilder.ProjectedGrid;
KeepProjection = projectorBuilder.KeepProjection;
}
m_showOnlyBuildable = projectorBuilder.ShowOnlyBuildable;
InstantBuildingEnabled = projectorBuilder.InstantBuildingEnabled;
MaxNumberOfProjections = projectorBuilder.MaxNumberOfProjections;
MaxNumberOfBlocksPerProjection = projectorBuilder.MaxNumberOfBlocks;
GetOwnershipFromProjector = projectorBuilder.GetOwnershipFromProjector;
m_projectionsRemaining = MathHelper.Clamp(projectorBuilder.ProjectionsRemaining, 0, m_maxNumberOfProjections);
IsWorkingChanged += MyProjector_IsWorkingChanged;
sinkComp.IsPoweredChanged += PowerReceiver_IsPoweredChanged;
ResourceSink.Update();
m_statsDirty = true;
UpdateText();
NeedsUpdate |= MyEntityUpdateEnum.BEFORE_NEXT_FRAME | MyEntityUpdateEnum.EACH_100TH_FRAME;
SlimBlock.ComponentStack.IsFunctionalChanged += ComponentStack_IsFunctionalChanged;
CubeGrid.OnBlockAdded += previewGrid_OnBlockAdded;
CubeGrid.OnBlockRemoved += previewGrid_OnBlockRemoved;
CubeGrid.OnGridSplit += CubeGrid_OnGridSplit;
}
开发者ID:Rynchodon,项目名称:SpaceEngineers,代码行数:50,代码来源:MyProjectorBase.cs
示例16: Init
public override void Init(MyObjectBuilder_CubeBlock objectBuilder, MyCubeGrid cubeGrid)
{
var beaconDefinition = BlockDefinition as MyBeaconDefinition;
Debug.Assert(beaconDefinition != null);
var sinkComp = new MyResourceSinkComponent();
sinkComp.Init(
MyStringHash.GetOrCompute(beaconDefinition.ResourceSinkGroup),
MyEnergyConstants.MAX_REQUIRED_POWER_BEACON,
UpdatePowerInput);
ResourceSink = sinkComp;
RadioBroadcaster = new MyRadioBroadcaster(10000);
if (((MyObjectBuilder_Beacon)objectBuilder).BroadcastRadius != 0)
RadioBroadcaster.BroadcastRadius = ((MyObjectBuilder_Beacon)objectBuilder).BroadcastRadius;
base.Init(objectBuilder, cubeGrid);
sinkComp.IsPoweredChanged += Receiver_IsPoweredChanged;
sinkComp.Update();
RadioBroadcaster.OnBroadcastRadiusChanged += OnBroadcastRadiusChanged;
m_largeLight = cubeGrid.GridSizeEnum == MyCubeSize.Large;
m_light = MyLights.AddLight();
m_light.Start(MyLight.LightTypeEnum.PointLight, 1.5f);
m_light.LightOwner = m_largeLight ? MyLight.LightOwnerEnum.LargeShip : MyLight.LightOwnerEnum.SmallShip;
m_light.UseInForwardRender = true;
m_light.Range = 1;
m_light.GlareOn = true;
m_light.GlareIntensity = m_largeLight ? 2 : 1;
m_light.GlareQuerySize = m_largeLight ? 15f : 0.2f;
m_light.GlareType = VRageRender.Lights.MyGlareTypeEnum.Distant;
m_light.GlareMaterial = m_largeLight ? "GlareLsLight"
: "GlareSsLight";
m_light.GlareMaxDistance = GLARE_MAX_DISTANCE;
if (m_largeLight)
m_lightPositionOffset = new Vector3(0f, CubeGrid.GridSize * 0.5f, 0f);
else
m_lightPositionOffset = Vector3.Zero;
UpdateLightPosition();
AddDebugRenderComponent(new MyDebugRenderComponentDrawPowerReciever(ResourceSink,this));
AnimationRunning = true;
SlimBlock.ComponentStack.IsFunctionalChanged += ComponentStack_IsFunctionalChanged;
IsWorkingChanged += MyBeacon_IsWorkingChanged;
ShowOnHUD = false;
UpdateText();
}
开发者ID:stanhebben,项目名称:SpaceEngineers,代码行数:60,代码来源:MyBeacon.cs
示例17: MyCharacter
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());
}
开发者ID:ChristianHeinz71,项目名称:SpaceEngineers,代码行数:58,代码来源:MyCharacter.cs
示例18: Init
public override void Init(MyObjectBuilder_CubeBlock builder, MyCubeGrid cubeGrid)
{
base.Init(builder, cubeGrid);
//m_subpartsSize = 0.5f * (0.5f * SlimBlock.CubeGrid.GridSize - 0.3f);
var doorDefinition = BlockDefinition as MyDoorDefinition;
MyStringHash resourceSinkGroup;
if (doorDefinition != null)
{
MaxOpen = doorDefinition.MaxOpen;
m_openSound = new MySoundPair(doorDefinition.OpenSound);
m_closeSound = new MySoundPair(doorDefinition.CloseSound);
resourceSinkGroup = MyStringHash.GetOrCompute(doorDefinition.ResourceSinkGroup);
}
else
{
MaxOpen = 1.2f;
m_openSound = new MySoundPair("BlockDoorSmallOpen");
m_closeSound = new MySoundPair("BlockDoorSmallClose");
resourceSinkGroup = MyStringHash.GetOrCompute("Doors");
}
var ob = (MyObjectBuilder_Door)builder;
m_open = ob.State;
m_currOpening = ob.Opening;
var sinkComp = new MyResourceSinkComponent();
sinkComp.Init(
resourceSinkGroup,
MyEnergyConstants.MAX_REQUIRED_POWER_DOOR,
() => (Enabled && IsFunctional) ? sinkComp.MaxRequiredInput : 0f);
sinkComp.IsPoweredChanged += Receiver_IsPoweredChanged;
sinkComp.Update();
ResourceSink = sinkComp;
if (!Enabled || !ResourceSink.IsPowered)
UpdateSlidingDoorsPosition(true);
OnStateChange();
if (m_open)
{
// required when reinitializing a door after the armor beneath it is destroyed
if (Open && (m_currOpening == MaxOpen))
UpdateSlidingDoorsPosition(true);
}
SlimBlock.ComponentStack.IsFunctionalChanged += ComponentStack_IsFunctionalChanged;
}
开发者ID:fluxit,项目名称:SpaceEngineers,代码行数:50,代码来源:MyDoor.cs
示例19: Receiver_RequiredInputChanged
protected void Receiver_RequiredInputChanged(MyDefinitionId resourceTypeId, MyResourceSinkComponent receiver, float oldRequirement, float newRequirement)
{
UpdateText();
}
开发者ID:liiir1985,项目名称:SpaceEngineers,代码行数:4,代码来源:MySensorBlock.cs
示例20: Init
public override void Init(MyObjectBuilder_CubeBlock objectBuilder, MyCubeGrid cubeGrid)
{
SyncFlag = true;
var sinkComp = new MyResourceSinkComponent();
sinkComp.Init(
BlockDefinition.ResourceSinkGroup,
BlockDefinition.RequiredPowerInput,
this.CalculateRequiredPowerInput);
ResourceSink = sinkComp;
base.Init(objectBuilder, cubeGrid);
m_items = new List<ToolbarItem>(2);
for (int i = 0; i < 2; i++)
{
m_items.Add(new ToolbarItem() { EntityID = 0 });
}
Toolbar = new MyToolbar(MyToolbarType.ButtonPanel, 2, 1);
Toolbar.DrawNumbers = false;
var builder = (MyObjectBuilder_SensorBlock)objectBuilder;
m_fieldMin.Value = Vector3.Clamp(builder.FieldMin, new Vector3(-MaxRange), -Vector3.One);
m_fieldMax.Value = Vector3.Clamp(builder.FieldMax, Vector3.One, new Vector3(MaxRange));
PlayProximitySound = builder.PlaySound;
DetectPlayers = builder.DetectPlayers;
DetectFloatingObjects = builder.DetectFloatingObjects;
DetectSmallShips = builder.DetectSmallShips;
DetectLargeShips = builder.DetectLargeShips;
DetectStations = builder.DetectStations;
DetectAsteroids = builder.DetectAsteroids;
DetectOwner = builder.DetectOwner;
DetectFriendly = builder.DetectFriendly;
DetectNeutral = builder.DetectNeutral;
DetectEnemy = builder.DetectEnemy;
m_active.Value = builder.IsActive;
Toolbar.Init(builder.Toolbar, this);
for (int i = 0; i < 2; i++)
{
var item = Toolbar.GetItemAtIndex(i);
if (item == null)
continue;
m_items.RemoveAt(i);
m_items.Insert(i, ToolbarItem.FromItem(item));
}
Toolbar.ItemChanged += Toolbar_ItemChanged;
NeedsUpdate |= MyEntityUpdateEnum.EACH_10TH_FRAME;
SlimBlock.ComponentStack.IsFunctionalChanged += ComponentStack_IsFunctionalChanged;
ResourceSink.IsPoweredChanged += Receiver_IsPoweredChanged;
ResourceSink.RequiredInputChanged += Receiver_RequiredInputChanged;
ResourceSink.Update();
m_fieldShape = GetHkShape();
OnClose += delegate(MyEntity self)
{
m_fieldShape.RemoveReference();
};
m_gizmoColor = MySandboxGame.IsDirectX11 ? new Vector4(0.35f, 0, 0, 0.5f) : new Vector4(0.1f, 0, 0, 0.1f);
}
开发者ID:liiir1985,项目名称:SpaceEngineers,代码行数:70,代码来源:MySensorBlock.cs
注:本文中的Sandbox.Game.EntityComponents.MyResourceSinkComponent类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论