2967 Posts in 476 Topics - by 2187 Members - Latest Member: Suwranna

Warcraft III: MapsModelsSkinsIconsSpellsToolsTutorials
WC3 JASS: Code SnippetsJASS and vJASS Spells and SystemsJass Tutorials
Chat @Discord

Author Topic: SharpCraft, a managed replacement for Reinventing the Craft  (Read 3048 times)

Rating
Average Score
« Created: January 24, 2017, 02:39:15 AM by huntress_88 »
+ Show previous

  • Recognized User
  • Newbie - level 3
  • *
  • Posts: 31
  • WC3 Models: 10
  • WC3 Tutorials: 0
  • WC3 Tools: 0
  • WC3 Maps: 0
  • WC3 Skins: 0
  • WC3 Icons: 0
  • WC3 Spells: 0
  • Reputation: 0
  • User
    • View Profile
Version: 4.0.0.137
Keywords: sharpcraft, custom natives, jass
Operating System (OS):
  • Windows XP
  • Windows Vista
  • Windows 7
  • Windows 8
  • Windows 10
Tool Category: Jass Scripting, Specific WE Module as a Standalone App, World Editor (WE) Add on or plugin
Rating: 5
Image/screenshot:
Warcraft III Tool
« Created: May 17, 2016, 10:20:14 PM by moyack »
« Last Edit: June 07, 2017, 10:34:00 PM by moyack »
Background
Some of you might have heard about Reinventing the Craft. It's an old project I initially started in 2007 and worked extensively on for several years along with SFilip. Reinventing the Craft changed goals several times, but in the end, the idea was that we wanted to provide a stable API for extending Warcraft III with new natives and features. Sadly, due to limited coding experience and time, the project ended up collecting dust.

Since we stopped working on it, I've been contacted several times by people asking for the source, but I was reluctant to release because of the mess it was and all the experimental features it had. On top of that, it was nearly impossible to maintain if an update were released.

This got me to slowly work on a replacement. The new goal for the replacement was that it should be easier to use and it should prioritize maintainability in favor of features, and above all, it should be open source. Over the past few years I've worked on and off on project SharpCraft.

SharpCraft is written from scratch in C# and using EasyHook to inject into Warcraft III, I'm able to do what Reinventing the Craft did. Likewise as Reinventing the Craft only worked with Windows, so does SharpCraft. If enough interest is shown in the future, I might be able to look into how to make a version for Mac. For the time being, the whole project relies heavily on Windows APIs though.

I've finally reached a point where I feel confident in calling it usable and as such, I wanted to announce it.

Credits
  • MindWorX - for all initial development of SharpCraft
  • SFilip - for coding and research for our old project Reinventing the Craft.
  • PipeDream - for making Grimoire which have been used as reference and help on multiple occasions
  • xttocs - for making jAPI without which this probably wouldn't be possible
Changelog
Code: [Select]
v4.0.0.137
 * Updated for 1.27a.

v4.0.0.136
 * Added support for placing SharpCraft in a Warcraft III folder. It'll search the parent folder for war3.exe and use that if possible.
 * Changed the plugin system a bit again. Sorry. <3

v3.0.1.135b
 * Fixed .zip reading error.

v3.0.0.133
Everything is back to basics. SharpCraft now only has the core plugin functionality. All the advanced features will come as separate plugins.

v2.2.5.124b
 * Expanded the managed JASS type wrappers.
 * Implemented script-side events (issue #4)
 * Implemented new method for calling natives with strings, resulting in more speed, since we're avoiding conversion.
 * Implemented a better method for adding trigger actions.
 * Implemented a few more Jass types.
 * Minor improvement for the InternalNatives.JassStringHandleToString if check.
 * Added missing DelegateAction type.
 * Included commit number in the version number.
 * Fixed a bug with returned JassStrings when calling natives directly.

v2.2.4
 * Giant refactor. Too many changes to list them all.
 * Added three new base classes for scripting.
 * * FullPluginBase; // This class is for plugins that need full access, which means file writing and more.
 * * SafePluginBase; // This class is for plugins that only need safe access.
 * * MapScriptBase;  // This class is for internal war3map.cs scripts. It is similar to SafePluginBase.
 * The sandbox milestone reached 100%, meaning more safety.
 * Interplugin usage it possible through simple dependency.

v1.2.4a
 * Fixed type return bug in CDestructable, CItem and CUnit.

v1.2.4
 * Fixed a directory launcher issue.
 * Fixed version reporting.
 * Added several unmanaged classes to tinker with at your own risk.
 * Improved launcher error reporting.

v1.2.3
 * Refactored the API. It will be backwards compatible until v2.
 * Added Input API for detecting keyboard and mouse input.
 * Added Interface API for detecting FPS and writing messages.
 * Added events for initializing systems that needs the JASS virtual machine ready.
 * Improved on various Jass types.
 * Improved on core functionality.

v1.1.3
 * Improved the missing assembly loader.
 * Added casting from Int32 to JassUnitId.
 * Fixed WarcraftIII.IsMouseOverUI inverted return values.

v1.1.2
 * Fixed issue with inferring return types of natives.

v1.1.1
 * Fixed an issue with multiple plugins.
 * Fixed an issue with loading Lidgren.Network.

v1.1.0
 * Added Lidgren networking support.

v1.0.0
 * First stable release

v0.1pre
 * Initial prerelease


Tutorials
The tutorials assume a basic understanding of programming.
SharpCraft Development Environment (basic), shows how to setup Visual Studio and use SharpCraft.
SharpCraft Native Tutorial, shows how to add custom natives using the JassAPI plugin. This assumes you've followed the tutorial above.


SharpCraft binaries and source can be found on GitHub.

« Last Edit: June 07, 2017, 10:34:00 PM by moyack »

 

Affiliate Blizz-Craft

Started by REDSEWBoard Site Discussion

Replies: 8
Views: 10361
Last post August 17, 2012, 07:46:40 AM
by moyack
Blizzard Modding Information Center Starcraft II Modding Information Center Wacraft III Modding Information Center WC3JASS.com - The JASS Vault Chronicles of Darkness - A Warcraft III mod Jetcraft - A Starcraft II mod Troll Smash - A Warcraft III Arena
  Mod DB - Change the Game Power of Corruption - A Warcraft III altered melee map Chaos Realm - The world of Game modders and wc3 addicts Follow us on Facebook!!