Author Topic: weidu next generation - GUID/UUID keyword for every component  (Read 7356 times)

Offline AL|EN

  • Planewalker
  • *****
  • Posts: 391
  • Gender: Male
Re: weidu next generation - GUID/UUID keyword for every component
« Reply #50 on: August 06, 2017, 03:38:43 PM »
Question: Can someone explain to me why DawidW prefer to use:
Code: [Select]
REQUIRE_PREDICATE FILE_EXISTS ~override/dw#setup.mrk~ @8 // ~This component requires the core "initialise" component to be installed~instead of
Code: [Select]
REQUIRE_PREDICATE MOD_IS_INSTALLED "STRATAGEMS" "1000" @8 // ~This component requires the core "initialise" component to be installed~Does using file to check if component is installed have any advantages over checking weidu.log?

Maybe LABEL must be added to weidu.log so MOD_IS_INSTALLED can check LABEL instead of DESIGNATED?
« Last Edit: August 06, 2017, 03:42:04 PM by AL|EN »
Project Infinity public BETA - mod manager for Infinity Engine games
Modder's Guide to Github - you cannot have progress without committing changes

Offline subtledoctor

  • Planewalker
  • *****
  • Posts: 131
Re: weidu next generation - GUID/UUID keyword for every component
« Reply #51 on: August 06, 2017, 03:53:00 PM »
Marker files have all of the benefits of GUID/UUID that you talked about.  Among other things, they are portable, moving with a component no matter what mod installs it.  And multiple components can install the same marker file, allowing detection of whatever quality you want to represent by it. 

For example, the first install option for Faiths & Powers, which lets you choose a deity through a dialogue, adds d5_deity.d5.  The second install method puts all of the kit choices in menus, but it also installs the deity dialogue as a backup option for NPCs and dual-classing.  So this component installs both d5_menus.d5 and d5_deity.d5.  So another mod can check whether a particular component is installed, but it can also broadly check whether that particular part of the mod is present, regardless of which component did it.

Offline AL|EN

  • Planewalker
  • *****
  • Posts: 391
  • Gender: Male
Re: weidu next generation - GUID/UUID keyword for every component
« Reply #52 on: August 06, 2017, 04:26:20 PM »
Yep, that is a nice feature set of marker files. The worst thing is that many mods are using them and weidu cannot present/use them as a component logic dependence ( they serve such purpose) I won't even ask about it. The depper we dig, the worse it look :'(


Maybe, in order to give GUID/UUID same sort of portability as marker files, i think that they need to be placed into weidu.log when the component is installed. So other functions like MOD_IS_INSTALLED/other can check for it. And the warring about multiple components using the same LABELS should be removed. GUID/UUID_GROUP seems to be unnecessary.
« Last Edit: August 06, 2017, 04:28:08 PM by AL|EN »
Project Infinity public BETA - mod manager for Infinity Engine games
Modder's Guide to Github - you cannot have progress without committing changes

Offline GeN1e

  • Planewalker
  • *****
  • Posts: 267
  • Gender: Male
Re: weidu next generation - GUID/UUID keyword for every component
« Reply #53 on: August 06, 2017, 07:29:56 PM »
But we have a few people participating here. Everyone, why are you not using LABEL and is there anything that could be changed about it that would make you start using it?
DESIGNATED and markers seemed to suffice just fine...

Question: Can someone explain to me why DawidW prefer to use:
Code: [Select]
REQUIRE_PREDICATE FILE_EXISTS ~override/dw#setup.mrk~ @8 // ~This component requires the core "initialise" component to be installed~instead of
Code: [Select]
REQUIRE_PREDICATE MOD_IS_INSTALLED "STRATAGEMS" "1000" @8 // ~This component requires the core "initialise" component to be installed~Does using file to check if component is installed have any advantages over checking weidu.log?
The best answer I can think of atm is that log check doesn't have any particular advantage over the marker either.
Captain Obvious, duh :D

Looking at IR's compatibility setup, it also favors markers a few times, for some reason. One specific case is SR v3, which serves as a version check as well. I could swear I heard about it being possible to retrieve installed mods' versions, but I can't seem to find it in the readme?

Regarding the difficulty of getting markers outside of FILE_EXISTS_IN_GAME, yes, I most definitely agree it is their biggest (and only?) downside.
As I mentioned, the best solution imo would be to have CONTENT_MARKER tp2 component flag, which can include one or more strings that are stored in log or somewhere, and ADD_CONTENT_MARKER tp2 action to append the list manually, e.g. if specific ACTION_IF conditions are met or something. MARKER_EXISTS ~string~ value would return 0 or 1 if such marker exists.
Both the unique string generation and mandatory part can be applied to it as well, though I continue to question the necessity of both specifications - it's more likely that only a handful of mods with complex structure really need a careful assessment of compatibility, and that can realistically be resolved by hand and a bit of nagging. Heck, you can even print a warning (without failing the install process otherwise) that a recommended bit of component information is missing - e.g. if tp2 contains ASK_EVERY_COMPONENT amount of them.

PS Do note that I don't consider myself an active modder any longer, though, more like old geezer dwelling on past accomplishments and sharing wisdom with the young, so take whatever I say with a grain of salt.
« Last Edit: August 06, 2017, 07:34:43 PM by GeN1e »

Offline AL|EN

  • Planewalker
  • *****
  • Posts: 391
  • Gender: Male
Re: weidu next generation - GUID/UUID keyword for every component
« Reply #54 on: August 08, 2017, 01:01:27 PM »
Guys, I'm going on vacation. To summarize, let the GUID/LABEL serve the same role as marker files ( added to weidu.log ) and a new role for mod to search GUID/LABEL inside a tp2 which is present(extracted) inside game directory, so it could be possible to check a components which might be installed in the future. Let the same GUID/LABEL be allowed for more than one component and be called <ModderPrefix>something for now, to not making this more complicated.

EDIT: Removed requirements for GUID, conversation continue here: http://forums.pocketplane.net/index.php/topic,29787.0.html
« Last Edit: September 23, 2018, 12:02:35 PM by AL|EN »
Project Infinity public BETA - mod manager for Infinity Engine games
Modder's Guide to Github - you cannot have progress without committing changes

 

With Quick-Reply you can write a post when viewing a topic without loading a new page. You can still use bulletin board code and smileys as you would in a normal post.

Warning: this topic has not been posted in for at least 120 days.
Unless you're sure you want to reply, please consider starting a new topic.

Name: Email:
Verification:
Type the letters shown in the picture
Listen to the letters / Request another image
Type the letters shown in the picture:
What color is grass?:
What is the seventh word in this sentence?:
What is five minus two (use the full word)?: