@utsp/core 0.1.1 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -442,6 +442,50 @@ interface BitmaskOrder extends NetworkOrder {
442
442
  override: boolean;
443
443
  mask: Uint8Array;
444
444
  }
445
+ /**
446
+ * Cell variant definition for Bitmask4 order
447
+ */
448
+ interface Bitmask4Variant {
449
+ charCode: number;
450
+ bgColorCode: number;
451
+ fgColorCode: number;
452
+ }
453
+ /**
454
+ * 0x12 - Bitmask4: Renders a rectangular region with 2-bit packed mask
455
+ * Each 2-bit value represents: 0 = absence, 1-3 = variant index
456
+ */
457
+ interface Bitmask4Order extends NetworkOrder {
458
+ type: 0x12;
459
+ posX: number;
460
+ posY: number;
461
+ sizeX: number;
462
+ sizeY: number;
463
+ override: boolean;
464
+ variants: [Bitmask4Variant, Bitmask4Variant, Bitmask4Variant];
465
+ mask: Uint8Array;
466
+ }
467
+ /**
468
+ * Cell variant definition for Bitmask16 order
469
+ */
470
+ interface Bitmask16Variant {
471
+ charCode: number;
472
+ bgColorCode: number;
473
+ fgColorCode: number;
474
+ }
475
+ /**
476
+ * 0x18 - Bitmask16: Renders a rectangular region with 4-bit packed mask
477
+ * Each 4-bit value represents: 0 = absence, 1-15 = variant index
478
+ */
479
+ interface Bitmask16Order extends NetworkOrder {
480
+ type: 0x18;
481
+ posX: number;
482
+ posY: number;
483
+ sizeX: number;
484
+ sizeY: number;
485
+ override: boolean;
486
+ variants: Bitmask16Variant[];
487
+ mask: Uint8Array;
488
+ }
445
489
  /**
446
490
  * 0x13 - Clear: Fills entire layer with single character and colors
447
491
  */
@@ -496,7 +540,7 @@ interface TriggerGlobalSoundOrder extends NetworkOrder {
496
540
  soundId: number;
497
541
  loop: boolean;
498
542
  }
499
- type AnyNetworkOrder = CharOrder | TextOrder | TextMultilineOrder | SubFrameOrder | SubFrameMultiColorOrder | FullFrameOrder | FullFrameMultiColorOrder | SpriteOrder | SpriteMultiColorOrder | ColorMapOrder | ShapeOrder | DotCloudOrder | DotCloudMultiColorOrder | BitmaskOrder | SpriteCloudOrder | SpriteCloudMultiColorOrder | SpriteCloudVariedOrder | SpriteCloudVariedMultiColorOrder | ClearOrder | FillCharOrder | FillSpriteOrder | FillSpriteMultiColorOrder | TriggerSoundOrder | TriggerGlobalSoundOrder;
543
+ type AnyNetworkOrder = CharOrder | TextOrder | TextMultilineOrder | SubFrameOrder | SubFrameMultiColorOrder | FullFrameOrder | FullFrameMultiColorOrder | SpriteOrder | SpriteMultiColorOrder | ColorMapOrder | ShapeOrder | DotCloudOrder | DotCloudMultiColorOrder | BitmaskOrder | Bitmask4Order | Bitmask16Order | SpriteCloudOrder | SpriteCloudMultiColorOrder | SpriteCloudVariedOrder | SpriteCloudVariedMultiColorOrder | ClearOrder | FillCharOrder | FillSpriteOrder | FillSpriteMultiColorOrder | TriggerSoundOrder | TriggerGlobalSoundOrder;
500
544
 
501
545
  interface NetworkLayer {
502
546
  id: number;
@@ -4282,6 +4326,50 @@ declare class OrderBuilder {
4282
4326
  * ], '#', 15, 0, false)
4283
4327
  */
4284
4328
  static bitmask(x: number, y: number, width: number, height: number, mask: boolean[], char: string | number, fgColor?: number, bgColor?: number, override?: boolean): BitmaskOrder;
4329
+ /**
4330
+ * 0x12 - Bitmask4: 2-bit packed mask with 3 visual variants
4331
+ * @param mask - Flat array of values 0-3 (row-major order: sizeX × sizeY)
4332
+ * 0 = absence, 1-3 = variant index
4333
+ * @param variants - Array of up to 3 variants { char, fgColor, bgColor } for values 1, 2, 3
4334
+ * @param override - true: clear absences (transparent), false: preserve existing cells
4335
+ * @example Create a 3×3 pattern with 3 variants
4336
+ * OrderBuilder.bitmask4(10, 10, 3, 3, [
4337
+ * 0, 1, 0,
4338
+ * 2, 3, 2,
4339
+ * 0, 1, 0
4340
+ * ], [
4341
+ * { char: 'a', fgColor: 15, bgColor: 0 },
4342
+ * { char: 'b', fgColor: 14, bgColor: 0 },
4343
+ * { char: 'c', fgColor: 13, bgColor: 0 }
4344
+ * ], false)
4345
+ */
4346
+ static bitmask4(x: number, y: number, width: number, height: number, mask: number[], variants: Array<{
4347
+ char: string | number;
4348
+ fgColor: number;
4349
+ bgColor: number;
4350
+ }>, override?: boolean): Bitmask4Order;
4351
+ /**
4352
+ * 0x18 - Bitmask16: 4-bit packed mask with 15 visual variants
4353
+ * @param mask - Flat array of values 0-15 (row-major order: sizeX × sizeY)
4354
+ * 0 = absence, 1-15 = variant index
4355
+ * @param variants - Array of up to 15 variants { char, fgColor, bgColor } for values 1-15
4356
+ * @param override - true: clear absences (transparent), false: preserve existing cells
4357
+ * @example Create a 3×3 pattern with multiple variants
4358
+ * OrderBuilder.bitmask16(10, 10, 3, 3, [
4359
+ * 0, 1, 0,
4360
+ * 2, 15, 2,
4361
+ * 0, 1, 0
4362
+ * ], [
4363
+ * { char: 'a', fgColor: 15, bgColor: 0 },
4364
+ * { char: 'b', fgColor: 14, bgColor: 0 },
4365
+ * // ... up to 15 variants
4366
+ * ], false)
4367
+ */
4368
+ static bitmask16(x: number, y: number, width: number, height: number, mask: number[], variants: Array<{
4369
+ char: string | number;
4370
+ fgColor: number;
4371
+ bgColor: number;
4372
+ }>, override?: boolean): Bitmask16Order;
4285
4373
  /**
4286
4374
  * 0x0D - SpriteCloud: Same single-color sprite at multiple positions
4287
4375
  */
@@ -4394,6 +4482,8 @@ declare const TRIANGLE_SHAPE_SIZE = 10;
4394
4482
  declare const DOTCLOUD_ORDER_MIN_SIZE = 6;
4395
4483
  declare const DOTCLOUD_MULTICOLOR_ORDER_MIN_SIZE = 3;
4396
4484
  declare const BITMASK_ORDER_MIN_SIZE = 9;
4485
+ declare const BITMASK4_ORDER_MIN_SIZE = 15;
4486
+ declare const BITMASK16_ORDER_MIN_SIZE = 51;
4397
4487
  declare const SPRITECLOUD_ORDER_MIN_SIZE = 6;
4398
4488
  declare const SPRITECLOUD_MULTICOLOR_ORDER_MIN_SIZE = 4;
4399
4489
  declare const SPRITECLOUD_VARIED_ORDER_MIN_SIZE = 3;
@@ -4491,8 +4581,19 @@ declare enum OrderType {
4491
4581
  SpriteCloudVariedMultiColor = 16,
4492
4582
  /**
4493
4583
  * 0x11 - Bitmask: Bitpacked presence/absence mask with uniform character and colors
4584
+ * 1 bit per cell: 0 = absence, 1 = presence
4494
4585
  */
4495
4586
  Bitmask = 17,
4587
+ /**
4588
+ * 0x12 - Bitmask4: Bitpacked 2-bit mask with 3 visual variants
4589
+ * 2 bits per cell: 0 = absence, 1-3 = variant index
4590
+ */
4591
+ Bitmask4 = 18,
4592
+ /**
4593
+ * 0x18 - Bitmask16: Bitpacked 4-bit mask with 15 visual variants
4594
+ * 4 bits per cell: 0 = absence, 1-15 = variant index
4595
+ */
4596
+ Bitmask16 = 24,
4496
4597
  /**
4497
4598
  * 0x13 - Clear: Fills entire layer with single character and colors
4498
4599
  */
@@ -4728,5 +4829,5 @@ declare class UpdatePacketDecoder {
4728
4829
  private checkSize;
4729
4830
  }
4730
4831
 
4731
- export { ASCII_8X8_FONT, BITMASK_ORDER_MIN_SIZE, BitmapFont, BitmapFontRegistry, CHAR_ORDER_SIZE, CIRCLE_SHAPE_SIZE, CLEAR_ORDER_SIZE, COLORMAP_ORDER_MIN_SIZE, COLOR_SKIP, CellBuffer, CharCodeBuffer, Core, CoreStats, DISPLAY_HEADER_SIZE, DOTCLOUD_MULTICOLOR_ORDER_MIN_SIZE, DOTCLOUD_ORDER_MIN_SIZE, Display, ELLIPSE_SHAPE_SIZE, FILLCHAR_ORDER_MIN_SIZE, FILLSPRITE_MULTICOLOR_ORDER_SIZE, FILLSPRITE_ORDER_SIZE, FULLFRAME_MULTICOLOR_ORDER_MIN_SIZE, FULLFRAME_ORDER_MIN_SIZE, FontType, InputBindingRegistry, LAYER_CELL_COUNT, LAYER_HEADER_SIZE, LAYER_SIZE, LINE_SHAPE_SIZE, Layer, LoadType, OrderBuilder, OrderType, RECTANGLE_SHAPE_SIZE, SHAPE_ORDER_MIN_SIZE, SPRITECLOUD_MULTICOLOR_ORDER_MIN_SIZE, SPRITECLOUD_ORDER_MIN_SIZE, SPRITECLOUD_VARIED_MULTICOLOR_ORDER_MIN_SIZE, SPRITECLOUD_VARIED_ORDER_MIN_SIZE, SPRITE_MULTICOLOR_ORDER_SIZE, SPRITE_ORDER_SIZE, SUBFRAME_MULTICOLOR_ORDER_MIN_SIZE, SUBFRAME_ORDER_MIN_SIZE, ShapeType, SpriteRegistry, TEXT_MULTILINE_ORDER_MIN_SIZE, TEXT_ORDER_MIN_SIZE, TRIANGLE_SHAPE_SIZE, TRIGGERGLOBALSOUND_ORDER_SIZE, TRIGGERSOUND_ORDER_SIZE, UPDATE_PACKET_HEADER_SIZE, UpdateFlags, UpdateFlagsHelper, UpdatePacketDecoder, User, UserStats, WebFont, WebFontRegistry, createASCII8x8FontLoad, createEmptyCompressedInputPacket, decodeCompressedInput, decodeInt8ToAxis, encodeAxisToInt8, encodeCompressedInput, getASCII8x8FontConfig, getAllCharCodes, getButtonByteCount, getCharBitmap, getCompressedPacketSize, getOrderTypeName, hasChar, isValidOrderType };
4732
- export type { AnyLoad, BitmapFontConfig, BitmapFontLoad, Cell, CircleShape, Color, ColorPaletteLoad, CompressedInputPacket, CoreMode, CoreOptions, EllipseShape, LineShape, MulticolorCell, MulticolorSprite, MulticolorSpriteLoad, NetworkDisplay, NetworkLayer, RectangleShape, ShapeData, SoundLoad, SpriteLoad, TickStats, TriangleShape, UnicolorSprite, UpdatePacket, UserTickStats, WebFontConfig, WebFontLoad };
4832
+ export { ASCII_8X8_FONT, BITMASK16_ORDER_MIN_SIZE, BITMASK4_ORDER_MIN_SIZE, BITMASK_ORDER_MIN_SIZE, BitmapFont, BitmapFontRegistry, CHAR_ORDER_SIZE, CIRCLE_SHAPE_SIZE, CLEAR_ORDER_SIZE, COLORMAP_ORDER_MIN_SIZE, COLOR_SKIP, CellBuffer, CharCodeBuffer, Core, CoreStats, DISPLAY_HEADER_SIZE, DOTCLOUD_MULTICOLOR_ORDER_MIN_SIZE, DOTCLOUD_ORDER_MIN_SIZE, Display, ELLIPSE_SHAPE_SIZE, FILLCHAR_ORDER_MIN_SIZE, FILLSPRITE_MULTICOLOR_ORDER_SIZE, FILLSPRITE_ORDER_SIZE, FULLFRAME_MULTICOLOR_ORDER_MIN_SIZE, FULLFRAME_ORDER_MIN_SIZE, FontType, InputBindingRegistry, LAYER_CELL_COUNT, LAYER_HEADER_SIZE, LAYER_SIZE, LINE_SHAPE_SIZE, Layer, LoadType, OrderBuilder, OrderType, RECTANGLE_SHAPE_SIZE, SHAPE_ORDER_MIN_SIZE, SPRITECLOUD_MULTICOLOR_ORDER_MIN_SIZE, SPRITECLOUD_ORDER_MIN_SIZE, SPRITECLOUD_VARIED_MULTICOLOR_ORDER_MIN_SIZE, SPRITECLOUD_VARIED_ORDER_MIN_SIZE, SPRITE_MULTICOLOR_ORDER_SIZE, SPRITE_ORDER_SIZE, SUBFRAME_MULTICOLOR_ORDER_MIN_SIZE, SUBFRAME_ORDER_MIN_SIZE, ShapeType, SpriteRegistry, TEXT_MULTILINE_ORDER_MIN_SIZE, TEXT_ORDER_MIN_SIZE, TRIANGLE_SHAPE_SIZE, TRIGGERGLOBALSOUND_ORDER_SIZE, TRIGGERSOUND_ORDER_SIZE, UPDATE_PACKET_HEADER_SIZE, UpdateFlags, UpdateFlagsHelper, UpdatePacketDecoder, User, UserStats, WebFont, WebFontRegistry, createASCII8x8FontLoad, createEmptyCompressedInputPacket, decodeCompressedInput, decodeInt8ToAxis, encodeAxisToInt8, encodeCompressedInput, getASCII8x8FontConfig, getAllCharCodes, getButtonByteCount, getCharBitmap, getCompressedPacketSize, getOrderTypeName, hasChar, isValidOrderType };
4833
+ export type { AnyLoad, BitmapFontConfig, BitmapFontLoad, Bitmask16Order, Bitmask16Variant, Bitmask4Order, Bitmask4Variant, BitmaskOrder, Cell, CircleShape, Color, ColorPaletteLoad, CompressedInputPacket, CoreMode, CoreOptions, EllipseShape, LineShape, MulticolorCell, MulticolorSprite, MulticolorSpriteLoad, NetworkDisplay, NetworkLayer, RectangleShape, ShapeData, SoundLoad, SpriteLoad, TickStats, TriangleShape, UnicolorSprite, UpdatePacket, UserTickStats, WebFontConfig, WebFontLoad };