public static void Postfix(CompTerrainPump __instance, int ___progressTicks, ref bool __state)
 {
     // If __state is true and the moisture pump has since finished, auto-designate an appropriate removal on it and send a message
     if (__state)
     {
         float progressDays       = ___progressTicks / GenDate.TicksPerDay;
         float progressPercentage = progressDays / ((CompProperties_TerrainPump)__instance.props).daysToRadius;
         if (progressPercentage >= 1)
         {
             var    parent      = __instance.parent;
             var    parentMap   = __instance.parent.Map;
             string messageText = "TinyTweaks.TerrainPumpDryFinished".Translate(parent.Label);
             if (TinyTweaksSettings.autoRemoveMoisturePumps)
             {
                 if (parent.def.Minifiable)
                 {
                     parentMap.designationManager.AddDesignation(new Designation(parent, DesignationDefOf.Uninstall));
                     messageText += $" {"TinyTweaks.TerrainPumpDryFinished_Uninstall".Translate()}";
                 }
                 else
                 {
                     parentMap.designationManager.AddDesignation(new Designation(parent, DesignationDefOf.Deconstruct));
                     messageText += $" {"TinyTweaks.TerrainPumpDryFinished_Deconstruct".Translate()}";
                 }
             }
             Messages.Message(messageText, parent, MessageTypeDefOf.TaskCompletion, false);
         }
     }
 }
 public static void Prefix(CompTerrainPump __instance, int ___progressTicks, ref bool __state)
 {
     // Pass __state as true if the terrain pump is a moisture pump and isn't yet finished
     if (TinyTweaksSettings.autoRemoveMoisturePumps && __instance is CompTerrainPumpDry)
     {
         float progressDays       = ___progressTicks / GenDate.TicksPerDay;
         float progressPercentage = progressDays / ((CompProperties_TerrainPump)__instance.props).daysToRadius;
         __state = progressPercentage < 1;
     }
     else
     {
         __state = false;
     }
 }
Example #3
0
 public static float CurrentRadius(this CompTerrainPump comp) => (float)CurrentRadiusInfo.GetValue(comp, null);
Example #4
0
 public static void setProgressTicks(this CompTerrainPump comp, int v) => progressTicksInfo.SetValue(comp, v);
Example #5
0
 public static int progressTicks(this CompTerrainPump comp) => (int)progressTicksInfo.GetValue(comp);
Example #6
0
 public static bool Working(this CompTerrainPump comp) => (bool)WorkingInfo.GetValue(comp, null);