Updating mods.... any idea why Tyran changes things like:

Started by pktongrimworld, May 23, 2015, 01:23:44 AM

Previous topic - Next topic

mipen

Quote from: picollo on June 23, 2015, 04:34:23 AM
Quote from: Tynan on June 23, 2015, 02:15:39 AM
(...)and also will work in 3D if the game ever goes that way. (...)

Half Life 3 z-layers confirmed!
Please let it be so!

1000101

Quote from: mipen on June 23, 2015, 07:42:30 AM
Quote from: picollo on June 23, 2015, 04:34:23 AM
Quote from: Tynan on June 23, 2015, 02:15:39 AM
(...)and also will work in 3D if the game ever goes that way. (...)

Half Life 3 z-layers confirmed!
Please let it be so!

The key word in that statement being "if."  But I +1 the idea too.
(2*b)||!(2*b) - That is the question.
There are 10 kinds of people in this world - those that understand binary and those that don't.

Powered By

BMS

Its not so much if <coke> changed to <pepsi> its more of what goes inside <coke> can i

<coke>Walkable</coke>

or can I

<coke>walk</coke>


right now the only way to do something is to look at someones mod and see what values they used for those tags - if we had access to schema we would know not only that coke is an element but that it has "walk" as a valid value - or that <health> (or whatever it is this update) has a max value of 9999

its not impossible and theres lots of help on the forums but still a schema is technically "the correct" way to deal with xml.

edit: RimWoW 3d?
Shackleberry: Would be useful if there was an XSD (XML Schema Definition) for each of the XML files, would make validating XML between version far easier.

mipen

You dont need a schema to do this. It would make it easier the but upkeep of it for Tynan would be massive at this stage. You can use ilspy to look at the classes being modelled by the xml code. For example, if you want to know every tag in a ThingDef, then open ilspy and look at the ThingDef class. This will show you every variable that can be assigned in a thing Def and its type. From its type you can easily figure out what value is expected. An 'int' will be a number. If it's an Enum, then you can click on it and be shown all the values available inside that Enum. As it is, rimworld is still in alpha, which means this is a very early version of the game and things are still rapidly changing. It would be unfair to force Tynan to invest large chunks of time trying to keep these modding assistances up to date, at the same time as developing the game. Perhaps when it is finished he will be able to do these things accurately, but right now it would be pretty much a waste of time and most of the work would be invalidated after each alpha release

BMS

Quote from: mipen on June 25, 2015, 08:37:18 PM
For example, if you want to know every tag in a ThingDef, then open ilspy and look at the ThingDef class. This will show you every variable that can be assigned in a thing Def and its type. From its type you can easily figure out what value is expected.

bomb - thanks mipen - i remember reading something about this but it was long before i was in "modding daycare" :)
Shackleberry: Would be useful if there was an XSD (XML Schema Definition) for each of the XML files, would make validating XML between version far easier.

Shackleberry

Quote from: mipen on June 25, 2015, 08:37:18 PM
You dont need a schema to do this. It would make it easier the but upkeep of it for Tynan would be massive at this stage. You can use ilspy to look at the classes being modelled by the xml code. For example, if you want to know every tag in a ThingDef, then open ilspy and look at the ThingDef class. This will show you every variable that can be assigned in a thing Def and its type. From its type you can easily figure out what value is expected. An 'int' will be a number. If it's an Enum, then you can click on it and be shown all the values available inside that Enum. As it is, rimworld is still in alpha, which means this is a very early version of the game and things are still rapidly changing. It would be unfair to force Tynan to invest large chunks of time trying to keep these modding assistances up to date, at the same time as developing the game. Perhaps when it is finished he will be able to do these things accurately, but right now it would be pretty much a waste of time and most of the work would be invalidated after each alpha release

That would be a good way of figuring the schema out. Heck, we could always put together a set of schema files ourselves and host them on Github. Would anyone be interested in getting involved in that? As a community we should be able to maintain them between alpha releases.

@BMS: I like your signature! xD

isistoy

for vs users, there is this https://msdn.microsoft.com/en-us/library/x6c1kb0s(v=vs.90).aspx

QuoteIf you specify a runtime assembly file (.exe or .dll extension), Xsd.exe generates schemas for one or more types in that assembly.
You can use the /type option to specify the types for which to generate schemas. The output schemas are named schema0.xsd, schema1.xsd, and so on. Xsd.exe produces multiple schemas only if the given types specify a namespace using the XMLRoot custom attribute.

Several options.
Never had the curiosity to use it and see the results.
By the way, as an information, I think there is a bit more than 50 def folders in Core
<Stay on the scene like a State machine>

BMS

Quote from: Shackleberry on June 26, 2015, 01:26:43 PM
That would be a good way of figuring the schema out. Heck, we could always put together a set of schema files ourselves and host them on Github. Would anyone be interested in getting involved in that? As a community we should be able to maintain them between alpha releases.

@BMS: I like your signature! xD

My original idea was to go loop directory *.xml search //Item and have an instant //Item "what every other mod uses" but I'm in the middle of alot of work and when i do get free as much as i <3 Lord Tyran gotta show some love to the family then id really like to work on "my mod" before i start attempting something like this

@Shackleberry thx!  You inspired me! (to update my profile and goto bed ha) edit - oh and to keep this thread alive just one more day !
Shackleberry: Would be useful if there was an XSD (XML Schema Definition) for each of the XML files, would make validating XML between version far easier.

pktongrimworld

T.T


so many changes Tyran made.... WHY


also, I think he changed some < > back to what it was in alpha 9.


T.T


mrofa

Quote from: Tynan on June 23, 2015, 02:15:39 AM
Updating this shouldn't be a multi-day process. It's just a series of find and replace operations. Just make sure you have a good multi-file F+R tool and know how to use it well; it's not that bad!

This is assuming you know what to look for. And we dont get any news about changes, so we mostly look thrugh core files and look for diffrent stuff. So it will take few day unless you got a really small uncomplicated mod.
And i think its really painfull especialy for modders that do only xml and dont use ilspy like stuff.

Thats trolled i do understand why you do this stuff, but if you do something bigger than changing names like the <Overdraw> change to <drawSize> change,which got diffrent mechanic. You could throw somewhere on the forum the bigger fish.
All i do is clutter all around.

skullywag

Just for reference my way of handling this is, load mod in new alpha, close, open output log, address first error, rinse and repeat.

The error fixing is a process find how its done now in core and change my xml to reflect it, for example it took me less than an hour to update all my mods this alpha doing it this way, the c# stuff is a little more tricky but still in the general scheme of things, its not as bad as it could be.

The overdraw one, i got the error in output log about overdraw not being a thing, i literally opened up the crashed ship part def as i know it uses overdraw, drawsize jumped right out...
Skullywag modded to death.
I'd never met an iterator I liked....until Zhentar saved me.
Why Unity5, WHY do you forsake me?

Tynan

Quote from: skullywag on June 29, 2015, 05:10:42 AM
Just for reference my way of handling this is, load mod in new alpha, close, open output log, address first error, rinse and repeat.

The error fixing is a process find how its done now in core and change my xml to reflect it, for example it took me less than an hour to update all my mods this alpha doing it this way, the c# stuff is a little more tricky but still in the general scheme of things, its not as bad as it could be.

The overdraw one, i got the error in output log about overdraw not being a thing, i literally opened up the crashed ship part def as i know it uses overdraw, drawsize jumped right out...

This is pretty much the process I was thinking people would use. It's one reason I work a lot to have the game give really specific and useful error messages.
Tynan Sylvester - @TynanSylvester - Tynan's Blog

pktongrimworld

it gets much quicker once you figure out what the changes are...

but there were mods that breaks completely (no output error msgs, just freezes)
for those have to go in line for line (working on cybernatic storm atm... dont think I will ever finish it lol)

kaptain_kavern

Quote from: Tynan on June 29, 2015, 02:25:58 PM
This is pretty much the process I was thinking people would use. It's one reason I work a lot to have the game give really specific and useful error messages.
And you have done a good work with that Sir ;)

I just spend the last 3 days sleepless because playing with all that, discovering the way it's easy and pretty straightforward to understand and modify pretty much anything. All of that just because at first i wanted to change some required materials for some bench with Superior Crafting/Hardcore SK Global modpack and i ended up with a heavily modified version that suits me more in no time. It's Amazing and trully inspiring even for an amateur like me.

Thx a lot !
And that goes to the all community who puts a lot of time in what they accomplish and even find time to explain and detail what they've done and why. (Sorry english is not my first langage ;) )

mrofa

pktongrimworld - there is always output in outputlog  in game folder.
Problem with it its often a class error and for ppl that arent in any way coders or programmers its just a jubberish(hope that a word ) wall of text :p

All i do is clutter all around.