pixi-wheels

WheelBuilder

pixi-wheels


pixi-wheels / index / WheelBuilder

Class: WheelBuilder

Defined in: core/WheelBuilder.ts:316

Fluent construction of a Wheel. Validates on build() and throws a message that names the missing or conflicting call.

const wheel = new WheelBuilder()
  .radius(260)
  .sections([
    { id: 'x2', label: 'x2', value: 2, weight: 3 },
    { id: 'x5', label: 'x5', value: 5, weight: 2 },
    { id: 'x10', label: 'x10', value: 10, weight: 1 },
  ])
  .speed('normal', SpinPresets.NORMAL)
  .ticker(app.ticker)
  .build();

The section, radius, pointer and skin methods configure the main ring; ring(id, ...) adds further rings around the same centre.

Constructors#

Constructor#

new WheelBuilder(): WheelBuilder;

Returns#

WheelBuilder

Methods#

adapter()#

adapter(config: 
  | TargetAdapterConfig
  | undefined): this;

Defined in: core/WheelBuilder.ts:449

Record how a server response maps to a target. Informational; kept in toConfig().

Parameters#

ParameterType
config| TargetAdapterConfig | undefined

Returns#

this


assets()#

assets(resolver: AssetResolver): this;

Defined in: core/WheelBuilder.ts:437

Where skin configs find their textures. Only needed for config-driven skins.

Parameters#

ParameterType
resolverAssetResolver

Returns#

this


build()#

build(): Wheel;

Defined in: core/WheelBuilder.ts:456

Returns#

Wheel


direction()#

direction(dir: SpinDirection): this;

Defined in: core/WheelBuilder.ts:382

Spin direction for every ring that does not set its own. Default 'cw'.

Parameters#

ParameterType
dirSpinDirection

Returns#

this


dynamic()#

dynamic(config: DynamicSectionsConfig): this;

Defined in: core/WheelBuilder.ts:363

Parameters#

ParameterType
configDynamicSectionsConfig

Returns#

this


fromConfig()#

static fromConfig(config: WheelConfig, options?: {
  assets?: AssetResolver;
  ticker?: Ticker;
}): WheelBuilder;

Defined in: core/WheelBuilder.ts:531

A builder pre-filled from a config. Add the ticker (and assets, for texture or Spine skins), then build().

const wheel = WheelBuilder.fromConfig(cfg, { assets }).ticker(app.ticker).build();

Parameters#

ParameterType
configWheelConfig
options{ assets?: AssetResolver; ticker?: Ticker; }
options.assets?AssetResolver
options.ticker?Ticker

Returns#

WheelBuilder


idle()#

idle(config: IdleConfig): this;

Defined in: core/WheelBuilder.ts:420

Idle rotation config. autoStart: true begins idling on build.

Parameters#

ParameterType
configIdleConfig

Returns#

this


initialSpeed()#

initialSpeed(name: string): this;

Defined in: core/WheelBuilder.ts:403

Parameters#

ParameterType
namestring

Returns#

this


landing()#

landing(options: LandingOptions): this;

Defined in: core/WheelBuilder.ts:409

Defaults for every setResult(): landing mode, settle, anticipation.

Parameters#

ParameterType
optionsLandingOptions

Returns#

this


name()#

name(name: string): this;

Defined in: core/WheelBuilder.ts:443

Human name, kept in toConfig().

Parameters#

ParameterType
namestring

Returns#

this


palette()#

palette(colors: readonly number[]): this;

Defined in: core/WheelBuilder.ts:374

Parameters#

ParameterType
colorsreadonly number[]

Returns#

this


pegs()#

pegs(config?: false | PegConfig): this;

Defined in: core/WheelBuilder.ts:369

Pegs of the main ring. See RingBuilder.pegs().

Parameters#

ParameterType
configfalse | PegConfig

Returns#

this


pointer()#

pointer(spec?: PointerSpec): this;

Defined in: core/WheelBuilder.ts:353

Parameters#

ParameterType
specPointerSpec

Returns#

this


radius()#

radius(outer: number, inner?: number): this;

Defined in: core/WheelBuilder.ts:333

Parameters#

ParameterTypeDefault value
outernumberundefined
innernumber0

Returns#

this


ring()#

ring(id: string, configure: (ring: RingBuilder) => void): this;

Defined in: core/WheelBuilder.ts:388

Add a ring around the same centre. The callback configures it.

Parameters#

ParameterType
idstring
configure(ring: RingBuilder) => void

Returns#

this


rng()#

rng(fn: () => number): this;

Defined in: core/WheelBuilder.ts:426

Random source for 'random' landings and pick: 'random'. Default Math.random. Seed it in tests.

Parameters#

ParameterType
fn() => number

Returns#

this


section()#

section(config: WheelSectionConfig): this;

Defined in: core/WheelBuilder.ts:343

Parameters#

ParameterType
configWheelSectionConfig

Returns#

this


sections()#

sections(list: readonly WheelSectionConfig[]): this;

Defined in: core/WheelBuilder.ts:338

Parameters#

ParameterType
listreadonly WheelSectionConfig[]

Returns#

this


skin()#

skin(skin: 
  | RingSkin
  | RingSkinConfig): this;

Defined in: core/WheelBuilder.ts:358

Parameters#

ParameterType
skin| RingSkin | RingSkinConfig

Returns#

this


skip()#

skip(options: SkipConfig): this;

Defined in: core/WheelBuilder.ts:414

Parameters#

ParameterType
optionsSkipConfig

Returns#

this


speed()#

speed(name: string, profile: SpinProfile): this;

Defined in: core/WheelBuilder.ts:398

Register a spin profile under a name. The first registered is the initial speed unless initialSpeed() says otherwise.

Parameters#

ParameterType
namestring
profileSpinProfile

Returns#

this


startAngle()#

startAngle(deg: number): this;

Defined in: core/WheelBuilder.ts:348

Parameters#

ParameterType
degnumber

Returns#

this


ticker()#

ticker(ticker: Ticker): this;

Defined in: core/WheelBuilder.ts:431

Parameters#

ParameterType
tickerTicker

Returns#

this


toConfig()#

toConfig(): WheelConfig;

Defined in: core/WheelBuilder.ts:507

The builder’s state as JSON. Skins given as instances are recorded as { type: 'custom' }.

Returns#

WheelConfig