예제 #1
0
    void InitiateGame()
    {
        condiments.Init();
        tropSale        = false;
        ilmanqueqqchose = false;
        activeRecipie   = lstRecipies[Random.Range(0, lstRecipies.Count)];
        panel.GetComponent <Image>().sprite = activeRecipie.sprite;

        if (state == State.pregame || state == State.endgame)
        {
            miamometerSlider.value = 0;
            miamometer.SetActive(false);
            foreach (GameObject objet in ingredients)
            {
                GameObject instance = Instantiate(objet);
                instance.transform.parent = ingredientsContainer.transform;
                Cookable ck = instance.GetComponent <Cookable>();
                if (ck != null)
                {
                    ck.casserole = casserole;
                    ck.gameState = gameObject;
                }
                instance.name = objet.name;
            }
            state = State.game;
            avancee.transform.localPosition = avanceeOriginPos;
            avanceeCount = 0;
        }
    }
예제 #2
0
 protected virtual void Awake()
 {
     dieTransform = transform;
     // This assumes that the Face GameObject, responsible for handling the dice sprite overlays,
     // is in the second position of the dice hierarchy.
     faceOverlayHandler = transform.GetChild(1).GetComponent <SpriteHandler>();
     netTransform       = GetComponent <CustomNetTransform>();
     cookable           = GetComponent <Cookable>();
 }
예제 #3
0
    private void OnTriggerExit(Collider other)
    {
        Cookable obj = other.attachedRigidbody.GetComponent <Cookable>();

        if (obj != null && cookables.Contains(obj))
        {
            obj.OnStopCooking();
            cookables.Remove(obj);
        }
    }
예제 #4
0
    private void OnTriggerEnter(Collider other)
    {
        Cookable obj = other.attachedRigidbody.GetComponent <Cookable>();

        if (obj != null)
        {
            obj.OnStartCooking();
            cookables.Add(obj);
        }
    }
        public void Revert()
        {
            Cookable cookable = this.GetComponent <Cookable>();

            if (cookable != null && this.additionalMinutes > 0)
            {
                cookable.m_PotableWaterRequiredLiters = potableWaterRequiredLiters;
                cookable.m_CookTimeMinutes           -= additionalMinutes;
            }
        }
예제 #6
0
    public override bool Validate()
    {
        Cookable cook = GetComponent <Cookable>();

        if (cook != null && cook.IsCooked)
        {
            is_done = true;
        }
        return(is_done);
    }
예제 #7
0
        private ApiResponse GetCookable(string shortname, bool detailed)
        {
            Cookable cookable = data.Cookables.FirstOrDefault(keyval => keyval.Key == shortname).Value;

            if (cookable == null)
            {
                return(Error(HttpStatusCode.NotFound, "Could not find a cookable with that name or shortname as the output."));
            }

            return(new ApiResponse(WrapCookable(cookable, detailed)));
        }
예제 #8
0
    void OnCollisionEnter(Collision Col)
    {
        try{
            Cookable C = Col.transform.gameObject.GetComponent <Cookable>();

            if (C != null)
            {
                C.Dirty = true;
            }
        }catch {}
    }
예제 #9
0
    void OnCollisionExit(Collision collision)
    {
        try{
            Cookable C = collision.transform.gameObject.GetComponent <Cookable>();

            if (C != null)
            {
                Items.Remove(C);
            }
        }catch {}
    }
예제 #10
0
    private void OpenMicrowaveAndEjectContents()
    {
        SoundManager.PlayNetworkedAtPos(DOOR_SOUND, WorldPosition, sourceObj: gameObject);

        Vector2 spritePosWorld             = spriteHandler.transform.position;
        Vector2 microwaveInteriorCenterAbs = spritePosWorld + new Vector2(-0.075f, -0.075f);
        Vector2 microwaveInteriorCenterRel = microwaveInteriorCenterAbs - WorldPosition.To2Int();

        // Looks nicer if we drop the item in the middle of the sprite's representation of the microwave's interior.
        Inventory.ServerDrop(storageSlot, microwaveInteriorCenterRel);
        storedCookable = null;
    }
예제 #11
0
    void OnCollisionEnter(Collision collision)
    {
        try{
            Cookable C = collision.transform.gameObject.GetComponent <Cookable>();

            if (C != null && collision.transform.position.y > this.transform.position.y)
            {
                collision.transform.SetParent(this.transform);
                collision.transform.position = new Vector3(this.transform.position.x, collision.transform.position.y, this.transform.position.z);
            }
        }catch {}
    }
        public void Apply()
        {
            Cookable cookable = this.GetComponent <Cookable>();

            if (cookable != null && this.additionalMinutes > 0)
            {
                this.potableWaterRequiredLiters = cookable.m_PotableWaterRequiredLiters;

                cookable.m_PotableWaterRequiredLiters = 0;
                cookable.m_CookTimeMinutes           += additionalMinutes;
            }
        }
예제 #13
0
    private void TransferToMicrowaveAndClose(ItemSlot fromSlot)
    {
        if (fromSlot != null && fromSlot.ItemObject != null)
        {
            Inventory.ServerTransfer(fromSlot, storageSlot);
            if (storageSlot.ItemObject.TryGetComponent(out Cookable cookable))
            {
                storedCookable = cookable;
            }
        }

        SoundManager.PlayNetworkedAtPos(DOOR_SOUND, WorldPosition, sourceObj: gameObject);
    }
예제 #14
0
        internal static void Configure(ModComponent modComponent)
        {
            ModCookableComponent modCookableComponent = modComponent.TryCast <ModCookableComponent>();

            if (modCookableComponent is null || !modCookableComponent.Cooking)
            {
                return;
            }

            Cookable cookable = ModComponentUtils.ComponentUtils.GetOrCreateComponent <Cookable>(modCookableComponent);

            cookable.m_CookableType               = ModComponentUtils.EnumUtils.TranslateEnumValue <Cookable.CookableType, CookableType>(modCookableComponent.type);
            cookable.m_CookTimeMinutes            = modCookableComponent.CookingMinutes;
            cookable.m_ReadyTimeMinutes           = modCookableComponent.BurntMinutes;
            cookable.m_NumUnitsRequired           = modCookableComponent.CookingUnitsRequired;
            cookable.m_PotableWaterRequiredLiters = modCookableComponent.CookingWaterRequired;
            cookable.m_WarmUpNearFireRange        = 1.5f;

            cookable.m_CookAudio     = ModComponentUtils.ModUtils.DefaultIfEmpty(modCookableComponent.CookingAudio, GetDefaultCookAudio(modCookableComponent));
            cookable.m_PutInPotAudio = ModComponentUtils.ModUtils.DefaultIfEmpty(modCookableComponent.StartCookingAudio, GetDefaultStartCookingAudio(modCookableComponent));

            Cookable template = ModComponentUtils.ComponentUtils.GetComponent <Cookable>(Resources.Load <GameObject>("GEAR_PinnacleCanPeaches"));

            cookable.m_MeshPotStyle       = template?.m_MeshPotStyle;
            cookable.m_MeshCanStyle       = template?.m_MeshCanStyle;
            cookable.m_LiquidMeshRenderer = template?.m_LiquidMeshRenderer;

            // either just heat or convert, but not both
            if (modCookableComponent.CookingResult is null)
            {
                // no conversion, just heating
                FoodItem foodItem = ModComponentUtils.ComponentUtils.GetComponent <FoodItem>(modCookableComponent);
                if (foodItem != null)
                {
                    foodItem.m_HeatedWhenCooked = true;
                }
            }
            else
            {
                // no heating, but instead convert the item when cooking completes
                GearItem cookedGearItem = modCookableComponent.CookingResult.GetComponent <GearItem>();
                if (cookedGearItem is null)
                {
                    // not mapped yet, do it now
                    AutoMapper.MapModComponent(modCookableComponent.CookingResult);
                    cookedGearItem = modCookableComponent.CookingResult.GetComponent <GearItem>();
                }

                cookable.m_CookedPrefab = cookedGearItem ?? throw new ArgumentException("CookingResult does not map to GearItem for prefab " + modCookableComponent.name);
            }
        }
예제 #15
0
 private void TransferToMicrowaveAndClose(ItemSlot fromSlot)
 {
     if (fromSlot == null || fromSlot.IsEmpty)
     {
         return;
     }
     if (!Inventory.ServerTransfer(fromSlot, storage.GetNextFreeIndexedSlot()))
     {
         return;
     }
     if (storageSlot.ItemObject.TryGetComponent(out Cookable cookable))
     {
         storedCookable = cookable;
     }
 }
        public void Revert()
        {
            Cookable cookable = this.GetComponent <Cookable>();

            if (cookable != null && this.additionalMinutes > 0)
            {
                //Implementation.Log("OriginalLiters: {0}", cookable.m_PotableWaterRequiredLiters);
                cookable.m_PotableWaterRequiredLiters = potableWaterRequiredLiters;
                //Implementation.Log("RevertedLiters: {0}", cookable.m_PotableWaterRequiredLiters);
                //Implementation.Log("OriginalCookTime: {0}", cookable.m_CookTimeMinutes);
                //cookable.m_CookTimeMinutes -= additionalMinutes;
                cookable.m_CookTimeMinutes = originalMinutes;
                //Implementation.Log("RevertedCookTime: {0}", cookable.m_CookTimeMinutes);
            }
        }
 // purchase if the player has enough gold
 public void Unpack()
 {
     // if the player has stock of the food type, unpack for use in the kitchen, reduce inventory accordingly
     if (inventoryReference.stock[dataReference.id] > 0)
     {
         GameObject newFood       = Instantiate(foodPrefab, inventoryReference.foodSpot.position, Quaternion.identity);
         Cookable   cookReference = newFood.GetComponent <Cookable>();
         cookReference.inventoryReference = inventoryReference;
         cookReference.dataReference      = dataReference;
         inventoryReference.activeFood.Add(newFood);
         inventoryReference.stock[dataReference.id]--;
     }
     else
     {
     }
 }
    public void RemoveFromGrill(Cookable obj)
    {
        objectsOnGrill.Remove(obj);

        if (objectsOnGrill.Count == 0)
        {
            grillSoundSource.Stop();
        }

        Food food = null;

        if (food = obj.GetComponent <Food>())
        {
            Sound_Manager.Instance.PlayRandomSFX(food.grabClips);
        }
    }
예제 #19
0
        private void TransferToMicrowaveAndClose(ItemSlot fromSlot)
        {
            if (fromSlot == null || fromSlot.IsEmpty)
            {
                return;
            }
            if (!Inventory.ServerTransfer(fromSlot, storage.GetNextFreeIndexedSlot()))
            {
                return;
            }
            if (storageSlot.ItemObject.TryGetComponent(out Cookable cookable))
            {
                storedCookable = cookable;
            }

            SoundManager.PlayNetworkedAtPos(doorSFX, WorldPosition, sourceObj: gameObject);
        }
    public bool ValidateSteak(GameObject steak)
    {
        Cookable cook = steak.GetComponent <Cookable>();

        if (cook.IsBurned)
        {
            SetSourceClip(BurnedClip);
            return(false);
        }
        else if (!cook.IsCooked)
        {
            SetSourceClip(RawClip);
            return(false);
        }

        return(true);
    }
    public void AddToGrill(Cookable obj)
    {
        objectsOnGrill.Add(obj);

        grillSoundSource.Play();

        if (objectsOnGrill.Count == 0)
        {
            grillSoundSource.Stop();
        }

        Food food = obj.GetComponent <Food>();

        if (food != null)
        {
            Sound_Manager.Instance.PlayRandomSFX(food.grabClips);
        }
    }
예제 #22
0
        private object WrapCookable(Cookable cookable, bool detailed)
        {
            if (cookable == null)
            {
                return(null);
            }

            return(new
            {
                ovenList = detailed ? (object)cookable.UsableOvens : cookable.UsableOvens.Select(item => item.Shortname),
                cookable.TTC,
                output = new
                {
                    cookable.Output.Count,
                    item = detailed ? (object)cookable.Output.Result : cookable.Output.Result.Shortname
                }
            });
        }