Thursday, 25 February 2016

How to create a plugin for Lumberyard

Lumberyard/CryEngine uses waf, a build configuration system similar to CMake.

To add a plugin project, create a subdirectory NewPlugin in dev/Code (a plugin might go in dev/Code/Sandbox/Plugins for example).

Add a wscript file to this directory, looking like this:

 
def build(bld): 
 
 bld.CryPlugin(
  target = 'NewPlugin',
   vs_filter = 'Sandbox/Plugins',
        file_list   = 'newplugin.waf_files',
  features =  ['qt'],
  includes = [
            '.',
            '..'
        ],
  use='EditorCommon'
 )
And add a file newplugin.waf_files, looking like:
{
 "NoUberFile": 
 {
  "Root":
  [
   "NewPlugin.cpp",
   "NewPlugin.h"
  ]
 }
}
Then go to dev/_WAF_/specs, and edit all.json. Add "NewPlugin" to the win_profile_modules and win_debug_modules list. Finally, recreate the solution by opening a command prompt in dev/ and running "lmbr_waf configure"