/*
//============================================================================
//  Cecilia System
//=============================================================================
*
* This is the basic module of Cecilia, and it will be improved over time.
* It's a system I designed to help players, and also developers with creating
* the game they want. With a couple of cool features.
* She is an Automated System that talks to the player.
*
*
//=============================================================================
//  API Interface
//=============================================================================
*
* Cecilia has a list of functions/methods that you can use via her namespace.
* The below are the list of functions that you can use with the new classes
* within the system.
*
//=============================================================================
//  Cecilia Speak
//=============================================================================
*
* Cecilia.speak(string)
* Creates a message window with the specified string inside in pink.
*
* Cecilia.speakIntrusive(string)
* Creates a message window, but the player can't move while the window is open.
*
*
//=============================================================================
//  Cecilia Modules
//=============================================================================
*
* Cecilia.addModule(name, module)
* Aliases a module, or another plugin's scripts APIs so you can use them with
* a convenient name.
*
* Cecilia.module(name)
* Calls the aliased module, so that you can access the exports inside of it.
*
* Cecilia.modules()
* Lists all the modules that you've added to Cecilia inside of the dev console
* along with their functions / methods.
*
//=============================================================================
//  Cecilia Timers
//=============================================================================
*
* Cecilia can create Timers, that you have some control over.
* These timers are in seconds, and they can activate some function or method
* after some amount of time. This is great, because you can delay some effect
* until your timer runs out. Plus, you can have as many as you want.
*
* There also two types of timers. Both work similarly, except one uses in game
* frames, and the other one uses the current date for calculating the timer time.
*
* Cecilia.createTimer(seconds, callback)
* - Creates a timer that will activate your callback function after a certain
* amount of seconds.
*
* Once you create a timer, you have access to a couple of functions, which I
* will show using this example.
*
* var timer = Cecilia.createTimer(20, function(){ console.log("Hello World")});
* We have now created a timer that will output hello world to the console once
* we start it.
*
*
* timer.startGTimer()
* This will start our newly created timer and start counting down the time using
* the games frames.
*
* timer.startTimer()
* This will count down the timer's time using real time / seconds instead.
*
* But, you can do a bit more, you can set the timers even after you created
* them.
*
* timer.setTimer(seconds)
* This will set the timer to the amount of seconds you specify.
*
* timer.setGTimer(seconds);
* This will set the gTimer to the amount you specify in seconds.
*
*
//=============================================================================
//  Cecilia.Filters
//=============================================================================
*
* Container  for PIXI filters under a common name space
* Filter Documentation: https://pixijs.github.io/docs/PIXI.filters.html
* Filter Types
* ------------------------------------------------------------------------------
* RGB - Splits the Colors into RGB.
* Dot - Creates a black and white dot effect over the window contents.
* CrossHatch - Creates a cross hatch effect on the window.
* Sepia - Adds a sepia effect to the window.
* Gray - Adds gray to the window.
* Pixel - Pixelates the window.
* Invert - Inverts the window.
* Blur - Blurs the contents of the window.
* Twist - Twists the window contents.
* Displacement - Displaces sections of the window.
* ColorStep - Steps through the color in the window.
*
*
//=============================================================================
//  Cecilia Windows
//=============================================================================
* Cecilia windows are different from regualr windows you must be used to.
* Cecilia windows are touch input based windows; you can only access them with
* touch inputs.
*
* They are also draggable and have new methods that go along with them.
* These windows are also defined by a column and row layout that allows for
* greater flexibility and positioning when creating a window.
*
* Furthermore, Cecilia windows can be added to any scene in the game.
* As long as you can run some code to get it setup, you can put one
* on any kind of scene that is a child of Scene_Base.
*
* I will demonstrate the core functionality in the example below:
*
* Creating a window
* ------------------------------------------------------------------------------
* var clWindow = Cecilia.createCLIWindow(x, y , width, height);
* clWindow.createRow( 300 ) [Width]
* This creates a new window row, expanding the window to fit that size.
*
* clWindow.createColumn(1, 100,) [Row index, width, height]
* This crreates a new window column, expanding the window to be 300 by 100
* and the column itself only takes up 100 / 300 of the windows width.
*
* clWindow.addFilters(new Cecilia.Filters.Dot()) [PIXI.Filters]
* This adds a new filter to the created window, changing it's appearance.
*
* clWindow.bindAction(1, 1, "Cecilia.speakIntrusive('Hello to all of you')")
* This methods binds an action to the column, that the user can click on.
* Once clicked in this case, Cecilia will say Hello.
*
* clWindow.clearColumn(1, 1) [rowIndex, columnIndex]
* Clears a single column within the first row.
*
* clWindow.clearColumns(1) [rowIndex]
* This method clears all the columns within a row.
* In this case, it would be clearing all the columns in row 1.
*
* clWindow.clearRow(1) [rowIndex]
* Clears an entire row for a window. In this case, clearing all of row 1.
*
//=============================================================================
//  Cecilia Data Structures
//=============================================================================
* -- Experimental
* The system has a list of data structures that a dev can use.
* These include things like linked lists and tree structures that you can
* create for your own personal use when setting up some sort of new module /
* plugin using the Cecilia System as the base.
*
* Linked List Notes
* ------------------------------------------------------------------------------
* Linked Lists are different from arrays, the key difference is that you can
* access the elements of a linked list by searching through the entire list.
* This is the key difference between an array, and a linked list.
*
* The other difference is that a linked list keeps track of each
* node in the list. What does that mean? You can follow the links
* to see what comes next in the list.
*
*
* Each of these create methods can take any amount of data. This means
* you're free to add as many links to the list as you want.
*
* Cecilia.DataStructs.createLL()
* This creates a single linked list.
* Example: Cecilia.DataStructs.createLL(1, 2, 3, "Test Data");
* Each one of the passed parameters becomes a link along the list.
* This is true for the other methods too.
*
* Cecilia.DataStructs.createCLL()
* This creates a circular linked list structure; this structure is special,
* because you can create rotations using this structure without checking for
* things such as null values, or going through a for loop.
*
* Cecilia.DataStructs.createDLL()
* This creates a doubled linked list; this kind of list you can either go from
* the front or the back, which means it can be faster than an array for searching
* for data that you might want to keep in memory.
*
*/




%d bloggers like this: