@johnmorrisdotca/dougu-sports 0.16.1 → 0.25.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/CHANGELOG.md +122 -0
- package/README.md +9 -9
- package/dist/emblems/ball/ball.baseball.js +1 -0
- package/dist/emblems/ball/ball.engine.d.ts +3 -0
- package/dist/emblems/ball/ball.engine.js +13 -2
- package/dist/emblems/ball/ball.family.dotted.d.ts +4 -0
- package/dist/emblems/ball/ball.family.dotted.js +2 -1
- package/dist/emblems/ball/ball.family.seamed.d.ts +2 -0
- package/dist/emblems/ball/ball.family.seamed.js +1 -0
- package/dist/emblems/ball/ball.golf.js +6 -4
- package/dist/emblems/ball/ball.object.d.ts +2 -0
- package/dist/emblems/ball/ball.object.js +1 -1
- package/dist/emblems/ball/ball.puck.js +1 -1
- package/dist/emblems/ball/ball.stack.d.ts +7 -0
- package/dist/emblems/ball/ball.stack.js +41 -3
- package/dist/emblems/emblem.descriptions.js +4 -0
- package/dist/emblems/emblem.equipment.js +1 -1
- package/dist/emblems/emblem.flip.d.ts +5 -1
- package/dist/emblems/emblem.flip.js +30 -13
- package/dist/emblems/emblem.ids.d.ts +4 -4
- package/dist/emblems/emblem.ids.js +4 -1
- package/dist/emblems/emblem.lathe.d.ts +28 -2
- package/dist/emblems/emblem.lathe.js +5 -0
- package/dist/emblems/emblem.medal.js +2 -1
- package/dist/emblems/emblem.named.js +30 -0
- package/dist/emblems/emblem.registry.js +6 -0
- package/dist/emblems/emblem.shapes.d.ts +5 -1
- package/dist/emblems/emblem.shapes.js +14 -12
- package/dist/emblems/gear/gear.baseballcap.d.ts +1 -0
- package/dist/emblems/gear/gear.baseballcap.js +29 -0
- package/dist/emblems/gear/gear.index.js +2 -1
- package/dist/emblems/lathe.extras.d.ts +3 -0
- package/dist/emblems/lathe.extras.js +59 -0
- package/dist/emblems/trophy/bill-russell-trophy.d.ts +2 -0
- package/dist/emblems/trophy/bill-russell-trophy.js +24 -0
- package/dist/emblems/trophy/hank-aaron-award.d.ts +2 -0
- package/dist/emblems/trophy/hank-aaron-award.js +22 -0
- package/dist/emblems/trophy/relief-man-award.d.ts +2 -0
- package/dist/emblems/trophy/relief-man-award.js +28 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +4 -0
- package/dist/turn-control.d.ts +2 -1
- package/dist/turn-control.js +6 -5
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
|
@@ -5,7 +5,7 @@ export type SportName = (typeof SPORT_NAMES)[number];
|
|
|
5
5
|
export declare const AWARD_IDS: readonly ["award:medal", "award:badge", "award:crown", "award:star", "award:shield", "award:ribbon"];
|
|
6
6
|
export type AwardId = (typeof AWARD_IDS)[number];
|
|
7
7
|
/** The trophies: a cup for each league's champion in a descriptive, generic form, the plain cups and dishes, and the flat plaque, belt, wreath and rosette. */
|
|
8
|
-
export declare const TROPHY_IDS: readonly ["trophy:cup", "trophy:lidded-cup", "trophy:bowl", "trophy:salver", "trophy:globe", "trophy:hockey-cup", "trophy:basketball", "trophy:baseball", "trophy:football", "trophy:canadian-bowl", "trophy:soccer-ball", "trophy:soccer-globe", "trophy:tennis-plate", "trophy:tennis-cup", "trophy:cricket-urn", "trophy:rugby-cup", "trophy:plaque", "trophy:belt", "trophy:laurel", "trophy:rosette", "trophy:ring", "trophy:banner", "trophy:sumo-cup", "trophy:championship-banner", "trophy:paterson-cup", "trophy:stanley-cup", "trophy:hart-trophy", "trophy:vezina-trophy", "trophy:norris-trophy", "trophy:calder-trophy", "trophy:presidents-trophy", "trophy:art-ross-trophy", "trophy:lady-byng-trophy", "trophy:jennings-trophy", "trophy:selke-trophy", "trophy:king-clancy-trophy", "trophy:masterton-trophy", "trophy:jack-adams-trophy", "trophy:prince-of-wales-trophy", "trophy:campbell-bowl", "trophy:rocket-richard-trophy", "trophy:conn-smythe-trophy", "trophy:ted-lindsay-award", "trophy:lester-patrick-trophy", "trophy:lombardi-trophy", "trophy:larry-obrien-trophy", "trophy:commissioners-trophy", "trophy:grey-cup", "trophy:cy-young-award", "trophy:mlb-mvp-award", "trophy:walter-cup", "trophy:wnba-championship-trophy", "trophy:lamar-hunt-trophy", "trophy:silver-slugger-award", "trophy:world-series-mvp-trophy", "trophy:avco-world-trophy", "trophy:obrien-cup", "trophy:gold-glove-award", "trophy:fifa-world-cup", "trophy:woodlawn-vase", "trophy:dfb-pokal", "trophy:champions-league-trophy", "trophy:webb-ellis-cup", "trophy:fa-cup", "trophy:cricket-world-cup", "trophy:wimbledon-gentlemens-trophy", "trophy:venus-rosewater-dish", "trophy:ballon-dor", "trophy:ashes-urn", "trophy:borg-warner-trophy", "trophy:americas-cup"];
|
|
8
|
+
export declare const TROPHY_IDS: readonly ["trophy:cup", "trophy:lidded-cup", "trophy:bowl", "trophy:salver", "trophy:globe", "trophy:hockey-cup", "trophy:basketball", "trophy:baseball", "trophy:football", "trophy:canadian-bowl", "trophy:soccer-ball", "trophy:soccer-globe", "trophy:tennis-plate", "trophy:tennis-cup", "trophy:cricket-urn", "trophy:rugby-cup", "trophy:plaque", "trophy:belt", "trophy:laurel", "trophy:rosette", "trophy:ring", "trophy:banner", "trophy:sumo-cup", "trophy:championship-banner", "trophy:paterson-cup", "trophy:stanley-cup", "trophy:hart-trophy", "trophy:vezina-trophy", "trophy:norris-trophy", "trophy:calder-trophy", "trophy:presidents-trophy", "trophy:art-ross-trophy", "trophy:lady-byng-trophy", "trophy:jennings-trophy", "trophy:selke-trophy", "trophy:king-clancy-trophy", "trophy:masterton-trophy", "trophy:jack-adams-trophy", "trophy:prince-of-wales-trophy", "trophy:campbell-bowl", "trophy:rocket-richard-trophy", "trophy:conn-smythe-trophy", "trophy:ted-lindsay-award", "trophy:lester-patrick-trophy", "trophy:lombardi-trophy", "trophy:larry-obrien-trophy", "trophy:commissioners-trophy", "trophy:grey-cup", "trophy:cy-young-award", "trophy:mlb-mvp-award", "trophy:relief-man-award", "trophy:hank-aaron-award", "trophy:bill-russell-trophy", "trophy:walter-cup", "trophy:wnba-championship-trophy", "trophy:lamar-hunt-trophy", "trophy:silver-slugger-award", "trophy:world-series-mvp-trophy", "trophy:avco-world-trophy", "trophy:obrien-cup", "trophy:gold-glove-award", "trophy:fifa-world-cup", "trophy:woodlawn-vase", "trophy:dfb-pokal", "trophy:champions-league-trophy", "trophy:webb-ellis-cup", "trophy:fa-cup", "trophy:cricket-world-cup", "trophy:wimbledon-gentlemens-trophy", "trophy:venus-rosewater-dish", "trophy:ballon-dor", "trophy:ashes-urn", "trophy:borg-warner-trophy", "trophy:americas-cup"];
|
|
9
9
|
export type TrophyId = (typeof TROPHY_IDS)[number];
|
|
10
10
|
/** The medals on a ribbon, and the badges for the first three places. */
|
|
11
11
|
export declare const MEDAL_KINDS: readonly ["gold", "silver", "bronze"];
|
|
@@ -24,7 +24,7 @@ export type BallId = (typeof BALL_IDS)[number];
|
|
|
24
24
|
export declare const PUCK_IDS: readonly ["puck:canada", "puck:canada-red", "puck:canada-white", "puck:usa", "puck:usa-navy", "puck:player", "puck:signed", "puck:souvenir"];
|
|
25
25
|
export type PuckId = (typeof PUCK_IDS)[number];
|
|
26
26
|
/** The pieces of gear: a piece of equipment for each sport, flat, drawn for this package, turning like a coin. */
|
|
27
|
-
export declare const GEAR_IDS: readonly ["gear:hockey-stick", "gear:goalie-stick", "gear:hockey-skate", "gear:goalie-mask", "gear:goal-net", "gear:field-hockey-stick", "gear:lacrosse-stick", "gear:cricket-bat", "gear:wicket", "gear:table-tennis-paddle", "gear:badminton-racket", "gear:tennis-racket", "gear:squash-racket", "gear:racquetball-racket", "gear:padel-racket", "gear:pickleball-paddle", "gear:roundnet-set", "gear:takraw-net", "gear:netball-post", "gear:teqball-table", "gear:volleyball-net", "gear:basketball-hoop", "gear:baseball-bat", "gear:baseball-glove", "gear:football-helmet", "gear:goalposts", "gear:hurley", "gear:curling-broom", "gear:figure-skate", "gear:speed-skate", "gear:diving-board", "gear:swim-goggles", "gear:starting-blocks", "gear:relay-baton", "gear:javelin", "gear:hurdles", "gear:gunbai", "gear:mawashi", "gear:shinai", "gear:kendo-men", "gear:judogi", "gear:judogi-blue", "gear:judogi-folded", "gear:judogi-blue-folded", "gear:judogi-back", "gear:judogi-blue-back", "gear:obi", "gear:obi-white", "gear:obi-yellow", "gear:obi-orange", "gear:obi-green", "gear:obi-blue", "gear:obi-brown", "gear:obi-kohaku", "gear:obi-red", "gear:obi-women", "gear:obi-white-yellow", "gear:obi-yellow-orange", "gear:obi-orange-green", "gear:obi-green-blue", "gear:obi-blue-brown", "gear:obi-step-1", "gear:obi-step-2", "gear:obi-step-3", "gear:obi-step-4", "gear:obi-step-5", "gear:obi-step-6", "gear:yumi", "gear:ya", "gear:karate-gi"];
|
|
27
|
+
export declare const GEAR_IDS: readonly ["gear:hockey-stick", "gear:goalie-stick", "gear:hockey-skate", "gear:goalie-mask", "gear:goal-net", "gear:field-hockey-stick", "gear:lacrosse-stick", "gear:cricket-bat", "gear:wicket", "gear:table-tennis-paddle", "gear:badminton-racket", "gear:tennis-racket", "gear:squash-racket", "gear:racquetball-racket", "gear:padel-racket", "gear:pickleball-paddle", "gear:roundnet-set", "gear:takraw-net", "gear:netball-post", "gear:teqball-table", "gear:volleyball-net", "gear:basketball-hoop", "gear:baseball-bat", "gear:baseball-glove", "gear:baseball-cap", "gear:football-helmet", "gear:goalposts", "gear:hurley", "gear:curling-broom", "gear:figure-skate", "gear:speed-skate", "gear:diving-board", "gear:swim-goggles", "gear:starting-blocks", "gear:relay-baton", "gear:javelin", "gear:hurdles", "gear:gunbai", "gear:mawashi", "gear:shinai", "gear:kendo-men", "gear:judogi", "gear:judogi-blue", "gear:judogi-folded", "gear:judogi-blue-folded", "gear:judogi-back", "gear:judogi-blue-back", "gear:obi", "gear:obi-white", "gear:obi-yellow", "gear:obi-orange", "gear:obi-green", "gear:obi-blue", "gear:obi-brown", "gear:obi-kohaku", "gear:obi-red", "gear:obi-women", "gear:obi-white-yellow", "gear:obi-yellow-orange", "gear:obi-orange-green", "gear:obi-green-blue", "gear:obi-blue-brown", "gear:obi-step-1", "gear:obi-step-2", "gear:obi-step-3", "gear:obi-step-4", "gear:obi-step-5", "gear:obi-step-6", "gear:yumi", "gear:ya", "gear:karate-gi"];
|
|
28
28
|
export type GearId = (typeof GEAR_IDS)[number];
|
|
29
29
|
/** The Japanese sports and budo: sumo, kendo, judo, kyudo and karate, with the trophies and the gear that belong to them. Every one is also in its own group; this list is for showing them together. */
|
|
30
30
|
export declare const JAPANESE_IDS: readonly ["sport:sumo", "trophy:sumo-cup", "gear:gunbai", "gear:mawashi", "trophy:championship-banner", "sport:kendo", "gear:shinai", "gear:kendo-men", "sport:judo", "gear:judogi", "gear:judogi-blue", "gear:judogi-folded", "gear:judogi-blue-folded", "gear:judogi-back", "gear:judogi-blue-back", "gear:obi", "gear:obi-white", "gear:obi-yellow", "gear:obi-orange", "gear:obi-green", "gear:obi-blue", "gear:obi-brown", "gear:obi-kohaku", "gear:obi-red", "gear:obi-women", "gear:obi-white-yellow", "gear:obi-yellow-orange", "gear:obi-orange-green", "gear:obi-green-blue", "gear:obi-blue-brown", "gear:obi-step-1", "gear:obi-step-2", "gear:obi-step-3", "gear:obi-step-4", "gear:obi-step-5", "gear:obi-step-6", "sport:kyudo", "gear:yumi", "gear:ya", "sport:karate", "gear:karate-gi"];
|
|
@@ -40,12 +40,12 @@ export type EmblemId = AwardId | TrophyId | MedalId | CrestId | BallId | PuckId
|
|
|
40
40
|
/** The groups of ids, in the order a gallery shows them. */
|
|
41
41
|
export declare const EMBLEM_GROUPS: {
|
|
42
42
|
readonly award: readonly ["award:medal", "award:badge", "award:crown", "award:star", "award:shield", "award:ribbon"];
|
|
43
|
-
readonly trophy: readonly ["trophy:cup", "trophy:lidded-cup", "trophy:bowl", "trophy:salver", "trophy:globe", "trophy:hockey-cup", "trophy:basketball", "trophy:baseball", "trophy:football", "trophy:canadian-bowl", "trophy:soccer-ball", "trophy:soccer-globe", "trophy:tennis-plate", "trophy:tennis-cup", "trophy:cricket-urn", "trophy:rugby-cup", "trophy:plaque", "trophy:belt", "trophy:laurel", "trophy:rosette", "trophy:ring", "trophy:banner", "trophy:sumo-cup", "trophy:championship-banner", "trophy:paterson-cup", "trophy:stanley-cup", "trophy:hart-trophy", "trophy:vezina-trophy", "trophy:norris-trophy", "trophy:calder-trophy", "trophy:presidents-trophy", "trophy:art-ross-trophy", "trophy:lady-byng-trophy", "trophy:jennings-trophy", "trophy:selke-trophy", "trophy:king-clancy-trophy", "trophy:masterton-trophy", "trophy:jack-adams-trophy", "trophy:prince-of-wales-trophy", "trophy:campbell-bowl", "trophy:rocket-richard-trophy", "trophy:conn-smythe-trophy", "trophy:ted-lindsay-award", "trophy:lester-patrick-trophy", "trophy:lombardi-trophy", "trophy:larry-obrien-trophy", "trophy:commissioners-trophy", "trophy:grey-cup", "trophy:cy-young-award", "trophy:mlb-mvp-award", "trophy:walter-cup", "trophy:wnba-championship-trophy", "trophy:lamar-hunt-trophy", "trophy:silver-slugger-award", "trophy:world-series-mvp-trophy", "trophy:avco-world-trophy", "trophy:obrien-cup", "trophy:gold-glove-award", "trophy:fifa-world-cup", "trophy:woodlawn-vase", "trophy:dfb-pokal", "trophy:champions-league-trophy", "trophy:webb-ellis-cup", "trophy:fa-cup", "trophy:cricket-world-cup", "trophy:wimbledon-gentlemens-trophy", "trophy:venus-rosewater-dish", "trophy:ballon-dor", "trophy:ashes-urn", "trophy:borg-warner-trophy", "trophy:americas-cup"];
|
|
43
|
+
readonly trophy: readonly ["trophy:cup", "trophy:lidded-cup", "trophy:bowl", "trophy:salver", "trophy:globe", "trophy:hockey-cup", "trophy:basketball", "trophy:baseball", "trophy:football", "trophy:canadian-bowl", "trophy:soccer-ball", "trophy:soccer-globe", "trophy:tennis-plate", "trophy:tennis-cup", "trophy:cricket-urn", "trophy:rugby-cup", "trophy:plaque", "trophy:belt", "trophy:laurel", "trophy:rosette", "trophy:ring", "trophy:banner", "trophy:sumo-cup", "trophy:championship-banner", "trophy:paterson-cup", "trophy:stanley-cup", "trophy:hart-trophy", "trophy:vezina-trophy", "trophy:norris-trophy", "trophy:calder-trophy", "trophy:presidents-trophy", "trophy:art-ross-trophy", "trophy:lady-byng-trophy", "trophy:jennings-trophy", "trophy:selke-trophy", "trophy:king-clancy-trophy", "trophy:masterton-trophy", "trophy:jack-adams-trophy", "trophy:prince-of-wales-trophy", "trophy:campbell-bowl", "trophy:rocket-richard-trophy", "trophy:conn-smythe-trophy", "trophy:ted-lindsay-award", "trophy:lester-patrick-trophy", "trophy:lombardi-trophy", "trophy:larry-obrien-trophy", "trophy:commissioners-trophy", "trophy:grey-cup", "trophy:cy-young-award", "trophy:mlb-mvp-award", "trophy:relief-man-award", "trophy:hank-aaron-award", "trophy:bill-russell-trophy", "trophy:walter-cup", "trophy:wnba-championship-trophy", "trophy:lamar-hunt-trophy", "trophy:silver-slugger-award", "trophy:world-series-mvp-trophy", "trophy:avco-world-trophy", "trophy:obrien-cup", "trophy:gold-glove-award", "trophy:fifa-world-cup", "trophy:woodlawn-vase", "trophy:dfb-pokal", "trophy:champions-league-trophy", "trophy:webb-ellis-cup", "trophy:fa-cup", "trophy:cricket-world-cup", "trophy:wimbledon-gentlemens-trophy", "trophy:venus-rosewater-dish", "trophy:ballon-dor", "trophy:ashes-urn", "trophy:borg-warner-trophy", "trophy:americas-cup"];
|
|
44
44
|
readonly medal: readonly ["medal:gold", "medal:silver", "medal:bronze", "medal:place-1", "medal:place-2", "medal:place-3"];
|
|
45
45
|
readonly crest: readonly ["crest:shield", "crest:roundel", "crest:diamond", "crest:pennant"];
|
|
46
46
|
readonly ball: readonly ["ball:soccer", "ball:soccer-colour", "ball:soccer-26", "ball:soccer-18", "ball:soccer-14", "ball:soccer-12", "ball:soccer-6", "ball:soccer-orange", "ball:soccer-26-orange", "ball:soccer-18-orange", "ball:soccer-14-orange", "ball:soccer-12-orange", "ball:soccer-6-orange", "ball:soccer-yellow", "ball:soccer-26-yellow", "ball:soccer-18-yellow", "ball:soccer-14-yellow", "ball:soccer-12-yellow", "ball:soccer-6-yellow", "ball:futsal", "ball:beach-soccer", "ball:soccer-1870-hand-stitched", "ball:soccer-1900-laced", "ball:soccer-1930-18-panel", "ball:soccer-1950-12-panel", "ball:soccer-1960-32-panel-leather", "ball:soccer-retro-pentagons", "ball:soccer-retro-leaves", "ball:soccer-retro-rosette", "ball:soccer-retro-star", "ball:soccer-retro-pinwheel", "ball:soccer-retro-kites", "ball:soccer-14-panel-double-border", "ball:soccer-8-panel-plain", "ball:soccer-6-panel-bands", "ball:soccer-6-panel-diamonds", "ball:soccer-20-panel-dots", "ball:soccer-training-high-vis", "ball:soccer-stars-blue", "ball:soccer-stars-red", "ball:soccer-stars-night", "ball:soccer-hexagons-cyan", "ball:soccer-hexagons-magenta", "ball:soccer-hexagons-lime", "ball:soccer-flames-fire", "ball:soccer-flames-ice", "ball:soccer-flames-toxic", "ball:soccer-chevrons-red", "ball:soccer-chevrons-green", "ball:soccer-chevrons-blue", "ball:soccer-swirl-blue", "ball:soccer-swirl-red", "ball:soccer-swirl-teal", "ball:soccer-metallic-gold", "ball:soccer-metallic-silver", "ball:soccer-metallic-cobalt", "ball:teqball", "ball:basketball", "ball:basketball-6", "ball:basketball-3x3", "ball:baseball", "ball:softball", "ball:baseball-lemon-peel", "ball:baseball-red-blue", "ball:baseball-black-red", "ball:baseball-vintage-leather", "ball:softball-11-optic", "ball:tennis", "ball:padel", "ball:sliotar", "ball:volleyball", "ball:volleyball-8", "ball:beach-volleyball", "ball:volleyball-colours", "ball:volleyball-brazil", "ball:volleyball-japan", "ball:volleyball-canada", "ball:volleyball-usa", "ball:volleyball-italy", "ball:volleyball-poland", "ball:volleyball-france", "ball:volleyball-serbia", "ball:volleyball-netherlands", "ball:volleyball-germany", "ball:cricket-red", "ball:cricket-white", "ball:cricket-pink", "ball:football", "ball:football-cfl", "ball:football-ifaf", "ball:rugby", "ball:afl", "ball:gaelic-football", "ball:netball", "ball:pickleball-outdoor", "ball:pickleball-indoor", "ball:plastic-baseball-slotted", "ball:squash", "ball:squash-yellow", "ball:squash-green", "ball:squash-red", "ball:squash-blue", "ball:racquetball", "ball:lacrosse", "ball:field-hockey", "ball:table-tennis", "ball:handball", "ball:water-polo", "ball:golf", "ball:puck", "ball:curling-stone", "ball:shot", "ball:discus", "ball:hammer", "ball:sepak-takraw", "ball:roundnet", "ball:shuttlecock-feather", "ball:shuttlecock-nylon"];
|
|
47
47
|
readonly puck: readonly ["puck:canada", "puck:canada-red", "puck:canada-white", "puck:usa", "puck:usa-navy", "puck:player", "puck:signed", "puck:souvenir"];
|
|
48
|
-
readonly gear: readonly ["gear:hockey-stick", "gear:goalie-stick", "gear:hockey-skate", "gear:goalie-mask", "gear:goal-net", "gear:field-hockey-stick", "gear:lacrosse-stick", "gear:cricket-bat", "gear:wicket", "gear:table-tennis-paddle", "gear:badminton-racket", "gear:tennis-racket", "gear:squash-racket", "gear:racquetball-racket", "gear:padel-racket", "gear:pickleball-paddle", "gear:roundnet-set", "gear:takraw-net", "gear:netball-post", "gear:teqball-table", "gear:volleyball-net", "gear:basketball-hoop", "gear:baseball-bat", "gear:baseball-glove", "gear:football-helmet", "gear:goalposts", "gear:hurley", "gear:curling-broom", "gear:figure-skate", "gear:speed-skate", "gear:diving-board", "gear:swim-goggles", "gear:starting-blocks", "gear:relay-baton", "gear:javelin", "gear:hurdles", "gear:gunbai", "gear:mawashi", "gear:shinai", "gear:kendo-men", "gear:judogi", "gear:judogi-blue", "gear:judogi-folded", "gear:judogi-blue-folded", "gear:judogi-back", "gear:judogi-blue-back", "gear:obi", "gear:obi-white", "gear:obi-yellow", "gear:obi-orange", "gear:obi-green", "gear:obi-blue", "gear:obi-brown", "gear:obi-kohaku", "gear:obi-red", "gear:obi-women", "gear:obi-white-yellow", "gear:obi-yellow-orange", "gear:obi-orange-green", "gear:obi-green-blue", "gear:obi-blue-brown", "gear:obi-step-1", "gear:obi-step-2", "gear:obi-step-3", "gear:obi-step-4", "gear:obi-step-5", "gear:obi-step-6", "gear:yumi", "gear:ya", "gear:karate-gi"];
|
|
48
|
+
readonly gear: readonly ["gear:hockey-stick", "gear:goalie-stick", "gear:hockey-skate", "gear:goalie-mask", "gear:goal-net", "gear:field-hockey-stick", "gear:lacrosse-stick", "gear:cricket-bat", "gear:wicket", "gear:table-tennis-paddle", "gear:badminton-racket", "gear:tennis-racket", "gear:squash-racket", "gear:racquetball-racket", "gear:padel-racket", "gear:pickleball-paddle", "gear:roundnet-set", "gear:takraw-net", "gear:netball-post", "gear:teqball-table", "gear:volleyball-net", "gear:basketball-hoop", "gear:baseball-bat", "gear:baseball-glove", "gear:baseball-cap", "gear:football-helmet", "gear:goalposts", "gear:hurley", "gear:curling-broom", "gear:figure-skate", "gear:speed-skate", "gear:diving-board", "gear:swim-goggles", "gear:starting-blocks", "gear:relay-baton", "gear:javelin", "gear:hurdles", "gear:gunbai", "gear:mawashi", "gear:shinai", "gear:kendo-men", "gear:judogi", "gear:judogi-blue", "gear:judogi-folded", "gear:judogi-blue-folded", "gear:judogi-back", "gear:judogi-blue-back", "gear:obi", "gear:obi-white", "gear:obi-yellow", "gear:obi-orange", "gear:obi-green", "gear:obi-blue", "gear:obi-brown", "gear:obi-kohaku", "gear:obi-red", "gear:obi-women", "gear:obi-white-yellow", "gear:obi-yellow-orange", "gear:obi-orange-green", "gear:obi-green-blue", "gear:obi-blue-brown", "gear:obi-step-1", "gear:obi-step-2", "gear:obi-step-3", "gear:obi-step-4", "gear:obi-step-5", "gear:obi-step-6", "gear:yumi", "gear:ya", "gear:karate-gi"];
|
|
49
49
|
readonly sport: readonly ("sport:sumo" | "sport:kendo" | "sport:judo" | "sport:kyudo" | "sport:karate" | "sport:nfl" | "sport:cfl" | "sport:ifaf" | "sport:nhl" | "sport:nba" | "sport:mlb" | "sport:soccer" | "sport:curling" | "sport:tennis" | "sport:volleyball" | "sport:badminton" | "sport:pickleball" | "sport:tabletennis" | "sport:padel" | "sport:squash" | "sport:racquetball" | "sport:sepaktakraw" | "sport:teqball" | "sport:roundnet" | "sport:netball" | "sport:swimming" | "sport:waterpolo" | "sport:diving" | "sport:artisticswimming" | "sport:lacrosse" | "sport:rugby" | "sport:afl" | "sport:gaelic" | "sport:cricket" | "sport:fieldhockey" | "sport:handball" | "sport:athletics" | "sport:skating" | "sport:mma" | "sport:boxing" | "sport:wrestling" | "sport:prowrestling")[];
|
|
50
50
|
readonly pennant: readonly ["pennant:championship"];
|
|
51
51
|
};
|
|
@@ -42,6 +42,9 @@ export const TROPHY_IDS = [
|
|
|
42
42
|
"trophy:grey-cup",
|
|
43
43
|
"trophy:cy-young-award",
|
|
44
44
|
"trophy:mlb-mvp-award",
|
|
45
|
+
"trophy:relief-man-award",
|
|
46
|
+
"trophy:hank-aaron-award",
|
|
47
|
+
"trophy:bill-russell-trophy",
|
|
45
48
|
"trophy:walter-cup",
|
|
46
49
|
"trophy:wnba-championship-trophy",
|
|
47
50
|
"trophy:lamar-hunt-trophy",
|
|
@@ -85,7 +88,7 @@ export const PUCK_IDS = ["puck:canada", "puck:canada-red", "puck:canada-white",
|
|
|
85
88
|
export const GEAR_IDS = [
|
|
86
89
|
"gear:hockey-stick", "gear:goalie-stick", "gear:hockey-skate", "gear:goalie-mask", "gear:goal-net", "gear:field-hockey-stick", "gear:lacrosse-stick", "gear:cricket-bat", "gear:wicket",
|
|
87
90
|
"gear:table-tennis-paddle", "gear:badminton-racket", "gear:tennis-racket", "gear:squash-racket", "gear:racquetball-racket", "gear:padel-racket", "gear:pickleball-paddle",
|
|
88
|
-
"gear:roundnet-set", "gear:takraw-net", "gear:netball-post", "gear:teqball-table", "gear:volleyball-net", "gear:basketball-hoop", "gear:baseball-bat", "gear:baseball-glove", "gear:football-helmet", "gear:goalposts", "gear:hurley",
|
|
91
|
+
"gear:roundnet-set", "gear:takraw-net", "gear:netball-post", "gear:teqball-table", "gear:volleyball-net", "gear:basketball-hoop", "gear:baseball-bat", "gear:baseball-glove", "gear:baseball-cap", "gear:football-helmet", "gear:goalposts", "gear:hurley",
|
|
89
92
|
"gear:curling-broom", "gear:figure-skate", "gear:speed-skate", "gear:diving-board", "gear:swim-goggles", "gear:starting-blocks", "gear:relay-baton", "gear:javelin", "gear:hurdles",
|
|
90
93
|
"gear:gunbai", "gear:mawashi", "gear:shinai", "gear:kendo-men", "gear:judogi", "gear:judogi-blue", "gear:judogi-folded", "gear:judogi-blue-folded", "gear:judogi-back", "gear:judogi-blue-back",
|
|
91
94
|
"gear:obi", "gear:obi-white", "gear:obi-yellow", "gear:obi-orange", "gear:obi-green", "gear:obi-blue", "gear:obi-brown", "gear:obi-kohaku", "gear:obi-red", "gear:obi-women", "gear:obi-white-yellow", "gear:obi-yellow-orange", "gear:obi-orange-green", "gear:obi-green-blue", "gear:obi-blue-brown", "gear:obi-step-1", "gear:obi-step-2", "gear:obi-step-3", "gear:obi-step-4", "gear:obi-step-5", "gear:obi-step-6",
|
|
@@ -1,9 +1,25 @@
|
|
|
1
|
-
import { type Emblem, type EmblemSource, type Metal } from "./emblem.core.ts";
|
|
1
|
+
import { type Emblem, type EmblemSource, type Metal, type Rgb } from "./emblem.core.ts";
|
|
2
2
|
import { type Band } from "./emblem.engrave.ts";
|
|
3
3
|
/** A point of the profile: the height `y` (0 at the top of the 64 unit box), the radius `r` from the axis (x = 32), 1 for a sharp corner (a smooth run of points ends at one), and the tone of the piece that starts here. */
|
|
4
4
|
export type Pt = readonly [y: number, r: number, corner?: 0 | 1, tone?: string];
|
|
5
5
|
/** Something drawn on the surface, by height and angle (90 degrees is the right side, 0 faces the eye): a `ring` round the body at a height; `mer`idians from one height to another; `helix` strands that wind `turns` times; a diamond `net`; `dots` (beads) round at a height with a size; on an open top, a `disc` of a tone out to a radius and `pills`, short rounded marks, round a radius. */
|
|
6
|
-
export type Decor = readonly ["ring", y: number] | readonly ["mer", y0: number, y1: number, n: number, off?: number] | readonly ["helix", y0: number, y1: number, n: number, turns: number] | readonly ["net", y0: number, y1: number, n: number] | readonly ["dots", y: number, n: number, size: number, off?: number] | readonly ["disc", rho: number, tone: string] | readonly ["pills", rho: number, n: number, length: number, width: number, tone: string];
|
|
6
|
+
export type Decor = readonly ["ring", y: number] | readonly ["mer", y0: number, y1: number, n: number, off?: number] | readonly ["helix", y0: number, y1: number, n: number, turns: number] | readonly ["net", y0: number, y1: number, n: number] | readonly ["dots", y: number, n: number, size: number, off?: number] | readonly ["disc", rho: number, tone: string] | readonly ["pills", rho: number, n: number, length: number, width: number, tone: string] | ExtraDecor;
|
|
7
|
+
/**
|
|
8
|
+
* Decorations that only some bodies use, drawn by the model's own `extras` (`lathe.extras.ts`) so that a body without them carries none of their code: a `mesh` is `rows` rows of diamonds stacked down the body from `y0` to `y1`
|
|
9
|
+
* with `n` strands round (strands that wind a column to the side at each row, one way and the other: an etched net); a `patch` is a tone laid on a round body between two angles and two heights (a shield on a helmet); a
|
|
10
|
+
* `panel` is a tone laid on one flat face of a body with flat sides, from a fraction `u0` to `u1` across the face (a nameplate on a block).
|
|
11
|
+
*/
|
|
12
|
+
export type ExtraDecor = readonly ["mesh", y0: number, y1: number, n: number, rows: number] | readonly ["patch", y0: number, y1: number, deg0: number, deg1: number, tone: string] | readonly ["panel", face: number, y0: number, y1: number, u0: number, u1: number, tone: string];
|
|
13
|
+
/** What a drawer of `extras` is given: the solid, the turn and the helpers that place a point of its surface. */
|
|
14
|
+
export interface DecorCtx {
|
|
15
|
+
p: readonly Pt[];
|
|
16
|
+
solid: Solid;
|
|
17
|
+
yaw: number;
|
|
18
|
+
base: Tone;
|
|
19
|
+
tone: (name?: string) => Tone;
|
|
20
|
+
at: (R: number, y: number, deg: number) => readonly [number, number, number];
|
|
21
|
+
where: (R: number, y: number, deg: number) => string;
|
|
22
|
+
}
|
|
7
23
|
/** One solid of revolution: a profile from the top down, whether its top is an open rim, how many flat sides it has (none: round) and what is drawn on it. */
|
|
8
24
|
export interface Solid {
|
|
9
25
|
p: readonly Pt[];
|
|
@@ -69,8 +85,18 @@ export interface LatheModel {
|
|
|
69
85
|
poles?: Poles;
|
|
70
86
|
/** The plinth: the band of the body (heights, the tone it is cut into, and for a body with flat sides which side) that holds an engraving, which turns with the body. */
|
|
71
87
|
plate?: Band;
|
|
88
|
+
/** Draws the `mesh`, `patch` and `panel` decorations of the solids (`LATHE_EXTRAS` in `lathe.extras.ts`); a body that uses none leaves it out. */
|
|
89
|
+
extras?: (c: DecorCtx, d: ExtraDecor) => string;
|
|
72
90
|
}
|
|
73
91
|
/** The radius of the body at a height. */
|
|
74
92
|
export declare function radiusAt(profile: readonly Pt[], y: number): number;
|
|
93
|
+
/** One tone: its colour, its fill in the style, and the colours it makes. */
|
|
94
|
+
export interface Tone {
|
|
95
|
+
rgb: Rgb;
|
|
96
|
+
fill: string;
|
|
97
|
+
light: string;
|
|
98
|
+
deep: string;
|
|
99
|
+
edge: string;
|
|
100
|
+
}
|
|
75
101
|
/** A lathe emblem: the object with its names and its model, the still drawing and the turned one. */
|
|
76
102
|
export declare function defineLathe(id: string, en: string, ja: string, source: EmblemSource, model: LatheModel): Emblem<LatheModel>;
|
|
@@ -242,6 +242,11 @@ function draw(model, r, o, yaw, pitch) {
|
|
|
242
242
|
}
|
|
243
243
|
mid.push(`<path d="${m}" stroke-width="${width}" stroke="${t.edge}"/><path d="${m}" stroke-width="${width - 0.9}" stroke="${t.light}"/>`);
|
|
244
244
|
}
|
|
245
|
+
else if (model.extras !== undefined) {
|
|
246
|
+
const m = model.extras({ p, solid, yaw, base, tone, at, where }, d);
|
|
247
|
+
if (m !== "")
|
|
248
|
+
mid.push(m);
|
|
249
|
+
}
|
|
245
250
|
}
|
|
246
251
|
// A solid that stands off the axis is moved to its place, behind the body when it is on the far side and in front of it when it is on the near side.
|
|
247
252
|
if (solid.at !== undefined) {
|
|
@@ -26,7 +26,8 @@ export function defineMedal(id, en, ja, metal) {
|
|
|
26
26
|
["M", starPath(32, 43, 9, 3.9)],
|
|
27
27
|
["l", "M19.2 40a13.4 13.4 0 0 1 9.4-10.4 14 14 0 0 0-6.6 12.6z"],
|
|
28
28
|
];
|
|
29
|
-
|
|
29
|
+
// From behind the ribbon is still there (the straps cross the other way, as the turn mirrors them) and the disc is plain, with a ring where a name is cut.
|
|
30
|
+
const back = [...ribbon(), ...disc, ["E", circlePath(32, 43, 8.4), "1.4"]];
|
|
30
31
|
return defineFlat(id, en, ja, "ours", { metal, front, back, rim: 3, engrave: { front: { x: 32, y: 43, w: 19, h: 15 }, back: { x: 32, y: 43, w: 20, h: 13 } } });
|
|
31
32
|
}
|
|
32
33
|
/** The numerals 1, 2 and 3 as strokes. */
|
|
@@ -470,6 +470,36 @@ export const NAMED_TROPHIES = [
|
|
|
470
470
|
first: "1955-56",
|
|
471
471
|
reference: "File:Trofeo UEFA Champions League.jpg (Wikimedia Commons, CC BY 2.0)",
|
|
472
472
|
},
|
|
473
|
+
{
|
|
474
|
+
id: "trophy:bill-russell-trophy",
|
|
475
|
+
name: "Bill Russell Trophy",
|
|
476
|
+
sport: "basketball",
|
|
477
|
+
competition: "National Basketball Association",
|
|
478
|
+
kind: "player",
|
|
479
|
+
honours: "The most valuable player of the championship series.",
|
|
480
|
+
first: "1969",
|
|
481
|
+
reference: "A press photograph of the 2022 design standing beside the championship trophy (cbssports.com, 12 May 2022), looked at and measured only; not copied. No freely licensed photograph on Wikimedia Commons (searched 2026-10-27).",
|
|
482
|
+
},
|
|
483
|
+
{
|
|
484
|
+
id: "trophy:hank-aaron-award",
|
|
485
|
+
name: "Hank Aaron Award",
|
|
486
|
+
sport: "baseball",
|
|
487
|
+
competition: "Major League Baseball",
|
|
488
|
+
kind: "player",
|
|
489
|
+
honours: "The best offensive performer of each league.",
|
|
490
|
+
first: "1999",
|
|
491
|
+
reference: "File:Kris Bryant, Hank Aaron, Rob Manfred and David Ortiz during the Aaron Award ceremony. (29955118983).jpg (Wikimedia Commons, CC BY 2.0), looked at and measured only; not copied.",
|
|
492
|
+
},
|
|
493
|
+
{
|
|
494
|
+
id: "trophy:relief-man-award",
|
|
495
|
+
name: "Relief Man Award",
|
|
496
|
+
sport: "baseball",
|
|
497
|
+
competition: "Major League Baseball",
|
|
498
|
+
kind: "player",
|
|
499
|
+
honours: "The top relief pitcher of each league (given 1976 to 2012; the fireman trophy).",
|
|
500
|
+
first: "1976",
|
|
501
|
+
reference: "An auction photograph of a 1981 trophy standing on its base (SCP Auctions lot image), looked at and measured only; not copied; not ours to licence. No photograph on Wikimedia Commons (searched 2026-10-27).",
|
|
502
|
+
},
|
|
473
503
|
];
|
|
474
504
|
/** The facts of a named trophy by its emblem id, or `undefined` for a generic trophy. */
|
|
475
505
|
export function namedTrophy(id) {
|
|
@@ -54,6 +54,9 @@ import { TROPHY_COMMISSIONERS_TROPHY } from "./trophy/commissioners-trophy.js";
|
|
|
54
54
|
import { TROPHY_GREY_CUP } from "./trophy/grey-cup.js";
|
|
55
55
|
import { TROPHY_CY_YOUNG_AWARD } from "./trophy/cy-young-award.js";
|
|
56
56
|
import { TROPHY_MLB_MVP_AWARD } from "./trophy/mlb-mvp-award.js";
|
|
57
|
+
import { TROPHY_RELIEF_MAN_AWARD } from "./trophy/relief-man-award.js";
|
|
58
|
+
import { TROPHY_HANK_AARON_AWARD } from "./trophy/hank-aaron-award.js";
|
|
59
|
+
import { TROPHY_BILL_RUSSELL_TROPHY } from "./trophy/bill-russell-trophy.js";
|
|
57
60
|
import { TROPHY_WALTER_CUP } from "./trophy/walter-cup.js";
|
|
58
61
|
import { TROPHY_WNBA_CHAMPIONSHIP_TROPHY } from "./trophy/wnba-championship-trophy.js";
|
|
59
62
|
import { TROPHY_LAMAR_HUNT_TROPHY } from "./trophy/lamar-hunt-trophy.js";
|
|
@@ -187,6 +190,9 @@ const OWN = {
|
|
|
187
190
|
"trophy:walter-cup": TROPHY_WALTER_CUP,
|
|
188
191
|
"trophy:mlb-mvp-award": TROPHY_MLB_MVP_AWARD,
|
|
189
192
|
"trophy:cy-young-award": TROPHY_CY_YOUNG_AWARD,
|
|
193
|
+
"trophy:relief-man-award": TROPHY_RELIEF_MAN_AWARD,
|
|
194
|
+
"trophy:hank-aaron-award": TROPHY_HANK_AARON_AWARD,
|
|
195
|
+
"trophy:bill-russell-trophy": TROPHY_BILL_RUSSELL_TROPHY,
|
|
190
196
|
"trophy:grey-cup": TROPHY_GREY_CUP,
|
|
191
197
|
"trophy:commissioners-trophy": TROPHY_COMMISSIONERS_TROPHY,
|
|
192
198
|
"trophy:larry-obrien-trophy": TROPHY_LARRY_OBRIEN_TROPHY,
|
|
@@ -38,7 +38,11 @@ export interface FlatModel {
|
|
|
38
38
|
/** Where a crest's letters go: the centre's x and y, and the size for one letter. */
|
|
39
39
|
letters?: readonly [x: number, y: number, size: number];
|
|
40
40
|
}
|
|
41
|
-
/**
|
|
41
|
+
/**
|
|
42
|
+
* A flat object (a medal, a crest, a plaque, a banner): drawn as it is by `svg`; turned about its vertical axis it is a slab with a front, a back and a solid edge (`flipSvg`). The edge stays as wide on the screen as the
|
|
43
|
+
* thickness the model gives (`rim`), so edge on it is a band and never a hairline. The back is the model's `back` shapes (what hangs from it, a ribbon or a pole, is there too) seen from behind, so they are mirrored,
|
|
44
|
+
* as are the front's plain parts (its metal and its second colour, without the details) when there is no `back`; an engraving on the back is cut to read from behind, so it is not mirrored.
|
|
45
|
+
*/
|
|
42
46
|
export declare function defineFlat(id: string, en: string, ja: string, source: EmblemSource, model: FlatModel): Emblem<FlatModel>;
|
|
43
47
|
/** An icon: one drawing from shapes. Turned, it is a thin cut-out: it squeezes like a coin, shows its front mirrored and a little darker past a quarter turn, and has a dark rim. */
|
|
44
48
|
export declare function defineIcon(id: string, en: string, ja: string, source: EmblemSource, model: FlatModel): Emblem<FlatModel>;
|
|
@@ -83,24 +83,26 @@ function context(model, r) {
|
|
|
83
83
|
function document(title, model, r, ctx, body) {
|
|
84
84
|
return wrap({ title, size: r.size, style: r.style, theme: r.theme, defs: r.style === "metal" ? defsOf(ctx.used) : "", body, box: model.box, edge: model.ink === true ? undefined : mix(ctx.main, -0.5), width: model.ink === true ? undefined : 0.8 });
|
|
85
85
|
}
|
|
86
|
-
/**
|
|
86
|
+
/**
|
|
87
|
+
* A flat object (a medal, a crest, a plaque, a banner): drawn as it is by `svg`; turned about its vertical axis it is a slab with a front, a back and a solid edge (`flipSvg`). The edge stays as wide on the screen as the
|
|
88
|
+
* thickness the model gives (`rim`), so edge on it is a band and never a hairline. The back is the model's `back` shapes (what hangs from it, a ribbon or a pole, is there too) seen from behind, so they are mirrored,
|
|
89
|
+
* as are the front's plain parts (its metal and its second colour, without the details) when there is no `back`; an engraving on the back is cut to read from behind, so it is not mirrored.
|
|
90
|
+
*/
|
|
87
91
|
export function defineFlat(id, en, ja, source, model) {
|
|
88
92
|
const draw = (o, yaw, pitch) => {
|
|
89
93
|
const r = resolve(o);
|
|
90
94
|
const ctx = context(model, r);
|
|
91
95
|
ctx.engrave = engravingOf(o);
|
|
96
|
+
const front = document(en, model, r, ctx, face(model, model.front, ctx, engraved(model, ctx, "front")));
|
|
92
97
|
if (yaw === 0 && pitch === 0)
|
|
93
|
-
return
|
|
94
|
-
const
|
|
95
|
-
const
|
|
96
|
-
const shown =
|
|
97
|
-
const
|
|
98
|
-
const
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
const [x0, y0, w, h] = (model.box ?? "0 0 64 64").split(" ").map(Number);
|
|
102
|
-
const thick = rim === 0 ? "" : `<g transform="translate(${n2(rim)} 0)">${shapesMarkup(model.front.filter((x) => x[0] === "m" || x[0] === "o").map((x) => ["s", x[1]]), ctx)}</g>`;
|
|
103
|
-
return document(en, model, r, ctx, `<g transform="translate(${n2(x0 + w / 2)} ${n2(y0 + h / 2)}) scale(${n2(sx)} ${n2(sy)}) translate(${n2(-x0 - w / 2)} ${n2(-y0 - h / 2)})">${thick}${face(model, shown, ctx, engraved(model, ctx, across >= 0 ? "front" : "back"))}</g>`);
|
|
98
|
+
return front;
|
|
99
|
+
const [x0, , w] = (model.box ?? "0 0 64 64").split(" ").map(Number);
|
|
100
|
+
const text = engraved(model, ctx, "back");
|
|
101
|
+
const shown = (model.back ?? model.front.filter((x) => x[0] === "m" || x[0] === "o" || x[0] === "s" || x[0] === "r")).filter((x) => text === "" || x[0] === x[0].toLowerCase());
|
|
102
|
+
const plain = { ...model, blank: undefined, letters: undefined };
|
|
103
|
+
const behind = `<g transform="translate(${n2(2 * x0 + w)} 0) scale(-1 1)">${face(plain, shown, ctx)}</g>${text}`;
|
|
104
|
+
const back = document(en, model, r, ctx, behind);
|
|
105
|
+
return flipSvg(front, { yaw, pitch, line: r.style === "line", back, thick: (model.rim ?? 3) / w });
|
|
104
106
|
};
|
|
105
107
|
return { id, en, ja, source, kind: "flat", model, svg: labelled(en, ja, (o) => draw(o, 0, 0)), frame: labelled(en, ja, (o) => draw(o, degrees(o?.yaw), degrees(o?.pitch))) };
|
|
106
108
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const GEAR_BASEBALL_CAP: import("./gear.index.ts").Piece<import("./gear.core.ts").GearSpec>;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// A baseball cap in three-quarter view with its brim toward the lower left, drawn for this package from two photographs of plain caps (docs/likeness-sources.md): the crown is a dome that is widest low at the back, with a
|
|
2
|
+
// button and a front seam set off to the right of the middle, three eyelets, and a brim that is a wide curved shield with its edge, its underside and rows of stitching. No team mark, lettering or brand. It turns with the gear coin-flip.
|
|
3
|
+
import { drawn, ellipse } from "./gear.core.js";
|
|
4
|
+
export const GEAR_BASEBALL_CAP = /* @__PURE__ */ drawn("gear:baseball-cap", "Baseball cap", "野球帽", {
|
|
5
|
+
main: "#243656",
|
|
6
|
+
accent: "#d5dde6",
|
|
7
|
+
parts: [
|
|
8
|
+
// The crown: a dome from the back of the head over the button down to the band, dropping lower at the back and the right.
|
|
9
|
+
{ d: "M16.6 31.4C13.4 22.4 15.4 15.2 22 11.2C27.6 8 34.8 7.4 41.4 9C50 11.2 57.4 16.6 59.2 25.4C60.4 31.8 59.8 37.6 56 41.8C50.8 44.4 43.6 44.8 36.4 43.2C28.2 41.6 21 37.6 16.6 31.4Z", fill: "$main", cyl: 0.6 },
|
|
10
|
+
// The seams of the panels: the front seam to the right of the button, one behind it, and the one on the left side.
|
|
11
|
+
{ d: "M38.6 9.2C41.4 18.4 44.6 28 45.4 42.4", fill: "none", stroke: "#152238", w: 0.9, line: "stroke" },
|
|
12
|
+
{ d: "M45.4 9.8C53.6 14 57 21 57.8 28", fill: "none", stroke: "#152238", w: 0.8, line: "stroke" },
|
|
13
|
+
// The button, then the eyelets.
|
|
14
|
+
{ d: ellipse(36, 8.7, 3.1, 1.9), fill: "$accent", stroke: "#8f9bab", shade: 0.3 },
|
|
15
|
+
{ d: ellipse(21.5, 17.6, 1.2, 1.1), fill: "#101828", stroke: "$accent", w: 0.6, shade: 0 },
|
|
16
|
+
{ d: ellipse(34.4, 21, 1.2, 1.1), fill: "#101828", stroke: "$accent", w: 0.6, shade: 0 },
|
|
17
|
+
{ d: ellipse(50.6, 19, 1.2, 1.1), fill: "#101828", stroke: "$accent", w: 0.6, shade: 0 },
|
|
18
|
+
// A light on the dome, from the upper left.
|
|
19
|
+
{ d: "M21.6 16.6C25 12.6 30.6 10.4 35.2 10.4", fill: "none", stroke: "#fff", w: 1.8, op: 0.3, line: "none", fx: true },
|
|
20
|
+
// The brim: the top is a curved shield, widest at the front, with its edge, which is a thin band along the outer curve, and four rows of stitching.
|
|
21
|
+
{ d: "M4.6 41.8C9 36.4 13.8 32.6 18 30.4C21.4 37 27.4 41.2 35 43C42 44.4 48.4 44.2 54.6 40.6C55.8 47.6 52 52.6 44.6 55C34.6 58 19.6 56 11.8 49.8C7.6 46.8 5.4 44.4 4.6 41.8Z", t: "translate(0 1.7)", fill: "#17233a", stroke: "#101828", shade: 0.4 },
|
|
22
|
+
{ d: "M4.6 41.8C9 36.4 13.8 32.6 18 30.4C21.4 37 27.4 41.2 35 43C42 44.4 48.4 44.2 54.6 40.6C55.8 47.6 52 52.6 44.6 55C34.6 58 19.6 56 11.8 49.8C7.6 46.8 5.4 44.4 4.6 41.8Z", fill: "#2c4264", stroke: "#1a2740", cyl: 0.35 },
|
|
23
|
+
{ d: "M9.6 41.2C16 46.4 25.6 50.2 35.4 50.2C43.2 50.2 49.4 47.8 52.2 43.6M12.6 39.4C18.8 44.6 27.2 47.6 36 47.6C42.2 47.6 47.2 45.8 50.4 42.8M16 36.8C21.8 41.4 28.6 44.2 36.2 44.6", fill: "none", stroke: "$accent", w: 0.45, op: 0.55, line: "none" },
|
|
24
|
+
// The band where the crown meets the brim.
|
|
25
|
+
{ d: "M18 30.6C22 37.4 28 41.4 36 43.2C43.6 44.6 49.6 44.2 55 41", fill: "none", stroke: "#101828", w: 1.3, line: "stroke" },
|
|
26
|
+
// The light along the top of the brim.
|
|
27
|
+
{ d: "M9 40.6C13 36.4 16 34.4 18.4 33.2", fill: "none", stroke: "#fff", w: 1.4, op: 0.28, line: "none", fx: true },
|
|
28
|
+
],
|
|
29
|
+
});
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { GEAR_BADMINTON_RACKET } from "./gear.badmintonracket.js";
|
|
2
|
+
import { GEAR_BASEBALL_CAP } from "./gear.baseballcap.js";
|
|
2
3
|
import { GEAR_BASEBALL_GLOVE } from "./gear.baseballglove.js";
|
|
3
4
|
import { GEAR_CRICKET_BAT } from "./gear.cricketbat.js";
|
|
4
5
|
import { GEAR_BASEBALL_BAT, GEAR_BASKETBALL_HOOP, GEAR_VOLLEYBALL_NET, GEAR_GOALPOSTS, GEAR_WICKET, GEAR_ROUNDNET_SET } from "./gear.field.js";
|
|
@@ -22,7 +23,7 @@ import { GEAR_JUDOGI, GEAR_JUDOGI_BLUE, GEAR_JUDOGI_FOLDED, GEAR_JUDOGI_BLUE_FOL
|
|
|
22
23
|
import { GEAR_OBI_STEP_1, GEAR_OBI_STEP_2, GEAR_OBI_STEP_3, GEAR_OBI_STEP_4, GEAR_OBI_STEP_5, GEAR_OBI_STEP_6 } from "./gear.budo.steps.js";
|
|
23
24
|
import { GEAR_YUMI, GEAR_YA } from "./gear.kyudo.js";
|
|
24
25
|
/** Every piece of gear, in the order a gallery shows them. */
|
|
25
|
-
export const GEARS = [GEAR_HOCKEY_STICK, GEAR_GOALIE_STICK, GEAR_HOCKEY_SKATE, GEAR_GOALIE_MASK, GEAR_GOAL_NET, GEAR_FIELD_HOCKEY_STICK, GEAR_LACROSSE_STICK, GEAR_CRICKET_BAT, GEAR_WICKET, GEAR_TABLE_TENNIS_PADDLE, GEAR_BADMINTON_RACKET, GEAR_TENNIS_RACKET, GEAR_SQUASH_RACKET, GEAR_RACQUETBALL_RACKET, GEAR_PADEL_RACKET, GEAR_PICKLEBALL_PADDLE, GEAR_ROUNDNET_SET, GEAR_TAKRAW_NET, GEAR_NETBALL_POST, GEAR_TEQBALL_TABLE, GEAR_VOLLEYBALL_NET, GEAR_BASKETBALL_HOOP, GEAR_BASEBALL_BAT, GEAR_BASEBALL_GLOVE, GEAR_FOOTBALL_HELMET, GEAR_GOALPOSTS, GEAR_HURLEY, GEAR_CURLING_BROOM, GEAR_FIGURE_SKATE, GEAR_SPEED_SKATE, GEAR_DIVING_BOARD, GEAR_SWIM_GOGGLES, GEAR_STARTING_BLOCKS, GEAR_RELAY_BATON, GEAR_JAVELIN, GEAR_HURDLES, GEAR_GUNBAI, GEAR_MAWASHI, GEAR_SHINAI, GEAR_KENDO_MEN, GEAR_JUDOGI, GEAR_JUDOGI_BLUE, GEAR_JUDOGI_FOLDED, GEAR_JUDOGI_BLUE_FOLDED, GEAR_JUDOGI_BACK, GEAR_JUDOGI_BLUE_BACK, GEAR_OBI, GEAR_OBI_WHITE, GEAR_OBI_YELLOW, GEAR_OBI_ORANGE, GEAR_OBI_GREEN, GEAR_OBI_BLUE, GEAR_OBI_BROWN, GEAR_OBI_KOHAKU, GEAR_OBI_RED, GEAR_OBI_WOMEN, GEAR_OBI_WHITE_YELLOW, GEAR_OBI_YELLOW_ORANGE, GEAR_OBI_ORANGE_GREEN, GEAR_OBI_GREEN_BLUE, GEAR_OBI_BLUE_BROWN, GEAR_OBI_STEP_1, GEAR_OBI_STEP_2, GEAR_OBI_STEP_3, GEAR_OBI_STEP_4, GEAR_OBI_STEP_5, GEAR_OBI_STEP_6, GEAR_YUMI, GEAR_YA, GEAR_KARATE_GI];
|
|
26
|
+
export const GEARS = [GEAR_HOCKEY_STICK, GEAR_GOALIE_STICK, GEAR_HOCKEY_SKATE, GEAR_GOALIE_MASK, GEAR_GOAL_NET, GEAR_FIELD_HOCKEY_STICK, GEAR_LACROSSE_STICK, GEAR_CRICKET_BAT, GEAR_WICKET, GEAR_TABLE_TENNIS_PADDLE, GEAR_BADMINTON_RACKET, GEAR_TENNIS_RACKET, GEAR_SQUASH_RACKET, GEAR_RACQUETBALL_RACKET, GEAR_PADEL_RACKET, GEAR_PICKLEBALL_PADDLE, GEAR_ROUNDNET_SET, GEAR_TAKRAW_NET, GEAR_NETBALL_POST, GEAR_TEQBALL_TABLE, GEAR_VOLLEYBALL_NET, GEAR_BASKETBALL_HOOP, GEAR_BASEBALL_BAT, GEAR_BASEBALL_GLOVE, GEAR_BASEBALL_CAP, GEAR_FOOTBALL_HELMET, GEAR_GOALPOSTS, GEAR_HURLEY, GEAR_CURLING_BROOM, GEAR_FIGURE_SKATE, GEAR_SPEED_SKATE, GEAR_DIVING_BOARD, GEAR_SWIM_GOGGLES, GEAR_STARTING_BLOCKS, GEAR_RELAY_BATON, GEAR_JAVELIN, GEAR_HURDLES, GEAR_GUNBAI, GEAR_MAWASHI, GEAR_SHINAI, GEAR_KENDO_MEN, GEAR_JUDOGI, GEAR_JUDOGI_BLUE, GEAR_JUDOGI_FOLDED, GEAR_JUDOGI_BLUE_FOLDED, GEAR_JUDOGI_BACK, GEAR_JUDOGI_BLUE_BACK, GEAR_OBI, GEAR_OBI_WHITE, GEAR_OBI_YELLOW, GEAR_OBI_ORANGE, GEAR_OBI_GREEN, GEAR_OBI_BLUE, GEAR_OBI_BROWN, GEAR_OBI_KOHAKU, GEAR_OBI_RED, GEAR_OBI_WOMEN, GEAR_OBI_WHITE_YELLOW, GEAR_OBI_YELLOW_ORANGE, GEAR_OBI_ORANGE_GREEN, GEAR_OBI_GREEN_BLUE, GEAR_OBI_BLUE_BROWN, GEAR_OBI_STEP_1, GEAR_OBI_STEP_2, GEAR_OBI_STEP_3, GEAR_OBI_STEP_4, GEAR_OBI_STEP_5, GEAR_OBI_STEP_6, GEAR_YUMI, GEAR_YA, GEAR_KARATE_GI];
|
|
26
27
|
/** The id of every piece of gear: `"gear:hockey-stick"`. */
|
|
27
28
|
export const GEAR_IDS = GEARS.map((g) => g.id);
|
|
28
29
|
const TABLE = new Map(GEARS.map((g) => [g.id, g]));
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
// The decorations a few bodies of revolution use and most do not (see `ExtraDecor` in emblem.lathe.ts): an etched net of many diamonds, a shield laid on a round body, a nameplate laid on a flat face. A model that
|
|
2
|
+
// wants them sets `extras: LATHE_EXTRAS`; one that does not never imports this file, so its bundle carries none of the code.
|
|
3
|
+
import { mix } from "./emblem.core.js";
|
|
4
|
+
import { radiusAt } from "./emblem.lathe.js";
|
|
5
|
+
const RAD = Math.PI / 180;
|
|
6
|
+
const f = (n) => String(Math.round(n * 10) / 10 + 0);
|
|
7
|
+
const pt = (x, y) => `${f(x)} ${f(y)}`;
|
|
8
|
+
/** Draws one extra decoration of a solid, as markup ("" when none of it shows). */
|
|
9
|
+
export function LATHE_EXTRAS(c, d) {
|
|
10
|
+
const { p, solid, yaw, where, at } = c;
|
|
11
|
+
if (d[0] === "mesh") {
|
|
12
|
+
const [, y0, y1, n, rows] = d;
|
|
13
|
+
let m = "";
|
|
14
|
+
for (let i = 0; i < n; i++) {
|
|
15
|
+
for (const way of [1, -1]) {
|
|
16
|
+
let pen = false;
|
|
17
|
+
for (let j = 0; j <= rows * 4; j++) {
|
|
18
|
+
const u = j / (rows * 4);
|
|
19
|
+
const y = y0 + (y1 - y0) * u;
|
|
20
|
+
const deg = yaw + (360 * (i + way * rows * u)) / n;
|
|
21
|
+
if (Math.cos(deg * RAD) <= 0.05) {
|
|
22
|
+
pen = false;
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
m += `${pen ? "L" : "M"}${where(radiusAt(p, y), y, deg)}`;
|
|
26
|
+
pen = true;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return m === "" ? "" : `<path d="${m}" stroke="${mix(c.base.rgb, 0.55)}" stroke-width=".55" stroke-opacity=".9"/>`;
|
|
31
|
+
}
|
|
32
|
+
if (d[0] === "patch") {
|
|
33
|
+
const [, y0, y1, deg0, deg1, name] = d;
|
|
34
|
+
const t = c.tone(name);
|
|
35
|
+
const top = [];
|
|
36
|
+
const bottom = [];
|
|
37
|
+
for (let j = 0; j <= 12; j++) {
|
|
38
|
+
const deg = yaw + deg0 + ((deg1 - deg0) * j) / 12;
|
|
39
|
+
if (Math.cos(deg * RAD) <= 0.04)
|
|
40
|
+
continue;
|
|
41
|
+
top.push(where(radiusAt(p, y0), y0, deg));
|
|
42
|
+
bottom.unshift(where(radiusAt(p, y1), y1, deg));
|
|
43
|
+
}
|
|
44
|
+
return top.length > 1 ? `<path d="M${top.join("L")}L${bottom.join("L")}z" fill="${t.fill}" stroke="${t.edge}" stroke-width=".5"/>` : "";
|
|
45
|
+
}
|
|
46
|
+
const [, face, y0, y1, u0, u1, name] = d;
|
|
47
|
+
const n = solid.sides ?? 0;
|
|
48
|
+
const a0 = (360 * face) / (n || 1) + yaw + (solid.turn ?? 0);
|
|
49
|
+
const a1 = (360 * (face + 1)) / (n || 1) + yaw + (solid.turn ?? 0);
|
|
50
|
+
if (n === 0 || Math.cos(((a0 + a1) / 2) * RAD) <= 0)
|
|
51
|
+
return "";
|
|
52
|
+
const t = c.tone(name);
|
|
53
|
+
const lerp = (y, u) => {
|
|
54
|
+
const c0 = at(radiusAt(p, y), y, a0);
|
|
55
|
+
const c1 = at(radiusAt(p, y), y, a1);
|
|
56
|
+
return pt(c0[0] + (c1[0] - c0[0]) * u, c0[1] + (c1[1] - c0[1]) * u);
|
|
57
|
+
};
|
|
58
|
+
return `<path d="M${lerp(y0, u0)}L${lerp(y0, u1)}L${lerp(y1, u1)}L${lerp(y1, u0)}z" fill="${t.fill}" stroke="${t.edge}" stroke-width=".5"/>`;
|
|
59
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// A gold basketball seated straight on the flared rim of a tall goblet: the body is a net-patterned cup that narrows in a long concave curve to a slim waist, then flares into a round foot of two stacked tiers, the upper one
|
|
2
|
+
// holding the plain band for the engraving. Drawn for this package from a press photograph of the trophy standing beside the championship trophy (docs/likeness.md): the ball is a third of the height, the rim is wider than the ball,
|
|
3
|
+
// the waist is under half the width of the rim and the foot is nearly as wide as the rim; the lettering and the etched strands are left out (the net is a diamond net in the model).
|
|
4
|
+
import { defineLathe } from "../emblem.lathe.js";
|
|
5
|
+
import { LATHE_EXTRAS } from "../lathe.extras.js";
|
|
6
|
+
/** The Bill Russell NBA Finals Most Valuable Player Trophy: a gold basketball on a flared net goblet over a stepped round foot. */
|
|
7
|
+
export const TROPHY_BILL_RUSSELL_TROPHY = /* @__PURE__ */ defineLathe("trophy:bill-russell-trophy", "Bill Russell Trophy", "ビル・ラッセル・トロフィー", "ours", {
|
|
8
|
+
extras: LATHE_EXTRAS,
|
|
9
|
+
metal: "gold",
|
|
10
|
+
turnBox: "-3.7 0 71.4 71.4",
|
|
11
|
+
tilt: 8,
|
|
12
|
+
solids: [
|
|
13
|
+
{
|
|
14
|
+
p: [
|
|
15
|
+
[22.3, 5, 1], [22.3, 11.3, 1], [22.9, 11.3, 1], [23.5, 10.4], [24.4, 9.9],
|
|
16
|
+
[26.5, 8.7], [28.7, 7.5], [32, 6.6], [35.1, 6.1], [38.5, 5.5], [41.5, 4.9], [44.2, 4.4], [46.4, 4.15], [49.6, 3.9], [50.9, 4.4], [51.9, 6.4], [52.6, 8.6, 1],
|
|
17
|
+
[52.7, 9.1, 1], [56.1, 9.4, 1], [56.2, 10, 1], [58.4, 10.3, 1], [60.2, 10.4], [60.8, 9.9, 1],
|
|
18
|
+
],
|
|
19
|
+
decor: [["mesh", 25.2, 48.6, 8, 5], ["ring", 54.2], ["ring", 56.2]],
|
|
20
|
+
},
|
|
21
|
+
],
|
|
22
|
+
balls: [{ kind: "basket", cy: 12.7, r: 9.4 }],
|
|
23
|
+
plate: { y0: 53.4, y1: 55.9, face: 0 },
|
|
24
|
+
});
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// A mahogany block cut in the shape of home plate, its face a plate of cast grey metal with a bat laid across it from the upper left, and over the bat two ribbons that cross it one above the other, the upper one rising to the right and
|
|
2
|
+
// the lower one falling. Drawn for this package from a photograph of the award held in the hands of the winners (docs/likeness-sources.md); the lettering on the ribbons, the league's mark under them and the engraving are left out.
|
|
3
|
+
import { defineFlat } from "../emblem.shapes.js";
|
|
4
|
+
/** The Hank Aaron Award: a home-plate block of mahogany with a grey metal face, a bat and two ribbons. */
|
|
5
|
+
export const TROPHY_HANK_AARON_AWARD = /* @__PURE__ */ defineFlat("trophy:hank-aaron-award", "Hank Aaron Award", "ハンク・アーロン賞", "ours", {
|
|
6
|
+
metal: "silver",
|
|
7
|
+
ribbon: "#6b2f22",
|
|
8
|
+
front: [
|
|
9
|
+
["r", "M5.5 5.5H58.5V36.5L32 60L5.5 36.5Z"],
|
|
10
|
+
["e", "M11 11H53V33.6L32 52.4L11 33.6Z", "1"],
|
|
11
|
+
["f", "M11.8 11.8H52.2V33.1L32 51.2L11.8 33.1Z", "#474a46"],
|
|
12
|
+
["s", "M11.8 29.4L32 47.4L52.2 29.4V33.1L32 51.2L11.8 33.1Z"],
|
|
13
|
+
["l", "M6.8 6.8H57.2V8.6H8.6ZM6.8 6.8L8.6 8.6V35.6L6.8 34.6Z"],
|
|
14
|
+
["m", "M15.2 12.6L19.6 11.2L47.6 38.4L45.2 41.4Z"],
|
|
15
|
+
["l", "M17.2 12.6L19.8 11.8L46.6 38L46 39Z"],
|
|
16
|
+
["m", "M13.4 18C21 16 31 13.4 46 12.6C49 12.4 50.6 12.6 51.6 13.4L49.8 16.6L51.4 20.2C44 21 33 23.4 14 24.8L15.6 21.4Z"],
|
|
17
|
+
["t", "M15.8 21.4C26 19.4 38 17.4 50 15.8"],
|
|
18
|
+
["m", "M14 27.6C27 26.4 40 27.4 50.6 24.4L49 28.6L50.8 32.2C40 33.8 27 32.4 14.6 33.6L16.2 30.4Z"],
|
|
19
|
+
["t", "M16.4 30.4C28 29.8 40 30.2 49.2 28.6"],
|
|
20
|
+
],
|
|
21
|
+
rim: 3,
|
|
22
|
+
});
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/** The Relief Man Award, given from 1976 to 2012 to the best reliever of each league: a silver fire helmet on a chrome column over a walnut block and base. */
|
|
2
|
+
export declare const TROPHY_RELIEF_MAN_AWARD: import("../emblem.core.ts").Emblem<import("../emblem.lathe.ts").LatheModel>;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// A silver fire-fighter's helmet, a tall dome with a wide brim that turns up at the edge, seated on a short chrome column with a flared collar, over a square block of walnut on a stepped walnut base. Drawn for this
|
|
2
|
+
// package from a photograph of one of the trophies on its base (docs/likeness-sources.md): the helmet is a third of the height, the brim is as wide as the base, the column is narrow and the block is as tall as the helmet
|
|
3
|
+
// and the column together. The helmet's front shield and ridge, the plate on the block and all the lettering and marks are left out, so the helmet is drawn as a round dome.
|
|
4
|
+
import { defineLathe } from "../emblem.lathe.js";
|
|
5
|
+
import { LATHE_EXTRAS } from "../lathe.extras.js";
|
|
6
|
+
/** The Relief Man Award, given from 1976 to 2012 to the best reliever of each league: a silver fire helmet on a chrome column over a walnut block and base. */
|
|
7
|
+
export const TROPHY_RELIEF_MAN_AWARD = /* @__PURE__ */ defineLathe("trophy:relief-man-award", "Relief Man Award", "リリーフマン賞", "ours", {
|
|
8
|
+
extras: LATHE_EXTRAS,
|
|
9
|
+
metal: "silver",
|
|
10
|
+
tones: { wood: "#4d2b19", brass: "#cfa94a" },
|
|
11
|
+
tilt: 10,
|
|
12
|
+
box: "-0.5 0 64.9 64.9",
|
|
13
|
+
turnBox: "-7.2 0 78.3 78.3",
|
|
14
|
+
solids: [
|
|
15
|
+
{ sides: 4, turn: -28, tone: "wood", p: [[55.4, 14.8, 1], [56.4, 16.4, 1], [57.4, 16.8], [60.4, 17.4, 1], [60.9, 17, 1]] },
|
|
16
|
+
{ sides: 4, turn: -28, tone: "wood", p: [[31.9, 12.6, 1], [32.3, 13, 1], [55.6, 13.1, 1]], decor: [["panel", 0, 37, 52.5, 0.2, 0.8, "brass"]] },
|
|
17
|
+
{
|
|
18
|
+
p: [
|
|
19
|
+
[3.2, 1.6, 1], [4.2, 3.4], [6, 6.4], [9, 9.2], [12.4, 11], [16, 12], [18.2, 12.4, 1],
|
|
20
|
+
[19.4, 13.6], [20.4, 15.2], [20.9, 16.3, 1], [21.4, 16.2, 1], [21.9, 15.3, 1],
|
|
21
|
+
[22.7, 11], [23.2, 5.2, 1], [23.4, 4.8, 1],
|
|
22
|
+
[30.4, 4.8, 1], [31, 5.7, 1], [32.1, 6.1], [33.2, 6.6, 1],
|
|
23
|
+
],
|
|
24
|
+
decor: [["ring", 30.8], ["patch", 6.6, 17.2, -48, 48, "brass"], ["mer", 4.2, 15.5, 9, 20]],
|
|
25
|
+
},
|
|
26
|
+
],
|
|
27
|
+
plate: { y0: 40, y1: 49.5, face: 0, tone: "brass" },
|
|
28
|
+
});
|
package/dist/index.d.ts
CHANGED
|
@@ -60,6 +60,9 @@ export { TROPHY_COMMISSIONERS_TROPHY } from "./emblems/trophy/commissioners-trop
|
|
|
60
60
|
export { TROPHY_GREY_CUP } from "./emblems/trophy/grey-cup.ts";
|
|
61
61
|
export { TROPHY_CY_YOUNG_AWARD } from "./emblems/trophy/cy-young-award.ts";
|
|
62
62
|
export { TROPHY_MLB_MVP_AWARD } from "./emblems/trophy/mlb-mvp-award.ts";
|
|
63
|
+
export { TROPHY_RELIEF_MAN_AWARD } from "./emblems/trophy/relief-man-award.ts";
|
|
64
|
+
export { TROPHY_HANK_AARON_AWARD } from "./emblems/trophy/hank-aaron-award.ts";
|
|
65
|
+
export { TROPHY_BILL_RUSSELL_TROPHY } from "./emblems/trophy/bill-russell-trophy.ts";
|
|
63
66
|
export { TROPHY_WALTER_CUP } from "./emblems/trophy/walter-cup.ts";
|
|
64
67
|
export { TROPHY_WNBA_CHAMPIONSHIP_TROPHY } from "./emblems/trophy/wnba-championship-trophy.ts";
|
|
65
68
|
export { TROPHY_LAMAR_HUNT_TROPHY } from "./emblems/trophy/lamar-hunt-trophy.ts";
|
|
@@ -174,6 +177,7 @@ export { BALL_TEQBALL } from "./emblems/ball/ball.teqball.ts";
|
|
|
174
177
|
export { BALL_VOLLEYBALL, BALL_VOLLEYBALL_8, BALL_BEACH_VOLLEYBALL } from "./emblems/ball/ball.volleyball.ts";
|
|
175
178
|
export { BALL_WATER_POLO } from "./emblems/ball/ball.waterpolo.ts";
|
|
176
179
|
export { GEAR_BADMINTON_RACKET } from "./emblems/gear/gear.badmintonracket.ts";
|
|
180
|
+
export { GEAR_BASEBALL_CAP } from "./emblems/gear/gear.baseballcap.ts";
|
|
177
181
|
export { GEAR_BASEBALL_GLOVE } from "./emblems/gear/gear.baseballglove.ts";
|
|
178
182
|
export { GEAR_CRICKET_BAT } from "./emblems/gear/gear.cricketbat.ts";
|
|
179
183
|
export { GEAR_BASEBALL_BAT, GEAR_BASKETBALL_HOOP, GEAR_VOLLEYBALL_NET, GEAR_GOALPOSTS, GEAR_WICKET, GEAR_ROUNDNET_SET } from "./emblems/gear/gear.field.ts";
|
package/dist/index.js
CHANGED
|
@@ -61,6 +61,9 @@ export { TROPHY_COMMISSIONERS_TROPHY } from "./emblems/trophy/commissioners-trop
|
|
|
61
61
|
export { TROPHY_GREY_CUP } from "./emblems/trophy/grey-cup.js";
|
|
62
62
|
export { TROPHY_CY_YOUNG_AWARD } from "./emblems/trophy/cy-young-award.js";
|
|
63
63
|
export { TROPHY_MLB_MVP_AWARD } from "./emblems/trophy/mlb-mvp-award.js";
|
|
64
|
+
export { TROPHY_RELIEF_MAN_AWARD } from "./emblems/trophy/relief-man-award.js";
|
|
65
|
+
export { TROPHY_HANK_AARON_AWARD } from "./emblems/trophy/hank-aaron-award.js";
|
|
66
|
+
export { TROPHY_BILL_RUSSELL_TROPHY } from "./emblems/trophy/bill-russell-trophy.js";
|
|
64
67
|
export { TROPHY_WALTER_CUP } from "./emblems/trophy/walter-cup.js";
|
|
65
68
|
export { TROPHY_WNBA_CHAMPIONSHIP_TROPHY } from "./emblems/trophy/wnba-championship-trophy.js";
|
|
66
69
|
export { TROPHY_LAMAR_HUNT_TROPHY } from "./emblems/trophy/lamar-hunt-trophy.js";
|
|
@@ -174,6 +177,7 @@ export { BALL_TEQBALL } from "./emblems/ball/ball.teqball.js";
|
|
|
174
177
|
export { BALL_VOLLEYBALL, BALL_VOLLEYBALL_8, BALL_BEACH_VOLLEYBALL } from "./emblems/ball/ball.volleyball.js";
|
|
175
178
|
export { BALL_WATER_POLO } from "./emblems/ball/ball.waterpolo.js";
|
|
176
179
|
export { GEAR_BADMINTON_RACKET } from "./emblems/gear/gear.badmintonracket.js";
|
|
180
|
+
export { GEAR_BASEBALL_CAP } from "./emblems/gear/gear.baseballcap.js";
|
|
177
181
|
export { GEAR_BASEBALL_GLOVE } from "./emblems/gear/gear.baseballglove.js";
|
|
178
182
|
export { GEAR_CRICKET_BAT } from "./emblems/gear/gear.cricketbat.js";
|
|
179
183
|
export { GEAR_BASEBALL_BAT, GEAR_BASKETBALL_HOOP, GEAR_VOLLEYBALL_NET, GEAR_GOALPOSTS, GEAR_WICKET, GEAR_ROUNDNET_SET } from "./emblems/gear/gear.field.js";
|
package/dist/turn-control.d.ts
CHANGED
|
@@ -114,7 +114,8 @@ export declare function wrapAngle(value: number): number;
|
|
|
114
114
|
/**
|
|
115
115
|
* Binds an emblem to an element so that it can be turned: it draws the emblem's `frame` into `container`, and a drag turns it (left and right are yaw, up and down are pitch, and Shift on a ball is roll), the arrow keys turn
|
|
116
116
|
* it, Home or 0 puts it back, and Space starts and stops an auto-turn. An emblem that cannot turn is drawn as it is, and nothing is listened to. Nothing moves by itself: `autoPlay` is off by default and, under
|
|
117
|
-
* `prefers-reduced-motion`, only starts when it is `"force"`.
|
|
117
|
+
* `prefers-reduced-motion`, only starts when it is `"force"`. A drag up (and Arrow Up) lifts the FRONT of the emblem toward the eye, as if its near edge were held and raised, so the `pitch` (the tilt toward the eye) goes
|
|
118
|
+
* down; a drag down lowers it. The element gets `touch-action: none`, `user-select: none`, a grab cursor, a tab stop, a role description and a hint; `destroy()` takes them away.
|
|
118
119
|
*
|
|
119
120
|
* Pass the emblem itself (`TROPHY_HOCKEY_CUP`, from its own module) and nothing but the turning and that one emblem is in the bundle. Pass an id (`"trophy:hockey-cup"`) and the registry is loaded on
|
|
120
121
|
* demand: the element is drawn when `ready` resolves, not before. The main entry's `bindTurn` has the registry already and draws an id at once.
|
package/dist/turn-control.js
CHANGED
|
@@ -39,7 +39,8 @@ const load = () => {
|
|
|
39
39
|
/**
|
|
40
40
|
* Binds an emblem to an element so that it can be turned: it draws the emblem's `frame` into `container`, and a drag turns it (left and right are yaw, up and down are pitch, and Shift on a ball is roll), the arrow keys turn
|
|
41
41
|
* it, Home or 0 puts it back, and Space starts and stops an auto-turn. An emblem that cannot turn is drawn as it is, and nothing is listened to. Nothing moves by itself: `autoPlay` is off by default and, under
|
|
42
|
-
* `prefers-reduced-motion`, only starts when it is `"force"`.
|
|
42
|
+
* `prefers-reduced-motion`, only starts when it is `"force"`. A drag up (and Arrow Up) lifts the FRONT of the emblem toward the eye, as if its near edge were held and raised, so the `pitch` (the tilt toward the eye) goes
|
|
43
|
+
* down; a drag down lowers it. The element gets `touch-action: none`, `user-select: none`, a grab cursor, a tab stop, a role description and a hint; `destroy()` takes them away.
|
|
43
44
|
*
|
|
44
45
|
* Pass the emblem itself (`TROPHY_HOCKEY_CUP`, from its own module) and nothing but the turning and that one emblem is in the bundle. Pass an id (`"trophy:hockey-cup"`) and the registry is loaded on
|
|
45
46
|
* demand: the element is drawn when `ready` resolves, not before. The main entry's `bindTurn` has the registry already and draws an id at once.
|
|
@@ -204,9 +205,9 @@ export function bindTurnWith(registry, container, ref, options = {}) {
|
|
|
204
205
|
if (dx === 0 && dy === 0)
|
|
205
206
|
return;
|
|
206
207
|
if (event.shiftKey === true && drawer?.emblem.kind === "ball")
|
|
207
|
-
place({ roll: angles.roll + dx, pitch: angles.pitch
|
|
208
|
+
place({ roll: angles.roll + dx, pitch: angles.pitch + dy });
|
|
208
209
|
else
|
|
209
|
-
place({ yaw: angles.yaw + dx, pitch: angles.pitch
|
|
210
|
+
place({ yaw: angles.yaw + dx, pitch: angles.pitch + dy });
|
|
210
211
|
changed();
|
|
211
212
|
};
|
|
212
213
|
const up = (event) => {
|
|
@@ -230,10 +231,10 @@ export function bindTurnWith(registry, container, ref, options = {}) {
|
|
|
230
231
|
place({ yaw: angles.yaw + step });
|
|
231
232
|
break;
|
|
232
233
|
case "ArrowUp":
|
|
233
|
-
place({ pitch: angles.pitch
|
|
234
|
+
place({ pitch: angles.pitch - step });
|
|
234
235
|
break;
|
|
235
236
|
case "ArrowDown":
|
|
236
|
-
place({ pitch: angles.pitch
|
|
237
|
+
place({ pitch: angles.pitch + step });
|
|
237
238
|
break;
|
|
238
239
|
case "Home":
|
|
239
240
|
case "0":
|