Daneel 1.3 is out !

Hi everybody !

Already 5 months have passed since the last release of Daneel, my framework for CrafStudio. So it was really about time for me to get the next version out.

So what’s new ? Well, no big new functionality this time, but a lot of improvements and adjustments everywhere in the code. One of the biggest improvement is that it now fully works with CraftStudio’s Web Player. But be sure to read thoroughly the setup page if you target your game for the web player, though.

I think this version definitely brings more consistency, more robustness, is more useful, has less bug and is more user-friendly.


Check out the changelog below :

  • Core :
    • Merged files Daneel, CraftStudio, GameObject, Lua and DaneelBehavior into the single file Daneel.
    • Added Daneel.Utilities.ButtonExists(), Daneel.Debug.Try(), Daneel.Cache.GetId(), Daneel.Storage.Save() and Daneel.Storage.Load().
    • Removed Daneel.Utilities.GetValueFromName(), Daneel.Utilities.GlobalExists() (they are replaced by table.getvalue()).
    • Added persistent listeners, replaced Daneel.Event.Clear() by Daneel.Event.StopListen() called without the event name argument. Removed scheduled events : Daneel.Event.FireAtRealTime(), FireAtTime() and FireAtFrame()
    • Hotkeys now work without setting anything in the config, just listen to the events.
  • Extension of Lua’s built-in libraries :
    • Added math.lerp(), math.warpangles(), math.round(), table.getvalue(), table.isarray(), table.reverse(), table.shift() and table.reindex().
    • Updated string.split() so that it can use a Lua pattern as delimiter. The third argument has changed : it now tells if the delimiter must be considered as a pattern or plain text (the default).
    • Renamed table.length() in table.getlength(), table.compare() in table.havesamecontent().
    • Removed string.isoneof() and table.new().
  • Extension of CraftStudio’s API :
    • Added Asset.GetName(), Asset.GetId().
    • Added ModelRenderer.Set(), MapRenderer.Set(), Camera.Set(), Camera.SetProjectionMode()
    • Updated some asset setters to accept nil as argument : SetModel(), SetModelAnimation(), SetMap(), SetFont().
    • Allowed ray:IntersectsModelRenderer(), ray:IntersectsMapRenderer(), ray:IntersectsTextRenderer() and ray:IntersectsPlane() to return a RaycastHit instead of a serie of values if the third argument is true.
    • Scene.Load() or CS.LoadScene() now set the current scene asset as the value of the Scene.current property.
    • Game objects :
      • Updated GameObject.New() to also do the work of GameObject.NewFromScene() which has been removed.
      • gameObject:SendMessage() now fails gracefully if an error happens inside the function called and displays info about the game object, message name and data passed as argument.
      • Updated gameObject:AddComponent() to also do the work of gameObject:AddScriptedBehavior() which has been removed.
      • Added gameObject:GetTags().
  • Triggers :
    • Added Trigger:IsGameObjectInRange(), removed arguments to Trigger:GetGameObjectsInRange() and renamed the checkInterval property in updateInterval.
    • Triggers may now use the shape of a model or a map in addition to the distance-based sphere.
  • Mouse Input :
    • Renamed MouseInputs script in Mouse Input. Renamed the workInterval property in updateInterval.
  • Lang :
    • The Lang object is now a first-level global variable (Daneel.Lang doesn’t work any more).
    • Moved Lang object into its own script that can also be used as a scripted behavior. Language functions must now be nammed Lang[language name]().
  • Tween :
    • The Tween object is now a first-level global variable (Daneel.Tween doesn’t work any more).
    • Added the updateInterval property for tweeners.
    • Added the Tweener and Timer scripted behaviors.
  • GUI :
    • The GUI object is now a first-level global variable (Daneel.GUI doesn’t work any more).
    • Added Vector2.GetLength() and Vector2.GetSqrLength()
    • Added GUI.ToSceneUnit(), GUI.Hud.ToPixels(), GUI.Hud.FixPosition().
    • Allowed position of GUI.Hud to be set in percentage or relative to the screen sides size.
    • GUI.Sliders now position themselves vis-à-vis of their parent game object. GUI.Sliders and GUI.Toggle don’t require their scripted behavior to work properly any more.
    • GUI.Input may now be focused via a background model and have a cursor.
    • Renamed GUI.ProgressBar.*Progress() functions and the progress property in SetValue(), UpdateValue(), GetValue() and the value property.
  • Introduced the notion of Core vs Modules and separate user configuration for the core and each module : DaneelUserConfig() and [Module name]UserConfig().
  • Fixed many bugs, improved a lot of code and ensured that Daneel fully works in the webplayer.

Comments are closed.