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);
    }
Exemplo n.º 3
0
    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);
    }
Exemplo n.º 5
0
    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);
    }
Exemplo n.º 6
0
    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);
    }