本文整理汇总了C#中MyEntity类的典型用法代码示例。如果您正苦于以下问题:C# MyEntity类的具体用法?C# MyEntity怎么用?C# MyEntity使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
MyEntity类属于命名空间,在下文中一共展示了MyEntity类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Start
// This method realy initiates/starts the missile
// IMPORTANT: Direction vector must be normalized!
public void Start(
Vector3 position,
Vector3 initialVelocity,
Vector3 direction,
float impulseMultiplier,
MyEntity owner)
{
if (Physics.Static)
{
Physics.Static = false;
}
base.Start(position, initialVelocity, direction, impulseMultiplier, owner, MyTextsWrapper.Get(MyTextsWrapperEnum.RemoteCameraHud));
Physics.AngularDamping = 1;
Health = MaxHealth;
m_directionAfterContact = null;
var ownerShip = owner as MySmallShip;
if (ownerShip != null)
{
ownerShip.Config.BackCamera.SetOn();
ownerShip.AddRemoteCamera(this);
ownerShip.SelectLastRemoteCamera();
}
}
示例2: Update
public override bool Update(MyPlayer player, MyEntity me)
{
if (me!=null)
if (Vector3D.DistanceSquared(me.PositionComp.GetPosition(), TargetPos) > m_maxDistance2)
m_IsTrue = true;
return IsTrue;
}
示例3: Init
public static void Init()
{
if ( !PluginSettings.Instance.PlayerBlockEnforcementEnabled )
return;
if (_init)
return;
_init = true;
MyEntities.OnEntityAdd += MyEntities_OnEntityAdd;
HashSet<MyEntity> allEntities = new HashSet<MyEntity>();
Wrapper.GameAction( () => allEntities = MyEntities.GetEntities() );
MyEntity[] entitiesCopy = new MyEntity[allEntities.Count];
allEntities.CopyTo( entitiesCopy );
Parallel.ForEach( entitiesCopy, ( entity ) =>
{
var grid = entity as MyCubeGrid;
if ( grid == null )
return;
InitGrid( grid );
} );
Essentials.Log.Info( "Initialized player block enforcement." );
ProcessEnforcement();
}
示例4: on_entity_deleted
private void on_entity_deleted(MyEntity entity)
{
//log_event("on_entity_deleted", entity);
var cube_grid = entity as MyCubeGrid;
if (cube_grid != null)
grid_manager.remove_grid(cube_grid);
}
示例5: Update
public override bool Update(MyPlayer player, MyEntity me)
{
if (MySession.Static.IsScenario)
if (m_limit <= DateTime.UtcNow - MyScenarioSystem.Static.ServerStartGameTime)
m_IsTrue = true;
return IsTrue;
}
示例6: MyCharacterPhysicsStateGroup
public MyCharacterPhysicsStateGroup(MyEntity entity, IMyReplicable ownerReplicable)
: base(entity, ownerReplicable)
{
// This is 9 bits per component which is more than enough (512 discrete values per-axis)
m_lowPrecisionOrientation = true;
FindSupportDelegate = () => MySupportHelper.FindSupportForCharacter(Entity);
}
示例7: IsMoving
override protected bool IsMoving(MyEntity entity)
{
// Never know if somebody is moving entity when physics is null
return Entity.Physics == null
|| Vector3.IsZero(entity.Physics.LinearVelocity, PRECISION) == false
|| Entity.RotationSpeed > 0.0f;
}
示例8: Update
public override ChangeInfo Update(MyEntity owner, long playerID = 0)
{
if (MyCubeBuilder.Static==null)
return ChangeInfo.None;
var blockDefinition = MyCubeBuilder.Static.IsActivated ? MyCubeBuilder.Static.ToolbarBlockDefinition : null;
if ((MyCubeBuilder.Static.BlockCreationIsActivated || MyCubeBuilder.Static.MultiBlockCreationIsActivated) && blockDefinition != null && (!MyFakes.ENABLE_BATTLE_SYSTEM || !MySession.Static.Battle))
{
var blockDef = (this.Definition as Sandbox.Definitions.MyCubeBlockDefinition);
if (blockDefinition.BlockPairName == blockDef.BlockPairName)
{
WantsToBeSelected = true;
}
else if (blockDef.BlockStages != null && blockDef.BlockStages.Contains(blockDefinition.Id))
{
WantsToBeSelected = true;
}
else
{
WantsToBeSelected = false;
}
}
else
{
WantsToBeSelected = false;
}
return ChangeInfo.None;
}
示例9: Update
public bool Update(MyPlayer player, MyEntity entity) //returns if lost
{
//MySessionComponentMission.Static.TryCreateFromDefault(Id);
//if (IsLocal(player.Id))
// UpdateLocal(player.Id);
if (!Sync.IsServer)
return false;
MyMissionTriggers mtrig;
if (!MissionTriggers.TryGetValue(player.Id, out mtrig))
{
//Debug.Assert(false,"Bad ID for update in missionTriggers");
mtrig = TryCreateFromDefault(player.Id, false);
}
mtrig.UpdateWin(player, entity);
if (!mtrig.Won)
mtrig.UpdateLose(player, entity);
else
{
m_someoneWon = true;
MyAnalyticsHelper.ReportTutorialEnd();
MyTutorialHelper.MissionSuccess();
}
return mtrig.Lost;
}
示例10: MyBasicObstacle
public MyBasicObstacle(MyEntity entity)
{
m_entity = entity;
m_entity.OnClosing += OnEntityClosing;
Update();
m_valid = true;
}
示例11: SectorOnContactPoint
private void SectorOnContactPoint(int itemId, MyEntity other, ref MyPhysics.MyContactPointEvent e)
{
// if item is already disabled: puff
// We get multiple contact points so this is for that
if (m_sector.DataView.Items[itemId].ModelIndex < 0) return;
var vel = Math.Abs(e.ContactPointEvent.SeparatingVelocity);
if (other == null || other.Physics == null || other is MyFloatingObject) return;
if (other is IMyHandheldGunObject<MyDeviceBase>) return;
// Prevent debris from breaking trees.
// Debris flies in unpredictable ways and this could cause out of sync tree destruction which would is bad.
if (other.Physics.RigidBody != null && other.Physics.RigidBody.Layer == MyPhysics.CollisionLayers.DebrisCollisionLayer) return;
// On objects held in manipulation tool, Havok returns high velocities, after this contact is fired by contraint solver.
// Therefore we disable damage from objects connected by constraint to character
if (MyManipulationTool.IsEntityManipulated(other))
return;
float otherMass = MyDestructionHelper.MassFromHavok(other.Physics.Mass);
double impactEnergy = vel * vel * otherMass;
// TODO: per item max impact energy
if (impactEnergy > ItemResilience(itemId))
{
BreakAt(itemId, e.Position, e.ContactPointEvent.ContactPoint.Normal, impactEnergy);
}
// Meteor destroy always
if (other is MyMeteor)
m_sector.EnableItem(itemId, false);
}
示例12: Init
public virtual void Init(Vector3 offset, MyEntity parentObject, MyModelsEnum model)
{
base.Init(null, model, null, parentObject, null, null);
LocalMatrix = Matrix.CreateTranslation(offset);
RotationSpeed = 0;
Save = false;
}
示例13: FindSupportForCharacterAABB
public static MyEntity FindSupportForCharacterAABB(MyEntity entity)
{
BoundingBoxD characterBox = entity.PositionComp.WorldAABB;
characterBox.Inflate(1.0);
m_entities.Clear();
MyEntities.GetTopMostEntitiesInBox(ref characterBox, m_entities);
float maxRadius = 0;
MyCubeGrid biggestGrid = null;
MyEntity voxel = null;
foreach(var parent in m_entities)
{
MyCubeGrid grid = parent as MyCubeGrid;
if(parent is MyVoxelBase)
{
voxel = (parent as MyVoxelBase).RootVoxel;
}
if(grid != null)
{
var rad = grid.PositionComp.LocalVolume.Radius;
if (rad > maxRadius || (rad == maxRadius && (biggestGrid == null || grid.EntityId > biggestGrid.EntityId)))
{
maxRadius = rad;
biggestGrid = grid;
}
}
}
if (biggestGrid == null)
{
return voxel;
}
return biggestGrid;
}
示例14: AddShotgun
// Not used apparently
public static void AddShotgun(MyProjectileAmmoDefinition ammoDefinition, MyEntity ignorePhysObject, Vector3 origin, Vector3 initialVelocity, Vector3 directionNormalized, bool groupStart, float thicknessMultiplier, MyEntity weapon, float frontBillboardSize, MyEntity ownerEntity = null, float projectileCountMultiplier = 1)
{
MyProjectile newProjectile = m_projectiles.Allocate();
if (newProjectile != null)
{
//newProjectile.Start(
// ammoDefinition,
// ignorePhysObject,
// origin,
// initialVelocity,
// directionNormalized,
// groupStart,
// thicknessMultiplier,
// 1,
// weapon,
// projectileCountMultiplier
// );
// newProjectile.BlendByCameraDirection = true;
// newProjectile.FrontBillboardMaterial = "ShotgunParticle";
// newProjectile.LengthMultiplier = 2;
// newProjectile.FrontBillboardSize = frontBillboardSize;
// newProjectile.OwnerEntity = ownerEntity != null ? ownerEntity : ignorePhysObject;
}
}
示例15: FirstIntoRowShouldReturnFirstRowIfMoreThanOneEntityUsed
public void FirstIntoRowShouldReturnFirstRowIfMoreThanOneEntityUsed()
{
var first = new MyEntity() { Table = "x" };
var second = new MyEntity() { Table = "y" };
var query = new SqlQuery().From(first).From(second.Table, Alias.T1).Into(second);
Assert.Equal(first, ((ISqlQueryExtensible)query).FirstIntoRow);
}