Пример #1
0
        public ContainerCustomSprite Get(Chemistry.Reagent reagent)
        {
            if (spritesData.ContainsKey(reagent))
            {
                return(spritesData[reagent]);
            }

            return(null);
        }
Пример #2
0
 /// <summary>
 /// Players can check the remaining microwave time or insert something into the microwave.
 /// </summary>
 public void ServerPerformInteraction(HandApply interaction)
 {
     if (interaction.HandObject != null)
     {
         // Check if the player is holding food that can be ground up
         ItemAttributesV2  attr       = interaction.HandObject.GetComponent <ItemAttributesV2>();
         Ingredient        ingredient = new Ingredient(attr.ArticleName);
         Chemistry.Reagent meal       = CraftingManager.Grind.FindReagentRecipe(new List <Ingredient> {
             ingredient
         });
         int count = CraftingManager.Grind.FindReagentAmount(new List <Ingredient> {
             ingredient
         });
         if (meal)
         {
             grinder.SetServerStackAmount(count);
             grinder.ServerSetOutputMeal(meal.name);
             Despawn.ServerSingle(interaction.HandObject);
             Chat.AddExamineMsgFromServer(interaction.Performer, $"You grind the {attr.ArticleName}.");
             GetComponent <AIOGrinder>().GrindFood();
         }
         else
         {
             Chat.AddExamineMsgFromServer(interaction.Performer, $"Your {attr.ArticleName} can not be ground up.");
         }
     }
     else
     {
         if (!grinderStorage.IsEmpty)
         {
             if (grinderStorage.ReagentMixTotal == grinderStorage.AmountOfReagent(grinderStorage.MajorMixReagent))
             {
                 Chat.AddExamineMsgFromServer(interaction.Performer,
                                              $"The grinder currently contains {grinderStorage.ReagentMixTotal} " +
                                              $"of {grinderStorage.MajorMixReagent}.");
             }
             else if (grinderStorage.ReagentMixTotal != grinderStorage.AmountOfReagent(grinderStorage.MajorMixReagent))
             {
                 Chat.AddExamineMsgFromServer(interaction.Performer,
                                              $"The grinder currently contains {grinderStorage.AmountOfReagent(grinderStorage.MajorMixReagent)} " +
                                              $"of {grinderStorage.MajorMixReagent}, as well as " +
                                              $"{grinderStorage.ReagentMixTotal - grinderStorage.AmountOfReagent(grinderStorage.MajorMixReagent)} of various other things.");
             }
         }
         else
         {
             Chat.AddExamineMsgFromServer(interaction.Performer, "The grinder is empty.");
         }
     }
 }
        private void OnMixChanged()
        {
            // Check if major reagent changed in a mix
            var newMajorReagent = serverContainer.MajorMixReagent;

            if (newMajorReagent != majorReagent)
            {
                // get major reagent name
                var majorReagentName = newMajorReagent ? newMajorReagent.Name : "";

                // now send it to all clients as string hash
                majorReagentNameHash = majorReagentName.GetStableHashCode();
                majorReagent         = newMajorReagent;
            }
        }