Thanks for the words of praise, I really enjoy working on this project. The next release is being worked on, it will fix the bugs listed in this thread (and a few more I found). I am also nearing completion on the mod report generator that's built into the editor that can create pdf reports on mods. These reports can contain everything in the mod (500 pages of pdf for CBM, not very useful) or can be scoped down to areas of interest. For instance, you can see just what's in a mod for a certain nation, including it's allowed pretenders, recruitables, heroes and national spells. Even more interesting is that you can see the change from vanilla dom3 or even another version of a mod! So, you could load up CBM 1.84 and 1.91 and get a report on everything that has changed and see old and new values side by side, or just see what has changed for your favorite nation.
It's taking a little longer then I thought it would to complete this (I'm spending most of my "free time on the computer" actually playing dom instead of writing tools for it). But, I have made good progress on the bug fixes so I may just release those if the mod reports slow me down.
__________________
Try the dom3editor for easy Dominions 3 mod creation.
The Following 3 Users Say Thank You to Larz For This Useful Post:
This looks to be a very helpful app indeed, thanks Larz! I was hoping someone in the community had written something like this, and fortunately for me you have :-)
org.eclipse.emf.common.util.BasicEList$BasicIndexOutOfBoundsException: index=0, size=0
at org.eclipse.emf.common.util.BasicEList.get(BasicEList.java:352)
at org.larz.dom3.editor.DmEditor$1$2.process(DmEditor.java:144)
at org.larz.dom3.editor.DmEditor$1$2.process(DmEditor.java:1)
at org.eclipse.xtext.util.concurrent.IUnitOfWork$Void.exec(IUnitOfWork.java:36)
at org.eclipse.xtext.util.concurrent.IStateAccess$AbstractImpl.readOnly(IStateAccess.java:40)
at org.eclipse.xtext.ui.editor.model.XtextDocument.readOnly(XtextDocument.java:70)
at org.larz.dom3.editor.DmEditor$1.run(DmEditor.java:141)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at org.larz.dom3.editor.DmEditor.addPages(DmEditor.java:104)
at org.eclipse.ui.forms.editor.FormEditor.createPages(FormEditor.java:138)
at org.eclipse.ui.part.MultiPageEditorPart.createPartControl(MultiPageEditorPart.java:348)
at org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:670)
at org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:465)
at org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595)
at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:313)
at org.eclipse.ui.internal.presentations.PresentablePart.setVisible(PresentablePart.java:180)
at org.eclipse.ui.internal.presentations.util.PresentablePartFolder.select(PresentablePartFolder.java:270)
at org.eclipse.ui.internal.presentations.util.LeftToRightTabOrder.select(LeftToRightTabOrder.java:65)
at org.eclipse.ui.internal.presentations.util.TabbedStackPresentation.selectPart(TabbedStackPresentation.java:473)
at org.eclipse.ui.internal.PartStack.refreshPresentationSelection(PartStack.java:1254)
at org.eclipse.ui.internal.PartStack.setSelection(PartStack.java:1207)
at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:1606)
at org.eclipse.ui.internal.PartStack.add(PartStack.java:497)
at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:103)
at org.eclipse.ui.internal.PartStack.add(PartStack.java:483)
at org.eclipse.ui.internal.EditorStack.add(EditorStack.java:112)
at org.eclipse.ui.internal.EditorSashContainer.addEditor(EditorSashContainer.java:63)
at org.eclipse.ui.internal.EditorAreaHelper.addToLayout(EditorAreaHelper.java:225)
at org.eclipse.ui.internal.EditorAreaHelper.addEditor(EditorAreaHelper.java:213)
at org.eclipse.ui.internal.EditorManager.createEditorTab(EditorManager.java:778)
at org.eclipse.ui.internal.EditorManager.openEditorFromDescriptor(EditorManager.java:677)
at org.eclipse.ui.internal.EditorManager.openEditor(EditorManager.java:638)
at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2860)
at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2768)
at org.eclipse.ui.internal.WorkbenchPage.access$11(WorkbenchPage.java:2760)
at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:2711)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2707)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2691)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2674)
at org.larz.dom3.ApplicationActionBarAdvisor$2$1.run(ApplicationActionBarAdvisor.java:153)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at org.larz.dom3.ApplicationActionBarAdvisor$2.run(ApplicationActionBarAdvisor.java:132)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)
at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)
at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)
at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.larz.dom3.Application.start(Application.java:35)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:619)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
Thanks a lot for the tool, again, for the updates to it, and especially to the source code that you have made available as well on the Google Code page.
I have updated the OP with information on the 1.0 release of dom3editor. I have fixed all of the bugs sent to me and made some upgrades to the parser to speed it up.
One thing I have added is the ability to create a PDF report from a mod that lists all of the changes the mod implements, including the old and new values. At the moment this feature is not really very useful, it's just a first pass at my goal of auto-generated documentation that is useful and nice to look at. My goal is to be able to generate different manuals ("Nation Manuals" that will list all of the changes that effect a certain nation or a "Monster Manual" to list all of the monster changes) in an easy to read format including pictures of sprites and translated mod values (Fire instead of "0", translated bitmasks, etc). You could print out the differences between the mod and vanilla or even the differences between two versions of the mod to see what nations are effected most by changes.
There are versions of the editor for Windows, Linux and Mac. This is an open-source project, so the source code is freely available. The project webpage is:
Just started playing around with this program, and must say it's absolutely great. Many thanks for creating it Larz
One possible bug I did find though is with entering descriptions, as the Carriage Returns being created are not recognised by Dominions. As the \r\n etc commands are being displayed in the text description (rather than being followed by Dominions 3)
Here's a screenshot to highlight the problem, and I've attached the simple mod I created to test it.
Just started playing around with this program, and must say it's absolutely great. Many thanks for creating it Larz
One possible bug I did find though is with entering descriptions, as the Carriage Returns being created are not recognised by Dominions. As the \r\n etc commands are being displayed in the text description (rather than being followed by Dominions 3)
Here is a patch that should fix the problem. Just unzip in your dom3editor directory. I will include this fix in the next offical release. Thanks for the bug report.
__________________
Try the dom3editor for easy Dominions 3 mod creation.
There is a new release of the dom3editor (1.0.2). This is a bugfix release to address a couple of issues found by users. They are:
- Newlines in descriptions inserted unwanted characters.
- When modding items, the #weapon can now be a string as well as the weapon number. This is not allowed according to the modding manual, but I noticed several mods did this and tested that it does work. So it is now allowed.
- Valid new monster numbers increased to 3999. Again, this appears to be wrong in the modding manual but testing indicated this is the proper max.
- Default values for item modding should work better.
- The "General Modding" commands can now occur anywhere in the mod. They used to be restricted to the top of the mod (which was incorrect). Also, they can be properly edited from the form page.
There are downloads for Windows/Linux/Mac located at:
I have also uploaded a patch that will patch a current installation of the 1.0 version to 1.0.2. Just unzip the files into your dom3editor directory (files will go under plugins). This patch works on all platforms. To verify that it worked just go to Help->About and check the version number.
__________________
Try the dom3editor for easy Dominions 3 mod creation.
The Following User Says Thank You to Larz For This Useful Post: