本文整理汇总了C#中Thing.OccupiedRect方法的典型用法代码示例。如果您正苦于以下问题:C# Thing.OccupiedRect方法的具体用法?C# Thing.OccupiedRect怎么用?C# Thing.OccupiedRect使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Thing
的用法示例。
在下文中一共展示了Thing.OccupiedRect方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Print
public override void Print(SectionLayer layer, Thing parent)
{
var occupiedRect = parent.OccupiedRect();
foreach (var current in occupiedRect)
{
var center = current.ToVector3ShiftedWithAltitude( AltitudeLayer.WorldDataOverlay );
Printer_Plane.PrintPlane( layer, center, new Vector2( 1f, 1f ), LinkedDrawMatFrom( parent, current ), 0f );
}
}
示例2: TrySpawnWeaponOnRack
public static void TrySpawnWeaponOnRack(Thing rack)
{
foreach (IntVec3 cell in rack.OccupiedRect())
{
if (Rand.Value < 0.33f)
{
float weaponSelector = Rand.Value;
ThingDef thingDef = ThingDefOf.Gun_Pistol;
const float weaponsRatio = 1f / 7f;
if (weaponSelector < weaponsRatio * 1f)
{
thingDef = ThingDef.Named("Gun_PumpShotgun");
}
else if (weaponSelector < weaponsRatio * 2f)
{
thingDef = ThingDef.Named("Gun_AssaultRifle");
}
else if (weaponSelector < weaponsRatio * 3f)
{
thingDef = ThingDef.Named("Gun_SniperRifle");
}
else if (weaponSelector < weaponsRatio * 4f)
{
thingDef = ThingDef.Named("Gun_IncendiaryLauncher");
}
else if (weaponSelector < weaponsRatio * 5f)
{
thingDef = ThingDef.Named("Gun_LMG");
}
else if (weaponSelector < weaponsRatio * 6f)
{
thingDef = ThingDef.Named("Bullet_ChargeRifle");
}
else
{
thingDef = ThingDefOf.Gun_Pistol;
}
Thing weapon = ThingMaker.MakeThing(thingDef);
CompQuality qualityComp = weapon.TryGetComp<CompQuality>();
if (qualityComp != null)
{
QualityCategory quality = (QualityCategory)Rand.RangeInclusive((int)QualityCategory.Normal, (int)QualityCategory.Superior);
qualityComp.SetQuality(quality, ArtGenerationContext.Outsider);
}
GenSpawn.Spawn(weapon, cell);
}
}
}
示例3: TrySpawnWeaponOnRack
public static void TrySpawnWeaponOnRack(Thing rack)
{
Building_Storage storage = rack as Building_Storage;
QualityRange qualityRange = new QualityRange(QualityCategory.Good, QualityCategory.Legendary);
storage.settings.filter.AllowedQualityLevels = qualityRange;
FloatRange hitPointsRange = new FloatRange(0.8f, 1f);
storage.settings.filter.AllowedHitPointsPercents = hitPointsRange;
foreach (IntVec3 cell in rack.OccupiedRect())
{
if (Rand.Value < 0.33f)
{
float weaponSelector = Rand.Value;
ThingDef thingDef = ThingDefOf.Gun_Pistol;
const float weaponsRatio = 1f / 7f;
if (weaponSelector < weaponsRatio * 1f)
{
thingDef = ThingDef.Named("Gun_PumpShotgun");
}
else if (weaponSelector < weaponsRatio * 2f)
{
thingDef = ThingDef.Named("Gun_AssaultRifle");
}
else if (weaponSelector < weaponsRatio * 3f)
{
thingDef = ThingDef.Named("Gun_SniperRifle");
}
else if (weaponSelector < weaponsRatio * 4f)
{
thingDef = ThingDef.Named("Gun_IncendiaryLauncher");
}
else if (weaponSelector < weaponsRatio * 5f)
{
thingDef = ThingDef.Named("Gun_LMG");
}
else if (weaponSelector < weaponsRatio * 6f)
{
thingDef = ThingDef.Named("Gun_ChargeRifle");
}
else
{
thingDef = ThingDefOf.Gun_Pistol;
}
Thing weapon = ThingMaker.MakeThing(thingDef);
CompQuality qualityComp = weapon.TryGetComp<CompQuality>();
if (qualityComp != null)
{
QualityCategory quality = (QualityCategory)Rand.RangeInclusive((int)QualityCategory.Normal, (int)QualityCategory.Excellent);
qualityComp.SetQuality(quality, ArtGenerationContext.Outsider);
}
GenSpawn.Spawn(weapon, cell);
}
}
}