[1.0] Prepare Landing (v0.9.2)

Started by neitsa, July 22, 2017, 01:05:30 PM

Previous topic - Next topic

neitsa

Quote from: faltonico on August 20, 2017, 02:36:01 AM
Don't mind me. Looks like if there is too much to filter, it wont do anything, so i just have to be more specific.
For instance filtering a coastal tile with 2 kinds of rocks and a mountainous terrain can't be set to any biome, i have to choose one.

Ah! I think I understand. If you got that message that says (in the info tab) "No biome and no terrain selected if world coverage >= 50%", you can disable this check by going to the option tab and selecting the "Disable Prefilter check" option. It will allow you to not select a biome or terrain. Let me know if that solve your problem.

I made this check to avoid having to filter thousands of tiles at once, which can take a long time, but depending on the exact set of filters this check is sometimes not useful as the number of filtered tiles can be very small in the end.

Otherwise, if that doesn't solve your problem, could you tell me the exact conditions (planet seed, % coverage and exact set of filters applied) when that happens?

Thanks :)

Side note: if that's useful, you can save this option ("disable pre-filter check") in the "save" window if you check the "Save options" check box.

neitsa

Quote from: neitsa on August 20, 2017, 06:27:33 AM
Quote from: faltonico on August 20, 2017, 02:36:01 AM
Don't mind me. Looks like if there is too much to filter, it wont do anything, so i just have to be more specific.
For instance filtering a coastal tile with 2 kinds of rocks and a mountainous terrain can't be set to any biome, i have to choose one.

Ah! I think I understand. If you got that message that says (in the info tab) "No biome and no terrain selected if world coverage >= 50%", you can disable this check by going to the option tab and selecting the "Disable Prefilter check" option. It will allow you to not select a biome or terrain. Let me know if that solve your problem.

I made this check to avoid having to filter thousands of tiles at once, which can take a long time, but depending on the exact set of filters this check is sometimes not useful as the number of filtered tiles can be very small in the end.

Otherwise, if that doesn't solve your problem, could you tell me the exact conditions (planet seed, % coverage and exact set of filters applied) when that happens?

Thanks :)

Side note: if that's useful, you can save this option ("disable pre-filter check") in the "save" window if you check the "Save options" check box.

faltonico

I understood the need for the filter, don't worry about it.
But as a suggestion maybe instead of outright disabling the possibility, how about making a time check? if it takes too long to filter a set of variables just stop the operation and throw the reason and the ways to fix it.
On the mean time, I'll try the options menu, but that would be the next time i create a colony xD

Thanks a lot for your time!

neitsa

Quote from: faltonico on August 20, 2017, 10:02:13 AM
I understood the need for the filter, don't worry about it.
But as a suggestion maybe instead of outright disabling the possibility, how about making a time check? if it takes too long to filter a set of variables just stop the operation and throw the reason and the ways to fix it.

Dang! Excellent suggestion, I'm gonna add this for the next release. It's really better than what I thought of and moreover I already have a stopwatch in the code to get the time it takes for all the filters to finish their job...

Quote from: faltonico on August 20, 2017, 10:02:13 AM
On the mean time, I'll try the options menu, but that would be the next time i create a colony xD

Thanks a lot for your time!

Thanks a lot :) May Randy be random with you (or not  ;))

skullywag

you, how did i miss you, how did i miss this mod, discordball GO!
Skullywag modded to death.
I'd never met an iterator I liked....until Zhentar saved me.
Why Unity5, WHY do you forsake me?

DoctorVanGogh

Quote from: neitsa on August 20, 2017, 10:19:23 AM
Quote from: faltonico on August 20, 2017, 10:02:13 AM
I understood the need for the filter, don't worry about it.
But as a suggestion maybe instead of outright disabling the possibility, how about making a time check? if it takes too long to filter a set of variables just stop the operation and throw the reason and the ways to fix it.

Dang! Excellent suggestion, I'm gonna add this for the next release. It's really better than what I thought of and moreover I already have a stopwatch in the code to get the time it takes for all the filters to finish their job...
Without having read too many details: Async background filtering with incremental updates :D
Appreciate my mods? Buy me a coffee

neitsa

Added a pre-release on github for the next version (v0.5). I intend to test it thoroughly this week and make a final release next week end.

This pre-release is available here on Github.

Major changes:


  • Added a new filter: Most / Least (Highest / Lowest); e.g. Filter the 25 tiles on the world map with the highest temperature.
  • Added ability to change tile characteristics on the World Map (you can now change Biome, Temperature, Elevation, Rainfall, etc.)

neitsa

Release v0.5.

Important additions:

  • God Mode feature (allows you to change tile characteristics)
  • New Filter: Most / Least (allows to filter most or least features, e.g. X tile(s) with the highest temperatures)
  • Temperature forecast (up to 5550); brought by RWFN (Rimworld Weather Forecast Network :p)


**`RimWorld Version: Alpha 17b`**

The source code for `PrepareLanding` is licensed under the [MIT Licence](https://opensource.org/licenses/MIT).


# General

# Version 0.5.0
**Released September 02, 2017**
**`RimWorld Version: Alpha 17b`**

# General

What's New?
===========

The [online manual](https://neitsa.github.io/games/rimworld/preparelanding/) has been rewritten to account for the latest changes.

* [**Important**]  Most / Least Feature filter ([see manual](https://neitsa.github.io/games/rimworld/preparelanding/temperature_tab.html#most-least-feature))
    - Allows to filter on the following highest / lowest world characteristics:
        - Elevation
        - Rainfall
        - Temperature
* [**Important**] God Mode ([see manual](https://neitsa.github.io/games/rimworld/preparelanding/god_mode_tab.html))
    - Allows player to change tiles' characteristics on the world map
        - Biome
        - Average Temperature
        - Terrain (Hilliness)
        - Elevation
        - Rainfall
        - Stone Types
* [**Important**] Temperature Forecast ([see manual](https://neitsa.github.io/games/rimworld/preparelanding/temperature_tab.html#temperature-forecast))
* Less clicking for River and Road filters, they now have 3 buttons (Reset, All, None)
* Fixed a bug when there were more rivers than in Vanilla
    - Also fixed for Roads Filter
* Internal
    - Huge code refactoring
    - TileHighlighter now uses RimWorld's WorldLayer class
        - It takes a little bit more time to draw the highlighted tiles but,
        - It is less laggy and less demanding on smaller computers
    - Code and data for drawing map overlays is implemented (but not activated yet)

Detailed Changelog
==================

Fixed Issues
------------

* Add filtering on most / least (max / min) tile features [issue #10: requested by Barky, Zapleek]
* Rework the tile Highlighter [issue #11]
* Add must/must not have road/river" regardless of type. [issue #15: request by WorkingClassHero]
* Long list of rivers breaks the GUI layout [issue #17: request by elwooha6]

Future Plans
============

* Check if possible to actually set the tile properties according to user choices [issue #8]
    - 6 feature planned on 8 have been implemented (see God Mode)
* Add world map overlays for various features (temperature, rainfall, etc.) [issue #12]
    - Code & data are there but it is too slow at the moment to be released.

Sixdd

Yay new update! Seems like it's about time to start a new world :D

faltonico

Welp...
I clearly do not to know how to use the mod.
I thought that by ticking certain types of rocks i wanted and crossing out the ones i did not want, the mod would search for just that, but apparently the mod needs me to have the rocks marked as " ~ " to do the filtering, otherwise it says it doesn't find what i was looking for, even though i have the tile i told it to look for selected right there,
¿or is there something i am missing?




neitsa

Quote from: faltonico on September 08, 2017, 07:29:33 PM
Welp...
I clearly do not to know how to use the mod.
I thought that by ticking certain types of rocks i wanted and crossing out the ones i did not want, the mod would search for just that, but apparently the mod needs me to have the rocks marked as " ~ " to do the filtering, otherwise it says it doesn't find what i was looking for, even though i have the tile i told it to look for selected right there,
¿or is there something i am missing?

Hi faltonico,

Yep, the stone filter is orderable, which means it searches for the exact order given. See Stone Type Filter and Orderable three states in the manual.

In your example, it searches for "Granite, Limestone and Marble" in this precise order (while the tile has  "Limestone, Granite and Marble" in this order). I'm gonna introduce a new checkbox to search in any order though. This is planned but I didn't have time lately.

faltonico

loool
I never thought it meant the exact order, i thought it meant that it will only require to have it...

This is why you have to read manuals.

Thanks a lot for the explanation!.

sparr

I'm getting an error when trying to load the game with this mod, and then a misbehavior.

This is the copied debug log:

RimWorld 0.17.1557 rev1154
Verse.Log:Message(String)
RimWorld.VersionControl:LogVersionNumber()
Verse.Root:CheckGlobalInit()
Verse.Root:Start()
Verse.Root_Entry:Start()

ReflectionTypeLoadException getting types in assembly PrepareLanding: System.Reflection.ReflectionTypeLoadException: The classes in the module cannot be loaded.
  at (wrapper managed-to-native) System.Reflection.Assembly:GetTypes (bool)
  at System.Reflection.Assembly.GetTypes () [0x00000] in <filename unknown>:0
  at Verse.ModAssemblyHandler.AssemblyIsUsable (System.Reflection.Assembly asm) [0x00000] in <filename unknown>:0

Loader exceptions:
   => System.TypeLoadException: Could not load type 'HugsLib.ModBase' from assembly 'HugsLib, Version=0.17.0.0, Culture=neutral, PublicKeyToken=null'.
   => System.TypeLoadException: Could not load type '<>c' from assembly 'PrepareLanding, Version=0.5.0.0, Culture=neutral, PublicKeyToken=null'.

Verse.Log:Error(String)
Verse.ModAssemblyHandler:AssemblyIsUsable(Assembly)
Verse.ModAssemblyHandler:ReloadAll()
Verse.ModContentPack:ReloadContent()
Verse.LoadedModManager:LoadAllActiveMods()
Verse.PlayDataLoader:DoPlayLoad()
Verse.PlayDataLoader:LoadAllPlayData(Boolean)
Verse.Root:<Start>m__84C()
Verse.LongEventHandler:RunEventFromAnotherThread(Action)
Verse.LongEventHandler:<UpdateCurrentAsynchronousEvent>m__84A()

Could not find a type named PrepareLanding.Defs.MainButtonWorkerToggleWorld
Verse.Log:Error(String)
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.<AllDefsFromAsset>c__Iterator226:MoveNext()
Verse.ModContentPack:LoadDefs(IEnumerable`1)
Verse.LoadedModManager:LoadAllActiveMods()
Verse.PlayDataLoader:DoPlayLoad()
Verse.PlayDataLoader:LoadAllPlayData(Boolean)
Verse.Root:<Start>m__84C()
Verse.LongEventHandler:RunEventFromAnotherThread(Action)
Verse.LongEventHandler:<UpdateCurrentAsynchronousEvent>m__84A()


And the misbehavior is as follows: At the "Create World" dialog I click "Generate", then I get "Generating planet..." for a few seconds. Then I see the "Create World" dialog again, but now the background behind the dialog is a planet. If I click Back Back Back Back which should get me to the main menu, I instead get to see the planet and nagivate as if I'm about to pick a landing site... but the buttons to actually embark are missing. Every other part of the standard world UI is there, but I can't proceed past this. I also cannot get back to the main menu from here.

I tried putting this mod at the top of my load order list, and at the bottom. I haven't tried disabling all my other mods yet, because that's very annoying.

Canute

Looks like you are missing something.
Did you install hugslib too ?
What did you download, the master from prepare landing then you should download the release zip-file, the master don't contain the assemblies.

neitsa

#44
Quote from: sparr on September 14, 2017, 03:41:14 PM
I'm getting an error when trying to load the game with this mod, and then a misbehavior.

Sparr, your error message is typical from a misplaced HugsLib, as hinted by Canute. Ensure that Hugslib is right after Core (as it is used by many mods) and PrepareLanding anywhere after HugsLib. It should work without any problem after that.

You might want to check at the manual, if that can be of any help.