Client: Difference between revisions

From Our World of Text Wiki
Jump to navigation Jump to search
mNo edit summary
No edit summary
Line 4: Line 4:


* doGoToCoord(y: number, x: number)
* doGoToCoord(y: number, x: number)
** Jump to a specific location. Coordinates are based on "Show coordinates" values.
* typeChar(char: string, doNotMoveCursor: boolean, color: number, noNewline: boolean, undoCursorOffset: boolean, bgColor: number)
* typeChar(char: string, doNotMoveCursor: boolean, color: number, noNewline: boolean, undoCursorOffset: boolean, bgColor: number)
** Write a character where the text cursor is.
* getChar(tileX: number, tileY: number, charX: number, charY: number)
* getChar(tileX: number, tileY: number, charX: number, charY: number)
** Retrieve the text content of a character where the text cursor is.
* moveCursor(direction: string, preserveVertPos, amount: number)
* moveCursor(direction: string, preserveVertPos, amount: number)
** Move the text cursor in any direction ("up", "down", "left", "right").
* fetchUnloadedTiles()
* fetchUnloadedTiles()
** Fetch tiles in viewport that have not been loaded from the server. This is already called 3 times per second.
* getTileVisibility()
* getTileVisibility()
** Retrieve detailed viewport information.
* getCenterCoords(): Array[number, number]
* getCenterCoords(): Array[number, number]
** Get "Show coordinates" coordinates from the center of the screen.
* broadcastReceive(force: boolean)
* broadcastReceive(force: boolean)
** Opt-in to receiving raw user messages.
* broadcastCommand(data: string, includeUsername: boolean)
* broadcastCommand(data: string, includeUsername: boolean)
** Send a raw user message to all clients that have opted in.
* jquery(callback: function)
* jquery(callback: function)
** Load the jQuery library from the official CDN (version 1.7).
* redraw()
* redraw()
** Re-render all text content from scratch immediately.
* reloadRenderer()
* reloadRenderer()
** Perform a full refresh of the renderer by invalidating the cache and resetting all of its internals.
* setRedraw()
* setRedraw()
** Schedule a redraw on the next frame.
* setTileRedraw(tileX: number, tileY: number)
* setTileRedraw(tileX: number, tileY: number)
** Schedule a redraw of a specific tile on the next frame.
* setTileRender(tileX: number, tileY: number)
* setTileRender(tileX: number, tileY: number)
** Schedule a re-plotting of a specific tile from cache to the screen on the next frame.
* setTransparency(transparent: boolean)
* setTransparency(transparent: boolean)
** Make internal canvas use 'alpha' mode, subsequently requiring only one rendering pass per tile and may make text use subpixel rendering.
* render(redraw: boolean)
* render(redraw: boolean)
** Plot all visible tiles from cache to the screen.
* changeFont(fontData: string, noReload)
* changeFont(fontData: string, noReload)
** Change default global font.
* fixFonts(mainType: string)
* fixFonts(mainType: string)
** Load important fonts that aren't supported by the system.
* loadFont(name: string, path: string, callback: function)
* loadFont(name: string, path: string, callback: function)
** Load a specific font from URL.
* changeSpecialCharFont(fontData: string, noReload: boolean)
* changeSpecialCharFont(fontData: string, noReload: boolean)
** Change the default font for special characters. This may include cells with combining characters.
* enableCombining(noReload: boolean)
* enableCombining(noReload: boolean)
** Make combining characters visible.
* disableCombining(noReload: boolean)
* disableCombining(noReload: boolean)
** Don't make combining characters visible.
* enableSurrogates(noReload: boolean)
* enableSurrogates(noReload: boolean)
** Make surrogate characters visible. Includes emoji characters.
* disableSurrogates(noReload: boolean)
* disableSurrogates(noReload: boolean)
** Don't make surrogate characters visible.
* enableColors(noReload: boolean)
* enableColors(noReload: boolean)
** Render all text with colors.
* disableColors(noReload: boolean)
* disableColors(noReload: boolean)
** Don't render all text with colors.
* basic()
* basic()
** Disable colors, combining characters, and surrogate characters.
* restore()
* restore()
** Re-enable colors, combining characters, and surrogate characters.
* night(ignoreUnloadedPattern: boolean)
* night(ignoreUnloadedPattern: boolean)
** Enable night mode.
* day(reloadStyle: boolean)
* day(reloadStyle: boolean)
** Disable night mode. Restore the original styles.
* rotate(speed: number)
* rotate(speed: number)
** Unused 3D demo.
* hideChat()
* hideChat()
** Hide the chat button.
* showChat()
* showChat()
** Show the chat button.
* disableDragging()
* disableDragging()
** Prevent the canvas from being draggable.
* enableDragging()
* enableDragging()
** Allow the canvas to be draggable.
* disableCursor()
* disableCursor()
** Disable the cursor. Cells cannot be selected and written to.
* enableCursor()
* enableCursor()
** Re-enable the cursor.
* disableScrolling()
* disableScrolling()
** Prevent the user from using the scroll wheel to navigate.
* enableScrolling()
* enableScrolling()
** Re-enable the scroll wheel.
* setMouseCursor(cursor: string)
* setMouseCursor(cursor: string)
** Set the default mouse cursor.
* resetMouseCursor()
* resetMouseCursor()
** Reset the mouse cursor to the default setting.
* setDragCursor(cursor: string)
* setDragCursor(cursor: string)
** Set the mouse cursor when dragging the canvas.
* resetDragCursor()
* resetDragCursor()
** Reset the mouse cursor when dragging the canvas.
* changeSocket(address: string)
* changeSocket(address: string)
** Change the client's socket address to another specified address.
* changeColor(color: string)
* changeColor(color: string)
** Change the client's current text color.
* changeBgColor(color: string)
* changeBgColor(color: string)
** Change the client's current cell background color.
* fetchUpdates(margin: number)
* fetchUpdates(margin: number)
** Fetch new updates regardless of tiles that have been loaded.
* splitTile(str: string): string
* splitTile(str: string): string
** Split a string accounting for grapheme clusters (limited to surrogates and most combining characters).
* shiftZoombar()
* shiftZoombar()
** Shift the zoom bar on menu to the bottom when new options are added.
* setFlushInterval(rate: number)
* setFlushInterval(rate: number)
** Change the interval at which writes are uploaded to the server.
* registerHook(event: string, callback: function)
* registerHook(event: string, callback: function)
** Allow specific client processes to be modified precisely. Limited to char rendering at the moment.


== RegionSelection ==
== RegionSelection ==

Revision as of 18:34, 17 May 2023

w Namespace

  • doGoToCoord(y: number, x: number)
    • Jump to a specific location. Coordinates are based on "Show coordinates" values.
  • typeChar(char: string, doNotMoveCursor: boolean, color: number, noNewline: boolean, undoCursorOffset: boolean, bgColor: number)
    • Write a character where the text cursor is.
  • getChar(tileX: number, tileY: number, charX: number, charY: number)
    • Retrieve the text content of a character where the text cursor is.
  • moveCursor(direction: string, preserveVertPos, amount: number)
    • Move the text cursor in any direction ("up", "down", "left", "right").
  • fetchUnloadedTiles()
    • Fetch tiles in viewport that have not been loaded from the server. This is already called 3 times per second.
  • getTileVisibility()
    • Retrieve detailed viewport information.
  • getCenterCoords(): Array[number, number]
    • Get "Show coordinates" coordinates from the center of the screen.
  • broadcastReceive(force: boolean)
    • Opt-in to receiving raw user messages.
  • broadcastCommand(data: string, includeUsername: boolean)
    • Send a raw user message to all clients that have opted in.
  • jquery(callback: function)
    • Load the jQuery library from the official CDN (version 1.7).
  • redraw()
    • Re-render all text content from scratch immediately.
  • reloadRenderer()
    • Perform a full refresh of the renderer by invalidating the cache and resetting all of its internals.
  • setRedraw()
    • Schedule a redraw on the next frame.
  • setTileRedraw(tileX: number, tileY: number)
    • Schedule a redraw of a specific tile on the next frame.
  • setTileRender(tileX: number, tileY: number)
    • Schedule a re-plotting of a specific tile from cache to the screen on the next frame.
  • setTransparency(transparent: boolean)
    • Make internal canvas use 'alpha' mode, subsequently requiring only one rendering pass per tile and may make text use subpixel rendering.
  • render(redraw: boolean)
    • Plot all visible tiles from cache to the screen.
  • changeFont(fontData: string, noReload)
    • Change default global font.
  • fixFonts(mainType: string)
    • Load important fonts that aren't supported by the system.
  • loadFont(name: string, path: string, callback: function)
    • Load a specific font from URL.
  • changeSpecialCharFont(fontData: string, noReload: boolean)
    • Change the default font for special characters. This may include cells with combining characters.
  • enableCombining(noReload: boolean)
    • Make combining characters visible.
  • disableCombining(noReload: boolean)
    • Don't make combining characters visible.
  • enableSurrogates(noReload: boolean)
    • Make surrogate characters visible. Includes emoji characters.
  • disableSurrogates(noReload: boolean)
    • Don't make surrogate characters visible.
  • enableColors(noReload: boolean)
    • Render all text with colors.
  • disableColors(noReload: boolean)
    • Don't render all text with colors.
  • basic()
    • Disable colors, combining characters, and surrogate characters.
  • restore()
    • Re-enable colors, combining characters, and surrogate characters.
  • night(ignoreUnloadedPattern: boolean)
    • Enable night mode.
  • day(reloadStyle: boolean)
    • Disable night mode. Restore the original styles.
  • rotate(speed: number)
    • Unused 3D demo.
  • hideChat()
    • Hide the chat button.
  • showChat()
    • Show the chat button.
  • disableDragging()
    • Prevent the canvas from being draggable.
  • enableDragging()
    • Allow the canvas to be draggable.
  • disableCursor()
    • Disable the cursor. Cells cannot be selected and written to.
  • enableCursor()
    • Re-enable the cursor.
  • disableScrolling()
    • Prevent the user from using the scroll wheel to navigate.
  • enableScrolling()
    • Re-enable the scroll wheel.
  • setMouseCursor(cursor: string)
    • Set the default mouse cursor.
  • resetMouseCursor()
    • Reset the mouse cursor to the default setting.
  • setDragCursor(cursor: string)
    • Set the mouse cursor when dragging the canvas.
  • resetDragCursor()
    • Reset the mouse cursor when dragging the canvas.
  • changeSocket(address: string)
    • Change the client's socket address to another specified address.
  • changeColor(color: string)
    • Change the client's current text color.
  • changeBgColor(color: string)
    • Change the client's current cell background color.
  • fetchUpdates(margin: number)
    • Fetch new updates regardless of tiles that have been loaded.
  • splitTile(str: string): string
    • Split a string accounting for grapheme clusters (limited to surrogates and most combining characters).
  • shiftZoombar()
    • Shift the zoom bar on menu to the bottom when new options are added.
  • setFlushInterval(rate: number)
    • Change the interval at which writes are uploaded to the server.
  • registerHook(event: string, callback: function)
    • Allow specific client processes to be modified precisely. Limited to char rendering at the moment.

RegionSelection

  • Constructor: RegionSelection
  • Properties
    • charColor: string
    • color: string
    • tiled: boolean
  • Methods
    • onselection
      • coordA: Array[number, number, number, number]
      • coordB: Array[number, number, number, number]
      • regWidth: number
      • regHeight: number
    • startSelection
    • stopSelectionUI

Code example:

var selection = new RegionSelection();
this.charColor = "#00AA00";
this.color = "rgba(0, 0, 255, 0.1)";
this.tiled = false;
selection.onselection(function(coordA, coordB, regWidth, regHeight) {
    console.log(coordA, coordB, regWidth, regHeight);
});
w.on("keyDown", function(e) {
	if(checkKeyPress(e, "ALT+H")) {
		selection.startSelection();
	}
});