Difference between revisions of "SoC2011 Student Page Aethaeryn"

From The Battle for Wesnoth Wiki
m (better wording)
m (changing one word)
Line 1: Line 1:
'''Proposal:''' Improvements to the Lua engine, primarily for the purpose of increasing the flexibility and power of UI definitions within add-ons.
+
'''Proposal:''' Improvements to the Lua engine, primarily for the purpose of increasing the flexibility and power of interface definitions within add-ons.
  
 
==Phase 0: The Initial Changes==
 
==Phase 0: The Initial Changes==

Revision as of 19:36, 7 April 2011

Proposal: Improvements to the Lua engine, primarily for the purpose of increasing the flexibility and power of interface definitions within add-ons.

Phase 0: The Initial Changes

  • Split src/scripting/lua.cpp into logical subcomponents and familiarize myself with the core Lua code.
  • Implement UI tags in native Lua without WML tables. (similar to fire or the improved 1.9 version of it, setting first time only to yes)
    • [message]
      • [option]
      • [text_input]
    • [set_menu_item]
  • Create a mechanism by which to allow an execution of Lua through [option] that is save-game compatable.

Phase 1: Complex Interface Changes

  • Implement improved Lua access to the in-scenario GUI stuff, again without WML table hacks.
    • This includes improving the syntax and implementation of the dialog Lua.
  • Add new interface improvements for add-on makers:
    • Lua-defined add-on hotkeys.
    • Lua-defined "/" commands or chat-message-reading for add-on defined commands without needing GUI?

Phase 2: Simplify Add-on Creation

  • Implement Lua "ui" package similar to helper that adds an additional abstraction layer on top of Phase 1 to simplify it for add-on creators.
  • Create a similar implementation to the above through newly-defined WML tags.
  • (The original implemenation will still exist for those who want more control and customizability, while this implementation is available for those who do not wish to deal with the complexity that the interface can actually provide.)