void OnTriggerEnter(Collider other)
 {
     if (LinkedHab != null)
     {
         LinkedHab.ImportProduceToOrganicMeal(other.GetComponent <ResourceComponent>());
     }
 }
    private void Display()
    {
        ResourceContainer bioC     = LinkedHab.Get(Matter.Biomass);
        ResourceContainer organicC = LinkedHab.Get(Matter.OrganicMeals);
        ResourceContainer rationC  = LinkedHab.Get(Matter.RationMeals);
        ResourceContainer powderC  = LinkedHab.Get(Matter.MealPowders);
        ResourceContainer shakeC   = LinkedHab.Get(Matter.MealShakes);

        float days = (
            (
                (
                    (bioC.CurrentAmount + organicC.CurrentAmount + rationC.CurrentAmount) * Matter.OrganicMeals.UnitsPerCubicMeter()
                ) / 2f
                +
                (
                    (powderC.CurrentAmount + shakeC.CurrentAmount) * Matter.MealShakes.UnitsPerCubicMeter()
                ) / 4f
            )
            );

        DisplayOut.text = string.Format("Meals: {0:0.##} day{9}\nBiomass:    {1:0.##}/{2:0.##}\nOrganic:  {3:0.##}/{4:0.##}\nRation:  {10:0.##}/{11:0.##}\nPowdered: {5:0.##}/{6:0.##}\nShakes:      {7:0.##}/{8:0.##}",
                                        days,
                                        bioC.CurrentAmount * Matter.Biomass.UnitsPerCubicMeter(),
                                        bioC.TotalCapacity * Matter.Biomass.UnitsPerCubicMeter(),
                                        organicC.CurrentAmount * Matter.OrganicMeals.UnitsPerCubicMeter(),
                                        organicC.TotalCapacity * Matter.OrganicMeals.UnitsPerCubicMeter(),
                                        powderC.CurrentAmount * Matter.MealPowders.UnitsPerCubicMeter(),
                                        powderC.TotalCapacity * Matter.MealPowders.UnitsPerCubicMeter(),
                                        shakeC.CurrentAmount * Matter.MealShakes.UnitsPerCubicMeter(),
                                        shakeC.TotalCapacity * Matter.MealShakes.UnitsPerCubicMeter(),
                                        (days == 1) ? "" : "s",
                                        rationC.CurrentAmount * Matter.RationMeals.UnitsPerCubicMeter(),
                                        rationC.TotalCapacity * Matter.RationMeals.UnitsPerCubicMeter()
                                        );
    }
 protected override void OnResourceChange(params Matter[] changedMatter)
 {
     print("showing pantry contents");
     ShowPantry(RationMeals, LinkedHab.Get(Matter.RationMeals));
     ShowPantry(OrganicMeals, LinkedHab.Get(Matter.OrganicMeals));
     ShowPantry(ShakePowders, LinkedHab.Get(Matter.MealPowders));
     ShowPantry(ShakeMeals, LinkedHab.Get(Matter.MealShakes));
     Display();
 }
Ejemplo n.º 4
0
    protected override void OnResourceChange(params Matter[] changedMatter)
    {
        int numBarrels = Mathf.CeilToInt(Barrels.Count * LinkedHab.Get(RedHomestead.Simulation.Matter.Water).UtilizationPercentage);

        for (int i = 0; i < Barrels.Count; i++)
        {
            Barrels[i].gameObject.SetActive(numBarrels >= i + 1);
        }

        base.OnResourceChange(changedMatter);
    }
Ejemplo n.º 5
0
    private void DisplaySingleContainer()
    {
        ResourceContainer container = LinkedHab.Get(DisplayResource);

        DisplayOut.text = string.Format("{0}: {1}\n{2}/{3}kg",
                                        HeaderText,
                                        container.UtilizationPercentageString(),
                                        container.CurrentAmount,
                                        container.TotalCapacity
                                        //container.LastTickRateOfChange == 0 ? " " : container.LastTickRateOfChange > 0 ? "+" : "-",
                                        //container.LastTickRateOfChange,
                                        //"g/s" //todo: make human readable with large/small quants and scales
                                        );
    }
Ejemplo n.º 6
0
    protected override void OnResourceChange(params Matter[] changedMatter)
    {
        base.OnResourceChange();

        ResourceContainer container  = LinkedHab.Get(DisplayResource);
        float             percentage = 0f;

        if (container != null)
        {
            percentage = container.UtilizationPercentage;
        }

        flowAmountRenderer.transform.localScale = new Vector3(1, percentage, 1);
    }