Esempio n. 1
0
 public static void Postfix(Designator_Install __instance)
 {
     if (__instance.PlacingDef is ThingDef thingDef && thingDef.EverTransmitsGas())
     {
         SectionLayer_GasNetwork.DrawGasGridOverlayThisFrame();
     }
 }
Esempio n. 2
0
 public static bool prefix_designate_single_cell(IntVec3 c, Rot4 ___placingRot, Designator_Install __instance)
 {
     if (use_native)
     {
         return(true);
     }
     else
     {
         Thing thingToInstall = (Thing)__instance.GetType().GetMethod("get_MiniToInstallOrBuildingToReinstall", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(__instance, new object[] { });
         parrot_designate_single_cell(c, ___placingRot, thingToInstall);
         return(false);
     }
 }
Esempio n. 3
0
        // Token: 0x0600000F RID: 15 RVA: 0x000026C8 File Offset: 0x000008C8
        public static bool Prefix(Designator_Install __instance, Color ghostCol)
        {
            var thing = (Thing)PI_ThingToInstall.GetValue(__instance, null);

            if (thing.def != ThingDefOf.Gachapon)
            {
                return(true);
            }

            if (!(thing is Building_Art_Gachapon building_Art_Gachapon))
            {
                return(true);
            }

            var ghostGraphic = building_Art_Gachapon.GetGhostGraphic(ghostCol);

            GachaponGhostDrawer.DrawGhostThing(UI.MouseCell(), (Rot4)FI_PlacingRot.GetValue(__instance),
                                               (ThingDef)__instance.PlacingDef, ghostGraphic, AltitudeLayer.PawnState);
            return(false);
        }
        public override void DrawLayer()
        {
            ThingDef         thingDef         = null;
            Designator_Build designator_build = Find.DesignatorManager.SelectedDesignator as Designator_Build;

            if (designator_build != null)
            {
                thingDef = designator_build.PlacingDef as ThingDef;
            }
            Designator_Install designator_install = Find.DesignatorManager.SelectedDesignator as Designator_Install;

            if (designator_install != null)
            {
                thingDef = designator_install.PlacingDef as ThingDef;
            }

            if (thingDef != null && typeof(IBuilding_WaterNet).IsAssignableFrom(thingDef.thingClass))
            {
                base.DrawLayer();
            }
        }
Esempio n. 5
0
 public static void parrot_designate_single_cell(IntVec3 c, Rot4 placingRot, Thing thingToInstall)
 {
     use_native = true;
     try
     {
         var sel = Find.Selector.SelectedObjects;
         Find.Selector.ClearSelection();
         Designator_Install ins = (Designator_Install)DesignatorUtility.FindAllowedDesignator <Designator_Install>();
         var field = ins.GetType().GetField("placingRot", BindingFlags.NonPublic | BindingFlags.Instance);
         RimLog.Message("thing : " + thingToInstall);
         RimLog.Message("field : " + field);
         field.SetValue(ins, placingRot);
         Rand.PushState(0);
         Find.Selector.Select(thingToInstall, false, false);
         ins.DesignateSingleCell(c);
         Find.Selector.ClearSelection();
         sel.ForEach(u => Find.Selector.Select(u, false, false));
     }
     finally
     {
         use_native = false;
     }
 }