public FallerComponent(Transform transform, Vector2 initial_velocity) { this.transform = transform; transformInstanceId = transform.GetInstanceID(); isFalling = false; initialVelocity = initial_velocity; partitionerEntry = default(HandleVector <int> .Handle); solidChangedCB = null; cellChangedCB = null; KCircleCollider2D component = transform.GetComponent <KCircleCollider2D>(); if ((UnityEngine.Object)component != (UnityEngine.Object)null) { offset = component.radius; } else { KCollider2D component2 = transform.GetComponent <KCollider2D>(); if ((UnityEngine.Object)component2 != (UnityEngine.Object)null) { Vector3 position = transform.GetPosition(); float y = position.y; Vector3 min = component2.bounds.min; offset = y - min.y; } else { offset = 0f; } } }
private static void OnMassChanged(HandleVector <int> .Handle handle, object other_data) { OreSizeVisualizerData data = GameComps.OreSizeVisualizers.GetData(handle); PrimaryElement primaryElement = data.primaryElement; float num = primaryElement.Mass; if (other_data != null) { Pickupable pickupable = (Pickupable)other_data; PrimaryElement component = pickupable.GetComponent <PrimaryElement>(); num += component.Mass; } MassTier massTier = default(MassTier); for (int i = 0; i < MassTiers.Length; i++) { if (num <= MassTiers[i].massRequired) { massTier = MassTiers[i]; break; } } KBatchedAnimController component2 = primaryElement.GetComponent <KBatchedAnimController>(); component2.Play(massTier.animName, KAnim.PlayMode.Once, 1f, 0f); KCircleCollider2D component3 = primaryElement.GetComponent <KCircleCollider2D>(); if ((UnityEngine.Object)component3 != (UnityEngine.Object)null) { component3.radius = massTier.colliderRadius; } primaryElement.Trigger(1807976145, null); }
public static float GetRadius(Transform transform) { KCircleCollider2D component = transform.GetComponent <KCircleCollider2D>(); if ((UnityEngine.Object)component != (UnityEngine.Object)null) { return(component.radius); } KCollider2D component2 = transform.GetComponent <KCollider2D>(); if ((UnityEngine.Object)component2 != (UnityEngine.Object)null) { Vector3 position = transform.GetPosition(); float y = position.y; Vector3 min = component2.bounds.min; return(y - min.y); } return(0f); }
public GameObject CreatePrefab() { GameObject gameObject = EntityTemplates.CreateEntity(ID, UI.SPACEDESTINATIONS.COMETS.ROCKCOMET.NAME, true); gameObject.AddOrGet <SaveLoadRoot>(); gameObject.AddOrGet <LoopingSounds>(); Comet comet = gameObject.AddOrGet <Comet>(); float mass = ElementLoader.FindElementByHash(SimHashes.Regolith).defaultValues.mass; comet.massRange = new Vector2(mass * 0.8f * 6f, mass * 1.2f * 6f); comet.temperatureRange = new Vector2(323.15f, 423.15f); comet.addTiles = 6; comet.addTilesMinHeight = 2; comet.addTilesMaxHeight = 8; comet.entityDamage = 20; comet.totalTileDamage = 0f; comet.splashRadius = 1; comet.impactSound = "Meteor_Large_Impact"; comet.flyingSoundID = 2; comet.explosionEffectHash = SpawnFXHashes.MeteorImpactDirt; PrimaryElement primaryElement = gameObject.AddOrGet <PrimaryElement>(); primaryElement.SetElement(SimHashes.Regolith); primaryElement.Temperature = (comet.temperatureRange.x + comet.temperatureRange.y) / 2f; KBatchedAnimController kBatchedAnimController = gameObject.AddOrGet <KBatchedAnimController>(); kBatchedAnimController.AnimFiles = new KAnimFile[1] { Assets.GetAnim("meteor_rock_kanim") }; kBatchedAnimController.isMovable = true; kBatchedAnimController.initialAnim = "fall_loop"; kBatchedAnimController.initialMode = KAnim.PlayMode.Loop; KCircleCollider2D kCircleCollider2D = gameObject.AddOrGet <KCircleCollider2D>(); kCircleCollider2D.radius = 0.5f; return(gameObject); }
public GameObject CreatePrefab() { GameObject gameObject = EntityTemplates.CreateEntity(ID, UI.SPACEDESTINATIONS.COMETS.GOLDCOMET.NAME, true); gameObject.AddOrGet <SaveLoadRoot>(); gameObject.AddOrGet <LoopingSounds>(); Comet comet = gameObject.AddOrGet <Comet>(); comet.massRange = new Vector2(3f, 20f); comet.temperatureRange = new Vector2(323.15f, 423.15f); comet.explosionOreCount = new Vector2I(2, 4); comet.entityDamage = 15; comet.totalTileDamage = 0.5f; comet.splashRadius = 1; comet.impactSound = "Meteor_Medium_Impact"; comet.flyingSoundID = 1; comet.explosionEffectHash = SpawnFXHashes.MeteorImpactMetal; PrimaryElement primaryElement = gameObject.AddOrGet <PrimaryElement>(); primaryElement.SetElement(SimHashes.GoldAmalgam); primaryElement.Temperature = (comet.temperatureRange.x + comet.temperatureRange.y) / 2f; KBatchedAnimController kBatchedAnimController = gameObject.AddOrGet <KBatchedAnimController>(); kBatchedAnimController.AnimFiles = new KAnimFile[1] { Assets.GetAnim("meteor_gold_kanim") }; kBatchedAnimController.isMovable = true; kBatchedAnimController.initialAnim = "fall_loop"; kBatchedAnimController.initialMode = KAnim.PlayMode.Loop; kBatchedAnimController.visibilityType = KAnimControllerBase.VisibilityType.OffscreenUpdate; KCircleCollider2D kCircleCollider2D = gameObject.AddOrGet <KCircleCollider2D>(); kCircleCollider2D.radius = 0.5f; gameObject.transform.localScale = new Vector3(0.6f, 0.6f, 1f); return(gameObject); }
public static GameObject AddCollision(GameObject template, CollisionShape shape, float width, float height) { switch (shape) { case CollisionShape.RECTANGLE: { KBoxCollider2D kBoxCollider2D = template.AddOrGet <KBoxCollider2D>(); kBoxCollider2D.size = new Vector2f(width, height); break; } case CollisionShape.POLYGONAL: template.AddOrGet <PolygonCollider2D>(); break; default: { KCircleCollider2D kCircleCollider2D = template.AddOrGet <KCircleCollider2D>(); kCircleCollider2D.radius = Mathf.Max(width, height); break; } } return(template); }