Ludeon Forums

RimWorld => Mods => Releases => Topic started by: Uuugggg on March 23, 2018, 03:19:55 AM

Title: [1.0] TD Enhancement Pack
Post by: Uuugggg on March 23, 2018, 03:19:55 AM
TD Enhancement Pack

Description:
Various little things that just should be in the game.

Check Steam (https://steamcommunity.com/sharedfiles/filedetails/?id=1339135272) for full feature list, but a few examples:
   
- Overlays for buildable areas, terrain fertility, that pop up when you need it
- Area copy/paste, reordering, coloring
- Mouseover info on the top right
- ZOOM TO MOUSE
- Like, so many more things, everyone

Debug features moved into TDBug (https://github.com/alextd/RimWorld-TDBug)

Download
Steam: http://steamcommunity.com/sharedfiles/filedetails/?id=1339135272
GitHub release: https://github.com/alextd/RimWorld-EnhancementPack/releases
Title: Re: [B18] Enhancement Pack
Post by: Uuugggg on April 15, 2018, 09:42:35 PM
Big updates. Updated description.

Everyone should want this.
Title: Re: [B18] Enhancement Pack
Post by: Entw1ne on April 15, 2018, 10:03:48 PM
Very neat looking mod, especially like overlays, level-up arrows, and messages in real-time.

Any idea if there are conflicts with any of the major mods out there?
Title: Re: [B18] Enhancement Pack
Post by: Uuugggg on April 15, 2018, 10:52:29 PM
I imagine this could only conflict with a mod that does the same thing.

( If those existed that would've been nice to know )
Title: Re: [B18] Enhancement Pack
Post by: Mitz on July 27, 2018, 09:44:59 AM
i think it broke in latest 1.0 build...
Title: Re: [B19] Enhancement Pack
Post by: Uuugggg on August 30, 2018, 02:23:45 PM
B19 should have things working again
Title: Re: [1.0] TD Enhancement Pack
Post by: NoCanDo on November 15, 2018, 04:30:01 PM
Any way to add an option to make the fugly powerlines hidden?
Title: Re: [1.0] TD Enhancement Pack
Post by: forumgod on November 19, 2018, 06:39:07 PM
Option to highlight the power network (like when you click on a power node to build) and color code it depending on if it is powered and how much it has stored or power deficit and etc?
Title: Re: [1.0] TD Enhancement Pack
Post by: AwesomeMcAwesome on November 22, 2018, 07:16:44 AM
Not sure if it's this mod, but loading this makes it that I can't set mounts in the caravan screen because it shows the count (how many is available to bring) instead of the usual designate mount option. Disabling this mod fixes the problem
Title: Re: [1.0] TD Enhancement Pack
Post by: Eep on June 11, 2019, 06:29:19 PM
Downloaded latest version from https://github.com/alextd/RimWorld-EnhancementPack ("Clone or download" since I see no other way to download it) but Mod Manager says it has no version # and debug log shows:

Could not find a type named TD_Enhancement_Pack.Designator_AddMatch_Growing
Verse.Log:Error(String, Boolean)
Verse.ParseHelper:FromString(String, Type)
Verse.DirectXmlToObject:ObjectFromXml(XmlNode, Boolean)
Verse.DirectXmlToObject:ListFromXml(XmlNode)
System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&)
System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)
System.Reflection.MethodBase:Invoke(Object, Object[])
Verse.DirectXmlToObject:ObjectFromXml(XmlNode, Boolean)
System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&)
System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)
System.Reflection.MethodBase:Invoke(Object, Object[])
Verse.DirectXmlToObject:ObjectFromXml(XmlNode, Boolean)
System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&)
System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)
System.Reflection.MethodBase:Invoke(Object, Object[])
Verse.DirectXmlLoader:DefFromNode(XmlNode, LoadableXmlAsset)
Verse.LoadedModManager:ParseAndProcessXML(XmlDocument, Dictionary`2)
Verse.LoadedModManager:LoadAllActiveMods()
Verse.PlayDataLoader:DoPlayLoad()
Verse.PlayDataLoader:LoadAllPlayData(Boolean)
Verse.Root:<Start>m__1()
Verse.LongEventHandler:RunEventFromAnotherThread(Action)
Verse.LongEventHandler:<UpdateCurrentAsynchronousEvent>m__1()

Could not find type named TD_Enhancement_Pack.ThinkNode_ConditionalCanDoDraftedConstantThinkTreeJobNow from node <li Class="TD_Enhancement_Pack.ThinkNode_ConditionalCanDoDraftedConstantThinkTreeJobNow"><subNodes><!-- Flee explosion --><li Class="JobGiver_FleePotentialExplosion" /></subNodes></li>
Verse.Log:Error(String, Boolean)
Verse.DirectXmlToObject:ClassTypeOf(XmlNode)
Verse.DirectXmlToObject:ObjectFromXml(XmlNode, Boolean)
Verse.DirectXmlToObject:ListFromXml(XmlNode)
System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&)
System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)
System.Reflection.MethodBase:Invoke(Object, Object[])
Verse.DirectXmlToObject:ObjectFromXml(XmlNode, Boolean)
System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&)
System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)
System.Reflection.MethodBase:Invoke(Object, Object[])
Verse.DirectXmlToObject:ObjectFromXml(XmlNode, Boolean)
System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&)
System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)
System.Reflection.MethodBase:Invoke(Object, Object[])
Verse.DirectXmlToObject:ObjectFromXml(XmlNode, Boolean)
System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&)
System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)
System.Reflection.MethodBase:Invoke(Object, Object[])
Verse.DirectXmlLoader:DefFromNode(XmlNode, LoadableXmlAsset)
Verse.LoadedModManager:ParseAndProcessXML(XmlDocument, Dictionary`2)
Verse.LoadedModManager:LoadAllActiveMods()
Verse.PlayDataLoader:DoPlayLoad()
Verse.PlayDataLoader:LoadAllPlayData(Boolean)
Verse.Root:<Start>m__1()
Verse.LongEventHandler:RunEventFromAnotherThread(Action)
Verse.LongEventHandler:<UpdateCurrentAsynchronousEvent>m__1()

Exception loading list from XML: System.MissingMethodException: Cannot create an abstract class 'Verse.AI.ThinkNode'.
  at System.Activator.CheckAbstractType (System.Type type) [0x00000] in <filename unknown>:0
  at System.Activator.CreateInstance (System.Type type, Boolean nonPublic) [0x00000] in <filename unknown>:0
  at System.Activator.CreateInstance (System.Type type) [0x00000] in <filename unknown>:0
  at Verse.DirectXmlToObject.ObjectFromXml[ThinkNode] (System.Xml.XmlNode xmlRoot, Boolean doPostLoad) [0x00000] in <filename unknown>:0
  at Verse.DirectXmlToObject.ListFromXml[ThinkNode] (System.Xml.XmlNode listRootNode) [0x00000] in <filename unknown>:0
XML:
<subNodes><li Class="TD_Enhancement_Pack.ThinkNode_ConditionalCanDoDraftedConstantThinkTreeJobNow"><subNodes><!-- Flee explosion --><li Class="JobGiver_FleePotentialExplosion" /></subNodes></li><li Class="ThinkNode_ConditionalCanDoConstantThinkTreeJobNow"><subNodes><!-- Flee explosion --><li Class="JobGiver_FleePotentialExplosion" /><!-- Join auto joinable caravan --><li Class="ThinkNode_Subtree"><treeDef>JoinAutoJoinableCaravan</treeDef></li><!-- Hostility response --><li Class="JobGiver_ConfigurableHostilityResponse" /><!-- Lord directives --><li Class="ThinkNode_Subtree"><treeDef>LordDutyConstant</treeDef></li></subNodes></li></subNodes>
Verse.Log:Error(String, Boolean)
Verse.DirectXmlToObject:ListFromXml(XmlNode)
System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&)
System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)
System.Reflection.MethodBase:Invoke(Object, Object[])
Verse.DirectXmlToObject:ObjectFromXml(XmlNode, Boolean)
System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&)
System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)
System.Reflection.MethodBase:Invoke(Object, Object[])
Verse.DirectXmlToObject:ObjectFromXml(XmlNode, Boolean)
System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&)
System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)
System.Reflection.MethodBase:Invoke(Object, Object[])
Verse.DirectXmlToObject:ObjectFromXml(XmlNode, Boolean)
System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&)
System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)
System.Reflection.MethodBase:Invoke(Object, Object[])
Verse.DirectXmlLoader:DefFromNode(XmlNode, LoadableXmlAsset)
Verse.LoadedModManager:ParseAndProcessXML(XmlDocument, Dictionary`2)
Verse.LoadedModManager:LoadAllActiveMods()
Verse.PlayDataLoader:DoPlayLoad()
Verse.PlayDataLoader:LoadAllPlayData(Boolean)
Verse.Root:<Start>m__1()
Verse.LongEventHandler:RunEventFromAnotherThread(Action)
Verse.LongEventHandler:<UpdateCurrentAsynchronousEvent>m__1()

Could not find a type named TD_Enhancement_Pack.TransferableComparer_ValuePerMass
Verse.Log:Error(String, Boolean)
Verse.ParseHelper:FromString(String, Type)
Verse.DirectXmlToObject:ObjectFromXml(XmlNode, Boolean)
System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&)
System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)
System.Reflection.MethodBase:Invoke(Object, Object[])
Verse.DirectXmlToObject:ObjectFromXml(XmlNode, Boolean)
System.Reflection.MonoMethod:InternalInvoke(Object, Object[], Exception&)
System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object[], CultureInfo)
System.Reflection.MethodBase:Invoke(Object, Object[])
Verse.DirectXmlLoader:DefFromNode(XmlNode, LoadableXmlAsset)
Verse.LoadedModManager:ParseAndProcessXML(XmlDocument, Dictionary`2)
Verse.LoadedModManager:LoadAllActiveMods()
Verse.PlayDataLoader:DoPlayLoad()
Verse.PlayDataLoader:LoadAllPlayData(Boolean)
Verse.Root:<Start>m__1()
Verse.LongEventHandler:RunEventFromAnotherThread(Action)
Verse.LongEventHandler:<UpdateCurrentAsynchronousEvent>m__1()


Not sure if these are TD Enhancement Pack related (this log format is HORRIBLE):

Unable to parse version string on mod  from Anonymous "Unknown"
Verse.Log:Error(String, Boolean)
Verse.ModMetaDataInternal:TryParseVersion(String, Boolean)
Verse.ModMetaDataInternal:TryParseSupportedVersions(Boolean)
Verse.ModMetaData:Init()
Verse.ModMetaData:.ctor(String)
Verse.ModLister:RebuildModList()
Verse.Steam.WorkshopItems:RebuildItemsList()
Verse.Steam.WorkshopItems:.cctor()
Verse.ModLister:RebuildModList()
Verse.ModLister:RebuildModList()
Verse.ModLister:.cctor()
Verse.<>c__Iterator0:MoveNext()
Verse.<>c__Iterator0:MoveNext()
System.Collections.Generic.List`1:AddEnumerable(IEnumerable`1)
System.Collections.Generic.List`1:.ctor(IEnumerable`1)
System.Linq.Enumerable:ToList(IEnumerable`1)
Verse.LoadedModManager:InitializeMods()
Verse.LoadedModManager:LoadAllActiveMods()
Verse.PlayDataLoader:DoPlayLoad()
Verse.PlayDataLoader:LoadAllPlayData(Boolean)
Verse.Root:<Start>m__1()
Verse.LongEventHandler:RunEventFromAnotherThread(Action)
Verse.LongEventHandler:<UpdateCurrentAsynchronousEvent>m__1()

DesignationCategoryDefZone could not instantiate special designator from class .
Exception:
System.ArgumentNullException: Argument cannot be null.
Parameter name: type
  at System.Activator.CheckType (System.Type type) [0x00000] in <filename unknown>:0
  at System.Activator.CreateInstance (System.Type type, Boolean nonPublic) [0x00000] in <filename unknown>:0
  at System.Activator.CreateInstance (System.Type type) [0x00000] in <filename unknown>:0
  at Verse.DesignationCategoryDef.ResolveDesignators () [0x00000] in <filename unknown>:0
Verse.Log:Error(String, Boolean)
Verse.DesignationCategoryDef:ResolveDesignators()
Verse.DesignationCategoryDef:<ResolveReferences>m__0()
Verse.LongEventHandler:ExecuteToExecuteWhenFinished()
Verse.LongEventHandler:UpdateCurrentAsynchronousEvent()
Verse.LongEventHandler:LongEventsUpdate(Boolean&)
Verse.Root:Update_Patch1(Object)
Verse.Root_Entry:Update()
Title: Re: [1.0] TD Enhancement Pack
Post by: Tenshi~Akari on June 11, 2019, 11:02:03 PM
^^Click the download link in the OP for the links through the "Releases" and redownload the updates from there. Downloading from the Master Branch gives you that error because it's not formatted in the proper file structure as those in the Releases page.
Title: Re: [1.0] TD Enhancement Pack
Post by: Canute on June 12, 2019, 02:45:27 AM
Eep,
for all Github projects, ALLWAYS check the release tab first before you download the Master.
Title: Re: [1.0] TD Enhancement Pack
Post by: Tocato on August 18, 2019, 07:41:12 AM
does this also have a temperature view? where blue represents colder areas of the map, red less so?
Title: Re: [1.0] TD Enhancement Pack
Post by: Uuugggg on August 29, 2019, 03:33:09 AM
I guess I didn't need to make a heat map since it's already a mod : https://ludeon.com/forums/index.php?topic=33647.0
Title: Re: [1.0] TD Enhancement Pack
Post by: anochi on December 10, 2019, 06:14:33 PM
Does instant Smoothing & Roofing no longer work in God Mode?
Title: Re: [1.0] TD Enhancement Pack
Post by: LWM on December 11, 2019, 04:19:31 PM
Technical question: why did you choose that route (your Get()) for Settings instead of, say, static variables accessed directly?

This all looks awesome; I'm going to download it now and try it out.  Thanks!
Title: Re: [1.0] TD Enhancement Pack
Post by: Uuugggg on January 15, 2020, 04:47:28 PM
Super technically speaking, I simply used the GetSettings that the RimWorld code already provided. Saving the result to a static for future use might work, but that would require me to know GetSettings will never return a new object, and that future versions also won't.

(By this point I think it won't but I wasn't about to assume that when I started coding RimWorld mods)
Title: Re: [1.0] TD Enhancement Pack
Post by: Uuugggg on January 15, 2020, 04:49:23 PM
Quote from: anochi on December 10, 2019, 06:14:33 PM
Does instant Smoothing & Roofing no longer work in God Mode?

That was actually moved into a Debug helper only mod, which I keep on 24/7 : https://github.com/alextd/RimWorld-TDBug
Title: Re: [1.0] TD Enhancement Pack
Post by: wwWraith on May 01, 2020, 09:42:40 AM
Is it possible to make Walkspeed overlay count the movement cost not only for terrain but also include furniture/plants/items laying on it, etc. (ignoring PathAvoid (https://ludeon.com/forums/index.php?topic=33027.0) markings, if it should be mentioned)?