{"id":13744389,"url":"https://github.com/mark/bloxley","last_synced_at":"2025-05-09T03:31:28.544Z","repository":{"id":1105504,"uuid":"971050","full_name":"mark/bloxley","owner":"mark","description":"An ActionScript 3 framework for puzzle games","archived":false,"fork":false,"pushed_at":"2011-04-02T12:39:32.000Z","size":228,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-11-15T16:40:01.751Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://bloxley.net","language":"ActionScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mark.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2010-10-08T01:22:05.000Z","updated_at":"2023-06-04T07:01:42.000Z","dependencies_parsed_at":"2022-08-16T12:00:51.188Z","dependency_job_id":null,"html_url":"https://github.com/mark/bloxley","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mark%2Fbloxley","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mark%2Fbloxley/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mark%2Fbloxley/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mark%2Fbloxley/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mark","download_url":"https://codeload.github.com/mark/bloxley/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253183119,"owners_count":21867364,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T05:01:08.480Z","updated_at":"2025-05-09T03:31:28.240Z","avatar_url":"https://github.com/mark.png","language":"ActionScript","readme":"## NOTE\n\nSome of this documentation currently is for the ActionScript 2 version of Bloxley.  It's in the process of being changed.\n\nClasses marked with a * are significant to understanding the framework as a whole.\n\n# bloxley.base\n\n  A container for the root superclass, and included libraries.\n\n### BXObject\n  The superclass for all higher-functioning bloxley classes.  It contains code for reflection, method\n  cascading, and to interact with the notification and semaphore systems.\n\n### JSON\n  An included library for generating and parsing JSON.\n\n# bloxley.controller\n\n## bloxley.controller.event\n\n  This contains all of the main event logic code.\n\n### BXAction\n  An atomic game action, ie, game state change.  All game actions are subclasses of this class.\n\n### BXActorColorAction\n  A change in a color attribute of an actor.\n\n### BXAddAction\n  An addition of a new actor to the board.\n\n### BXBehavior\n  This is a superclass for an action which involves actors moving around the board.  This action is designed to cause other actions.\n\n### BXBoardChangeAction\n  A large-scale change of the patches on a board.\n\n### BXCropAction\n  A board change that specifically involves the board becoming smaller.  Used by a standard interface component.\n\n### BXDestroyAction\n  The removal of an actor from the board, especially in edit mode.\n\n### BXDisableAction\n  Makes an actor disabled--not able to be selected, but not destroyed.\n\n### BXEvent\n  An event is a group of actions, organized causally.  They are undone as a group.\n\n### BXInsertRowAction\n  A board change that specifically involves adding a row or column to the board.\n  \n### BXMoveAction\n  The most common game action an actor moves some number of steps in a direction.\n\n### BXPatchColorAction\n  A change in a color attribute of a patch.\n\n### BXPatchFillAction\n  A board change that specifically involves setting all of the patches to a new type.\n\n### BXPatchPenAction\n  Changing a single patch to a new type.\n\n### BXPlaceAction\n  Placing an actor at some fixed place on the board.  Not for gameplay purposes (use BXMoveAction).\n  \n### BXSelectionAction\n  Changes the currently selected actor.\n\n### BXSlideAction\n  A move action that repeats until it fails.\n\n### BXUndoManager\n  This is an undo queue--it keeps track of events, and undoes them in a LIFO order.\n\n## bloxley.controller.game\n\n  These classes are the main game controller-layer classes.\n\n### BXActorController\n  The superclass for actor behavior.  Each type of actor should have an individual BXActorController subclass.\n  \n### BXController\n  The superclass for game behavior.  Each game should have a subclass of BXController.\n  \n### BXPatchController\n  The superclass for patch behavior.  Each game should have at least one BXPatchController subclass.\n\n## bloxley.controller.mailbox\n\n  The mailbox is a universal implementation of the Observer Pattern.  Modeled after Cocoa's NSNotificationCenter, objects can be registered\n  to be notified in three different circumstances\n    (1) A specific object O sends a specific message M\n    (2) A specific object O sends any message\n    (3) Any object sends a specific message M\n  Note that the sending object does not needs to know about the existence of the listening object.\n\n### BXDelayedCall\n  A request to call some method, on some object, later in the current frame.\n\n### BXDelayedCallQueue\n  Manages delayed calls, calling each in turn.\n\n### BXMailbox\n  The implementation of the Observer Pattern.  Any object can be set to be notified when a message that it cares about is generated.\n\n### BXObserver\n  An object is listening to a/any message from a/any source.\n  \n### BXObserverQueue\n  A group of observers, all observing the same object/lack of object.\n\n## bloxley.controller.pen\n\n  The pen is how the user interacts with the game.  It handles mouse events, keyboard events (treating arrow keys specially), and drag-and-drop.\n  \n### BXAttributePen\n  A pen to change some attribute of patches that are clicked on.\n  \n### BXColorPen\n  A pen to change a color attribute (defaults to 'color') of patches or actors that are clicked on.\n  \n### BXDragObject\n  An object representing something being dragged.\n\n### BXGamePen\n  A simple gameplay pen--pressing an arrow key moves the currently selected actor in that direction, and pressing space switches the\n  selected actor.  Can be used as a subclass for more complex game pens.\n  \n### BXMouseEvent\n  Represents what the user is doing with the mouse--pressing it, releasing it, or dragging it.\n\n### BXObjectPen\n  A pen for dragging objects around.\n  \n### BXPatchPen\n  A pen for changing the type of patches.\n  \n### BXPen\n  The superclass for pens.  Doesn't contain much logic itself, but includes hook methods for all of the events that it the framework handles.\n\n### BXRectanglePen\n  A pen for selecting a rectangular region of the board.\n\n## bloxley.controller.phase\n\n  Phases are the implementation of game flow.\n  \n### BXPhase\n  A phase is an atomic unit of game flow.  Phases can be entered, exited, and either succeed or fail.\n\n### BXGameLoop\n  It performs the main game loop, and handles the transitions between phases.\n  \n## bloxley.controller.io\n\n### BXInterfaceLoader\n  Handles loading a game interface from a server.\n  \n### BXLevelLoader\n  Handles loading a game level from a server.\n\n### BXLoader\n  A superclass for communication with a server.  Has methods to implement indicating success or failure.\n\n### BXLoadRequest\n  The actual communication request to a server.  It keeps track of the progress, and returns to the loader the data upon success or failure.\n\n### BXTile\n  A mapping between a character and a patch key.  Used in the XML representation of levels.\n  \n### BXTileLibrary\n  A collection of tiles--handles mapping between patch keys and characters.\n\n# bloxley.model\n\n## bloxley.model.collection #\n\nDefines smarter collection classes than the base ActionScript Array class.  Defines the common functional meta-methods (select, map, etc.)\n\n### BXGroup\n  A set, specifically of actors.\n  \n### BXPath\n  An ordered sequence of patches.  Can be walked.\n\n### BXRegion\n  A set, specifically of patches.\n\n### BXSet\n  The superclass of collection objects.  Can be iterated over.\n\n## bloxley.model.data\n\nSmall data objects.\n  \n### BXColor\n  A color.\n\n### BXDirection\n  A direction on a board (North is up).\n\n## bloxley.model.game\n\nThe major model objects for the bloxley framework.\n  \n### BXActor\n  An object on the board that can move around, and be any size.\n\n### BXBoard\n  A grid of patches, which actors can sit upon.\n\n### BXPatch\n  A single \"square\" of a board.  It can change attributes, but it cannot move or change size.\n\n# bloxley.view\n\n## bloxley.view.animation\n\nAn animation is any visual change over time.\n\n### BX2DBlend\n  A change in 2 related attributes simultaneously, like x \u0026 y or width \u0026 height.\n\n### BXAnimation\n  An animation is something with a start and finish, that gets updated every frame to cause visual changes.\n  \n### BXBlend\n  A blend is a change of some attribute over a period of time.\n\n### BXChoreographer\n  A choreographer walks an event tree, and determines from the causal relationships how each events' animations are to be sequenced in time.\n\n### BXCircularBlend\n  A change in a circular attribute, like angle of rotation.\n\n### BXEmptyAnimation\n  A no-op placeholer animation.\n\n### BXFadeToAnimation\n  A sample compound animation of a patch fading from one frame into another.\n\n### BXFrameAnimation\n  An animation that is a sequence of frame changes.\n\n### BXPatchAnimation\n  An instantaneous animation that involves all patches being visually updated at once.\n\n### BXWrapperAnimation\n  An animation that allows several animations to be treated as a single one.\n\n## bloxley.view.clock\n\nThe game clock keeps track of the frame, and elapsed time during the game.\n\n### BXClock\n  The clock handles all time and frame related tracking.  It sends signals at the start of every frame.\n\n### BXSignal\n  A signal is a request to send a signal after some time has elapsed.\n\n### BXSignalQueue\n  Manages signals, and determines if \u0026 when a signal should be sent.\n\n### BXTimer\n  A timer sends a signal every frame, and every second, until some set time is reached.\n\n## bloxley.view.gui\n\nThese are gui elements (buttons, labels, images, drag wells, etc.)\n\n### BXButton\n  A single button that can be clicked on, and sends a message when it gets hit.\n  \n### BXButtonArray\n  A group of buttons, displayed visually as a unit.\n\n### BXGeometry\n  The geometry is the grid square size for a BXGrid.\n\n### BXGrid\n  The visual display of a BXBoard.\n\n### BXGuiElement\n  The superclass of all interface elements.\n\n### BXImage\n  A bitmap image.\n\n### BXLabel\n  A text label.  It can be given different display formats depending on what it displays plain text, money, score, or time.\n\n### BXMovieClipImage\n  A vector art image.  Will be folded into BXImage.\n\n### BXSelectionRectangle\n  A rectangle used to display the current selection on a board.\n\n### BXToggle\n  A two-setting toggle switch, similar to the iPhone display.\n\n### BXWell\n  A drag-and-drop well, usable as a drag source or drag target.\n\n## bloxley.view.sprite\n\nSprites are the superclass of everything that gets displayed on the screen.\n\n### BXCompositeSprite\n  A sprite made up of layers of sprites.  Can be nested.  Moving, resizing, etc, the composite sprite will update all of the sprites within.\n  \n### BXSprite\n  A visual object which can be displayed, moved, resized, etc.\n\n### BXSpriteChange\n  Keeps track of changes to a sprite, so that it only gets updated once per frame.\n","funding_links":[],"categories":["Video Games"],"sub_categories":["Game Engine"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmark%2Fbloxley","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmark%2Fbloxley","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmark%2Fbloxley/lists"}