• Welcome to Final Fantasy Hacktics. Please login or sign up.
 

Control Panel Development Discussion

Started by lirmont, December 10, 2011, 04:03:58 pm

lirmont

January 08, 2013, 02:48:41 pm #60 Last Edit: January 08, 2013, 02:55:12 pm by lirmont
3d models are currently stored in an EGG format which is Panda3d-specific. If you cannot see the model, it is very likely that the program is silently failing as it tries to use the provided Panda3d binary files for viewing EGG files. To make sure they're working, you can navigate to the "models" folder via a command prompt and attempt to run "egg2x.exe c:\path\to\tethical\eggfile.egg eggfile.x". One of the idiosyncratic things about Panda3d is that it requires everything to be on its model path. In other words, you can't provide an absolute path to a resource and just expect it to work; you need to make sure that the resource exists under the model path (a concept similar to the Windows PATH environment variable), and you can do this by editing the Config.prc file to have an entry with an absolute path to your Tethical installation for the variable "model-path". Depending on what error it gives you, you can also try installing Python and/or the Panda3d SDK (1.8) to fix it. Since the EGG format is human readable, I do have plans to write my own reader for it at some point, because I do not like having to provide ~60MBs of binary files just to parse out models.

Mono.TextEditor is DLL/library that is obtained by installing MonoDevelop. Update the reference to that library somewhere underneath MonoDevelop's installation folder.

As for the bug, you can change line 427 of Database.cs to the following to fix that:

Code (C#) Select
string connection = string.Format ("Server={0};Database={1};User ID={2};Password={3};Pooling=false;Allow User Variables=True;", config);

kohansey

After installing the Panda3D SDK (not the run-time binaries), and re-running the TethicalUI, I was able to see the maps in the UI.  Thanks for you help.

I am still having problems located the Mono.TextEditor assembly.  I just downloaded and installed MonoDevelop 3.0.6, Gtk# 2.12 and .NET 4.0 SDK, but it doesn't seem to make a difference, no Mono.TextEditor.

On another note, I am attempting to test out the current release of Tethical.  I downloaded the sources from Git and installed them in my C:\Tethical folder.  When I run the server I get the following messages in the command-line:

:express(warning): Filename is incorrect case: /c/Panda3D-1.8.0/etc/config.prc instead of /c/Panda3D-1.8.0/etc/Config.prc
DirectStart: Starting the game.
:express(warning): Filename is incorrect case: /c/Panda3D-1.8.0/etc/config.prc instead of /c/Panda3D-1.8.0/etc/Config.prc
:express(warning): Filename is incorrect case: /c/Panda3D-1.8.0/etc/config.prc instead of /c/Panda3D-1.8.0/etc/Config.prc
:express(warning): Filename is incorrect case: /c/Panda3D-1.8.0/etc/config.prc instead of /c/Panda3D-1.8.0/etc/Config.prc
Server listening on port 3001

I then run the client which is able to connect to the server and log in as 'lirmont'.  Next I start another instance of the client, which connects to the server, and log in as 'test' (networkuser that I created).  In both instances of the client, I get a blank dialog box with Party, Creator, and Map across the top and what looks like a button on the bottom (Create Party).  See attachment.

However, nothing happens when I click Create Party.  I am not sure what to do at this point, if someone could please offer assistance I would appreciate it.

lirmont

With the project open, you will need to update (or delete and re-add) the reference to Mono.TextEditor to point to the Mono.TextEditor.dll assembly located where you installed MonoDevelop (ex: C:\Program Files\MonoDevelop\bin\Mono.TextEditor.dll).

Yes, they aren't actually buttons in that version of the engine; they're just images. You can look up the keys that correspond to the PSX buttons in the config.prc file. Triangle is 'v' for instance; that will take you to the map chooser.

In my reorganization of the project, the onscreen buttons are generated as mouse-accessible buttons using a box model as a background with the text over top reflecting your choice of keyboard or gamepad iconography; there's a thread on that here, but that version of the engine is not available yet because I've left a lot of things broken (that work in Kivutar's original version, which is the one up on github): Game States.

kohansey

Thank you again for getting back to me and for all the help you have given so far.  Thanks to you, I can now test two clients battling it out (sort of) in the Tethical world.  I tried your suggestion for removing the Mono.TextEditor reference and added the reference to the DLL like you said, however, I am not getting a whole lot of different errors when I attempt to re-compile the Widgets project:


c:\Users\jpw\Dropbox\TethicalUI\Widgets\PagedTextEditor.cs(4,4): Error CS0012: The type 'ICSharpCode.NRefactory.Editor.IDocument' is defined in an assembly that is not referenced. You must add a reference to assembly 'ICSharpCode.NRefactory, Version=0.0.0.0, Culture=neutral, PublicKeyToken=efe927acf176eea2'. (CS0012) (Widgets)c:\Users\jpw\Dropbox\TethicalUI\Widgets\PagedTextEditor.cs(4,4): Error CS0012: The type 'ICSharpCode.NRefactory.Editor.ITextSource' is defined in an assembly that is not referenced. You must add a reference to assembly 'ICSharpCode.NRefactory, Version=0.0.0.0, Culture=neutral, PublicKeyToken=efe927acf176eea2'. (CS0012) (Widgets)
c:\Users\jpw\Dropbox\TethicalUI\Widgets\PagedTextEditor.cs(23,23): Error CS1061: 'Mono.TextEditor.ITextEditorOptions' does not contain a definition for 'RemoveTrailingWhitespaces' and no extension method 'RemoveTrailingWhitespaces' accepting a first argument of type 'Mono.TextEditor.ITextEditorOptions' could be found (are you missing a using directive or an assembly reference?) (CS1061) (Widgets)
c:\Users\jpw\Dropbox\TethicalUI\Widgets\PagedTextEditor.cs(6,6): Error CS0012: The type 'ICSharpCode.NRefactory.TextLocation' is defined in an assembly that is not referenced. You must add a reference to assembly 'ICSharpCode.NRefactory, Version=0.0.0.0, Culture=neutral, PublicKeyToken=efe927acf176eea2'. (CS0012) (Widgets)
c:\Users\jpw\Dropbox\TethicalUI\Widgets\PagedTextEditor.cs(75,75): Error CS0234: The type or namespace name 'Document' does not exist in the namespace 'Mono.TextEditor' (are you missing an assembly reference?) (CS0234) (Widgets)
c:\Users\jpw\Dropbox\TethicalUI\Widgets\PagedTextEditor.cs(83,83): Error CS0117: 'Mono.TextEditor.DeleteActions' does not contain a definition for 'DeleteSelection' (CS0117) (Widgets)


I suspect that I am running a different version of Mono or the Gtk# libraries and I want to make sure I have everything installed correctly.  If you could let me know what version of MonoDevelop and Gtk you are using, I'll uninstall what I have and re-install the version you are using.

lirmont


kohansey

After adding your DLL to the references, it worked.  I did have to change the .NET framework used in the Widgets project to 4.0.  Thanks again for your help.