HISTORY.markdown @master — view markup · raw · history · blame
Changelog
-
version 0.13
Added
populateFromPairshelper method toyoob.PresetManager.Fixed
NaNbugs in element-factory.Fixed a bug in
yoob.Playfield.map. -
version 0.12
Fixed a bug in
yoob.Cursor.clone.Added
yoob.makeRangeControl()inyoob/element-factory.js, which improves uponsliderPlusTextInputby adding optional increment and decrement buttons, and taking a configuration object as a parameter for construction.yoob.PlayfieldCanvasViewnow acceptsresizeCanvasargument, which defaults to true, but can be set to false to suppress the default behaviour of resizing the canvas to fit the playfield just before each time it is drawn.In many places where the code was calling
alert()to signify an error, it now throws a newErrorobject instead. -
version 0.11
yoob.Playfield, its Views (yoob.PlayfieldCanvasView,yoob.PlayfieldHTMLView),yoob.Cursor, andyoob.TextTerminalall take configuration dictionaries as their single argument toinit().yoob.Cursors are now attached toyoob.Playfieldandyoob.Tapeobjects, and are no longer attached to the PlatfieldViews.yoob.Cursoralso no longer has a "built-in simple view"; viewing methods for cursors have been added to the PlayfieldViews.Added
yoob.Playfield.foreachVonNeumannNeighbour.yoob.Cursorno longer supportsread()/write(); instead,yoob.Playfieldandyoob.Tapeboth support the "cursored read/write interface".yoob.Tapeno longer contains "built in canvas view"; these methods have been moved to a newyoob.TapeCanvasViewclass.yoob.Tapehas been givenpush(),pop(),peek(), andgetSize()methods to allow it to be used as a first-in, first-out stack.yoob.Stackandyoob.StackHTMLViewhave been removed.yoob.Controllernow has asetResetState()method, which can be called, typically beforeclickReset(), to set the state that resetting the controller will reset to. -
version 0.10
yoob.Chargencan beinited with acolorToAlphatriple; if it is given, that color will be treated as transparent when creating the coloured bitmaps of the characters.New
StackHTMLViewandTapeHTMLViewview objects.Tape.foreach()supports a dense traversal, which visits every cell of the tape between the lowest and highest written cells, even if intervening cells have never been written.yoob.makeSelect(), inyoob/element-factory.js, now takes optional arguments:fun(a function that will be called when the selection is changed) anddef(a default value which will be initially selected. This will also cause the callback function to be called.) -
version 0.9
Several more objects support the standard
initprotocol: caller passes in a configuation object, and the method is chainable (returns the object that was initialized.)yoob.Tapenow has aclear()method, and supports default values for cells that have never been written.yoob.SpriteManagerunderwent significant refactoring. In particular, the x and y values are assumed to always refer to the centre of the sprite. Anintersects()method was added, to help detect collision between two sprites. AclearSprites()method was also added.Added a new
yoob.CanvasResizerobject, which attempts to intelligently resize a canvas element to fit in the browser window, with options to preserve maximum size, aspect ratio, etc.In
yoob/element-factory.js, a bug was fixed inmakeTextArea, and functions were added for creating SVG elements.yoob.Chargen'sinitmethod now takes a configuration object, for consistency, and spells the wordcolor, if not correctly, then at least consistently. -
version 0.8
Added
yoob.SourceManager.yoob.Controlleris no longer responsible for showing the editor for the textual source of a program/configuration; that's the newyoob.SourceManager's job. All that code has been removed fromyoob.Controller, and several backwards-incompatible changes have been made to its API as well. In particular, a subclass or client must supply aresetmethod now rather than aloadmethod. Please consuly the source comments inyoob/controller.jsfor more details.Both
yoob.Controllerandyoob.SourceManagerare capable of creating their control panels (full of buttons) programmatically.yoob.PresetManagerno longer takes ayoob.Controllerto establish a default callback. Instead, a default callback can be configured with thesetPresetkey.Added
yoob.makePre()toyoob/element-factory.js.Added
setPlayfield(pf)toyoob.PlayfieldCanvasViewandyoob.PlayfieldHTMLView. Also addedsetCellDimensions()toyoob.PlayfieldHTMLView, mostly as compatibility withyoob.PlayfieldCanvasView; andyoob.PlayfieldHTMLViewrenders undefined values as(space) by default now. -
version 0.7-2015.0108
Fixed bug in
yoob.Controllerwhere the "Reset" button was not being disabled during source editing. -
version 0.7
Added
yoob.StateMachine.Removed
yoob/animation-frame.js.Added
.size()method to yoob.Stack.Added
.clone()and.rotateDegrees()to yoob.Cursor.Added
yoob/element-factory.js.Fixed z-index bugs in yoob.SplashScreen.
yoob.Controllernow supports a 'reset' button. In addition, the 'speed' control defaults to reversed mode (low values = slow.)yoob.Controllernow has rudimentary support for loading source via XHR (AJAX).yoob.Animationallows theupdate()(ordraw(), inproportionalmode) to return the exact objectfalseto force the animation to stop immediately.Added
yoob.Varier. -
version 0.6
Renamed
yoob.PathSettoyoob.PathList.Added
yoob.SourceHTMLView.yoob.PlayfieldHTMLViewmay now have cursors. The extents of both kinds of Playfield View now include cursors. Cursors may be drawn early or late inyoob.PlayfieldCanvasView.Added
yoob.PresetManager.yoob.Controlleris no longer responsible for selecting between provided programs/configurations. It also keeps track of its state (running/paused/stopped/blocked on input) internally.animationFrame shims improved; animation functions deprecated in favour of the
yoob.Animationobject.yoob.TapeHeaddeprecated in favour ofyoob.Cursor. -
version 0.5
yoob.SpriteManagerhandles both mouse and touch events.Added
yoob.Turtle,yoob.Path, andyoob.PathSet.Added
yoob.FullScreenDetector.Added
yoob.Joystick.Added
yoob.Chargen.Added
yoob/splash-screen.jsandyoob/animation-frame.js.yoob.PlayfieldCanvasViewnow sets up some reasonable default values for cell size and cursors, andyoob.PlayfieldHTMLViewis less incomplete. -
version 0.4
Moved all-display related code from
yoob.Playfieldinto a new class,yoob.PlayfieldConsoleView; in MVC parlance,yoob.Playfieldis now a "model", and to actually display it in a browser, you will need a "view".yoob.PlayfieldConsoleViewhas adrawCellmethod instead of the olddrawElementwhich will try to calldrawon the value in the cell, if it has such a method, and will also takes (and will pass) the x and y co-ordinates of the cell in the playfield being drawn.Removed
yoob.TextConsole; useyoob.TextTerminaland don't callwrite(), just callwriteRaw(), if you want a console that doesn't understand terminal control codes.Refactored
yoob.TextTerminalto be a facade over ayoob.Playfieldand ayoob.Cursor. Thus, you can now read characters from any position in the terminal — however it has lost the ability to overstrike characters. Again, sinceyoob.Playfieldis now a "model",yoob.TextTerminalitself does not concern itself with displaying the terminal (although there is a helper method to create a canvas view.)yoob.LineInputBuffergenerally improved; it listens tokeydowninstead ofkeyupfor special keys, prevents the default action for them, and has been tested in Firefox, Chrome, and Internet Explorer (recent versions.) -
version 0.3
Added
embed-sourcestool.Added
yoob.SpriteManagerandyoob.Spriteclasses.Moved
yoob.ASTtoyoob.Tree, and addedequals,setValue,setVariable,match, andsubstmethods to it.Added support for
editandselectcontrols inyoob.Controller.Added
get(Max|Min)(X|Y)methods toyoob.Playfield, and fixed issue with drawing cursors at wrong offsets. -
version 0.2
Added
yoob.Controllerclass.In
yoob.Playfield:- made attributes camelCase
- added support for
transformerargument toload - added support for default values (
setDefault) - added
dumpmethod - added
putDirtyandrecalculateBoundsmethods - added
mapmethod
-
version 0.1
Initial release.