HISTORY.markdown @master — view markup · raw · history · blame
Changelog
-
version 0.13
Added
populateFromPairs
helper method toyoob.PresetManager
.Fixed
NaN
bugs 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 uponsliderPlusTextInput
by adding optional increment and decrement buttons, and taking a configuration object as a parameter for construction.yoob.PlayfieldCanvasView
now acceptsresizeCanvas
argument, 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 newError
object instead. -
version 0.11
yoob.Playfield
, its Views (yoob.PlayfieldCanvasView
,yoob.PlayfieldHTMLView
),yoob.Cursor
, andyoob.TextTerminal
all take configuration dictionaries as their single argument toinit()
.yoob.Cursor
s are now attached toyoob.Playfield
andyoob.Tape
objects, and are no longer attached to the PlatfieldViews.yoob.Cursor
also no longer has a "built-in simple view"; viewing methods for cursors have been added to the PlayfieldViews.Added
yoob.Playfield.foreachVonNeumannNeighbour
.yoob.Cursor
no longer supportsread()
/write()
; instead,yoob.Playfield
andyoob.Tape
both support the "cursored read/write interface".yoob.Tape
no longer contains "built in canvas view"; these methods have been moved to a newyoob.TapeCanvasView
class.yoob.Tape
has been givenpush()
,pop()
,peek()
, andgetSize()
methods to allow it to be used as a first-in, first-out stack.yoob.Stack
andyoob.StackHTMLView
have been removed.yoob.Controller
now has asetResetState()
method, which can be called, typically beforeclickReset()
, to set the state that resetting the controller will reset to. -
version 0.10
yoob.Chargen
can beinit
ed with acolorToAlpha
triple; if it is given, that color will be treated as transparent when creating the coloured bitmaps of the characters.New
StackHTMLView
andTapeHTMLView
view 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
init
protocol: caller passes in a configuation object, and the method is chainable (returns the object that was initialized.)yoob.Tape
now has aclear()
method, and supports default values for cells that have never been written.yoob.SpriteManager
underwent 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.CanvasResizer
object, 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
'sinit
method 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.Controller
is 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 areset
method now rather than aload
method. Please consuly the source comments inyoob/controller.js
for more details.Both
yoob.Controller
andyoob.SourceManager
are capable of creating their control panels (full of buttons) programmatically.yoob.PresetManager
no longer takes ayoob.Controller
to establish a default callback. Instead, a default callback can be configured with thesetPreset
key.Added
yoob.makePre()
toyoob/element-factory.js
.Added
setPlayfield(pf)
toyoob.PlayfieldCanvasView
andyoob.PlayfieldHTMLView
. Also addedsetCellDimensions()
toyoob.PlayfieldHTMLView
, mostly as compatibility withyoob.PlayfieldCanvasView
; andyoob.PlayfieldHTMLView
renders undefined values as(space) by default now.
-
version 0.7-2015.0108
Fixed bug in
yoob.Controller
where 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.Controller
now supports a 'reset' button. In addition, the 'speed' control defaults to reversed mode (low values = slow.)yoob.Controller
now has rudimentary support for loading source via XHR (AJAX).yoob.Animation
allows theupdate()
(ordraw()
, inproportional
mode) to return the exact objectfalse
to force the animation to stop immediately.Added
yoob.Varier
. -
version 0.6
Renamed
yoob.PathSet
toyoob.PathList
.Added
yoob.SourceHTMLView
.yoob.PlayfieldHTMLView
may 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.Controller
is 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.Animation
object.yoob.TapeHead
deprecated in favour ofyoob.Cursor
. -
version 0.5
yoob.SpriteManager
handles 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.js
andyoob/animation-frame.js
.yoob.PlayfieldCanvasView
now sets up some reasonable default values for cell size and cursors, andyoob.PlayfieldHTMLView
is less incomplete. -
version 0.4
Moved all-display related code from
yoob.Playfield
into a new class,yoob.PlayfieldConsoleView
; in MVC parlance,yoob.Playfield
is now a "model", and to actually display it in a browser, you will need a "view".yoob.PlayfieldConsoleView
has adrawCell
method instead of the olddrawElement
which will try to calldraw
on 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.TextTerminal
and don't callwrite()
, just callwriteRaw()
, if you want a console that doesn't understand terminal control codes.Refactored
yoob.TextTerminal
to be a facade over ayoob.Playfield
and 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.Playfield
is now a "model",yoob.TextTerminal
itself does not concern itself with displaying the terminal (although there is a helper method to create a canvas view.)yoob.LineInputBuffer
generally improved; it listens tokeydown
instead ofkeyup
for 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-sources
tool.Added
yoob.SpriteManager
andyoob.Sprite
classes.Moved
yoob.AST
toyoob.Tree
, and addedequals
,setValue
,setVariable
,match
, andsubst
methods to it.Added support for
edit
andselect
controls 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.Controller
class.In
yoob.Playfield
:- made attributes camelCase
- added support for
transformer
argument toload
- added support for default values (
setDefault
) - added
dump
method - added
putDirty
andrecalculateBounds
methods - added
map
method
-
version 0.1
Initial release.