Jump to content

Intersect GUI Editor


OniSensei

Recommended Posts

Hello! So one of the biggest hurdles I have faced while using the Intersect Engine, is editing the GUI. Any big changes require a lot of work, and while it isn't difficult to edit the JSON files and figure out what does what. It does take time, and constant reopening of the client to check the changed.

 

I decided to make a tool that will load the Intersect Engine GUI JSON files and give you a visual editor for them. It simplifies the JSON file into a TreeView that is easy to edit and save.

 

Currently this is limited in what it will show but I will be adding much more to this tool. This is the initial alpha release, there will likely be bugs Please tell me about bugs!

 

This project is Open Source though it is coded in VB.NET and I am trash, be thankful this even works lol.

 

Preview:

562aeafc5e0dc304490146c2e5e11049.gif

 

Download:
https://github.com/OniSensei/Intersect-GUI-Editor/releases/tag/1.0.0.1

 

Source:

https://github.com/OniSensei/Intersect-GUI-Editor

 

Make sure to copy and paste the contents of your Client > Resource > gui folder to the editors gui folder, and replace any images in the resources folder that you would like. The custom font is still experimental at this time but in theory it should work, you can change the font by putting a .ttf file into the font folder and changing the font in the settings window (cog icon).

 

Please let me know if you have any suggestions, I would love to hear them! And follow the development here:
https://github.com/OniSensei/Intersect-GUI-Editor/projects

Link to comment
Share on other sites

This is it fam. Whether it works or not this is as close to an official gui editor you're gonna get for the foreseeable future. 

 

One thing that wouldn't be easy but insanely cool regardless (feature request inbound) would be bundling the MonoGame content builder and providing a gui to generate game fonts by selecting system font files and a helper for selecting character regions to generate. 

 

Either way good work, it looks great, thanks for sharing @OniSensei and I hope it is helpful to many around here. 

Link to comment
Share on other sites

oooooooh, nice shiny toy coded in vb.net

 

me like  !

 

edit,

i checked your code, and am glad to say it looks good man, just glanced over it for now, but i dont see much wrong with it. very nice project :)

Link to comment
Share on other sites

11 minutes ago, Damian666 said:

oooooooh, nice shiny toy coded in vb.net

 

me like  !

 

edit,

i checked your code, and am glad to say it looks good man, just glanced over it for now, but i dont see much wrong with it. very nice project :)

Thanks! It’s just sloppy, I wanted to get something functional to begin with, I can clean up the json deserialization a lot among other things.

Link to comment
Share on other sites

Sorry for double posting but just wanted to highlight there has been a small update.

 

Thanks to @Weylon Santana 's feature requests there have been a few updates to the over all use-ability.

 

The textbox that contains the value you are editing no longer resets after updating, as well as the selected node in the treeview, this enables faster and more frequent edits. Additionally, I enabled the text editor, edits within the editor will now show up on the visual panel as well as update the treeview. Finally I added a few tips, when you select a node on the treeview the status bar at the bottom will reflect a tip on what the values mean to give newer users a more in depth idea of what they are changing. More tips will come, as I only added the few I am particularly knowledgeable about and would love to crowd source anything you guys think would be valuable tips.

The main post has already been updated with the new version download, and the repo is always up to date.

0184dd53e1335833d77c8aac8e5df067.gif

Link to comment
Share on other sites

  • Damian666 pinned this topic
  • 2 weeks later...

I tried editing the 'EventDialogWindow_1Response' since I assume that is what the 'Show Text' event dialogue uses? I can enlarge the window just fine, and move the response button, but when I go into the client to see the enlarged window it doesn't work?

 

c0b505ca009b4d323248dff772219cd8.png

96e478912529bc29529ef28e55933197.png

 

Link to comment
Share on other sites

  • 3 weeks later...
On 6/18/2021 at 5:00 AM, froggy said:

I tried editing the 'EventDialogWindow_1Response' since I assume that is what the 'Show Text' event dialogue uses? I can enlarge the window just fine, and move the response button, but when I go into the client to see the enlarged window it doesn't work?

 

c0b505ca009b4d323248dff772219cd8.png

96e478912529bc29529ef28e55933197.png

 

 

This is likely due to the client setting the sizes during load times rather than reading the json, this happens with some json files.

Link to comment
Share on other sites

On 6/18/2021 at 2:00 AM, froggy said:

I tried editing the 'EventDialogWindow_1Response' since I assume that is what the 'Show Text' event dialogue uses? I can enlarge the window just fine, and move the response button, but when I go into the client to see the enlarged window it doesn't work?

 

c0b505ca009b4d323248dff772219cd8.png

96e478912529bc29529ef28e55933197.png

 


I had a similar issue. You have to edit both the bounds of  "EventDialogArea" & "EventDialogAreaNoFace" otherwise it wont work and your settings will keep getting overwritten.

Link to comment
Share on other sites

  • 3 weeks later...

This is bug??

Spoiler

See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.IO.FileLoadException: Could not load file or assembly 'Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
File name: 'Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed'
   at ZTn.Json.JsonTreeView.Controls.JTokenTreeUserControl.SetJsonSource(String jsonString)
   at Intersect_GUI_Editor.ChatboxWindowGUI.LoadChatboxWindowGUI(String jsonfile) in C:\Users\Oni\source\repos\Intersect GUI Editor\Intersect GUI Editor\JSON Deserializers\game\ChatboxWindowGUI.vb:line 161
   at Intersect_GUI_Editor.Form1.ChatboxWindowToolStripMenuItem_Click(Object sender, EventArgs e) in C:\Users\Oni\source\repos\Intersect GUI Editor\Intersect GUI Editor\Form1.vb:line 1044
   at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
   at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
   at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
   at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ToolStrip.WndProc(Message& m)
   at System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].

************** Loaded Assemblies **************
mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4390.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll
----------------------------------------
Intersect GUI Editor
    Assembly Version: 1.0.0.1
    Win32 Version: 1.0.0.1
    CodeBase: file:///e:/duangame/intersect/tv(delop)/intersect.gui.edtor/ige/intersect%20gui%20editor.exe%C2%A0
----------------------------------------
Microsoft.VisualBasic
    Assembly Version: 10.0.0.0
    Win32 Version: 14.8.4084.0 built by: NET48REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualBasic/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
----------------------------------------
System
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4360.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Core
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4390.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4390.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4390.0 built by: NET48REL1LAST_C
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4190.0 built by: NET48REL1LAST_B
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4084.0 built by: NET48REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Runtime.Remoting
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.4084.0 built by: NET48REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Remoting/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll
----------------------------------------
ZTn.Json.JsonTreeView
    Assembly Version: 1.2.0.0
    Win32 Version: 1.2.0.0
    CodeBase: file:///e:/duangame/intersect/tv(delop)/intersect.gui.edtor/ige/ZTn.Json.JsonTreeView.DLL
----------------------------------------
Newtonsoft.Json
    Assembly Version: 13.0.0.0
    Win32 Version: 13.0.1.25517
    CodeBase: file:///e:/duangame/intersect/tv(delop)/intersect.gui.edtor/ige/Newtonsoft.Json.DLL
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.


 

 

Link to comment
Share on other sites

  • 1 month later...
1 hour ago, Damian666 said:

dunno atm, why? are you missing stuff?  or have errors?

 

Yeah all the same errors nvh is getting. Compiled source and ran it (has the resources folder in that directory) and can't make any changes. When update is clicked it gives the error nvh posted.

Link to comment
Share on other sites

8 hours ago, Scaly said:

 

Yeah all the same errors nvh is getting. Compiled source and ran it (has the resources folder in that directory) and can't make any changes. When update is clicked it gives the error nvh posted.

 

So my question is what else is in that directory? Because from looking myself, IGE uses Newtonsoft.Json 13, and the error nvh had is Newtonsoft.Json 12 -- which Intersect uses. Makes me think IGE was dumped into the same directory as the Intersect client and then run.

That said, I get a totally different error on clicking Update because IGE doesn't create the temp directory if it does not already exist.

Link to comment
Share on other sites

4 hours ago, panda said:

 

So my question is what else is in that directory? Because from looking myself, IGE uses Newtonsoft.Json 13, and the error nvh had is Newtonsoft.Json 12 -- which Intersect uses. Makes me think IGE was dumped into the same directory as the Intersect client and then run.

That said, I get a totally different error on clicking Update because IGE doesn't create the temp directory if it does not already exist.

 

You're correct. I didn't read the error I got and assumed it was the same because they copied and pasted the entire log. Mine looks like this:

 


************** Exception Text **************
System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Users\<USER>\Desktop\Intersect-GUI-Editor-master\Intersect GUI Editor\bin\Debug\temp\tmp_7806103.json'.
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
   at System.IO.FileStream..ctor(String path, FileMode mode)
   at Intersect_GUI_Editor.Functions.ReloadText(String windowname, String type) in C:\Users\<USER>\Desktop\Intersect-GUI-Editor-master\Intersect GUI Editor\Functions.vb:line 16
   at Intersect_GUI_Editor.Form1.Button1_Click(Object sender, EventArgs e) in C:\Users\<USER>\Desktop\Intersect-GUI-Editor-master\Intersect GUI Editor\Form1.vb:line 3013
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

 

Link to comment
Share on other sites

1 minute ago, Scaly said:

 

You're correct. I didn't read the error I got and assumed it was the same because they copied and pasted the entire log. Mine looks like this:

 


************** Exception Text **************
System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Users\<USER>\Desktop\Intersect-GUI-Editor-master\Intersect GUI Editor\bin\Debug\temp\tmp_7806103.json'.
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
   at System.IO.FileStream..ctor(String path, FileMode mode)
   at Intersect_GUI_Editor.Functions.ReloadText(String windowname, String type) in C:\Users\<USER>\Desktop\Intersect-GUI-Editor-master\Intersect GUI Editor\Functions.vb:line 16
   at Intersect_GUI_Editor.Form1.Button1_Click(Object sender, EventArgs e) in C:\Users\<USER>\Desktop\Intersect-GUI-Editor-master\Intersect GUI Editor\Form1.vb:line 3013
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

 


Ok, that is the error I saw. Alternatively: https://github.com/OniSensei/Intersect-GUI-Editor/pull/14

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...