Help - Search - Members - Calendar
Full Version: Furcadia Framework For Third Party Programs
Furcadia Community Forums > Creations > Third Party Development
Squizzle
Furcadia Framework makes RAD easier for third party developers. Developed in .NET it can be used with any .NET language (c#,vb.net,c++,boo,etc)


Features
  • A easy class (NetProxy) to make your very own Proxy/Bot Program.
    • So easy a caveman can do it! NetProxy my_proxy = new NetProxy(6500); Then call my_proxy.Connect(); If you want to capture data then use the my_proxy.ClientData or my_proxy.ServerData.
  • Creating your very own Pounce-like program with PounceConnection.
    • Easy as PounceConnection my_pounce = new PounceConnection("Friend","AnotherFriend","AndAnother",YourPopular"); Then calling my_pounce.Connect();
  • Some extras like Furcadia.Util.Path gets the Furcadia directory and Furcadia.Util.Host gets the Furcadia server host.
Thank Yous!
Many thanks go out to Dream Dancer, Lothus Marque, Artex and DEP for providing your server protocol to nerds like me. (If I missed anyone let me know and I will add you asap.)

Project Page: http://furcadia.codeplex.com/
Artex
Speaking of paths, here's something I made for personal use in C#: Paths.cs

In theory, it should allow you to auto-detect the current Furcadia path (even if installed in a non-default location and even if localdir.ini changes are applied). Here's a tool that should test its operation: pathdiag.exe

You can change it to fit your needs if you see any use in it, or make one yourself, if it would help improve your project.

Good luck.
Squizzle
I made it open source that way anyone can contribute and if they have a contribution I'll gladly add it giving proper credit to them.

Edit: Researching this (Cross platform way of getting paths). Nevermind this line smile.gif

On another note anyone here familiar with Mono Develop? I was trying to create a build package for other platforms to add it to the project but it kept giving me a "File not found." in red text at the bottom of the Package Output.
Artex
Linux per se doesn't have "My Documents". Distributions like Kubuntu seem to imitate something like that in their settings by adding these "Windows-like" folders in your home folder, but that doesn't mean that Ubuntu or other non-*buntu distros will have the same system going on.

Me - I wasn't making these files with other OSes in mind (and thus I boldly used a using Microsoft.Win32; statement in there) because as much as .NET and the guys at Mono try to bring all its features to other platforms, some of .NET's functionality will be a problem to implement on non-Windows OSes. If you can run .NET programs wrapped in wine (which is kinda layery already: Linux->wine->.NET runtime->app.exe) you might have it easier because wine has most of these paths supported (if not all of them) and that's where Furcadia itself runs, too. Otherwise, you'd probably need to simulate this stuff or rely strictly on localdir.ini...

Distro maintainers don't seem to be keen on having .NET support out-of-the-box yet, not until they get it straight with MS and their licensing. With that attitude, it will be a problem distributing .NET programs to Linux users - something that used to be a problem with Windows: Your small program with the little it does weighs a few kilobytes or so, and for that small program, a user needs to download almost a hundred megabytes (if not more) of .NET and install it on their PC! My fingers won't rise to require something like that just to run my program and thus, if you can't run the exe as you are, you probably shouldn't bother - for your own sake. That's why it kinda sucks making Python scripts for Windows and .NET applications for Linux - the user doesn't have the interpreter by default and the download size is unacceptable IMO. :/
Hexi
QUOTE (Artex @ Oct 29 2009, 04:56 PM) *
Distro maintainers don't seem to be keen on having .NET support out-of-the-box yet, not until they get it straight with MS and their licensing. With that attitude, it will be a problem distributing .NET programs to Linux users - something that used to be a problem with Windows: Your small program with the little it does weighs a few kilobytes or so, and for that small program, a user needs to download almost a hundred megabytes (if not more) of .NET and install it on their PC! My fingers won't rise to require something like that just to run my program and thus, if you can't run the exe as you are, you probably shouldn't bother - for your own sake. That's why it kinda sucks making Python scripts for Windows and .NET applications for Linux - the user doesn't have the interpreter by default and the download size is unacceptable IMO. :/

I concur, and this is part of why I have been reluctant to switch to the .NET way of doing things.
Dream Dancer
QUOTE (Artex @ Oct 29 2009, 05:56 PM) *
... a user needs to download almost a hundred megabytes (if not more) of .NET and install it on their PC!
Likewise and why I will probably never go dot net.
Treeki
That's why I always target .NET 2.0 for my apps. It's a leaner version that still includes everything possibly needed for Furc stuff. It's just a 23mb download for XP and previous, it even works on Win98 and Vista/7 users don't need to download anything extra.
Squizzle
http://www.hanselman.com/smallestdotnet/

The web download for .net 3.5 here .Net download is a one stop shop. You download it once its done.
Kylix
Having the .NET 2.0 framework installed is not an unreasonable expectation these days considering Vista ships with 3.0 and 7 ships with 3.5. That, and the non-service pack version of 2.0 is compatible with 98 and Me. Even the IT departments of some of the largest of companies are moving over to newer .NET technologies.

Besides legacy support or familiarity, I cannot think of one compelling reason to stick with VB6 anymore. The newer Visual Studio IDEs are very powerful and quick debugging tools, the JIT compiler keeps closing the gap between native and managed performance, and the security models are vastly updated. Plus, the .NET Framework itself provides a lot of functionality that you can't easily do in VB6 (ActiveX controls neglected) or .NET makes it much easier to work (see: registry, console, i/o, jagged arrays, etc, etc).
Squizzle
A new build in the SourceCode section. "Updated Net/PounceConnection.cs to be Asynchronous and continue until Kill() is called."

Now its more useful lol. OH and I finally figured out how to use TortiseSVN after a few tries smile.gif

http://furcadia.codeplex.com/

@Artex: I would like to use your code but I am going to have to find out what differences there are with Linux Wine - Windows. I'm trying to make it work for all operating systems that can support Furcadia, no matter how much work that might involve.

How did Ghost Tiger do it? His client is suppose to be basically the same thing but on a different platform, right? If there is no registry to find the Furcadia path then what does Ghost Tiger use?
Artex
I'll try getting .NET on wine today and see what's going on there (if I can, never tried that before). The differences shouldn't matter that much, however. All in all, it's the same environment variables and registry keys, but with different paths.

20091030@0950 FST: Seems like there's no way in hell a regular user would get .NET to work on wine - it doesn't install out-of-the-box, so we're left with mono on Linux itself. Mono does seem to have special paths of its own from what I've seen with pathdiag.exe. Linux has no registry, so using the registry calls is pointless. That didn't, however, crash the app when I tried running it! So we might just get away with registry traversing, as long as we don't rely on it being available or accessible. I'll make a program to display all them special paths and see what is mapped to what on Linux. Could come in handy when going cross-platform.

But yeah, I also go Treeki's way when it comes to .NET, because I know that most Windows OSes today have at the very least .NET 2.0 installed on them and if I need to make an app for someone, I'll know they will most likely be able to run it out of the box. Mono already got to 2.0 as well, so in general, the app can also run on Linux unless I don't think cross-platform, but seeing that mono isn't available out-of-the-box, Linux support is something I'll most likely keep just for my own convenience, at least for now.

The concept of .NET is great in itself, and from what I've done with it vs. C++, it seems pretty fast, too. Java has a similar ring to it (and that's what .NET basically comes to try and replace), but it's plain slow, and I'm not sure if it's as flexible. I just hope that .NET will become cross-platform and widely supported rather than yet another Microsoft thing you have to have Windows in order to use. Either that, or have to read pages of license agreements and spend a week or two with a bunch of lawyers deciphering it just so MS doesn't go and threaten you and your projects when they consider them a threat to their business, or decide one day that you should be paying them per copy you release.

QUOTE (Squizzle)
How did Ghost Tiger do it? His client is suppose to be basically the same thing but on a different platform, right? If there is no registry to find the Furcadia path then what does Ghost Tiger use?

Ghost Tiger doesn't really need to look for Furcadia installation folder, or adapt to the path structure of DEP's Furcadia because he has his own client - he can invent his own paths and use his own ways to find the install path, more suitable to OSX rather than original Furcadia's structure. He supports just the OSX platform for which he doesn't need to think about being cross-platform or anything non-OSX and non-Mac. Hell, he can make his own file formats and have a translation module for Furc's files in order to support them. You can supply binary data in TXT files, afterall, when you upload a dream. Can be used for "extra features" :P
Artex
Here's some Linux reference for ya:

Windows 7 x64 Path Reference
CODE
      ApplicationData -> C:\Users\IceDragon\AppData\Roaming
CommonApplicationData -> C:\ProgramData
   CommonProgramFiles -> C:\Program Files (x86)\Common Files
              Cookies -> C:\Users\IceDragon\AppData\Roaming\Microsoft\Windows\Cookies
              Desktop -> C:\Users\IceDragon\Desktop
     DesktopDirectory -> C:\Users\IceDragon\Desktop
            Favorites -> C:\Users\IceDragon\Favorites
              History -> C:\Users\IceDragon\AppData\Local\Microsoft\Windows\History
        InternetCache -> C:\Users\IceDragon\AppData\Local\Microsoft\Windows\Temporary Internet Files
LocalApplicationData -> C:\Users\IceDragon\AppData\Local
           MyComputer ->
          MyDocuments -> C:\Users\IceDragon\Documents
              MyMusic -> C:\Users\IceDragon\Music
           MyPictures -> C:\Users\IceDragon\Pictures
             Personal -> C:\Users\IceDragon\Documents
         ProgramFiles -> C:\Program Files (x86)
             Programs -> C:\Users\IceDragon\AppData\Roaming\Microsoft\Windows\Start Menu\Programs
               Recent -> C:\Users\IceDragon\AppData\Roaming\Microsoft\Windows\Recent
               SendTo -> C:\Users\IceDragon\AppData\Roaming\Microsoft\Windows\SendTo
            StartMenu -> C:\Users\IceDragon\AppData\Roaming\Microsoft\Windows\Start Menu
              Startup -> C:\Users\IceDragon\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
               System -> C:\Windows\system32
            Templates -> C:\Users\IceDragon\AppData\Roaming\Microsoft\Windows\Templates


Kubuntu Path Reference (Jaunty, KDE 4.3.2)
CODE
           StartMenu ->
           Favorites ->
     ApplicationData -> /home/icedragon/.config
            Personal -> /home/icedragon
    DesktopDirectory -> /home/icedragon/Desktop
  CommonProgramFiles ->
             Startup ->
              SendTo ->
             Cookies ->
CommonApplicationData -> /usr/share
             MyMusic -> /home/icedragon/Music
              System ->
LocalApplicationData -> /home/icedragon/.local/share
             History ->
          MyPictures -> /home/icedragon/Pictures
         MyDocuments -> /home/icedragon
              Recent ->
       InternetCache ->
        ProgramFiles ->
           Templates ->
          MyComputer ->
             Desktop -> /home/icedragon/Desktop
            Programs ->


Keep in mind:
  • /usr/share - can't be written to if you're not root (and trust me, in Linux, even the admin account doesn't have root privileges by default!)
  • /home/icedragon/Music, Pictures, Desktop - probably pre-set in mono, this is consistent with default KDE settings, but not connected to them: if you change KDE settings, this doesn't change in mono! It might be the same with other distros.
  • Empty paths are most likely empty strings, so they're safe.


Now to see what happens with the registry... :P
Hexi
why not just store the paths into an ini file?
Artex
Furc relies on Windows to tell it where these paths are in the system it's currently installed on, be it Wine, WinXP, Vista, Win7 or some other flavor. By storing them in a file, your app will no longer adapt to the more "exotic" cases or future versions of Windows which may have an altered filesystem structure.

If you're on an x64 system and you have an x86 application, Windows will automatically tell you that you should use "Program Files (x86)" for your application to avoid mixing up with 64bit apps. You can also alter the path of the My Documents folder in the system to something else (D:\ for instance). If you'd make My Documents static in the INI file, you'd end up storing or retrieving files from a wrong location.

It just gives you more responsibility than you'd rather have: Instead of relying on the system to tell you where it's best to store certain files, you have to know it by yourself and be aware of all the possible Windows flavors and scenarios like path changes from their defaults..

It's like telling windows "Handle URL <url>" and let it launch your favorite browser or program to handle a URL or a file depending on its type. You can store in the INI file which programs should it look for and launch for certain stuff, but why not let the OS do the work for you? :P
Definated
QUOTE (Squizzle @ Oct 29 2009, 10:50 PM) *
How did Ghost Tiger do it? His client is suppose to be basically the same thing but on a different platform, right? If there is no registry to find the Furcadia path then what does Ghost Tiger use?


Like Artex said, GT made his own client. For instance, aside from the file extensions Furcadia uses (ds, map, fox, ...), it also uses some of its own file types. Like FSX -> a deprecated mFurc patch format.

And for reference, paths are done much differently than Furc uses them.

/Users/USER/Library/Application Support/mFurc/
- / - Character INI Files (Uses a modified format for mFurc.), Contact List Settings
- /Bookmarks/ - Bookmarked dreams
- /Dreams/ - Downloaded dreams (from the fileserver)
- /Logs/ - Log files, Whisper Log Files
- /Maps/ - Directory provided to save player created dreams to.
- /Patches/ - Directory provided to save player created patches to.
- /Portraits/ - Portrait cache

/Library/Application Support/mFurc/
- /Maps/ - Default maps
- /Patches/ - Default patches
Dream Dancer
And as a case in point of altering paths, every machine I set up has the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList set to the root of a second hard drive. So running %userprofile% on them usually gets you like "E:\{profile-name}\".
Artex
QUOTE (Artex @ Oct 30 2009, 07:14 PM) *
Now to see what happens with the registry... :P

And so I've seen. Looks like registry emulation is supported on mono, but you'd have to store something in it before retrieving it. There is no registry on Linux per se, so there's nothing to access unless you put something in there.

Accessing the registry in an attempt to retrieve Furcadia's path (the way you used in Utils.cs) produces the following exception:
CODE
icedragon@ruth:~$ mono PathDump.exe

Unhandled Exception: System.Security.SecurityException: No access to the given key
  at Microsoft.Win32.KeyHandler..ctor (Microsoft.Win32.RegistryKey rkey, System.String basedir) [0x00000]
  at Microsoft.Win32.KeyHandler.Lookup (Microsoft.Win32.RegistryKey rkey, Boolean createNonExisting) [0x00000]
  at Microsoft.Win32.UnixRegistryApi.OpenSubKey (Microsoft.Win32.RegistryKey rkey, System.String keyname, Boolean writable) [0x00000]
  at Microsoft.Win32.RegistryKey.OpenSubKey (System.String name, Boolean writable) [0x00000]
  at (wrapper remoting-invoke-with-check) Microsoft.Win32.RegistryKey:OpenSubKey (string,bool)
  at Microsoft.Win32.Registry.ToKey (System.String keyName, Boolean setting) [0x00000]
  at Microsoft.Win32.Registry.GetValue (System.String keyName, System.String valueName, System.Object defaultValue) [0x00000]
  at PathDump.Program.Main (System.String[] args) [0x00000]

So basically, as long as you try{} the registry check, it should be go painlessly on Linux - you'd just assume that your registry entries didn't exist and go on with the program.

This can be a useful read if you're interested in app portability and compatibility with non-Windows OSes: http://mono-project.com/Guidelines:Application_Portability

HTH
Squizzle
@Artex: You are invaluable. Thank you very much for the information. The registry check is wrapped in a try catch. Don't know why that SecurityException wasn't caught.

And I wanted to make a note to everyone that has downloaded the source that the SourceControl builds are more up-to-date and if you are using the source code and want the latest build check for it there.

Anyone have any information on how Ghost Tiger stores the his client's path? Is it through a similar localdir.ini that Furcadia (Windows) uses?
Definated
QUOTE (Squizzle @ Oct 30 2009, 06:57 PM) *
Anyone have any information on how Ghost Tiger stores the his client's path? Is it through a similar localdir.ini that Furcadia (Windows) uses?


I believe the paths are hardcoded (since the mFurc installer CREATES said paths). There is no ability to change WHERE the program and support files are installed, just the disk to install them on. The paths chosen are based off Apple "recommended" developer locations. See the following document (in the Passwords section) for information on where developers SHOULD put folders.

http://developer.apple.com/tools/installerpolicy.html
Squizzle
Alright glad I finally got that out of the way!

BUT FIRST.

I have to give credit where it is absolutely necessary.

Credits for this release go to Kylix and Artex. Kylix for his code on Fox format and Artex for his Paths class.

Get It!

[Now to the project I've been wanting to get to for quite some time! If you do not know what I'm talking about see the TODO.

Wow.. 339 project views? There can't be that many Third Party Developers for Furcadia? Can there?
]
Calib
I'm looking forward to seeing where this goes. I'd look at the source code, but I don't have time to play with code right now. smile.gif Keep up the good work!
Squizzle
Yep if you do look at the source code and think up some things you'd like to see start a Discussion about it at http://furcadia.codeplex.com/Thread/List.aspx or if you have experience with C# then save me some difficulties of implementing your idea by programming it yourself then create a patch and upload your idea's source at http://furcadia.codeplex.com/SourceControl/PatchList.aspx and navigate to "Upload Patch".


Squizzle asks himself, "Why didn't you say that in the first post!?".
Ioka
Just something really small I noticed, not trying to be super picky! but it looks like the Furcada Framework Demo needs a small fix. I download it and the reference for FurcadiaLib is missing, looks like the project is looking for it in:
<ProjectReference Include="..\Furcadia\FurcadiaLib.csproj">

Might want to include the FurcadiaLib.csproj in there or just have it reference the FurcadiaLib.dll already there so someone doesn't have to remove the reference and re-add it.
Squizzle
I tested it on Wine using OpenSUSE vmware and it works right out of the box (the lastest SourceControl build).

If you have Wine and you want to be able to run this library on your OS then get the Windows release of Mono. The Linux release of Mono is unnecessary for Wine. MacOSX it should be the same way.

The next couple of days I'm going to be testing it out on Linux. Its going to put me back a few days because I really want this project to be able to work on more then just Windows...

As you can see here. It throws a DirectoryNotFound exception if it can't find the Furcadia install path (Thanks to Artex's code.)
Tested with Wine (with Windows Mono installed) and Mono (Linux version that came with the vmware image.).
CODE
rupert@linux:~/Applications/FurcadiaFramework_Example/bin/Release> mono FurcadiaFramework_Example.exe

Unhandled Exception: System.IO.DirectoryNotFoundException: Directory not found
  at Furcadia.IO.Paths.GetInstallPath () [0x00000]
  at Furcadia.IO.Paths.GetDefaultPatchPath () [0x00000]
  at FurcadiaFramework_Example.Program.Main (System.String[] args) [0x00000]
rupert@linux:~/Applications/FurcadiaFramework_Example/bin/Release> wine FurcadiaFramework_Example.exe

Unhandled Exception: System.IO.DirectoryNotFoundException: Directory not found
  at Furcadia.IO.Paths.GetInstallPath () [0x00000]
  at Furcadia.IO.Paths.GetDefaultPatchPath () [0x00000]
  at FurcadiaFramework_Example.Program.Main (System.String[] args) [0x00000]

(Its amazing how easy it is to get a .Net app ported to another OS. No wonder its becoming popular.)
Squizzle
I tested the Graphics part under Wine yesterday and it worked. I don't like how the GUI was flickery after you press the "Random" button to generate a random image from the "buttons.fox" file. It works though.

Networking is still not 100% I found out yesterday. If you launch it like so:
CODE
//C#
NetProxy proxy = new NetProxy(6500);
proxy.Connect();
Thread.Sleep(20000);
proxy.Kill();
proxy.Connect(); //This will throw a SocketException.

I get that "Only one socket/port/address allowed" error. I'm trying to figure out a way to make sure the NetProxy releases itself completely when it closes.

On another note, IPhone. Even though Mono does have a IPhone framework out there called MonoTouch which ~40 apps have been developed with using C#. It ain't cheap and it requires a MacOSX which I do not currently have. Hopefully somebody out there could lend a hand in development for that side of things.
Squizzle
Bug fixed. New RELEASE!

Its a minor release smile.gif but important nevertheless.
Squizzle
Good news, I found more bugs! This release is mostly bug fixes. PounceConnection has been upgraded a bit. FurcadiaFramework_Example demo has been modified and is a bit more organized. The Demo has several "mini-demos" that is once you end one demo the next will popup until there is no more demos, there are 3 current demos. I'll add a Form to make things more user-friendlier later. INetConnection interface has been deleted. I had planned to create a manager class for it all but I decided against it.

http://furcadia.codeplex.com/

I am looking for contributors. If you find this project useful and have something to add. Please create a patch or open a discussion about it at the codeplex project page. Contributions have to be helpful to Third Party developers for Furcadia.
Sorry for the long wait between releases. I have been busy but with other things unrelated to Furcadia, mainly sleep.
Squizzle
Been working 12 hr days about an hour drive from where I live because my company needs me there. I should be able to get back on the bandwagon by Nov. 20.

I need your help! I want to add more features but I am out of useful ideas. If you have any useful ideas please let me know, whisper me your ideas on Furcadia or discuss it in a discussion here.

Also if you have any problems with bugs lemme know. I'll be glad to fix em as quickly as possible. By bugs I mean internal bugs relating to code.

The reference bug is on very low priority. It doesn't take long to delete a reference then re-add it. But thank you for letting me know Ioka.
Ioka
QUOTE (Squizzle @ Nov 17 2009, 08:35 PM) *
Been working 12 hr days about an hour drive from where I live because my company needs me there. I should be able to get back on the bandwagon by Nov. 20.

I need your help! I want to add more features but I am out of useful ideas. If you have any useful ideas please let me know, whisper me your ideas on Furcadia or discuss it in a discussion here.

Also if you have any problems with bugs lemme know. I'll be glad to fix em as quickly as possible. By bugs I mean internal bugs relating to code.

The reference bug is on very low priority. It doesn't take long to delete a reference then re-add it. But thank you for letting me know Ioka.

Np. I'll check it out and see if I can give you any ideas to add to your cl@ss

* Don't know about Vista or Win7, but in XP x64 my DEP registry is under HKLM\Software\Wow6432Node. Could change your Path code to check for that
Squizzle
I believe I fixed it. Try it out in the source code build HERE.
This is the minor change I made:
CODE
        public static string GetRegistryPath()
        {
            if (IntPtr.Size == 64) //64 bit
                return @"SOFTWARE\Wow6432Node\Dragon's Eye Productions\Furcadia\";
            else if (IntPtr.Size == 32) //32 bit
                return @"SOFTWARE\Dragon's Eye Productions\Furcadia\";
            throw new NullReferenceException("Registry path not found.");
        }
Anyone not using x64 lemme know if that doesn't work for you.. I'll probably release the next build with a modification to that with out the NullReferenceException and instead make it default to "SOFTWARE\Dragon's Eye Productions\Furcadia\".
Dream Dancer
I don't have a 64 bit system, but I'd bet that there's a registry key which tells windows where to find the user data for an application, only because my windows installation has:
HKEY_CLASSES_ROOT\Applications\Furcadia.exe
Squizzle
I'll look into it.

DD what version of Windows do you run?
Dream Dancer
Windows 2000.
Ioka
QUOTE (Dream Dancer @ Nov 19 2009, 09:54 PM) *
Windows 2000.


Windows 2000? Whaaaaa?
Letalis Sonus
An up-to-date Win2000 is just like XP without the ugly visuals and the tons of useless stuff. What's wrong with using it? The only incompatibilities you may face are to 99% only there because the software company wants to force its users to upgrade (iTunes n' stuff).
... And it was the last Windows that did not require an activation tongue.gif

QUOTE (Dream Dancer @ Nov 19 2009, 04:50 AM) *
HKEY_CLASSES_ROOT\Applications\Furcadia.exe
AFAIK that registry key is used to tell Windows which programs to show up in the "Open with" dialog, I wouldn't rely on it.
Dream Dancer
Windows 2000, last stable OS produced by Microsoft. se.gif

Also, under some circumstances, the key won't exist in the HKLM, but in HKCU
Squizzle
Offtopic: I use WinXP and have used it for the past 4 years with no problems whatsoever. Everybody thinks their OS is better..

Letalis thanks for letting me know that DD tried to make me fix something that wasn't broken (yet).

I know bout the other registry path to look in and its just a matter of patching it.

*Squizzle puts it on his TODO list.*

Btw today is FRIDAY! Finally. What a long week... sorry no new releases today and probably not tomorrow, I'll hopefully get some time to work on it Sunday since I get that day off.
Damadar
QUOTE (Dream Dancer @ Nov 20 2009, 10:28 AM) *
Windows 2000, last stable OS produced by Microsoft. se.gif

Also, under some circumstances, the key won't exist in the HKLM, but in HKCU


Off Topic, I know - But Complete Rubbish, with plenty of statistical data to back it up.
Squizzle
Updated!

Don't yell at me I know its been awhile... I r sowwy sad.gif

In this update I reverted some changes in the Graphics area because I thought my code worked turns out it didn't and so there ya go..

Thank Artex for his valuable contribution for Base95 and Base220 classes!

Release Notes [I know it IS about time I had release notes idn't?]:
QUOTE
  • FurcadiaLib\Base95.cs: Contributed by Artex. Many thanks to Artex!
  • FurcadiaLib\Base220.cs: Contributed by Artex. Many thanks to Artex!
  • FurcadiaLib\Net\NetProxy.cs:
    • Added - SetProcess method : Allows you to set the process executable (i.e Furcadia.exe) to whatever you want
  • FurcadiaLib\Drawing\Helper.cs: Reverted changes.
  • FurcadiaLib\Drawing\Graphics.cs: Reverted changes.
  • FurcadiaLib\Net\PounceConnection.cs:
    • Added - ConnectAsync : Asynchronous http connection, takes work off main thread.
    • Removed - Automatic updating of player status. Use PounceConnection.Connect to retrieve status as much as you want after connecting for first time.
  • FurcadiaFramework_Example\Demo\NetworkDemo.cs: Updated from FurcadiaLib changes.
  • FurcadiaFramework_Example\Demo\GraphicsDemo.cs: Updated from FurcadiaLib changes.
  • FurcadiaFramework_Example\Demo\FriendStatusDemo.cs: Updated from FurcadiaLib changes.

Go GET IT! Furcadia Framework 0.2.3
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2010 Invision Power Services, Inc.