Some more Legacy Computing Symbols (pt 10?) (#2453)
* moonlander * rifle, bomb, rocket, frog * doc
This commit is contained in:
parent
58530575cb
commit
43ee359503
2 changed files with 268 additions and 16 deletions
|
@ -33,12 +33,12 @@ glyph-block Symbol-Pictograph-Game-Sprite : for-width-kinds WideWidth4
|
|||
define heavyGraphicSw : Math.max (graphicSw * 2) (Width * 0.15)
|
||||
|
||||
define squareBox : new Box Geom.Top Geom.Bot Geom.Left Geom.Right
|
||||
define [SidewaysBox top bottom left right _left2 _right2] : begin
|
||||
local left2 : fallback _left2 left
|
||||
local right2 : fallback _right2 right
|
||||
local newHeight : (right - left) * (right2 - left2) / (top - bottom)
|
||||
define [SidewaysBox box _left2 _right2] : begin
|
||||
local left2 : fallback _left2 box.left
|
||||
local right2 : fallback _right2 box.right
|
||||
local newHeight : (box.right - box.left) * (right2 - left2) / (box.top - box.bottom)
|
||||
local midX : mix left2 right2 0.5
|
||||
local midY : mix top bottom 0.5
|
||||
local midY box.yMid
|
||||
|
||||
return : new Box
|
||||
midY + (right2 - midX)
|
||||
|
@ -46,6 +46,24 @@ glyph-block Symbol-Pictograph-Game-Sprite : for-width-kinds WideWidth4
|
|||
midX - newHeight / 2
|
||||
midX + newHeight / 2
|
||||
|
||||
define uiBox : new Box uiTop uiBot uiLeft uiRight
|
||||
define uiHBox : SidewaysBox uiBox
|
||||
|
||||
define sb : SB * (0.5 * MosaicWidthScalar)
|
||||
define smallHBox : new Box
|
||||
mix SymbolMid PlusTop (0.5 * MosaicWidthScalar)
|
||||
mix SymbolMid PlusBot (0.5 * MosaicWidthScalar)
|
||||
* sb
|
||||
MosaicWidth - sb
|
||||
|
||||
define vScalar : Math.sqrt (2 * MosaicWidthScalar)
|
||||
define smallVBox : new Box
|
||||
mix SymbolMid PlusTop (0.5 * vScalar)
|
||||
mix SymbolMid PlusBot (0.5 * vScalar)
|
||||
sb + 0.5 * (MosaicWidth - Width * vScalar)
|
||||
(Width * vScalar - sb) + 0.5 * (MosaicWidth - Width * vScalar)
|
||||
|
||||
|
||||
do "Top-down Vehicles"
|
||||
define scaffold : object
|
||||
set scaffold.xWheelFront : 1.5 / 9
|
||||
|
@ -110,19 +128,19 @@ glyph-block Symbol-Pictograph-Game-Sprite : for-width-kinds WideWidth4
|
|||
|
||||
|
||||
do "Stick Man"
|
||||
define [StickManScaffold top bottom left right _sw] : begin
|
||||
define [StickManScaffold box _sw] : begin
|
||||
local baseHeight : uiTop - uiBot
|
||||
local height : top - bottom
|
||||
local height : box.top - box.bottom
|
||||
local scale : height / baseHeight
|
||||
|
||||
local scaffold : object
|
||||
top top
|
||||
bot bottom
|
||||
left left
|
||||
right right
|
||||
top box.top
|
||||
bot box.bottom
|
||||
left box.left
|
||||
right box.right
|
||||
stroke : fallback _sw graphicSw
|
||||
xMiddle : mix left right 0.5
|
||||
yMiddle : mix top bottom 0.5
|
||||
xMiddle box.xMid
|
||||
yMiddle box.yMid
|
||||
armRaiseK 0.4
|
||||
headSize : height / 2.5
|
||||
legSize : (Width - SB * 2) * scale
|
||||
|
@ -175,9 +193,8 @@ glyph-block Symbol-Pictograph-Game-Sprite : for-width-kinds WideWidth4
|
|||
include : VBar.m [mix dressLeft dressRight 0.7] scaffold.bot (dressBottom - O) scaffold.stroke
|
||||
|
||||
|
||||
define scaffold : StickManScaffold uiTop uiBot uiLeft uiRight
|
||||
define hBox : SidewaysBox uiTop uiBot uiLeft uiRight
|
||||
define hScaffold : StickManScaffold hBox.top hBox.bottom hBox.left hBox.right smallGraphicSw
|
||||
define scaffold : StickManScaffold uiBox
|
||||
define hScaffold : StickManScaffold uiHBox smallGraphicSw
|
||||
|
||||
create-glyph [MangleName 'stickMan'] [MangleUnicode 0x1FBC5] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
|
@ -204,6 +221,7 @@ glyph-block Symbol-Pictograph-Game-Sprite : for-width-kinds WideWidth4
|
|||
set-width MosaicWidth
|
||||
include : StickManDressBody scaffold 0 0
|
||||
|
||||
|
||||
do "Snake Head"
|
||||
define eyeSize : Geom.Size / 8
|
||||
define mouthWidth : Geom.Size / 3
|
||||
|
@ -265,6 +283,7 @@ glyph-block Symbol-Pictograph-Game-Sprite : for-width-kinds WideWidth4
|
|||
create-glyph [MangleName "snakeHeadDownClosed"] [MangleUnicode 0x1CC77] : glyph-proc
|
||||
include : SnakeHead 3 0
|
||||
|
||||
|
||||
do "Energy Waves"
|
||||
define [LeftEnergyWave top bottom left right] : glyph-proc
|
||||
local midX : mix left right 0.5
|
||||
|
@ -303,6 +322,167 @@ glyph-block Symbol-Pictograph-Game-Sprite : for-width-kinds WideWidth4
|
|||
set-width MosaicWidth
|
||||
include : WithD4Transform midX 1 0 : lambda [] : LeftEnergyWave Geom.Top Geom.Bot Geom.Left Geom.Right
|
||||
|
||||
|
||||
do "Rifle"
|
||||
define scaffold : object
|
||||
set scaffold.postLength : 1 / 6
|
||||
set scaffold.postOffset : 1 / 9
|
||||
set scaffold.triggerRad : 1 / 8
|
||||
|
||||
define [RightRifle box] : glyph-proc
|
||||
include : union
|
||||
HBar.t box.left box.right [box.mixY : 1 - scaffold.postLength] smallGraphicSw
|
||||
VBar.r [box.mixX : 1 - scaffold.postOffset] [box.mixY : 1 - scaffold.postLength] box.top smallGraphicSw
|
||||
VBar.l box.left box.bottom [box.mixY : 1 - scaffold.postLength] (2 * smallGraphicSw)
|
||||
|
||||
local triggerStartX : box.left + [HSwToV : 2 * smallGraphicSw]
|
||||
local triggerEndY : [box.mixY : 1 - scaffold.postLength] - smallGraphicSw
|
||||
local triggerRad : (box.right - box.left) * scaffold.triggerRad
|
||||
include : dispiro
|
||||
widths.center smallGraphicSw
|
||||
flat triggerStartX (triggerEndY - triggerRad) [heading Rightward]
|
||||
archv
|
||||
curl (triggerStartX + triggerRad) triggerEndY [heading Upward]
|
||||
|
||||
create-glyph [MangleName 'rifleLeft'] [MangleUnicode 0x1CC65] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : WithD4Transform midX 0 1 : lambda [] : RightRifle smallHBox
|
||||
create-glyph [MangleName 'rifleUp'] [MangleUnicode 0x1CC66] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : WithD4Transform midX 1 0 : lambda [] : RightRifle smallVBox
|
||||
create-glyph [MangleName 'rifleRight'] [MangleUnicode 0x1CC67] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : RightRifle smallHBox
|
||||
create-glyph [MangleName 'rifleDown'] [MangleUnicode 0x1CC68] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : WithD4Transform midX 3 0 : lambda [] : RightRifle smallVBox
|
||||
|
||||
|
||||
do "Rocket"
|
||||
define scaffold : object
|
||||
set scaffold.width : 1 / 2
|
||||
set scaffold.baseHeight : 1 / 4
|
||||
set scaffold.tipHeight : 1 / 4
|
||||
|
||||
define [RightRocket box] : glyph-proc
|
||||
local rocketLeft : box.mixY (0.5 + scaffold.width / 2)
|
||||
local rocketRight : box.mixY (0.5 - scaffold.width / 2)
|
||||
local rocketBase : box.mixX scaffold.baseHeight
|
||||
local rocketTip : box.mixX (1 - scaffold.tipHeight)
|
||||
|
||||
include : union
|
||||
spiro-outline
|
||||
corner box.left box.yMid
|
||||
corner rocketBase rocketRight
|
||||
corner rocketTip rocketRight
|
||||
corner box.right box.yMid
|
||||
corner rocketTip rocketLeft
|
||||
corner rocketBase rocketLeft
|
||||
intersection [MaskAbove box.yMid] : dispiro
|
||||
widths.center smallGraphicSw
|
||||
corner box.left box.top
|
||||
corner [box.mixX : 2 * scaffold.baseHeight] [box.mixY scaffold.width]
|
||||
intersection [MaskBelow box.yMid] : dispiro
|
||||
widths.center smallGraphicSw
|
||||
corner box.left box.bottom
|
||||
corner [box.mixX : 2 * scaffold.baseHeight] [box.mixY : 1 - scaffold.width]
|
||||
|
||||
create-glyph [MangleName 'rocketLeft'] [MangleUnicode 0x1CC56] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : WithD4Transform midX 0 1 : lambda [] : RightRocket smallHBox
|
||||
create-glyph [MangleName 'rocketUp'] [MangleUnicode 0x1CC57] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : WithD4Transform midX 1 0 : lambda [] : RightRocket smallVBox
|
||||
create-glyph [MangleName 'rocketRight'] [MangleUnicode 0x1CC58] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : RightRocket smallHBox
|
||||
create-glyph [MangleName 'rocketDown'] [MangleUnicode 0x1CC59] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : WithD4Transform midX 3 0 : lambda [] : RightRocket smallVBox
|
||||
|
||||
|
||||
do "Bomb"
|
||||
define scaffold : object
|
||||
set scaffold.tailX 0.3
|
||||
set scaffold.bodyX 0.15
|
||||
|
||||
define [RightBomb box] : glyph-proc
|
||||
local bombLeft : box.mixX scaffold.bodyX
|
||||
local radius : (box.top - box.bottom) / 2
|
||||
|
||||
include : union
|
||||
spiro-outline
|
||||
corner box.left box.top
|
||||
corner box.left box.bottom
|
||||
corner (box.left + graphicSw) box.bottom
|
||||
corner [box.mixX scaffold.tailX] box.yMid
|
||||
corner (box.left + graphicSw) box.top
|
||||
spiro-outline
|
||||
curl (bombLeft + radius) box.top
|
||||
archv
|
||||
g4 bombLeft box.yMid
|
||||
arcvh
|
||||
flat (bombLeft + radius) box.bottom
|
||||
curl (box.right - radius) box.bottom
|
||||
archv
|
||||
g4 box.right box.yMid
|
||||
arcvh
|
||||
flat (box.right - radius) box.top
|
||||
# Ellipse.Outline.AtDimens box.top box.bottom [box.mixX scaffold.bodyX] box.right
|
||||
|
||||
create-glyph [MangleName 'bombLeft'] [MangleUnicode 0x1CC60] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : WithD4Transform midX 2 0 : lambda [] : RightBomb smallHBox
|
||||
create-glyph [MangleName 'bombUp'] [MangleUnicode 0x1CC61] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : WithD4Transform midX 1 0 : lambda [] : RightBomb smallVBox
|
||||
create-glyph [MangleName 'bombRight'] [MangleUnicode 0x1CC62] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : RightBomb smallHBox
|
||||
create-glyph [MangleName 'bombDown'] [MangleUnicode 0x1CC63] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : WithD4Transform midX 3 0 : lambda [] : RightBomb smallVBox
|
||||
|
||||
|
||||
do "Frog"
|
||||
define scaffold : object
|
||||
set scaffold.bodyX 1
|
||||
set scaffold.bodyY 0.9
|
||||
set scaffold.legY 0.7
|
||||
set scaffold.legY2 0.6
|
||||
set scaffold.legX 0.2
|
||||
set scaffold.legX2 0.4
|
||||
set scaffold.sw graphicSw
|
||||
|
||||
define [UpFrog box tfm] : glyph-proc
|
||||
local Kit : StickFigureKit box tfm heavyGraphicSw
|
||||
|
||||
include : difference
|
||||
union
|
||||
Ellipse.Outline.AtDimens
|
||||
box.mixY scaffold.bodyY
|
||||
box.mixY (1 - scaffold.bodyY)
|
||||
box.mixX (1 - scaffold.bodyX)
|
||||
box.mixX scaffold.bodyX
|
||||
Kit.RoundSeg 0.5 0.5 0.5 1 0 1
|
||||
Kit.RoundSeg 0.5 scaffold.legY2 0 scaffold.legY 0 1
|
||||
Kit.RoundSeg 0.5 scaffold.legY2 1 scaffold.legY 0 1
|
||||
Kit.RoundSeg scaffold.legX2 0.5 scaffold.legX 0 0 1
|
||||
Kit.RoundSeg (1 - scaffold.legX2) 0.5 (1 - scaffold.legX) 0 0 1
|
||||
Ellipse.Outline.AtDimens
|
||||
[box.mixY scaffold.bodyY] - scaffold.sw
|
||||
[box.mixY : 1 - scaffold.bodyY] + scaffold.sw
|
||||
[box.mixX : 1 - scaffold.bodyX] + scaffold.sw
|
||||
[box.mixX scaffold.bodyX] - scaffold.sw
|
||||
|
||||
create-glyph [MangleName 'frogUp'] [MangleUnicode 0x1CDFB] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : UpFrog squareBox : D4Transform midX 0 0
|
||||
create-glyph [MangleName 'frogDown'] [MangleUnicode 0x1CDFC] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : UpFrog squareBox : D4Transform midX 2 0
|
||||
|
||||
|
||||
do "Square Spiral"
|
||||
define directions : list
|
||||
* {.dx 1 .dy 0 .heading Rightward}
|
||||
|
@ -341,6 +521,7 @@ glyph-block Symbol-Pictograph-Game-Sprite : for-width-kinds WideWidth4
|
|||
set-width MosaicWidth
|
||||
include : SquareSpiral Geom.Left Geom.Bot 0
|
||||
|
||||
|
||||
do "Ladder"
|
||||
create-glyph [MangleName "vertLadder"] [MangleUnicode 0x1CC84] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
|
@ -354,6 +535,7 @@ glyph-block Symbol-Pictograph-Game-Sprite : for-width-kinds WideWidth4
|
|||
include : HBar.b left right Geom.Bot GeometryStroke
|
||||
include : HBar.t left right Geom.Top GeometryStroke
|
||||
|
||||
|
||||
do "Striped Triangles"
|
||||
define stripes : 2 + 2 * MosaicWidthScalar
|
||||
define coTop : mix Geom.Top Geom.Bot (0 - 1 / (2 * stripes))
|
||||
|
@ -384,3 +566,67 @@ glyph-block Symbol-Pictograph-Game-Sprite : for-width-kinds WideWidth4
|
|||
include : intersection
|
||||
refer-glyph : MangleName "blackTriangleDown"
|
||||
HShade stripes coTop coBot left right
|
||||
|
||||
|
||||
do "Moon Lander"
|
||||
define scaffold : object
|
||||
set scaffold.tipSize 0.2
|
||||
set scaffold.headWidth 0.8
|
||||
set scaffold.headHeight (3 / 8)
|
||||
set scaffold.bodyWidth 0.4
|
||||
set scaffold.slantHeight (3 / 8)
|
||||
set scaffold.baseWidth 0.2
|
||||
set scaffold.windowWidth 0.2
|
||||
set scaffold.windowTopWidth 0.12
|
||||
set scaffold.windowArchDepth 0.1
|
||||
set scaffold.windowBot (3 / 8)
|
||||
set scaffold.windowTop (6 / 8)
|
||||
set scaffold.footLen 0.25
|
||||
set scaffold.legHeight 0.4
|
||||
set scaffold.legTopHeight 0.5
|
||||
|
||||
define [Moonlander top bottom left right sw] : glyph-proc
|
||||
local midX : mix left right 0.5
|
||||
local y1 : mix top bottom scaffold.headHeight
|
||||
local y2 : mix bottom top scaffold.slantHeight
|
||||
local bodyLeft : mix left right (0.5 - scaffold.bodyWidth / 2)
|
||||
local bodyRight : mix left right (0.5 + scaffold.bodyWidth / 2)
|
||||
|
||||
local windowTop : mix bottom top scaffold.windowTop
|
||||
local windowBot : mix bottom top scaffold.windowBot
|
||||
local windowY3 : mix bottom top (scaffold.windowTop - scaffold.windowArchDepth)
|
||||
local windowLeft : mix left right (0.5 - scaffold.windowWidth / 2)
|
||||
local windowRight : mix left right (0.5 + scaffold.windowWidth / 2)
|
||||
|
||||
local legY2 : mix bottom top scaffold.legHeight
|
||||
local legY3 : mix bottom top scaffold.legTopHeight
|
||||
include : difference
|
||||
union
|
||||
spiro-outline
|
||||
corner [mix left right (0.5 + scaffold.headWidth / 2)] y1
|
||||
corner [mix left right (0.5 + scaffold.tipSize / 2)] top
|
||||
corner [mix left right (0.5 - scaffold.tipSize / 2)] top
|
||||
corner [mix left right (0.5 - scaffold.headWidth / 2)] y1
|
||||
corner bodyLeft y1
|
||||
corner bodyLeft y2
|
||||
corner [mix left right (0.5 - scaffold.baseWidth / 2)] bottom
|
||||
corner [mix left right (0.5 + scaffold.baseWidth / 2)] bottom
|
||||
corner bodyRight y2
|
||||
corner bodyRight y1
|
||||
HBar.b left [mix left right scaffold.footLen] bottom sw
|
||||
HBar.b right [mix right left scaffold.footLen] bottom sw
|
||||
VBar.l left bottom legY2 sw
|
||||
VBar.r right bottom legY2 sw
|
||||
dispiro [widths.rhs sw] [flat left legY2] [curl midX legY3]
|
||||
dispiro [widths.lhs sw] [flat right legY2] [curl midX legY3]
|
||||
spiro-outline
|
||||
corner windowLeft windowY3
|
||||
corner windowLeft windowBot
|
||||
corner windowRight windowBot
|
||||
corner windowRight windowY3
|
||||
corner [mix left right (0.5 + scaffold.windowTopWidth / 2)] windowTop
|
||||
corner [mix left right (0.5 - scaffold.windowTopWidth / 2)] windowTop
|
||||
|
||||
create-glyph [MangleName "moonLander"] [MangleUnicode 0x1CDF5] : glyph-proc
|
||||
set-width MosaicWidth
|
||||
include : Moonlander top bottom left right graphicSw
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue