World of Goo Modifier (aka WoGModifier) is a utility that helps you goomod more easier and faster.
This program is well designed that it doesn't need help! :P Seriously if you don't know how to use this program, you can try Quick Help by clicking Help - Quick help.
You can extend the features by clicking Tools - Edit batch process features, editing Features.xml, saving and restarting WoGModifier. Of course the content of Features.xml is hard to understand. So I'm writing an article to introduce it.
Features.xml is a standard xml file. There is only one attribute for the root element Features. @Version determines the version of the xml. The current version is 4. There are six elements under the root element.
Strings element is a string table.
There are lots of String elements in it for localization. @ID is the id, @Text is the English content, @zh-CN is the Chinese content and so on. These strings will be used later.
LevelEditor & BallEditor element store the batch process features for levels and goo balls. There are lots of Feature elements inside. Feature elements has only one attribute @ID.
There are three elements inside: Process, Reverse & Restore. They are called subfeatures. Restore is the most special one. If its string is not found, it will use the corresponding one of Reverse. They have four attributes, we don't need to set them typically. Here are the four attributes. They are all string table IDs.
Name: Displayed in the error/warning page. Make it as short as possible. Default: Feature/@ID+Subfeature name+Name. (e.g. VisualDebugProcessName)
Description: Displayed in select features page. Keep it short and simple. Default: Feature/@ID+Subfeature name+Description.
NothingChanged: The warning message displayed when nothing is changed. Default: Feature/@ID+Subfeature name+NothingChanged.
Tip: The tooltip displayed when the mouse hovered. Default: Feature/@ID+Subfeature name+Tip.
Each subfeature except Restore has several operations inside. We can classify them under six groups. You can put A and B operations in the subfeature.
Halting Operations can stop the current process immediately.
<Warning Message="Warning Messages!" />
This element will stop the current process immediately and print the Warning Message. No changes to the file will be saved.
Modifying Operations are used to modify the files.
<Modify File="file name">
Put all kinds of operations here!
</Modify>
This element is used to open and decrypt the file and modify its content. If it's going to modify the level, valid values are scene, level and resrc. If it's going to modify the goo ball, valid values are balls and resources.
Text Operations are used to do some simple operations on texts.
<IfContains Value="text to find">
<Then>
What will be done if the text is found
</Then>
<Else>
What will be done if the text is not found
</Else>
</IfContains>
This element is used to test if the specified text contains in the text. Wherever it is put, it will search the whole text.
<RegexReplace Pattern="pattern to search" Replacement="replacement" />
This element is used to replace texts with regular expressions.
Here is a quick reference if you don't know what regular expression is: http://msdn.microsoft.com/en-us/library/az24scfc.aspx
And this tool can help you: http://www.regexper.com/
<Replace Old="text to find" New="replacement" />
This element is used to replace texts normally.
XML Node Operations are used to query or modify XML nodes.
<SelectNodes>
<Nodes>
<Node XPath="XPath to search" Contains="if this attribute is set, it will only match the nodes which has the specified text inside" />
Can place multiple Node elements, the result will be the union.
</Nodes>
<Operations>
Place operations to perform on the matched nodes here
</Operations>
</SelectNodes>
Query the nodes and perform the operations.
<CreateElement XPath="XPath of the parent node" ElementName="Name of the element">
Operations to perform on the new element
</CreateElement>
Search all matched nodes and create a new element in each.
<RemoveElement XPath="XPath" WhichContains="if this attribute is set, it will only match the nodes which has the specified text inside" />
Remove all matched nodes.
XML Attribute Operations are used to query or modify attributes. MUST BE PLACED IN D OPERATIONS DIRECTLY OR INDIRECTLY!
<IfAttribute Name="Attribute name" Value="Attribute value" IfNull="Will Then executed if the attribute is not found">
<Then>
Executed when the actual value equals to @Value
</Then>
<Else>
Executed when the actual value does not equal to @Value
</Else>
</IfAttribute>
Check the value of the attribute.
<SetAttribute Name="Attribute name" Value="Attribute value" />
Set the value of the attribute. If the attribute does not contain, it will be created.
<MatrixMultiplyAttribute Name="Attribute name" Value="Matrix that is going to be multiplied" Default="The default value if the attribute does not exist" />
This element is used to convert the value to homogeneous coordinates and do the affine transformation. Details here: http://en.wikipedia.org/wiki/Affine_transformation
Used to do everything!
<ExecuteXsl Path="Sample XSL.xsl" />
<ExecuteIronPython Script="Sample Python script.py" />
<ExecuteIronRuby Script="Sample Ruby script.rb" />
The script files are stored in the Resources\Scripts directory. XSL is the most easy one to use, you can generate one with this tool: http://www.davidc.net/miscellany/diff-xml-documents-xsl-stylesheet
WoGModifier will run Initialization.py and Initialization.rb when it starts. You can place run-once codes there.
When the specified script starts to run, there will be an decrypted string variable called input
. After your script runed, there should be a boolean variable called edited
that determines if you want to apply your changes. If so, there should also be a string or XDocument variable called output
which is the running result of your script.
There are three elements in them: Level, Scene, Resrc. They are used to create the level that is used to test goo balls or materials.
There are two elements in them: Balls and Resources. This goo ball is used in GooBallTester.
Just delete the directory of the program.
Unable to start the program:
You should install .NET Framework 4.0 first to run this program just like you must install JRE before you run GooTool.
Profile was destroyed by this program:
Ask me for help then, I'd like to hear, fix your profile if possible and improve my program.
How to select themes:
If you have something to ask us, (such as find a bug or don't know how to use a feature in this program) please contact us:
Updates in V4.0.43.275: