Compare commits
No commits in common. "master" and "highlightIconsToolbar" have entirely different histories.
master
...
highlightI
|
@ -10,7 +10,7 @@ steps:
|
|||
auto_tag: true
|
||||
|
||||
- name: frontend
|
||||
image: privateregistry.michelescandura.com/michele/basecompileimage:1.1
|
||||
image: privateregistry.michelescandura.com/michele/basecompileimage
|
||||
pull: true
|
||||
volumes:
|
||||
- name: cache
|
||||
|
@ -50,7 +50,7 @@ steps:
|
|||
- name: cache
|
||||
path: /release
|
||||
settings:
|
||||
api_key: 5eb87a0a7d55fbf8fb64e678781a5ddcc1a27e09
|
||||
api_key: 96d2ba3da7491bd7760e2681f8882cf41f82e609
|
||||
base_url: https://git.michelescandura.com
|
||||
files: /release/zip/*
|
||||
title: ${DRONE_TAG}
|
||||
|
|
4
.gitignore
vendored
|
@ -362,6 +362,4 @@ MigrationBackup/
|
|||
# Fody - auto-generated XML schema
|
||||
FodyWeavers.xsd
|
||||
|
||||
/db
|
||||
*.db
|
||||
*.db*
|
||||
/db
|
|
@ -1,52 +0,0 @@
|
|||
|
||||
|
||||
select * from MapLog where SessionId=2 --Ruined Maze D0823E78-15E4-45EE-A396-0A2E891961DC
|
||||
|
||||
select * from MapLog where SessionId=4 --test 6351309A-EFA5-4721-A4BE-AC63995ADB7F
|
||||
|
||||
select * from MapLog where SessionId=5 --daniele 7EB1D6F5-12E2-4A8F-98CD-3351D40F1D26
|
||||
|
||||
select * from MapLog where SessionId=6 --Psyruque BED7EF13-5823-427A-8C40-8BE94A563638
|
||||
|
||||
|
||||
select * from Sessions
|
||||
select * from Snapshots
|
||||
select * from Snapshot where SessionId=2
|
||||
select * from Sessions
|
||||
select * from MapLogs
|
||||
select * from MapLog
|
||||
INSERT INTO Snapshots (Object, SessionId, Timestamp)
|
||||
SELECT Object, "BED7EF13-5823-427A-8C40-8BE94A563638",Timestamp
|
||||
FROM Snapshot
|
||||
WHERE SessionId=6
|
||||
order by SnapshotId
|
||||
|
||||
INSERT INTO MapLogs (Object, Operation, SessionId, Timestamp, Type, UserId)
|
||||
SELECT Object, Operation, "6351309A-EFA5-4721-A4BE-AC63995ADB7F", Timestamp, Type, "cd85a137-a5e8-4e4a-81d2-3e1c94ac9470"
|
||||
FROM MapLog
|
||||
WHERE SessionId =2
|
||||
ORDER BY MapLogId
|
||||
|
||||
INSERT INTO MapLogs (Object, Operation, SessionId, Timestamp, Type, UserId)
|
||||
SELECT Object, Operation, "D0823E78-15E4-45EE-A396-0A2E891961DC", Timestamp, Type, "cd85a137-a5e8-4e4a-81d2-3e1c94ac9470"
|
||||
FROM MapLog
|
||||
WHERE SessionId =4
|
||||
ORDER BY MapLogId
|
||||
|
||||
INSERT INTO MapLogs (Object, Operation, SessionId, Timestamp, Type, UserId)
|
||||
SELECT Object, Operation, "7EB1D6F5-12E2-4A8F-98CD-3351D40F1D26", Timestamp, Type, "cd85a137-a5e8-4e4a-81d2-3e1c94ac9470"
|
||||
FROM MapLog
|
||||
WHERE SessionId =5
|
||||
ORDER BY MapLogId
|
||||
|
||||
INSERT INTO MapLogs (Object, Operation, SessionId, Timestamp, Type, UserId)
|
||||
SELECT Object, Operation, "BED7EF13-5823-427A-8C40-8BE94A563638", Timestamp, Type, "cd85a137-a5e8-4e4a-81d2-3e1c94ac9470"
|
||||
FROM MapLog
|
||||
WHERE SessionId =6
|
||||
ORDER BY MapLogId
|
||||
|
||||
--delete from Snapshots where SessionId="A306DFEE-82A9-4964-942A-1B923B970951"
|
||||
|
||||
|
||||
insert into Snapshots (
|
||||
select * from Snapshot where SessionId=2
|
|
@ -1 +0,0 @@
|
|||
<mxfile host="app.diagrams.net" modified="2021-02-12T11:47:08.026Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36 Edg/88.0.705.63" etag="N1L05Rh-iNcs-Q1Nc1cU" version="14.3.1" type="device"><diagram id="C5RBs43oDa-KdzZeNtuy" name="Page-1">7Vvbdto4FP0aHpPlC7c8gnNpO2mGljSZV4EFaJAtRhYh9OvnyJZvKICd4DohrMUDOpZlS3vraGvbbtiO93zD0WL2nbmYNizDfW7Ylw3LMpuW1ZA/w11HkU5bBaacuKpSGhiS31gFDRVdEhcHuYqCMSrIIh8cM9/HY5GLIc7ZKl9twmj+qgs0xVpgOEZUjz4SV8yiaNfqpPEvmExn8ZXN9kV0xENxZdWTYIZctsqE7KuG7XDGRPTPe3YwlYMXj8vj1/UjvZ23b779CP5Dv/p/3d89nEWNXZc5JekCx754ddO/55PrLw/Nf/9ZDK5/rIyb3ujbmTrFeEJ0qcbLQd4Ckamv+izW8UAGK+JR5EOpP2G+GKojMAx9ROUJ9uUY7g9zCDxhLghg0FMHBFtAdDwj1L1Fa7aUvQgEGs/jUn/GOPkNzSIKh0wIwGEuFJ2sdq7GUJ4JYQOiHAdQZxAPjZmEblEgVJ0xoxQtAjIKb1hW8RCfEr/PhGBe3BBb+i52VSnBOiwIzuYJe+T5BQFRwMnRwM8ZOiqAbjDzsOBrqKKOJlxTk82My6uUumZbxWZZ2tpdNWXUdJkmbSeX+wnTC/lTGIT0evbG9ZoFrweI5C6HKADvI4H7chiDLBHhT6araSikZwmqmhpV75CHNZrCSIsMJSmeiK2EDBZoTPzpbVjnsplGfqqeyhCDcyc0JMOMuC72Q7IIJFDEJ8mQBSO+CIei1YcfDJhjnLcaLbghB8pmWoafrM6Fw3zgFSIhgTCQdYUlYV+g1s6Ju59a6zxiZZHNEikHaVn8LD3VcAyMcfvrXwFkjWMDckdCmQmPqr9Vwd2yaobb1uC+8hCRp/VcF1J0cAL8oIB3ujUD3tQA1xCmJJQPajTMF5fWPfB7AKRsLsb7XtLh8szUOGHrnLBfwJ+iEaYDFhBBmGyfR3U3eFFX0jaNZjFUd6z+bwK1pYE6WPLxDAVSRIDqmsPwhv+OcD5XBqpZd25ua6gOxdKV3Swo+o2T6D+c6Dc3RL/drlb0mxui3+6+X9Hf2c5U427pjY5QNxZMO+3CNHsvG4CuhmUP7l7aN5bxHZaSo0PyoIKwNN617wAuToLw4KAWVflV6UFTNwy/QuI3rgANMkLhMnPPZMDnTDZ3ZFM6K4KaVYHcrTtTm7rXdoPlkjvEHvERl4jfoznWTeKPjm9VkNav+eMb2JWOse/25CMXKI0ok3K7DyGlx00jKl4TGi9dewRzfv3D7hTHUwfTEVtdpYF+GIADMVNKy+2Awb4U74cMNhhTXGA7J+92J7AvAckxRYI85Z887RDnA0ncVJhbRl6YW4adbyLqpDor+6inbEPRKGgNHcyq182/AWcTHARM1+unLWb1W0x7c8tXdIvZMfaS+IUdpt0ssMPsvI8dpqn7lkNEkcq4n3BtSybvx9lZmrpNqaH32bca5WEtuoGsbK+h25SfSrHEiL1ryWJuZPrOKyWLvdGQ1dm4l6oli+40bntOeRIs1QuWltHN0aHwizCWuWOR2a5YWq0P9CKMbqQOBcdYf3rzWRRLpzC93o1i0c1Rh4jj05wHtcDL41y7B27pfikkbXF8r63VDHTtb79YumUKyl6u4pbhMPcE+IEBL/xmTHWI64aqA2MijtA5qBtr+5Vi7HBY64amBvKnNxjK49oqKMOqchgs3ft7AIjcY1ygq0OxXXsm1u2/v5disZT2Qk8+q7yV8+CEaGFEL2rPt+WsP7YIx7qcuZf4gmb9Vp8a271OX4zlXqtP4SyplLU1muqG3uj6Jc9zEsJY+SaKun6t5p6Gtrh+WkNnm0+cNtphk0mAKzEOLd04NM7PY+BTuoZmXCYR7Ek7I2XJRWt4H43n05C/DqOMw3GfpQakcrut4jkhnl/qo0t1W43k87PiRt3ZGxkVE/OPwaWbZ8WxivXTRwXrMLM/fin3j0One2YUeiEXeLTV+8zI8U1UdRVcxMFPNPpurEu56G8khkaAbVwpvk5cHIYpdt7Fj5P0W7gCxfST66h6+uG6ffU/</diagram></mxfile>
|
331
Assets/walls.svg
|
@ -1,331 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="210mm"
|
||||
height="297mm"
|
||||
viewBox="0 0 210 297"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="1.0.2 (e86c870879, 2021-01-15, custom)"
|
||||
sodipodi:docname="walls.svg">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="5.6"
|
||||
inkscape:cx="541.84864"
|
||||
inkscape:cy="364.64104"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
inkscape:document-rotation="0"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1017"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<path
|
||||
id="rect839-9-8"
|
||||
style="fill:#18769d;fill-opacity:1;stroke:none;stroke-width:0.996289;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 161.33258,110.84152 -3.40179,-1e-5 -1e-5,-10.29985 h 3.4018 z"
|
||||
inkscape:export-xdpi="208.89087"
|
||||
inkscape:export-ydpi="208.89087"
|
||||
inkscape:export-filename="C:\dev\Map\Sledgemapper\Content\walls\wall11.png" />
|
||||
<path
|
||||
id="rect839"
|
||||
style="fill:#18769d;fill-opacity:1;stroke:none;stroke-width:0.996289;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 124.66732,52.916664 h 3.40179 v 10.29985 h -3.40179 z"
|
||||
inkscape:export-xdpi="208.89087"
|
||||
inkscape:export-ydpi="208.89087" />
|
||||
<path
|
||||
id="rect837"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#18769d;stroke-width:1.324;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 121.68006,63.820026 h 9.37631 v 9.376308 h -9.37631 z"
|
||||
inkscape:export-xdpi="208.89087"
|
||||
inkscape:export-ydpi="208.89087" />
|
||||
<path
|
||||
id="rect839-9"
|
||||
style="fill:#18769d;fill-opacity:1;stroke:none;stroke-width:0.996289;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 128.06912,84.099698 -3.40179,-6e-6 -1e-5,-10.299849 3.4018,-3e-6 z"
|
||||
inkscape:export-xdpi="208.89087"
|
||||
inkscape:export-ydpi="208.89087" />
|
||||
<g
|
||||
id="g991">
|
||||
<path
|
||||
id="rect839-8"
|
||||
style="fill:#18769d;fill-opacity:1;stroke:none;stroke-width:0.996289;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 100.35072,62.785272 h 3.40179 v 10.29985 h -3.40179 z"
|
||||
inkscape:export-xdpi="208.89087"
|
||||
inkscape:export-ydpi="208.89087" />
|
||||
<path
|
||||
id="rect837-6"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#18769d;stroke-width:1.324;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 97.363463,68.820831 h 9.376307 v 9.376308 h -9.376307 z"
|
||||
inkscape:export-xdpi="208.89087"
|
||||
inkscape:export-ydpi="208.89087" />
|
||||
<path
|
||||
id="rect839-9-5"
|
||||
style="fill:#18769d;fill-opacity:1;stroke:none;stroke-width:0.996289;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 103.75252,93.968306 -3.40179,-6e-6 -1e-5,-10.299849 3.4018,-3e-6 z"
|
||||
inkscape:export-xdpi="208.89087"
|
||||
inkscape:export-ydpi="208.89087" />
|
||||
<path
|
||||
id="rect837-6-1"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#18769d;stroke-width:1.324;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 97.363473,78.427726 h 9.376287 v 9.376308 h -9.376287 z"
|
||||
inkscape:export-xdpi="208.89087"
|
||||
inkscape:export-ydpi="208.89087" />
|
||||
</g>
|
||||
<path
|
||||
id="rect839-8-4"
|
||||
style="fill:#18769d;fill-opacity:1;stroke:none;stroke-width:1.73352;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 76.557846,61.618719 h 3.40179 v 31.183 h -3.40179 z"
|
||||
inkscape:export-xdpi="208.89087"
|
||||
inkscape:export-ydpi="208.89087" />
|
||||
<path
|
||||
style="fill:#18769d;fill-opacity:1;stroke:none;stroke-width:1.73352;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 66.970525,70.345466 c -51.094901,-47.36214 -25.54745,-23.681071 0,0 z"
|
||||
id="path1022" />
|
||||
<path
|
||||
style="fill:#18769d;fill-opacity:1;stroke:none;stroke-width:1.73352;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 70.372384,82.679594 h -3.401859 v 9.424231 h 3.401859 z"
|
||||
id="path1020"
|
||||
inkscape:export-xdpi="208.89087"
|
||||
inkscape:export-ydpi="208.89087" />
|
||||
<path
|
||||
style="fill:#18769d;fill-opacity:1;stroke:none;stroke-width:1.73352;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 70.372384,82.679594 c -53.362807,-55.584891 -26.681403,-27.792447 0,0 z"
|
||||
id="path1018" />
|
||||
<path
|
||||
style="fill:#18769d;fill-opacity:1;stroke:none;stroke-width:1.73352;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 66.970525,60.920716 v 9.42475 h 3.401859 v -9.42475 z"
|
||||
id="rect839-8-4-4"
|
||||
inkscape:export-xdpi="208.89087"
|
||||
inkscape:export-ydpi="208.89087" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:17.1899px;line-height:1.25;font-family:sans-serif;fill:#18769d;fill-opacity:1;stroke:none;stroke-width:0.42975"
|
||||
x="28.85297"
|
||||
y="68.818146"
|
||||
id="text1026"
|
||||
inkscape:export-xdpi="208.89087"
|
||||
inkscape:export-ydpi="208.89087"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan1024"
|
||||
x="28.85297"
|
||||
y="68.818146"
|
||||
style="fill:#18769d;fill-opacity:1;stroke-width:0.42975">S</tspan></text>
|
||||
<path
|
||||
style="fill:#18769d;fill-opacity:1;stroke:none;stroke-width:1.59717;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 36.496502,70.199 h -3.401859 v 8 h 3.401859 z"
|
||||
id="path1020-7"
|
||||
inkscape:export-xdpi="208.89087"
|
||||
inkscape:export-ydpi="208.89087" />
|
||||
<path
|
||||
style="fill:#18769d;fill-opacity:1;stroke:none;stroke-width:1.59713;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 33.094643,47.016332 v 8 h 3.401859 v -8 z"
|
||||
id="rect839-8-4-4-6"
|
||||
inkscape:export-xdpi="208.89087"
|
||||
inkscape:export-ydpi="208.89087" />
|
||||
<path
|
||||
style="fill:#18769d;fill-opacity:1;stroke:none;stroke-width:1.38319;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 31.419307,117.6453 h -3.401859 v 6 h 3.401859 z"
|
||||
id="path1020-7-8-3"
|
||||
inkscape:export-xdpi="208.89087"
|
||||
inkscape:export-ydpi="208.89087"
|
||||
inkscape:export-filename="C:\dev\Map\Sledgemapper\Content\walls\wall06.png" />
|
||||
<path
|
||||
style="fill:#18769d;fill-opacity:1;stroke:none;stroke-width:1.38316;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 28.017448,92.462583 v 6 h 3.401859 v -6 z"
|
||||
id="rect839-8-4-4-6-9-7"
|
||||
inkscape:export-xdpi="208.89087"
|
||||
inkscape:export-ydpi="208.89087"
|
||||
inkscape:export-filename="C:\dev\Map\Sledgemapper\Content\walls\wall06.png" />
|
||||
<circle
|
||||
style="fill:#18769d;fill-opacity:1;stroke:#18769d;stroke-width:1.324;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path1084-9"
|
||||
cx="29.718378"
|
||||
cy="101.75826"
|
||||
r="1.4699824"
|
||||
inkscape:transform-center-x="3.6081386"
|
||||
inkscape:transform-center-y="0.13363476"
|
||||
inkscape:export-filename="C:\dev\Map\Sledgemapper\Content\walls\wall06.png"
|
||||
inkscape:export-xdpi="208.89087"
|
||||
inkscape:export-ydpi="208.89087" />
|
||||
<circle
|
||||
style="fill:#18769d;fill-opacity:1;stroke:#18769d;stroke-width:1.324;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path1084-8-4"
|
||||
cx="29.718378"
|
||||
cy="108.05394"
|
||||
r="1.4699824"
|
||||
inkscape:transform-center-x="3.6081386"
|
||||
inkscape:transform-center-y="0.13363476"
|
||||
inkscape:export-filename="C:\dev\Map\Sledgemapper\Content\walls\wall06.png"
|
||||
inkscape:export-xdpi="208.89087"
|
||||
inkscape:export-ydpi="208.89087" />
|
||||
<circle
|
||||
style="fill:#18769d;fill-opacity:1;stroke:#18769d;stroke-width:1.324;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="path1084-89-3"
|
||||
cx="29.718378"
|
||||
cy="114.34962"
|
||||
r="1.4699824"
|
||||
inkscape:transform-center-x="3.6081386"
|
||||
inkscape:transform-center-y="0.13363476"
|
||||
inkscape:export-filename="C:\dev\Map\Sledgemapper\Content\walls\wall06.png"
|
||||
inkscape:export-xdpi="208.89087"
|
||||
inkscape:export-ydpi="208.89087" />
|
||||
<g
|
||||
id="g1182"
|
||||
inkscape:export-filename="C:\dev\Map\Sledgemapper\Content\walls\wall08.png"
|
||||
inkscape:export-xdpi="208.89087"
|
||||
inkscape:export-ydpi="208.89087">
|
||||
<path
|
||||
id="rect839-84"
|
||||
style="fill:#18769d;fill-opacity:1;stroke:none;stroke-width:0.996289;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 141.83556,55.042784 h 3.40179 v 10.29985 h -3.40179 z"
|
||||
inkscape:export-xdpi="208.89087"
|
||||
inkscape:export-ydpi="208.89087" />
|
||||
<path
|
||||
id="rect837-8"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#18769d;stroke-width:1.324;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 138.8483,65.946146 h 9.37631 v 9.376308 h -9.37631 z"
|
||||
inkscape:export-xdpi="208.89087"
|
||||
inkscape:export-ydpi="208.89087" />
|
||||
<path
|
||||
id="rect839-9-6"
|
||||
style="fill:#18769d;fill-opacity:1;stroke:none;stroke-width:0.996289;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 145.23736,86.225818 -3.40179,-6e-6 -1e-5,-10.299849 3.4018,-3e-6 z"
|
||||
inkscape:export-xdpi="208.89087"
|
||||
inkscape:export-ydpi="208.89087" />
|
||||
</g>
|
||||
<rect
|
||||
style="fill:#18769d;fill-opacity:1;stroke:#18769d;stroke-width:1.324;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect1184"
|
||||
width="8.4572172"
|
||||
height="0.33072916"
|
||||
x="139.30785"
|
||||
y="70.468933"
|
||||
inkscape:export-filename="C:\dev\Map\Sledgemapper\Content\walls\wall08.png"
|
||||
inkscape:export-xdpi="208.89087"
|
||||
inkscape:export-ydpi="208.89087" />
|
||||
<g
|
||||
id="g1182-9"
|
||||
inkscape:export-filename="C:\dev\Map\Sledgemapper\Content\walls\wall07.png"
|
||||
inkscape:export-xdpi="208.89087"
|
||||
inkscape:export-ydpi="208.89087"
|
||||
transform="translate(-9.283251,23.495728)">
|
||||
<path
|
||||
id="rect839-84-0"
|
||||
style="fill:#18769d;fill-opacity:1;stroke:none;stroke-width:0.996289;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 141.83556,55.042784 h 3.40179 v 10.29985 h -3.40179 z"
|
||||
inkscape:export-xdpi="208.89087"
|
||||
inkscape:export-ydpi="208.89087" />
|
||||
<path
|
||||
id="rect837-8-8"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#18769d;stroke-width:1.324;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 138.8483,65.946146 h 9.37631 v 9.376308 h -9.37631 z"
|
||||
inkscape:export-xdpi="208.89087"
|
||||
inkscape:export-ydpi="208.89087" />
|
||||
<path
|
||||
id="rect839-9-6-0"
|
||||
style="fill:#18769d;fill-opacity:1;stroke:none;stroke-width:0.996289;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 145.23736,86.225818 -3.40179,-6e-6 -1e-5,-10.299849 3.4018,-3e-6 z"
|
||||
inkscape:export-xdpi="208.89087"
|
||||
inkscape:export-ydpi="208.89087" />
|
||||
</g>
|
||||
<rect
|
||||
style="fill:#18769d;fill-opacity:1;stroke:#18769d;stroke-width:1.324;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect1184-0"
|
||||
width="8.4572172"
|
||||
height="0.33072916"
|
||||
x="-98.358635"
|
||||
y="134.08784"
|
||||
inkscape:export-filename="C:\dev\Map\Sledgemapper\Content\walls\wall07.png"
|
||||
inkscape:export-xdpi="208.89087"
|
||||
inkscape:export-ydpi="208.89087"
|
||||
transform="rotate(-90)" />
|
||||
<path
|
||||
id="rect839-8-4-2"
|
||||
style="fill:#18769d;fill-opacity:1;stroke:none;stroke-width:1.73352;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 79.941962,159.0335 h 3.40179 v 31.183 h -3.40179 z"
|
||||
inkscape:export-xdpi="208.89087"
|
||||
inkscape:export-ydpi="208.89087" />
|
||||
<path
|
||||
style="fill:none;stroke:#18769d;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
|
||||
d="m 56.885417,187.47616 c 0,0 -3.871824,-2.25269 -2.783926,-4.80866 0.300311,-2.45648 6.258604,-1.34995 5.809048,-3.85616 -0.40522,-2.25905 -5.821832,-1.81558 -5.859944,-4.99196 -0.03811,-3.17637 5.87567,-1.83643 6.113573,-4.86905 0.237904,-3.03261 -5.934304,-1.34719 -6.019078,-4.835 -0.08478,-3.48781 6.385232,-1.54767 6.047619,-3.94791 -0.337614,-2.40025 -3.307292,-3.87426 -3.307292,-3.87426"
|
||||
id="path1242"
|
||||
sodipodi:nodetypes="ccszzzzc"
|
||||
inkscape:export-filename="C:\dev\Map\Sledgemapper\Content\walls\wall09.png"
|
||||
inkscape:export-xdpi="208.89087"
|
||||
inkscape:export-ydpi="208.89087" />
|
||||
<path
|
||||
style="fill:#18769d;fill-opacity:1;stroke:none;stroke-width:1.73352;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 136.24808,198.5572 h -3.40186 v 9.42423 h 3.40186 z"
|
||||
id="path1020-9"
|
||||
inkscape:export-xdpi="208.89087"
|
||||
inkscape:export-ydpi="208.89087"
|
||||
inkscape:export-filename="C:\dev\Map\Sledgemapper\Content\walls\wall10.png" />
|
||||
<path
|
||||
style="fill:#18769d;fill-opacity:1;stroke:none;stroke-width:1.73352;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 132.84622,176.79833 v 9.42475 h 3.40186 v -9.42475 z"
|
||||
id="rect839-8-4-4-9"
|
||||
inkscape:export-xdpi="208.89087"
|
||||
inkscape:export-ydpi="208.89087"
|
||||
inkscape:export-filename="C:\dev\Map\Sledgemapper\Content\walls\wall10.png" />
|
||||
<path
|
||||
style="fill:#18769d;fill-opacity:1;stroke:none;stroke-width:1.73352;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 129.83478,199.83406 h 9.42475 v -3.40186 h -9.42475 z"
|
||||
id="rect839-8-4-4-9-8"
|
||||
inkscape:export-xdpi="208.89087"
|
||||
inkscape:export-ydpi="208.89087"
|
||||
inkscape:export-filename="C:\dev\Map\Sledgemapper\Content\walls\wall10.png" />
|
||||
<path
|
||||
style="fill:#18769d;fill-opacity:1;stroke:none;stroke-width:1.73352;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 129.83478,188.34782 h 9.42475 v -3.40186 h -9.42475 z"
|
||||
id="rect839-8-4-4-9-8-5"
|
||||
inkscape:export-xdpi="208.89087"
|
||||
inkscape:export-ydpi="208.89087"
|
||||
inkscape:export-filename="C:\dev\Map\Sledgemapper\Content\walls\wall10.png" />
|
||||
<path
|
||||
id="rect839-3"
|
||||
style="fill:#18769d;fill-opacity:1;stroke:none;stroke-width:0.996289;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 157.93079,79.658483 h 3.40179 v 10.29985 h -3.40179 z"
|
||||
inkscape:export-xdpi="208.89087"
|
||||
inkscape:export-ydpi="208.89087"
|
||||
inkscape:export-filename="C:\dev\Map\Sledgemapper\Content\walls\wall11.png" />
|
||||
<path
|
||||
id="rect837-4"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#18769d;stroke-width:1.57862;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 156.42099,85.518439 h 6.42138 v 19.463121 h -6.42138 z"
|
||||
inkscape:export-xdpi="208.89087"
|
||||
inkscape:export-ydpi="208.89087"
|
||||
inkscape:export-filename="C:\dev\Map\Sledgemapper\Content\walls\wall11.png" />
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 16 KiB |
BIN
External tools/Myra.1.2.1.0/AssetManagementBase.dll
Normal file
288
External tools/Myra.1.2.1.0/Assets/fonts/arial64.fnt
Normal file
|
@ -0,0 +1,288 @@
|
|||
info face="Arial" size=64 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0
|
||||
common lineHeight=63 base=51 scaleW=512 scaleH=512 pages=1 packed=0 alphaChnl=1 redChnl=0 greenChnl=0 blueChnl=0
|
||||
page id=0 file="arial64_0.png"
|
||||
chars count=191
|
||||
char id=32 x=508 y=2 width=3 height=1 xoffset=-1 yoffset=62 xadvance=15 page=0 chnl=15
|
||||
char id=33 x=497 y=270 width=7 height=40 xoffset=5 yoffset=11 xadvance=17 page=0 chnl=15
|
||||
char id=34 x=445 y=382 width=16 height=14 xoffset=2 yoffset=11 xadvance=20 page=0 chnl=15
|
||||
char id=35 x=453 y=229 width=31 height=40 xoffset=0 yoffset=11 xadvance=31 page=0 chnl=15
|
||||
char id=36 x=188 y=105 width=28 height=46 xoffset=1 yoffset=10 xadvance=31 page=0 chnl=15
|
||||
char id=37 x=346 y=190 width=44 height=40 xoffset=2 yoffset=11 xadvance=49 page=0 chnl=15
|
||||
char id=38 x=147 y=238 width=34 height=40 xoffset=2 yoffset=11 xadvance=37 page=0 chnl=15
|
||||
char id=39 x=462 y=382 width=7 height=14 xoffset=2 yoffset=11 xadvance=11 page=0 chnl=15
|
||||
char id=40 x=287 y=53 width=14 height=51 xoffset=3 yoffset=11 xadvance=18 page=0 chnl=15
|
||||
char id=41 x=272 y=53 width=14 height=51 xoffset=3 yoffset=11 xadvance=18 page=0 chnl=15
|
||||
char id=42 x=379 y=384 width=19 height=17 xoffset=1 yoffset=11 xadvance=21 page=0 chnl=15
|
||||
char id=43 x=26 y=400 width=28 height=27 xoffset=2 yoffset=19 xadvance=32 page=0 chnl=15
|
||||
char id=44 x=470 y=380 width=7 height=13 xoffset=4 yoffset=46 xadvance=15 page=0 chnl=15
|
||||
char id=45 x=128 y=419 width=16 height=5 xoffset=1 yoffset=34 xadvance=18 page=0 chnl=15
|
||||
char id=46 x=162 y=419 width=7 height=5 xoffset=4 yoffset=46 xadvance=15 page=0 chnl=15
|
||||
char id=47 x=62 y=321 width=17 height=40 xoffset=-1 yoffset=11 xadvance=15 page=0 chnl=15
|
||||
char id=48 x=341 y=314 width=27 height=39 xoffset=2 yoffset=12 xadvance=31 page=0 chnl=15
|
||||
char id=49 x=369 y=313 width=16 height=39 xoffset=5 yoffset=12 xadvance=31 page=0 chnl=15
|
||||
char id=50 x=200 y=320 width=28 height=39 xoffset=1 yoffset=12 xadvance=31 page=0 chnl=15
|
||||
char id=51 x=229 y=320 width=27 height=39 xoffset=2 yoffset=12 xadvance=31 page=0 chnl=15
|
||||
char id=52 x=112 y=321 width=29 height=39 xoffset=0 yoffset=12 xadvance=31 page=0 chnl=15
|
||||
char id=53 x=171 y=320 width=28 height=39 xoffset=2 yoffset=12 xadvance=31 page=0 chnl=15
|
||||
char id=54 x=142 y=320 width=28 height=39 xoffset=1 yoffset=12 xadvance=31 page=0 chnl=15
|
||||
char id=55 x=313 y=315 width=27 height=39 xoffset=2 yoffset=12 xadvance=31 page=0 chnl=15
|
||||
char id=56 x=257 y=320 width=27 height=39 xoffset=2 yoffset=12 xadvance=31 page=0 chnl=15
|
||||
char id=57 x=285 y=315 width=27 height=39 xoffset=2 yoffset=12 xadvance=31 page=0 chnl=15
|
||||
char id=58 x=491 y=350 width=7 height=29 xoffset=4 yoffset=22 xadvance=15 page=0 chnl=15
|
||||
char id=59 x=26 y=362 width=7 height=37 xoffset=4 yoffset=22 xadvance=15 page=0 chnl=15
|
||||
char id=60 x=84 y=395 width=28 height=27 xoffset=2 yoffset=18 xadvance=32 page=0 chnl=15
|
||||
char id=61 x=350 y=385 width=28 height=17 xoffset=2 yoffset=23 xadvance=32 page=0 chnl=15
|
||||
char id=62 x=55 y=396 width=28 height=27 xoffset=2 yoffset=18 xadvance=32 page=0 chnl=15
|
||||
char id=63 x=333 y=273 width=27 height=40 xoffset=2 yoffset=11 xadvance=31 page=0 chnl=15
|
||||
char id=64 x=0 y=0 width=52 height=52 xoffset=2 yoffset=11 xadvance=56 page=0 chnl=15
|
||||
char id=65 x=471 y=188 width=38 height=40 xoffset=-1 yoffset=11 xadvance=37 page=0 chnl=15
|
||||
char id=66 x=387 y=231 width=32 height=40 xoffset=3 yoffset=11 xadvance=37 page=0 chnl=15
|
||||
char id=67 x=406 y=103 width=36 height=42 xoffset=2 yoffset=10 xadvance=40 page=0 chnl=15
|
||||
char id=68 x=182 y=238 width=34 height=40 xoffset=4 yoffset=11 xadvance=40 page=0 chnl=15
|
||||
char id=69 x=0 y=280 width=31 height=40 xoffset=4 yoffset=11 xadvance=37 page=0 chnl=15
|
||||
char id=70 x=247 y=279 width=28 height=40 xoffset=4 yoffset=11 xadvance=34 page=0 chnl=15
|
||||
char id=71 x=367 y=103 width=38 height=42 xoffset=2 yoffset=10 xadvance=43 page=0 chnl=15
|
||||
char id=72 x=420 y=229 width=32 height=40 xoffset=4 yoffset=11 xadvance=40 page=0 chnl=15
|
||||
char id=73 x=88 y=321 width=7 height=40 xoffset=4 yoffset=11 xadvance=15 page=0 chnl=15
|
||||
char id=74 x=189 y=196 width=23 height=41 xoffset=1 yoffset=11 xadvance=28 page=0 chnl=15
|
||||
char id=75 x=217 y=238 width=34 height=40 xoffset=3 yoffset=11 xadvance=37 page=0 chnl=15
|
||||
char id=76 x=417 y=272 width=27 height=40 xoffset=3 yoffset=11 xadvance=31 page=0 chnl=15
|
||||
char id=77 x=391 y=188 width=39 height=40 xoffset=3 yoffset=11 xadvance=45 page=0 chnl=15
|
||||
char id=78 x=252 y=233 width=33 height=40 xoffset=3 yoffset=11 xadvance=40 page=0 chnl=15
|
||||
char id=79 x=327 y=105 width=39 height=42 xoffset=2 yoffset=10 xadvance=43 page=0 chnl=15
|
||||
char id=80 x=32 y=280 width=31 height=40 xoffset=4 yoffset=11 xadvance=37 page=0 chnl=15
|
||||
char id=81 x=217 y=105 width=39 height=44 xoffset=2 yoffset=10 xadvance=43 page=0 chnl=15
|
||||
char id=82 x=38 y=239 width=36 height=40 xoffset=4 yoffset=11 xadvance=40 page=0 chnl=15
|
||||
char id=83 x=443 y=103 width=33 height=42 xoffset=2 yoffset=10 xadvance=37 page=0 chnl=15
|
||||
char id=84 x=286 y=233 width=33 height=40 xoffset=0 yoffset=11 xadvance=33 page=0 chnl=15
|
||||
char id=85 x=477 y=102 width=32 height=41 xoffset=4 yoffset=11 xadvance=40 page=0 chnl=15
|
||||
char id=86 x=0 y=239 width=37 height=40 xoffset=0 yoffset=11 xadvance=37 page=0 chnl=15
|
||||
char id=87 x=291 y=191 width=54 height=40 xoffset=0 yoffset=11 xadvance=54 page=0 chnl=15
|
||||
char id=88 x=111 y=238 width=35 height=40 xoffset=0 yoffset=11 xadvance=35 page=0 chnl=15
|
||||
char id=89 x=75 y=239 width=35 height=40 xoffset=0 yoffset=11 xadvance=35 page=0 chnl=15
|
||||
char id=90 x=320 y=232 width=33 height=40 xoffset=0 yoffset=11 xadvance=34 page=0 chnl=15
|
||||
char id=91 x=329 y=53 width=12 height=51 xoffset=3 yoffset=11 xadvance=15 page=0 chnl=15
|
||||
char id=92 x=44 y=321 width=17 height=40 xoffset=-1 yoffset=11 xadvance=15 page=0 chnl=15
|
||||
char id=93 x=316 y=53 width=12 height=51 xoffset=0 yoffset=11 xadvance=15 page=0 chnl=15
|
||||
char id=94 x=248 y=391 width=22 height=21 xoffset=1 yoffset=11 xadvance=24 page=0 chnl=15
|
||||
char id=95 x=76 y=424 width=34 height=5 xoffset=-2 yoffset=57 xadvance=31 page=0 chnl=15
|
||||
char id=96 x=29 y=428 width=11 height=8 xoffset=2 yoffset=11 xadvance=18 page=0 chnl=15
|
||||
char id=97 x=241 y=360 width=28 height=30 xoffset=1 yoffset=21 xadvance=31 page=0 chnl=15
|
||||
char id=98 x=389 y=272 width=27 height=40 xoffset=3 yoffset=11 xadvance=31 page=0 chnl=15
|
||||
char id=99 x=297 y=355 width=26 height=30 xoffset=2 yoffset=21 xadvance=28 page=0 chnl=15
|
||||
char id=100 x=305 y=274 width=27 height=40 xoffset=1 yoffset=11 xadvance=31 page=0 chnl=15
|
||||
char id=101 x=212 y=360 width=28 height=30 xoffset=1 yoffset=21 xadvance=31 page=0 chnl=15
|
||||
char id=102 x=25 y=321 width=18 height=40 xoffset=0 yoffset=11 xadvance=15 page=0 chnl=15
|
||||
char id=103 x=56 y=197 width=27 height=41 xoffset=1 yoffset=21 xadvance=31 page=0 chnl=15
|
||||
char id=104 x=471 y=270 width=25 height=40 xoffset=3 yoffset=11 xadvance=31 page=0 chnl=15
|
||||
char id=105 x=96 y=321 width=7 height=40 xoffset=2 yoffset=11 xadvance=11 page=0 chnl=15
|
||||
char id=106 x=302 y=53 width=13 height=51 xoffset=-3 yoffset=11 xadvance=13 page=0 chnl=15
|
||||
char id=107 x=485 y=229 width=25 height=40 xoffset=3 yoffset=11 xadvance=28 page=0 chnl=15
|
||||
char id=108 x=80 y=321 width=7 height=40 xoffset=2 yoffset=11 xadvance=11 page=0 chnl=15
|
||||
char id=109 x=140 y=361 width=41 height=30 xoffset=3 yoffset=21 xadvance=47 page=0 chnl=15
|
||||
char id=110 x=324 y=355 width=25 height=30 xoffset=3 yoffset=21 xadvance=31 page=0 chnl=15
|
||||
char id=111 x=182 y=360 width=29 height=30 xoffset=1 yoffset=21 xadvance=31 page=0 chnl=15
|
||||
char id=112 x=0 y=197 width=27 height=41 xoffset=3 yoffset=21 xadvance=31 page=0 chnl=15
|
||||
char id=113 x=28 y=197 width=27 height=41 xoffset=1 yoffset=21 xadvance=31 page=0 chnl=15
|
||||
char id=114 x=350 y=354 width=16 height=30 xoffset=3 yoffset=21 xadvance=18 page=0 chnl=15
|
||||
char id=115 x=270 y=360 width=26 height=30 xoffset=1 yoffset=21 xadvance=28 page=0 chnl=15
|
||||
char id=116 x=386 y=313 width=15 height=39 xoffset=0 yoffset=12 xadvance=15 page=0 chnl=15
|
||||
char id=117 x=0 y=401 width=25 height=29 xoffset=3 yoffset=22 xadvance=31 page=0 chnl=15
|
||||
char id=118 x=435 y=352 width=27 height=29 xoffset=1 yoffset=22 xadvance=29 page=0 chnl=15
|
||||
char id=119 x=367 y=354 width=39 height=29 xoffset=0 yoffset=22 xadvance=39 page=0 chnl=15
|
||||
char id=120 x=463 y=350 width=27 height=29 xoffset=0 yoffset=22 xadvance=27 page=0 chnl=15
|
||||
char id=121 x=361 y=272 width=27 height=40 xoffset=0 yoffset=22 xadvance=27 page=0 chnl=15
|
||||
char id=122 x=407 y=352 width=27 height=29 xoffset=0 yoffset=22 xadvance=27 page=0 chnl=15
|
||||
char id=123 x=254 y=53 width=17 height=51 xoffset=1 yoffset=11 xadvance=18 page=0 chnl=15
|
||||
char id=124 x=337 y=0 width=6 height=52 xoffset=4 yoffset=11 xadvance=14 page=0 chnl=15
|
||||
char id=125 x=236 y=53 width=17 height=51 xoffset=0 yoffset=11 xadvance=18 page=0 chnl=15
|
||||
char id=126 x=0 y=431 width=28 height=10 xoffset=2 yoffset=27 xadvance=32 page=0 chnl=15
|
||||
char id=160 x=508 y=0 width=3 height=1 xoffset=-1 yoffset=62 xadvance=15 page=0 chnl=15
|
||||
char id=161 x=104 y=321 width=7 height=40 xoffset=5 yoffset=22 xadvance=17 page=0 chnl=15
|
||||
char id=162 x=161 y=53 width=27 height=51 xoffset=2 yoffset=11 xadvance=31 page=0 chnl=15
|
||||
char id=163 x=127 y=279 width=30 height=40 xoffset=0 yoffset=11 xadvance=31 page=0 chnl=15
|
||||
char id=164 x=165 y=392 width=28 height=24 xoffset=1 yoffset=20 xadvance=31 page=0 chnl=15
|
||||
char id=165 x=354 y=231 width=32 height=40 xoffset=-1 yoffset=11 xadvance=31 page=0 chnl=15
|
||||
char id=166 x=344 y=0 width=6 height=52 xoffset=4 yoffset=11 xadvance=14 page=0 chnl=15
|
||||
char id=167 x=189 y=53 width=27 height=51 xoffset=2 yoffset=11 xadvance=31 page=0 chnl=15
|
||||
char id=168 x=111 y=423 width=16 height=5 xoffset=1 yoffset=11 xadvance=18 page=0 chnl=15
|
||||
char id=169 x=137 y=154 width=43 height=41 xoffset=-1 yoffset=10 xadvance=41 page=0 chnl=15
|
||||
char id=170 x=292 y=391 width=19 height=20 xoffset=0 yoffset=11 xadvance=20 page=0 chnl=15
|
||||
char id=171 x=113 y=393 width=25 height=25 xoffset=3 yoffset=24 xadvance=31 page=0 chnl=15
|
||||
char id=172 x=399 y=384 width=28 height=16 xoffset=2 yoffset=24 xadvance=32 page=0 chnl=15
|
||||
char id=173 x=145 y=419 width=16 height=5 xoffset=1 yoffset=34 xadvance=18 page=0 chnl=15
|
||||
char id=174 x=181 y=154 width=43 height=41 xoffset=-1 yoffset=10 xadvance=41 page=0 chnl=15
|
||||
char id=175 x=41 y=428 width=34 height=5 xoffset=-2 yoffset=4 xadvance=30 page=0 chnl=15
|
||||
char id=176 x=428 y=382 width=16 height=15 xoffset=3 yoffset=11 xadvance=22 page=0 chnl=15
|
||||
char id=177 x=34 y=362 width=28 height=33 xoffset=1 yoffset=18 xadvance=30 page=0 chnl=15
|
||||
char id=178 x=312 y=386 width=18 height=20 xoffset=0 yoffset=11 xadvance=18 page=0 chnl=15
|
||||
char id=179 x=331 y=386 width=18 height=20 xoffset=0 yoffset=11 xadvance=18 page=0 chnl=15
|
||||
char id=180 x=492 y=380 width=11 height=8 xoffset=5 yoffset=12 xadvance=18 page=0 chnl=15
|
||||
char id=181 x=0 y=321 width=24 height=40 xoffset=4 yoffset=22 xadvance=32 page=0 chnl=15
|
||||
char id=182 x=439 y=52 width=32 height=50 xoffset=-1 yoffset=11 xadvance=30 page=0 chnl=15
|
||||
char id=183 x=504 y=371 width=7 height=5 xoffset=5 yoffset=29 xadvance=18 page=0 chnl=15
|
||||
char id=184 x=478 y=380 width=13 height=11 xoffset=2 yoffset=51 xadvance=18 page=0 chnl=15
|
||||
char id=185 x=499 y=350 width=12 height=20 xoffset=2 yoffset=11 xadvance=18 page=0 chnl=15
|
||||
char id=186 x=271 y=391 width=20 height=20 xoffset=0 yoffset=11 xadvance=20 page=0 chnl=15
|
||||
char id=187 x=139 y=393 width=25 height=25 xoffset=3 yoffset=24 xadvance=31 page=0 chnl=15
|
||||
char id=188 x=47 y=155 width=44 height=41 xoffset=2 yoffset=11 xadvance=46 page=0 chnl=15
|
||||
char id=189 x=92 y=154 width=44 height=41 xoffset=2 yoffset=11 xadvance=46 page=0 chnl=15
|
||||
char id=190 x=0 y=155 width=46 height=41 xoffset=0 yoffset=11 xadvance=46 page=0 chnl=15
|
||||
char id=191 x=276 y=274 width=28 height=40 xoffset=3 yoffset=22 xadvance=34 page=0 chnl=15
|
||||
char id=192 x=469 y=0 width=38 height=51 xoffset=-1 yoffset=0 xadvance=37 page=0 chnl=15
|
||||
char id=193 x=430 y=0 width=38 height=51 xoffset=-1 yoffset=0 xadvance=37 page=0 chnl=15
|
||||
char id=194 x=391 y=0 width=38 height=51 xoffset=-1 yoffset=0 xadvance=37 page=0 chnl=15
|
||||
char id=195 x=366 y=52 width=38 height=50 xoffset=-1 yoffset=1 xadvance=37 page=0 chnl=15
|
||||
char id=196 x=61 y=105 width=38 height=48 xoffset=-1 yoffset=3 xadvance=37 page=0 chnl=15
|
||||
char id=197 x=100 y=105 width=38 height=48 xoffset=-1 yoffset=3 xadvance=37 page=0 chnl=15
|
||||
char id=198 x=236 y=192 width=54 height=40 xoffset=-1 yoffset=11 xadvance=55 page=0 chnl=15
|
||||
char id=199 x=173 y=0 width=36 height=52 xoffset=2 yoffset=10 xadvance=40 page=0 chnl=15
|
||||
char id=200 x=37 y=53 width=31 height=51 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15
|
||||
char id=201 x=69 y=53 width=31 height=51 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15
|
||||
char id=202 x=101 y=53 width=31 height=51 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15
|
||||
char id=203 x=139 y=105 width=31 height=48 xoffset=4 yoffset=3 xadvance=37 page=0 chnl=15
|
||||
char id=204 x=354 y=52 width=11 height=51 xoffset=1 yoffset=0 xadvance=15 page=0 chnl=15
|
||||
char id=205 x=342 y=53 width=11 height=51 xoffset=3 yoffset=0 xadvance=15 page=0 chnl=15
|
||||
char id=206 x=217 y=53 width=18 height=51 xoffset=-1 yoffset=0 xadvance=15 page=0 chnl=15
|
||||
char id=207 x=171 y=105 width=16 height=48 xoffset=0 yoffset=3 xadvance=15 page=0 chnl=15
|
||||
char id=208 x=431 y=188 width=39 height=40 xoffset=-1 yoffset=11 xadvance=40 page=0 chnl=15
|
||||
char id=209 x=405 y=52 width=33 height=50 xoffset=3 yoffset=1 xadvance=40 page=0 chnl=15
|
||||
char id=210 x=53 y=0 width=39 height=52 xoffset=2 yoffset=0 xadvance=43 page=0 chnl=15
|
||||
char id=211 x=93 y=0 width=39 height=52 xoffset=2 yoffset=0 xadvance=43 page=0 chnl=15
|
||||
char id=212 x=133 y=0 width=39 height=52 xoffset=2 yoffset=0 xadvance=43 page=0 chnl=15
|
||||
char id=213 x=351 y=0 width=39 height=51 xoffset=2 yoffset=1 xadvance=43 page=0 chnl=15
|
||||
char id=214 x=472 y=52 width=39 height=49 xoffset=2 yoffset=3 xadvance=43 page=0 chnl=15
|
||||
char id=215 x=194 y=391 width=24 height=23 xoffset=4 yoffset=20 xadvance=32 page=0 chnl=15
|
||||
char id=216 x=257 y=105 width=40 height=43 xoffset=2 yoffset=10 xadvance=43 page=0 chnl=15
|
||||
char id=217 x=243 y=0 width=32 height=52 xoffset=4 yoffset=0 xadvance=40 page=0 chnl=15
|
||||
char id=218 x=276 y=0 width=32 height=52 xoffset=4 yoffset=0 xadvance=40 page=0 chnl=15
|
||||
char id=219 x=210 y=0 width=32 height=52 xoffset=4 yoffset=0 xadvance=40 page=0 chnl=15
|
||||
char id=220 x=0 y=105 width=32 height=49 xoffset=4 yoffset=3 xadvance=40 page=0 chnl=15
|
||||
char id=221 x=0 y=53 width=36 height=51 xoffset=-1 yoffset=0 xadvance=37 page=0 chnl=15
|
||||
char id=222 x=64 y=280 width=31 height=40 xoffset=4 yoffset=11 xadvance=37 page=0 chnl=15
|
||||
char id=223 x=96 y=280 width=30 height=40 xoffset=3 yoffset=11 xadvance=34 page=0 chnl=15
|
||||
char id=224 x=460 y=146 width=28 height=41 xoffset=1 yoffset=10 xadvance=31 page=0 chnl=15
|
||||
char id=225 x=315 y=149 width=28 height=41 xoffset=1 yoffset=10 xadvance=31 page=0 chnl=15
|
||||
char id=226 x=344 y=148 width=28 height=41 xoffset=1 yoffset=10 xadvance=31 page=0 chnl=15
|
||||
char id=227 x=218 y=279 width=28 height=40 xoffset=1 yoffset=11 xadvance=31 page=0 chnl=15
|
||||
char id=228 x=432 y=313 width=28 height=38 xoffset=1 yoffset=13 xadvance=31 page=0 chnl=15
|
||||
char id=229 x=298 y=105 width=28 height=43 xoffset=1 yoffset=8 xadvance=31 page=0 chnl=15
|
||||
char id=230 x=92 y=362 width=47 height=30 xoffset=1 yoffset=21 xadvance=49 page=0 chnl=15
|
||||
char id=231 x=84 y=197 width=26 height=41 xoffset=2 yoffset=21 xadvance=28 page=0 chnl=15
|
||||
char id=232 x=402 y=146 width=28 height=41 xoffset=1 yoffset=10 xadvance=31 page=0 chnl=15
|
||||
char id=233 x=373 y=146 width=28 height=41 xoffset=1 yoffset=10 xadvance=31 page=0 chnl=15
|
||||
char id=234 x=431 y=146 width=28 height=41 xoffset=1 yoffset=10 xadvance=31 page=0 chnl=15
|
||||
char id=235 x=461 y=311 width=28 height=38 xoffset=1 yoffset=13 xadvance=31 page=0 chnl=15
|
||||
char id=236 x=225 y=192 width=10 height=41 xoffset=1 yoffset=10 xadvance=15 page=0 chnl=15
|
||||
char id=237 x=213 y=196 width=11 height=41 xoffset=4 yoffset=10 xadvance=15 page=0 chnl=15
|
||||
char id=238 x=489 y=144 width=18 height=41 xoffset=-1 yoffset=10 xadvance=15 page=0 chnl=15
|
||||
char id=239 x=490 y=311 width=16 height=38 xoffset=0 yoffset=13 xadvance=15 page=0 chnl=15
|
||||
char id=240 x=158 y=279 width=29 height=40 xoffset=1 yoffset=11 xadvance=31 page=0 chnl=15
|
||||
char id=241 x=445 y=270 width=25 height=40 xoffset=3 yoffset=11 xadvance=31 page=0 chnl=15
|
||||
char id=242 x=285 y=149 width=29 height=41 xoffset=1 yoffset=10 xadvance=31 page=0 chnl=15
|
||||
char id=243 x=225 y=150 width=29 height=41 xoffset=1 yoffset=10 xadvance=31 page=0 chnl=15
|
||||
char id=244 x=255 y=150 width=29 height=41 xoffset=1 yoffset=10 xadvance=31 page=0 chnl=15
|
||||
char id=245 x=188 y=279 width=29 height=40 xoffset=1 yoffset=11 xadvance=31 page=0 chnl=15
|
||||
char id=246 x=402 y=313 width=29 height=38 xoffset=1 yoffset=13 xadvance=31 page=0 chnl=15
|
||||
char id=247 x=219 y=391 width=28 height=21 xoffset=1 yoffset=21 xadvance=30 page=0 chnl=15
|
||||
char id=248 x=63 y=362 width=28 height=32 xoffset=3 yoffset=20 xadvance=34 page=0 chnl=15
|
||||
char id=249 x=163 y=196 width=25 height=41 xoffset=3 yoffset=10 xadvance=31 page=0 chnl=15
|
||||
char id=250 x=137 y=196 width=25 height=41 xoffset=3 yoffset=10 xadvance=31 page=0 chnl=15
|
||||
char id=251 x=111 y=196 width=25 height=41 xoffset=3 yoffset=10 xadvance=31 page=0 chnl=15
|
||||
char id=252 x=0 y=362 width=25 height=38 xoffset=3 yoffset=13 xadvance=31 page=0 chnl=15
|
||||
char id=253 x=309 y=0 width=27 height=52 xoffset=0 yoffset=10 xadvance=28 page=0 chnl=15
|
||||
char id=254 x=133 y=53 width=27 height=51 xoffset=3 yoffset=11 xadvance=31 page=0 chnl=15
|
||||
char id=255 x=33 y=105 width=27 height=49 xoffset=0 yoffset=13 xadvance=28 page=0 chnl=15
|
||||
kernings count=92
|
||||
kerning first=32 second=65 amount=-3
|
||||
kerning first=32 second=84 amount=-1
|
||||
kerning first=32 second=89 amount=-1
|
||||
kerning first=121 second=46 amount=-4
|
||||
kerning first=121 second=44 amount=-4
|
||||
kerning first=119 second=46 amount=-3
|
||||
kerning first=119 second=44 amount=-3
|
||||
kerning first=118 second=46 amount=-4
|
||||
kerning first=118 second=44 amount=-4
|
||||
kerning first=114 second=46 amount=-3
|
||||
kerning first=49 second=49 amount=-4
|
||||
kerning first=65 second=32 amount=-3
|
||||
kerning first=65 second=84 amount=-4
|
||||
kerning first=65 second=86 amount=-4
|
||||
kerning first=65 second=87 amount=-2
|
||||
kerning first=65 second=89 amount=-4
|
||||
kerning first=65 second=118 amount=-1
|
||||
kerning first=65 second=119 amount=-1
|
||||
kerning first=65 second=121 amount=-1
|
||||
kerning first=114 second=44 amount=-3
|
||||
kerning first=70 second=44 amount=-6
|
||||
kerning first=70 second=46 amount=-6
|
||||
kerning first=70 second=65 amount=-3
|
||||
kerning first=76 second=32 amount=-2
|
||||
kerning first=76 second=84 amount=-4
|
||||
kerning first=76 second=86 amount=-4
|
||||
kerning first=76 second=87 amount=-4
|
||||
kerning first=76 second=89 amount=-4
|
||||
kerning first=76 second=121 amount=-2
|
||||
kerning first=102 second=102 amount=-1
|
||||
kerning first=80 second=32 amount=-1
|
||||
kerning first=80 second=44 amount=-7
|
||||
kerning first=80 second=46 amount=-7
|
||||
kerning first=80 second=65 amount=-4
|
||||
kerning first=82 second=84 amount=-1
|
||||
kerning first=82 second=86 amount=-1
|
||||
kerning first=82 second=87 amount=-1
|
||||
kerning first=82 second=89 amount=-1
|
||||
kerning first=84 second=32 amount=-1
|
||||
kerning first=84 second=44 amount=-6
|
||||
kerning first=84 second=45 amount=-3
|
||||
kerning first=84 second=46 amount=-6
|
||||
kerning first=84 second=58 amount=-6
|
||||
kerning first=89 second=118 amount=-3
|
||||
kerning first=84 second=65 amount=-4
|
||||
kerning first=84 second=79 amount=-1
|
||||
kerning first=84 second=97 amount=-6
|
||||
kerning first=84 second=99 amount=-6
|
||||
kerning first=84 second=101 amount=-6
|
||||
kerning first=84 second=105 amount=-2
|
||||
kerning first=84 second=111 amount=-6
|
||||
kerning first=84 second=114 amount=-2
|
||||
kerning first=84 second=115 amount=-6
|
||||
kerning first=84 second=117 amount=-2
|
||||
kerning first=84 second=119 amount=-3
|
||||
kerning first=84 second=121 amount=-3
|
||||
kerning first=86 second=44 amount=-5
|
||||
kerning first=86 second=45 amount=-3
|
||||
kerning first=86 second=46 amount=-5
|
||||
kerning first=86 second=58 amount=-2
|
||||
kerning first=89 second=117 amount=-3
|
||||
kerning first=86 second=65 amount=-4
|
||||
kerning first=86 second=97 amount=-4
|
||||
kerning first=86 second=101 amount=-3
|
||||
kerning first=86 second=105 amount=-1
|
||||
kerning first=86 second=111 amount=-3
|
||||
kerning first=86 second=114 amount=-2
|
||||
kerning first=86 second=117 amount=-2
|
||||
kerning first=86 second=121 amount=-2
|
||||
kerning first=87 second=44 amount=-3
|
||||
kerning first=87 second=45 amount=-1
|
||||
kerning first=87 second=46 amount=-3
|
||||
kerning first=87 second=58 amount=-1
|
||||
kerning first=89 second=113 amount=-5
|
||||
kerning first=87 second=65 amount=-2
|
||||
kerning first=87 second=97 amount=-2
|
||||
kerning first=87 second=101 amount=-1
|
||||
kerning first=89 second=112 amount=-4
|
||||
kerning first=87 second=111 amount=-1
|
||||
kerning first=87 second=114 amount=-1
|
||||
kerning first=87 second=117 amount=-1
|
||||
kerning first=87 second=121 amount=-1
|
||||
kerning first=89 second=32 amount=-1
|
||||
kerning first=89 second=44 amount=-7
|
||||
kerning first=89 second=45 amount=-5
|
||||
kerning first=89 second=46 amount=-7
|
||||
kerning first=89 second=58 amount=-3
|
||||
kerning first=89 second=111 amount=-5
|
||||
kerning first=89 second=65 amount=-4
|
||||
kerning first=89 second=97 amount=-4
|
||||
kerning first=89 second=101 amount=-5
|
||||
kerning first=89 second=105 amount=-2
|
BIN
External tools/Myra.1.2.1.0/Assets/fonts/arial64_0.png
Normal file
After Width: | Height: | Size: 48 KiB |
985
External tools/Myra.1.2.1.0/Assets/fonts/calibri32.fnt
Normal file
|
@ -0,0 +1,985 @@
|
|||
info face="Calibri" size=32 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0
|
||||
common lineHeight=32 base=25 scaleW=256 scaleH=256 pages=1 packed=0 alphaChnl=1 redChnl=0 greenChnl=0 blueChnl=0
|
||||
page id=0 file="calibri32_0.png"
|
||||
chars count=193
|
||||
char id=0 x=254 y=0 width=0 height=1 xoffset=0 yoffset=31 xadvance=0 page=0 chnl=15
|
||||
char id=13 x=253 y=0 width=0 height=1 xoffset=0 yoffset=31 xadvance=0 page=0 chnl=15
|
||||
char id=32 x=247 y=41 width=3 height=1 xoffset=-1 yoffset=31 xadvance=6 page=0 chnl=15
|
||||
char id=33 x=216 y=62 width=4 height=18 xoffset=3 yoffset=7 xadvance=8 page=0 chnl=15
|
||||
char id=34 x=202 y=146 width=8 height=7 xoffset=1 yoffset=7 xadvance=10 page=0 chnl=15
|
||||
char id=35 x=238 y=97 width=13 height=16 xoffset=0 yoffset=9 xadvance=13 page=0 chnl=15
|
||||
char id=36 x=79 y=0 width=12 height=22 xoffset=1 yoffset=6 xadvance=13 page=0 chnl=15
|
||||
char id=37 x=226 y=62 width=18 height=17 xoffset=0 yoffset=8 xadvance=19 page=0 chnl=15
|
||||
char id=38 x=112 y=45 width=16 height=18 xoffset=1 yoffset=7 xadvance=18 page=0 chnl=15
|
||||
char id=39 x=217 y=146 width=4 height=7 xoffset=1 yoffset=7 xadvance=6 page=0 chnl=15
|
||||
char id=40 x=39 y=0 width=6 height=23 xoffset=1 yoffset=7 xadvance=8 page=0 chnl=15
|
||||
char id=41 x=46 y=0 width=6 height=23 xoffset=1 yoffset=7 xadvance=8 page=0 chnl=15
|
||||
char id=42 x=126 y=148 width=11 height=10 xoffset=1 yoffset=7 xadvance=13 page=0 chnl=15
|
||||
char id=43 x=181 y=133 width=13 height=12 xoffset=0 yoffset=12 xadvance=13 page=0 chnl=15
|
||||
char id=44 x=211 y=146 width=5 height=7 xoffset=0 yoffset=22 xadvance=6 page=0 chnl=15
|
||||
char id=45 x=68 y=166 width=8 height=2 xoffset=0 yoffset=17 xadvance=8 page=0 chnl=15
|
||||
char id=46 x=29 y=168 width=4 height=3 xoffset=1 yoffset=22 xadvance=7 page=0 chnl=15
|
||||
char id=47 x=26 y=0 width=12 height=23 xoffset=-1 yoffset=6 xadvance=10 page=0 chnl=15
|
||||
char id=48 x=210 y=99 width=13 height=16 xoffset=0 yoffset=9 xadvance=13 page=0 chnl=15
|
||||
char id=49 x=209 y=116 width=11 height=16 xoffset=1 yoffset=9 xadvance=13 page=0 chnl=15
|
||||
char id=50 x=185 y=116 width=11 height=16 xoffset=1 yoffset=9 xadvance=13 page=0 chnl=15
|
||||
char id=51 x=233 y=116 width=11 height=16 xoffset=1 yoffset=9 xadvance=13 page=0 chnl=15
|
||||
char id=52 x=196 y=99 width=13 height=16 xoffset=0 yoffset=9 xadvance=13 page=0 chnl=15
|
||||
char id=53 x=81 y=120 width=12 height=16 xoffset=0 yoffset=9 xadvance=13 page=0 chnl=15
|
||||
char id=54 x=42 y=121 width=12 height=16 xoffset=1 yoffset=9 xadvance=13 page=0 chnl=15
|
||||
char id=55 x=94 y=120 width=12 height=16 xoffset=1 yoffset=9 xadvance=13 page=0 chnl=15
|
||||
char id=56 x=140 y=100 width=13 height=16 xoffset=0 yoffset=9 xadvance=13 page=0 chnl=15
|
||||
char id=57 x=107 y=118 width=12 height=16 xoffset=0 yoffset=9 xadvance=13 page=0 chnl=15
|
||||
char id=58 x=84 y=151 width=4 height=12 xoffset=2 yoffset=13 xadvance=7 page=0 chnl=15
|
||||
char id=59 x=248 y=79 width=6 height=16 xoffset=0 yoffset=13 xadvance=7 page=0 chnl=15
|
||||
char id=60 x=221 y=133 width=12 height=12 xoffset=0 yoffset=12 xadvance=13 page=0 chnl=15
|
||||
char id=61 x=189 y=146 width=12 height=7 xoffset=0 yoffset=14 xadvance=13 page=0 chnl=15
|
||||
char id=62 x=208 y=133 width=12 height=12 xoffset=1 yoffset=12 xadvance=13 page=0 chnl=15
|
||||
char id=63 x=103 y=64 width=11 height=18 xoffset=1 yoffset=7 xadvance=12 page=0 chnl=15
|
||||
char id=64 x=37 y=46 width=21 height=19 xoffset=1 yoffset=9 xadvance=23 page=0 chnl=15
|
||||
char id=65 x=232 y=80 width=15 height=16 xoffset=0 yoffset=9 xadvance=15 page=0 chnl=15
|
||||
char id=66 x=14 y=121 width=13 height=16 xoffset=1 yoffset=9 xadvance=14 page=0 chnl=15
|
||||
char id=67 x=0 y=121 width=13 height=16 xoffset=1 yoffset=9 xadvance=14 page=0 chnl=15
|
||||
char id=68 x=64 y=103 width=15 height=16 xoffset=1 yoffset=9 xadvance=16 page=0 chnl=15
|
||||
char id=69 x=0 y=138 width=10 height=16 xoffset=2 yoffset=9 xadvance=13 page=0 chnl=15
|
||||
char id=70 x=197 y=116 width=11 height=16 xoffset=1 yoffset=9 xadvance=12 page=0 chnl=15
|
||||
char id=71 x=48 y=104 width=15 height=16 xoffset=0 yoffset=9 xadvance=16 page=0 chnl=15
|
||||
char id=72 x=95 y=101 width=14 height=16 xoffset=1 yoffset=9 xadvance=16 page=0 chnl=15
|
||||
char id=73 x=252 y=96 width=3 height=16 xoffset=2 yoffset=9 xadvance=7 page=0 chnl=15
|
||||
char id=74 x=20 y=138 width=8 height=16 xoffset=-1 yoffset=9 xadvance=8 page=0 chnl=15
|
||||
char id=75 x=120 y=118 width=12 height=16 xoffset=2 yoffset=9 xadvance=14 page=0 chnl=15
|
||||
char id=76 x=245 y=62 width=10 height=16 xoffset=1 yoffset=9 xadvance=11 page=0 chnl=15
|
||||
char id=77 x=177 y=82 width=20 height=16 xoffset=1 yoffset=9 xadvance=22 page=0 chnl=15
|
||||
char id=78 x=0 y=104 width=15 height=16 xoffset=1 yoffset=9 xadvance=17 page=0 chnl=15
|
||||
char id=79 x=215 y=82 width=16 height=16 xoffset=0 yoffset=9 xadvance=17 page=0 chnl=15
|
||||
char id=80 x=146 y=117 width=12 height=16 xoffset=1 yoffset=9 xadvance=13 page=0 chnl=15
|
||||
char id=81 x=93 y=45 width=18 height=18 xoffset=1 yoffset=9 xadvance=18 page=0 chnl=15
|
||||
char id=82 x=224 y=99 width=13 height=16 xoffset=1 yoffset=9 xadvance=14 page=0 chnl=15
|
||||
char id=83 x=159 y=117 width=12 height=16 xoffset=0 yoffset=9 xadvance=12 page=0 chnl=15
|
||||
char id=84 x=168 y=99 width=13 height=16 xoffset=0 yoffset=9 xadvance=13 page=0 chnl=15
|
||||
char id=85 x=32 y=104 width=15 height=16 xoffset=1 yoffset=9 xadvance=17 page=0 chnl=15
|
||||
char id=86 x=16 y=104 width=15 height=16 xoffset=0 yoffset=9 xadvance=15 page=0 chnl=15
|
||||
char id=87 x=132 y=83 width=23 height=16 xoffset=0 yoffset=9 xadvance=23 page=0 chnl=15
|
||||
char id=88 x=80 y=103 width=14 height=16 xoffset=0 yoffset=9 xadvance=14 page=0 chnl=15
|
||||
char id=89 x=28 y=121 width=13 height=16 xoffset=0 yoffset=9 xadvance=13 page=0 chnl=15
|
||||
char id=90 x=172 y=116 width=12 height=16 xoffset=0 yoffset=9 xadvance=12 page=0 chnl=15
|
||||
char id=91 x=123 y=0 width=6 height=22 xoffset=2 yoffset=7 xadvance=8 page=0 chnl=15
|
||||
char id=92 x=92 y=0 width=12 height=22 xoffset=-1 yoffset=6 xadvance=10 page=0 chnl=15
|
||||
char id=93 x=130 y=0 width=6 height=22 xoffset=0 yoffset=7 xadvance=8 page=0 chnl=15
|
||||
char id=94 x=177 y=147 width=11 height=9 xoffset=1 yoffset=9 xadvance=13 page=0 chnl=15
|
||||
char id=95 x=34 y=168 width=15 height=2 xoffset=-1 yoffset=28 xadvance=13 page=0 chnl=15
|
||||
char id=96 x=15 y=168 width=6 height=4 xoffset=1 yoffset=7 xadvance=8 page=0 chnl=15
|
||||
char id=97 x=26 y=155 width=11 height=12 xoffset=0 yoffset=13 xadvance=12 page=0 chnl=15
|
||||
char id=98 x=216 y=43 width=12 height=18 xoffset=1 yoffset=7 xadvance=14 page=0 chnl=15
|
||||
char id=99 x=50 y=154 width=11 height=12 xoffset=0 yoffset=13 xadvance=11 page=0 chnl=15
|
||||
char id=100 x=229 y=43 width=12 height=18 xoffset=1 yoffset=7 xadvance=14 page=0 chnl=15
|
||||
char id=101 x=0 y=155 width=12 height=12 xoffset=0 yoffset=13 xadvance=13 page=0 chnl=15
|
||||
char id=102 x=187 y=63 width=9 height=18 xoffset=0 yoffset=7 xadvance=8 page=0 chnl=15
|
||||
char id=103 x=107 y=83 width=12 height=17 xoffset=0 yoffset=13 xadvance=12 page=0 chnl=15
|
||||
char id=104 x=52 y=66 width=12 height=18 xoffset=1 yoffset=7 xadvance=14 page=0 chnl=15
|
||||
char id=105 x=29 y=138 width=4 height=16 xoffset=1 yoffset=9 xadvance=6 page=0 chnl=15
|
||||
char id=106 x=193 y=22 width=6 height=21 xoffset=-1 yoffset=9 xadvance=6 page=0 chnl=15
|
||||
char id=107 x=127 y=64 width=11 height=18 xoffset=1 yoffset=7 xadvance=12 page=0 chnl=15
|
||||
char id=108 x=211 y=63 width=4 height=18 xoffset=1 yoffset=7 xadvance=6 page=0 chnl=15
|
||||
char id=109 x=112 y=135 width=19 height=12 xoffset=1 yoffset=13 xadvance=21 page=0 chnl=15
|
||||
char id=110 x=13 y=155 width=12 height=12 xoffset=1 yoffset=13 xadvance=14 page=0 chnl=15
|
||||
char id=111 x=152 y=134 width=14 height=12 xoffset=0 yoffset=13 xadvance=14 page=0 chnl=15
|
||||
char id=112 x=81 y=83 width=12 height=17 xoffset=1 yoffset=13 xadvance=14 page=0 chnl=15
|
||||
char id=113 x=94 y=83 width=12 height=17 xoffset=1 yoffset=13 xadvance=14 page=0 chnl=15
|
||||
char id=114 x=247 y=131 width=8 height=12 xoffset=1 yoffset=13 xadvance=9 page=0 chnl=15
|
||||
char id=115 x=73 y=151 width=10 height=12 xoffset=0 yoffset=13 xadvance=10 page=0 chnl=15
|
||||
char id=116 x=48 y=138 width=9 height=15 xoffset=0 yoffset=10 xadvance=9 page=0 chnl=15
|
||||
char id=117 x=234 y=133 width=12 height=12 xoffset=1 yoffset=13 xadvance=14 page=0 chnl=15
|
||||
char id=118 x=195 y=133 width=12 height=12 xoffset=0 yoffset=13 xadvance=12 page=0 chnl=15
|
||||
char id=119 x=132 y=135 width=19 height=12 xoffset=0 yoffset=13 xadvance=19 page=0 chnl=15
|
||||
char id=120 x=38 y=154 width=11 height=12 xoffset=0 yoffset=13 xadvance=11 page=0 chnl=15
|
||||
char id=121 x=68 y=85 width=12 height=17 xoffset=0 yoffset=13 xadvance=12 page=0 chnl=15
|
||||
char id=122 x=62 y=153 width=10 height=12 xoffset=0 yoffset=13 xadvance=10 page=0 chnl=15
|
||||
char id=123 x=114 y=0 width=8 height=22 xoffset=0 yoffset=7 xadvance=8 page=0 chnl=15
|
||||
char id=124 x=53 y=0 width=4 height=23 xoffset=4 yoffset=7 xadvance=12 page=0 chnl=15
|
||||
char id=125 x=105 y=0 width=8 height=22 xoffset=1 yoffset=7 xadvance=8 page=0 chnl=15
|
||||
char id=126 x=236 y=146 width=13 height=5 xoffset=0 yoffset=10 xadvance=13 page=0 chnl=15
|
||||
char id=160 x=251 y=41 width=3 height=1 xoffset=-1 yoffset=31 xadvance=6 page=0 chnl=15
|
||||
char id=161 x=221 y=62 width=4 height=18 xoffset=2 yoffset=10 xadvance=8 page=0 chnl=15
|
||||
char id=162 x=245 y=114 width=10 height=16 xoffset=2 yoffset=9 xadvance=13 page=0 chnl=15
|
||||
char id=163 x=154 y=100 width=13 height=16 xoffset=0 yoffset=9 xadvance=13 page=0 chnl=15
|
||||
char id=164 x=58 y=138 width=13 height=14 xoffset=0 yoffset=11 xadvance=13 page=0 chnl=15
|
||||
char id=165 x=182 y=99 width=13 height=16 xoffset=0 yoffset=9 xadvance=13 page=0 chnl=15
|
||||
char id=166 x=58 y=0 width=3 height=23 xoffset=5 yoffset=7 xadvance=13 page=0 chnl=15
|
||||
char id=167 x=137 y=22 width=11 height=21 xoffset=1 yoffset=7 xadvance=13 page=0 chnl=15
|
||||
char id=168 x=77 y=164 width=8 height=2 xoffset=1 yoffset=9 xadvance=10 page=0 chnl=15
|
||||
char id=169 x=73 y=45 width=19 height=18 xoffset=1 yoffset=7 xadvance=22 page=0 chnl=15
|
||||
char id=170 x=82 y=137 width=8 height=13 xoffset=1 yoffset=9 xadvance=10 page=0 chnl=15
|
||||
char id=171 x=114 y=148 width=11 height=11 xoffset=1 yoffset=13 xadvance=13 page=0 chnl=15
|
||||
char id=172 x=222 y=146 width=13 height=5 xoffset=0 yoffset=17 xadvance=13 page=0 chnl=15
|
||||
char id=173 x=50 y=167 width=8 height=2 xoffset=0 yoffset=17 xadvance=8 page=0 chnl=15
|
||||
char id=174 x=138 y=148 width=11 height=10 xoffset=1 yoffset=7 xadvance=13 page=0 chnl=15
|
||||
char id=175 x=59 y=167 width=8 height=2 xoffset=1 yoffset=8 xadvance=10 page=0 chnl=15
|
||||
char id=176 x=0 y=168 width=7 height=5 xoffset=1 yoffset=8 xadvance=9 page=0 chnl=15
|
||||
char id=177 x=34 y=138 width=13 height=15 xoffset=0 yoffset=10 xadvance=13 page=0 chnl=15
|
||||
char id=178 x=150 y=148 width=9 height=10 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=15
|
||||
char id=179 x=160 y=147 width=9 height=10 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=15
|
||||
char id=180 x=22 y=168 width=6 height=4 xoffset=1 yoffset=7 xadvance=8 page=0 chnl=15
|
||||
char id=181 x=53 y=85 width=14 height=17 xoffset=1 yoffset=13 xadvance=14 page=0 chnl=15
|
||||
char id=182 x=59 y=46 width=13 height=19 xoffset=1 yoffset=9 xadvance=15 page=0 chnl=15
|
||||
char id=183 x=250 y=144 width=5 height=3 xoffset=1 yoffset=16 xadvance=7 page=0 chnl=15
|
||||
char id=184 x=8 y=168 width=6 height=5 xoffset=1 yoffset=25 xadvance=8 page=0 chnl=15
|
||||
char id=185 x=170 y=147 width=6 height=10 xoffset=-1 yoffset=6 xadvance=6 page=0 chnl=15
|
||||
char id=186 x=72 y=137 width=9 height=13 xoffset=1 yoffset=9 xadvance=11 page=0 chnl=15
|
||||
char id=187 x=89 y=151 width=12 height=11 xoffset=1 yoffset=13 xadvance=13 page=0 chnl=15
|
||||
char id=188 x=36 y=86 width=16 height=17 xoffset=0 yoffset=8 xadvance=17 page=0 chnl=15
|
||||
char id=189 x=18 y=86 width=17 height=17 xoffset=0 yoffset=8 xadvance=17 page=0 chnl=15
|
||||
char id=190 x=0 y=86 width=17 height=17 xoffset=0 yoffset=8 xadvance=18 page=0 chnl=15
|
||||
char id=191 x=91 y=64 width=11 height=18 xoffset=0 yoffset=10 xadvance=12 page=0 chnl=15
|
||||
char id=192 x=48 y=24 width=15 height=21 xoffset=0 yoffset=4 xadvance=15 page=0 chnl=15
|
||||
char id=193 x=64 y=23 width=15 height=21 xoffset=0 yoffset=4 xadvance=15 page=0 chnl=15
|
||||
char id=194 x=32 y=24 width=15 height=21 xoffset=0 yoffset=4 xadvance=15 page=0 chnl=15
|
||||
char id=195 x=16 y=24 width=15 height=21 xoffset=0 yoffset=4 xadvance=15 page=0 chnl=15
|
||||
char id=196 x=0 y=46 width=15 height=20 xoffset=0 yoffset=5 xadvance=15 page=0 chnl=15
|
||||
char id=197 x=0 y=24 width=15 height=21 xoffset=0 yoffset=4 xadvance=15 page=0 chnl=15
|
||||
char id=198 x=156 y=82 width=20 height=16 xoffset=-1 yoffset=9 xadvance=20 page=0 chnl=15
|
||||
char id=199 x=110 y=23 width=13 height=21 xoffset=1 yoffset=9 xadvance=14 page=0 chnl=15
|
||||
char id=200 x=149 y=22 width=10 height=21 xoffset=2 yoffset=4 xadvance=13 page=0 chnl=15
|
||||
char id=201 x=182 y=22 width=10 height=21 xoffset=2 yoffset=4 xadvance=13 page=0 chnl=15
|
||||
char id=202 x=171 y=22 width=10 height=21 xoffset=2 yoffset=4 xadvance=13 page=0 chnl=15
|
||||
char id=203 x=16 y=46 width=10 height=20 xoffset=2 yoffset=5 xadvance=13 page=0 chnl=15
|
||||
char id=204 x=207 y=22 width=6 height=21 xoffset=-1 yoffset=4 xadvance=7 page=0 chnl=15
|
||||
char id=205 x=200 y=22 width=6 height=21 xoffset=2 yoffset=4 xadvance=7 page=0 chnl=15
|
||||
char id=206 x=160 y=22 width=10 height=21 xoffset=-1 yoffset=4 xadvance=7 page=0 chnl=15
|
||||
char id=207 x=27 y=46 width=9 height=20 xoffset=-1 yoffset=5 xadvance=7 page=0 chnl=15
|
||||
char id=208 x=198 y=82 width=16 height=16 xoffset=0 yoffset=9 xadvance=16 page=0 chnl=15
|
||||
char id=209 x=237 y=0 width=15 height=21 xoffset=1 yoffset=4 xadvance=17 page=0 chnl=15
|
||||
char id=210 x=171 y=0 width=16 height=21 xoffset=0 yoffset=4 xadvance=17 page=0 chnl=15
|
||||
char id=211 x=154 y=0 width=16 height=21 xoffset=0 yoffset=4 xadvance=17 page=0 chnl=15
|
||||
char id=212 x=137 y=0 width=16 height=21 xoffset=0 yoffset=4 xadvance=17 page=0 chnl=15
|
||||
char id=213 x=188 y=0 width=16 height=21 xoffset=0 yoffset=4 xadvance=17 page=0 chnl=15
|
||||
char id=214 x=214 y=22 width=16 height=20 xoffset=0 yoffset=5 xadvance=17 page=0 chnl=15
|
||||
char id=215 x=102 y=150 width=11 height=11 xoffset=1 yoffset=12 xadvance=13 page=0 chnl=15
|
||||
char id=216 x=62 y=0 width=16 height=22 xoffset=1 yoffset=6 xadvance=17 page=0 chnl=15
|
||||
char id=217 x=221 y=0 width=15 height=21 xoffset=1 yoffset=4 xadvance=17 page=0 chnl=15
|
||||
char id=218 x=80 y=23 width=15 height=21 xoffset=1 yoffset=4 xadvance=17 page=0 chnl=15
|
||||
char id=219 x=205 y=0 width=15 height=21 xoffset=1 yoffset=4 xadvance=17 page=0 chnl=15
|
||||
char id=220 x=231 y=22 width=15 height=20 xoffset=1 yoffset=5 xadvance=17 page=0 chnl=15
|
||||
char id=221 x=96 y=23 width=13 height=21 xoffset=0 yoffset=4 xadvance=13 page=0 chnl=15
|
||||
char id=222 x=55 y=121 width=12 height=16 xoffset=1 yoffset=9 xadvance=13 page=0 chnl=15
|
||||
char id=223 x=189 y=44 width=13 height=18 xoffset=1 yoffset=7 xadvance=14 page=0 chnl=15
|
||||
char id=224 x=115 y=64 width=11 height=18 xoffset=0 yoffset=7 xadvance=12 page=0 chnl=15
|
||||
char id=225 x=175 y=63 width=11 height=18 xoffset=0 yoffset=7 xadvance=12 page=0 chnl=15
|
||||
char id=226 x=163 y=63 width=11 height=18 xoffset=0 yoffset=7 xadvance=12 page=0 chnl=15
|
||||
char id=227 x=151 y=63 width=11 height=18 xoffset=0 yoffset=7 xadvance=12 page=0 chnl=15
|
||||
char id=228 x=221 y=116 width=11 height=16 xoffset=0 yoffset=9 xadvance=12 page=0 chnl=15
|
||||
char id=229 x=139 y=64 width=11 height=18 xoffset=0 yoffset=7 xadvance=12 page=0 chnl=15
|
||||
char id=230 x=91 y=137 width=20 height=12 xoffset=0 yoffset=13 xadvance=20 page=0 chnl=15
|
||||
char id=231 x=120 y=83 width=11 height=17 xoffset=0 yoffset=13 xadvance=11 page=0 chnl=15
|
||||
char id=232 x=0 y=67 width=12 height=18 xoffset=0 yoffset=7 xadvance=13 page=0 chnl=15
|
||||
char id=233 x=13 y=67 width=12 height=18 xoffset=0 yoffset=7 xadvance=13 page=0 chnl=15
|
||||
char id=234 x=26 y=67 width=12 height=18 xoffset=0 yoffset=7 xadvance=13 page=0 chnl=15
|
||||
char id=235 x=68 y=120 width=12 height=16 xoffset=0 yoffset=9 xadvance=13 page=0 chnl=15
|
||||
char id=236 x=197 y=63 width=6 height=18 xoffset=-1 yoffset=7 xadvance=6 page=0 chnl=15
|
||||
char id=237 x=204 y=63 width=6 height=18 xoffset=1 yoffset=7 xadvance=6 page=0 chnl=15
|
||||
char id=238 x=247 y=22 width=8 height=18 xoffset=-1 yoffset=7 xadvance=6 page=0 chnl=15
|
||||
char id=239 x=11 y=138 width=8 height=16 xoffset=-1 yoffset=9 xadvance=6 page=0 chnl=15
|
||||
char id=240 x=39 y=66 width=12 height=18 xoffset=1 yoffset=7 xadvance=14 page=0 chnl=15
|
||||
char id=241 x=242 y=43 width=12 height=18 xoffset=1 yoffset=7 xadvance=14 page=0 chnl=15
|
||||
char id=242 x=144 y=44 width=14 height=18 xoffset=0 yoffset=7 xadvance=14 page=0 chnl=15
|
||||
char id=243 x=129 y=45 width=14 height=18 xoffset=0 yoffset=7 xadvance=14 page=0 chnl=15
|
||||
char id=244 x=174 y=44 width=14 height=18 xoffset=0 yoffset=7 xadvance=14 page=0 chnl=15
|
||||
char id=245 x=159 y=44 width=14 height=18 xoffset=0 yoffset=7 xadvance=14 page=0 chnl=15
|
||||
char id=246 x=110 y=101 width=14 height=16 xoffset=0 yoffset=9 xadvance=14 page=0 chnl=15
|
||||
char id=247 x=167 y=134 width=13 height=12 xoffset=0 yoffset=12 xadvance=13 page=0 chnl=15
|
||||
char id=248 x=125 y=101 width=14 height=16 xoffset=0 yoffset=11 xadvance=14 page=0 chnl=15
|
||||
char id=249 x=65 y=66 width=12 height=18 xoffset=1 yoffset=7 xadvance=14 page=0 chnl=15
|
||||
char id=250 x=78 y=64 width=12 height=18 xoffset=1 yoffset=7 xadvance=14 page=0 chnl=15
|
||||
char id=251 x=203 y=44 width=12 height=18 xoffset=1 yoffset=7 xadvance=14 page=0 chnl=15
|
||||
char id=252 x=133 y=118 width=12 height=16 xoffset=1 yoffset=9 xadvance=14 page=0 chnl=15
|
||||
char id=253 x=0 y=0 width=12 height=23 xoffset=0 yoffset=7 xadvance=12 page=0 chnl=15
|
||||
char id=254 x=13 y=0 width=12 height=23 xoffset=1 yoffset=7 xadvance=14 page=0 chnl=15
|
||||
char id=255 x=124 y=23 width=12 height=21 xoffset=0 yoffset=9 xadvance=12 page=0 chnl=15
|
||||
kernings count=787
|
||||
kerning first=179 second=47 amount=-4
|
||||
kerning first=178 second=47 amount=-4
|
||||
kerning first=185 second=47 amount=-4
|
||||
kerning first=40 second=106 amount=1
|
||||
kerning first=47 second=179 amount=-3
|
||||
kerning first=47 second=178 amount=-3
|
||||
kerning first=47 second=185 amount=-2
|
||||
kerning first=47 second=198 amount=-1
|
||||
kerning first=47 second=197 amount=-1
|
||||
kerning first=47 second=196 amount=-1
|
||||
kerning first=47 second=195 amount=-1
|
||||
kerning first=47 second=194 amount=-1
|
||||
kerning first=47 second=193 amount=-1
|
||||
kerning first=47 second=192 amount=-1
|
||||
kerning first=47 second=65 amount=-1
|
||||
kerning first=46 second=255 amount=-1
|
||||
kerning first=46 second=253 amount=-1
|
||||
kerning first=46 second=121 amount=-1
|
||||
kerning first=46 second=119 amount=-1
|
||||
kerning first=46 second=118 amount=-1
|
||||
kerning first=46 second=116 amount=-1
|
||||
kerning first=46 second=102 amount=-1
|
||||
kerning first=46 second=221 amount=-2
|
||||
kerning first=46 second=89 amount=-2
|
||||
kerning first=65 second=84 amount=-2
|
||||
kerning first=46 second=87 amount=-2
|
||||
kerning first=46 second=86 amount=-2
|
||||
kerning first=46 second=84 amount=-2
|
||||
kerning first=44 second=116 amount=-1
|
||||
kerning first=44 second=221 amount=-2
|
||||
kerning first=44 second=89 amount=-2
|
||||
kerning first=44 second=87 amount=-2
|
||||
kerning first=44 second=86 amount=-2
|
||||
kerning first=44 second=84 amount=-2
|
||||
kerning first=191 second=255 amount=-1
|
||||
kerning first=191 second=253 amount=-1
|
||||
kerning first=191 second=121 amount=-1
|
||||
kerning first=191 second=119 amount=-1
|
||||
kerning first=65 second=86 amount=-1
|
||||
kerning first=65 second=87 amount=-1
|
||||
kerning first=191 second=118 amount=-1
|
||||
kerning first=191 second=102 amount=-1
|
||||
kerning first=191 second=221 amount=-1
|
||||
kerning first=191 second=89 amount=-1
|
||||
kerning first=65 second=89 amount=-2
|
||||
kerning first=191 second=86 amount=-1
|
||||
kerning first=65 second=221 amount=-2
|
||||
kerning first=191 second=84 amount=-1
|
||||
kerning first=122 second=113 amount=-1
|
||||
kerning first=65 second=116 amount=-1
|
||||
kerning first=122 second=248 amount=-1
|
||||
kerning first=122 second=246 amount=-1
|
||||
kerning first=122 second=245 amount=-1
|
||||
kerning first=65 second=121 amount=-1
|
||||
kerning first=122 second=244 amount=-1
|
||||
kerning first=65 second=253 amount=-1
|
||||
kerning first=122 second=243 amount=-1
|
||||
kerning first=65 second=255 amount=-1
|
||||
kerning first=65 second=63 amount=-1
|
||||
kerning first=122 second=242 amount=-1
|
||||
kerning first=122 second=111 amount=-1
|
||||
kerning first=122 second=235 amount=-1
|
||||
kerning first=122 second=234 amount=-1
|
||||
kerning first=122 second=233 amount=-1
|
||||
kerning first=122 second=232 amount=-1
|
||||
kerning first=122 second=101 amount=-1
|
||||
kerning first=122 second=100 amount=-1
|
||||
kerning first=122 second=231 amount=-1
|
||||
kerning first=122 second=99 amount=-1
|
||||
kerning first=255 second=46 amount=-2
|
||||
kerning first=255 second=44 amount=-2
|
||||
kerning first=253 second=46 amount=-2
|
||||
kerning first=253 second=44 amount=-2
|
||||
kerning first=121 second=46 amount=-2
|
||||
kerning first=121 second=44 amount=-2
|
||||
kerning first=120 second=113 amount=-1
|
||||
kerning first=120 second=248 amount=-1
|
||||
kerning first=120 second=246 amount=-1
|
||||
kerning first=120 second=245 amount=-1
|
||||
kerning first=120 second=244 amount=-1
|
||||
kerning first=120 second=243 amount=-1
|
||||
kerning first=120 second=242 amount=-1
|
||||
kerning first=120 second=111 amount=-1
|
||||
kerning first=120 second=235 amount=-1
|
||||
kerning first=120 second=234 amount=-1
|
||||
kerning first=120 second=233 amount=-1
|
||||
kerning first=120 second=232 amount=-1
|
||||
kerning first=120 second=101 amount=-1
|
||||
kerning first=120 second=100 amount=-1
|
||||
kerning first=120 second=231 amount=-1
|
||||
kerning first=120 second=99 amount=-1
|
||||
kerning first=119 second=46 amount=-2
|
||||
kerning first=119 second=44 amount=-2
|
||||
kerning first=118 second=46 amount=-2
|
||||
kerning first=118 second=44 amount=-2
|
||||
kerning first=223 second=255 amount=-1
|
||||
kerning first=223 second=253 amount=-1
|
||||
kerning first=223 second=121 amount=-1
|
||||
kerning first=114 second=46 amount=-3
|
||||
kerning first=114 second=44 amount=-2
|
||||
kerning first=114 second=230 amount=-1
|
||||
kerning first=114 second=229 amount=-1
|
||||
kerning first=114 second=228 amount=-1
|
||||
kerning first=114 second=227 amount=-1
|
||||
kerning first=114 second=226 amount=-1
|
||||
kerning first=114 second=225 amount=-1
|
||||
kerning first=114 second=224 amount=-1
|
||||
kerning first=114 second=97 amount=-1
|
||||
kerning first=254 second=120 amount=-1
|
||||
kerning first=112 second=120 amount=-1
|
||||
kerning first=248 second=120 amount=-1
|
||||
kerning first=246 second=120 amount=-1
|
||||
kerning first=245 second=120 amount=-1
|
||||
kerning first=244 second=120 amount=-1
|
||||
kerning first=243 second=120 amount=-1
|
||||
kerning first=242 second=120 amount=-1
|
||||
kerning first=111 second=120 amount=-1
|
||||
kerning first=192 second=84 amount=-2
|
||||
kerning first=107 second=113 amount=-1
|
||||
kerning first=107 second=248 amount=-1
|
||||
kerning first=107 second=246 amount=-1
|
||||
kerning first=107 second=245 amount=-1
|
||||
kerning first=107 second=244 amount=-1
|
||||
kerning first=107 second=243 amount=-1
|
||||
kerning first=107 second=242 amount=-1
|
||||
kerning first=107 second=111 amount=-1
|
||||
kerning first=107 second=235 amount=-1
|
||||
kerning first=107 second=234 amount=-1
|
||||
kerning first=107 second=233 amount=-1
|
||||
kerning first=107 second=232 amount=-1
|
||||
kerning first=107 second=101 amount=-1
|
||||
kerning first=192 second=86 amount=-1
|
||||
kerning first=192 second=87 amount=-1
|
||||
kerning first=107 second=100 amount=-1
|
||||
kerning first=107 second=231 amount=-1
|
||||
kerning first=107 second=99 amount=-1
|
||||
kerning first=103 second=47 amount=1
|
||||
kerning first=192 second=89 amount=-2
|
||||
kerning first=102 second=46 amount=-2
|
||||
kerning first=192 second=221 amount=-2
|
||||
kerning first=102 second=44 amount=-2
|
||||
kerning first=102 second=113 amount=-1
|
||||
kerning first=192 second=116 amount=-1
|
||||
kerning first=102 second=248 amount=-1
|
||||
kerning first=102 second=246 amount=-1
|
||||
kerning first=102 second=245 amount=-1
|
||||
kerning first=192 second=121 amount=-1
|
||||
kerning first=102 second=244 amount=-1
|
||||
kerning first=192 second=253 amount=-1
|
||||
kerning first=102 second=243 amount=-1
|
||||
kerning first=192 second=255 amount=-1
|
||||
kerning first=192 second=63 amount=-1
|
||||
kerning first=102 second=242 amount=-1
|
||||
kerning first=102 second=111 amount=-1
|
||||
kerning first=102 second=103 amount=-1
|
||||
kerning first=102 second=235 amount=-1
|
||||
kerning first=102 second=234 amount=-1
|
||||
kerning first=102 second=233 amount=-1
|
||||
kerning first=102 second=232 amount=-1
|
||||
kerning first=102 second=101 amount=-1
|
||||
kerning first=102 second=100 amount=-1
|
||||
kerning first=102 second=231 amount=-1
|
||||
kerning first=102 second=99 amount=-1
|
||||
kerning first=102 second=230 amount=-1
|
||||
kerning first=102 second=229 amount=-1
|
||||
kerning first=102 second=228 amount=-1
|
||||
kerning first=102 second=227 amount=-1
|
||||
kerning first=102 second=226 amount=-1
|
||||
kerning first=102 second=225 amount=-1
|
||||
kerning first=102 second=224 amount=-1
|
||||
kerning first=102 second=97 amount=-1
|
||||
kerning first=98 second=120 amount=-1
|
||||
kerning first=90 second=118 amount=-1
|
||||
kerning first=90 second=239 amount=1
|
||||
kerning first=90 second=238 amount=1
|
||||
kerning first=221 second=47 amount=-2
|
||||
kerning first=221 second=46 amount=-3
|
||||
kerning first=221 second=58 amount=-2
|
||||
kerning first=221 second=59 amount=-2
|
||||
kerning first=221 second=44 amount=-3
|
||||
kerning first=221 second=122 amount=-1
|
||||
kerning first=221 second=255 amount=-1
|
||||
kerning first=221 second=253 amount=-1
|
||||
kerning first=221 second=121 amount=-1
|
||||
kerning first=221 second=120 amount=-1
|
||||
kerning first=221 second=119 amount=-1
|
||||
kerning first=221 second=118 amount=-1
|
||||
kerning first=221 second=252 amount=-1
|
||||
kerning first=221 second=251 amount=-1
|
||||
kerning first=221 second=250 amount=-1
|
||||
kerning first=221 second=249 amount=-1
|
||||
kerning first=221 second=117 amount=-1
|
||||
kerning first=221 second=116 amount=-1
|
||||
kerning first=221 second=223 amount=-1
|
||||
kerning first=221 second=115 amount=-1
|
||||
kerning first=221 second=114 amount=-1
|
||||
kerning first=221 second=113 amount=-2
|
||||
kerning first=221 second=112 amount=-1
|
||||
kerning first=221 second=248 amount=-2
|
||||
kerning first=221 second=246 amount=-2
|
||||
kerning first=221 second=245 amount=-2
|
||||
kerning first=221 second=244 amount=-2
|
||||
kerning first=221 second=243 amount=-2
|
||||
kerning first=221 second=242 amount=-2
|
||||
kerning first=221 second=111 amount=-2
|
||||
kerning first=221 second=241 amount=-1
|
||||
kerning first=221 second=110 amount=-1
|
||||
kerning first=221 second=109 amount=-1
|
||||
kerning first=221 second=106 amount=-1
|
||||
kerning first=221 second=239 amount=1
|
||||
kerning first=193 second=84 amount=-2
|
||||
kerning first=221 second=238 amount=1
|
||||
kerning first=221 second=237 amount=-1
|
||||
kerning first=221 second=236 amount=1
|
||||
kerning first=221 second=103 amount=-2
|
||||
kerning first=221 second=102 amount=-1
|
||||
kerning first=221 second=235 amount=-2
|
||||
kerning first=221 second=234 amount=-2
|
||||
kerning first=221 second=233 amount=-2
|
||||
kerning first=221 second=232 amount=-2
|
||||
kerning first=221 second=101 amount=-2
|
||||
kerning first=221 second=100 amount=-2
|
||||
kerning first=221 second=231 amount=-2
|
||||
kerning first=221 second=99 amount=-2
|
||||
kerning first=193 second=86 amount=-1
|
||||
kerning first=193 second=87 amount=-1
|
||||
kerning first=221 second=230 amount=-2
|
||||
kerning first=221 second=229 amount=-2
|
||||
kerning first=221 second=228 amount=-2
|
||||
kerning first=221 second=227 amount=-2
|
||||
kerning first=193 second=89 amount=-2
|
||||
kerning first=221 second=226 amount=-2
|
||||
kerning first=193 second=221 amount=-2
|
||||
kerning first=221 second=225 amount=-2
|
||||
kerning first=221 second=224 amount=-2
|
||||
kerning first=193 second=116 amount=-1
|
||||
kerning first=221 second=97 amount=-2
|
||||
kerning first=221 second=81 amount=-1
|
||||
kerning first=221 second=214 amount=-1
|
||||
kerning first=193 second=121 amount=-1
|
||||
kerning first=221 second=213 amount=-1
|
||||
kerning first=193 second=253 amount=-1
|
||||
kerning first=221 second=212 amount=-1
|
||||
kerning first=193 second=255 amount=-1
|
||||
kerning first=193 second=63 amount=-1
|
||||
kerning first=221 second=211 amount=-1
|
||||
kerning first=221 second=210 amount=-1
|
||||
kerning first=221 second=79 amount=-1
|
||||
kerning first=221 second=74 amount=-1
|
||||
kerning first=221 second=71 amount=-1
|
||||
kerning first=221 second=199 amount=-1
|
||||
kerning first=221 second=67 amount=-1
|
||||
kerning first=221 second=198 amount=-2
|
||||
kerning first=221 second=197 amount=-2
|
||||
kerning first=221 second=196 amount=-2
|
||||
kerning first=221 second=195 amount=-2
|
||||
kerning first=221 second=194 amount=-2
|
||||
kerning first=221 second=193 amount=-2
|
||||
kerning first=221 second=192 amount=-2
|
||||
kerning first=221 second=65 amount=-2
|
||||
kerning first=89 second=47 amount=-2
|
||||
kerning first=89 second=46 amount=-3
|
||||
kerning first=89 second=58 amount=-2
|
||||
kerning first=89 second=59 amount=-2
|
||||
kerning first=89 second=44 amount=-3
|
||||
kerning first=89 second=122 amount=-1
|
||||
kerning first=89 second=255 amount=-1
|
||||
kerning first=89 second=253 amount=-1
|
||||
kerning first=89 second=121 amount=-1
|
||||
kerning first=89 second=120 amount=-1
|
||||
kerning first=89 second=119 amount=-1
|
||||
kerning first=89 second=118 amount=-1
|
||||
kerning first=89 second=252 amount=-1
|
||||
kerning first=89 second=251 amount=-1
|
||||
kerning first=89 second=250 amount=-1
|
||||
kerning first=89 second=249 amount=-1
|
||||
kerning first=89 second=117 amount=-1
|
||||
kerning first=89 second=116 amount=-1
|
||||
kerning first=89 second=223 amount=-1
|
||||
kerning first=89 second=115 amount=-1
|
||||
kerning first=89 second=114 amount=-1
|
||||
kerning first=89 second=113 amount=-2
|
||||
kerning first=89 second=112 amount=-1
|
||||
kerning first=89 second=248 amount=-2
|
||||
kerning first=89 second=246 amount=-2
|
||||
kerning first=89 second=245 amount=-2
|
||||
kerning first=89 second=244 amount=-2
|
||||
kerning first=89 second=243 amount=-2
|
||||
kerning first=89 second=242 amount=-2
|
||||
kerning first=89 second=111 amount=-2
|
||||
kerning first=89 second=241 amount=-1
|
||||
kerning first=89 second=110 amount=-1
|
||||
kerning first=89 second=109 amount=-1
|
||||
kerning first=89 second=106 amount=-1
|
||||
kerning first=89 second=239 amount=1
|
||||
kerning first=89 second=238 amount=1
|
||||
kerning first=89 second=237 amount=-1
|
||||
kerning first=89 second=236 amount=1
|
||||
kerning first=89 second=103 amount=-2
|
||||
kerning first=89 second=102 amount=-1
|
||||
kerning first=89 second=235 amount=-2
|
||||
kerning first=89 second=234 amount=-2
|
||||
kerning first=89 second=233 amount=-2
|
||||
kerning first=194 second=84 amount=-2
|
||||
kerning first=89 second=232 amount=-2
|
||||
kerning first=89 second=101 amount=-2
|
||||
kerning first=89 second=100 amount=-2
|
||||
kerning first=89 second=231 amount=-2
|
||||
kerning first=89 second=99 amount=-2
|
||||
kerning first=89 second=230 amount=-2
|
||||
kerning first=89 second=229 amount=-2
|
||||
kerning first=89 second=228 amount=-2
|
||||
kerning first=89 second=227 amount=-2
|
||||
kerning first=89 second=226 amount=-2
|
||||
kerning first=89 second=225 amount=-2
|
||||
kerning first=89 second=224 amount=-2
|
||||
kerning first=89 second=97 amount=-2
|
||||
kerning first=194 second=86 amount=-1
|
||||
kerning first=194 second=87 amount=-1
|
||||
kerning first=89 second=81 amount=-1
|
||||
kerning first=89 second=214 amount=-1
|
||||
kerning first=89 second=213 amount=-1
|
||||
kerning first=89 second=212 amount=-1
|
||||
kerning first=194 second=89 amount=-2
|
||||
kerning first=89 second=211 amount=-1
|
||||
kerning first=194 second=221 amount=-2
|
||||
kerning first=89 second=210 amount=-1
|
||||
kerning first=89 second=79 amount=-1
|
||||
kerning first=194 second=116 amount=-1
|
||||
kerning first=89 second=74 amount=-1
|
||||
kerning first=89 second=71 amount=-1
|
||||
kerning first=89 second=199 amount=-1
|
||||
kerning first=194 second=121 amount=-1
|
||||
kerning first=89 second=67 amount=-1
|
||||
kerning first=194 second=253 amount=-1
|
||||
kerning first=89 second=198 amount=-2
|
||||
kerning first=194 second=255 amount=-1
|
||||
kerning first=194 second=63 amount=-1
|
||||
kerning first=89 second=197 amount=-2
|
||||
kerning first=89 second=196 amount=-2
|
||||
kerning first=89 second=195 amount=-2
|
||||
kerning first=89 second=194 amount=-2
|
||||
kerning first=89 second=193 amount=-2
|
||||
kerning first=89 second=192 amount=-2
|
||||
kerning first=89 second=65 amount=-2
|
||||
kerning first=88 second=255 amount=-1
|
||||
kerning first=88 second=253 amount=-1
|
||||
kerning first=88 second=121 amount=-1
|
||||
kerning first=88 second=119 amount=-1
|
||||
kerning first=88 second=118 amount=-1
|
||||
kerning first=88 second=113 amount=-1
|
||||
kerning first=88 second=100 amount=-1
|
||||
kerning first=88 second=81 amount=-1
|
||||
kerning first=88 second=214 amount=-1
|
||||
kerning first=88 second=213 amount=-1
|
||||
kerning first=88 second=212 amount=-1
|
||||
kerning first=88 second=211 amount=-1
|
||||
kerning first=88 second=210 amount=-1
|
||||
kerning first=88 second=79 amount=-1
|
||||
kerning first=88 second=71 amount=-1
|
||||
kerning first=88 second=199 amount=-1
|
||||
kerning first=88 second=67 amount=-1
|
||||
kerning first=87 second=46 amount=-3
|
||||
kerning first=87 second=59 amount=-2
|
||||
kerning first=87 second=44 amount=-3
|
||||
kerning first=87 second=255 amount=-1
|
||||
kerning first=87 second=253 amount=-1
|
||||
kerning first=87 second=121 amount=-1
|
||||
kerning first=87 second=252 amount=-1
|
||||
kerning first=87 second=251 amount=-1
|
||||
kerning first=87 second=250 amount=-1
|
||||
kerning first=87 second=249 amount=-1
|
||||
kerning first=87 second=117 amount=-1
|
||||
kerning first=87 second=115 amount=-1
|
||||
kerning first=87 second=114 amount=-1
|
||||
kerning first=87 second=113 amount=-1
|
||||
kerning first=87 second=112 amount=-1
|
||||
kerning first=87 second=248 amount=-1
|
||||
kerning first=87 second=246 amount=-1
|
||||
kerning first=87 second=245 amount=-1
|
||||
kerning first=87 second=244 amount=-1
|
||||
kerning first=87 second=243 amount=-1
|
||||
kerning first=87 second=242 amount=-1
|
||||
kerning first=87 second=111 amount=-1
|
||||
kerning first=87 second=241 amount=-1
|
||||
kerning first=87 second=110 amount=-1
|
||||
kerning first=87 second=109 amount=-1
|
||||
kerning first=87 second=239 amount=1
|
||||
kerning first=87 second=103 amount=-1
|
||||
kerning first=87 second=235 amount=-1
|
||||
kerning first=87 second=234 amount=-1
|
||||
kerning first=87 second=233 amount=-1
|
||||
kerning first=87 second=232 amount=-1
|
||||
kerning first=87 second=101 amount=-1
|
||||
kerning first=87 second=100 amount=-1
|
||||
kerning first=87 second=231 amount=-1
|
||||
kerning first=195 second=84 amount=-2
|
||||
kerning first=87 second=99 amount=-1
|
||||
kerning first=87 second=230 amount=-1
|
||||
kerning first=87 second=229 amount=-1
|
||||
kerning first=87 second=228 amount=-1
|
||||
kerning first=87 second=227 amount=-1
|
||||
kerning first=87 second=226 amount=-1
|
||||
kerning first=87 second=225 amount=-1
|
||||
kerning first=87 second=224 amount=-1
|
||||
kerning first=87 second=97 amount=-1
|
||||
kerning first=87 second=74 amount=-1
|
||||
kerning first=87 second=198 amount=-2
|
||||
kerning first=87 second=197 amount=-1
|
||||
kerning first=87 second=196 amount=-1
|
||||
kerning first=195 second=86 amount=-1
|
||||
kerning first=195 second=87 amount=-1
|
||||
kerning first=87 second=195 amount=-1
|
||||
kerning first=87 second=194 amount=-1
|
||||
kerning first=87 second=193 amount=-1
|
||||
kerning first=87 second=192 amount=-1
|
||||
kerning first=195 second=89 amount=-2
|
||||
kerning first=87 second=65 amount=-1
|
||||
kerning first=195 second=221 amount=-2
|
||||
kerning first=86 second=47 amount=-1
|
||||
kerning first=86 second=46 amount=-3
|
||||
kerning first=195 second=116 amount=-1
|
||||
kerning first=86 second=58 amount=-1
|
||||
kerning first=86 second=59 amount=-1
|
||||
kerning first=86 second=44 amount=-2
|
||||
kerning first=195 second=121 amount=-1
|
||||
kerning first=86 second=122 amount=-1
|
||||
kerning first=195 second=253 amount=-1
|
||||
kerning first=86 second=252 amount=-1
|
||||
kerning first=195 second=255 amount=-1
|
||||
kerning first=195 second=63 amount=-1
|
||||
kerning first=86 second=251 amount=-1
|
||||
kerning first=86 second=250 amount=-1
|
||||
kerning first=86 second=249 amount=-1
|
||||
kerning first=86 second=117 amount=-1
|
||||
kerning first=86 second=115 amount=-1
|
||||
kerning first=86 second=114 amount=-1
|
||||
kerning first=86 second=113 amount=-1
|
||||
kerning first=86 second=112 amount=-1
|
||||
kerning first=86 second=248 amount=-1
|
||||
kerning first=86 second=246 amount=-1
|
||||
kerning first=86 second=245 amount=-1
|
||||
kerning first=86 second=244 amount=-1
|
||||
kerning first=86 second=243 amount=-1
|
||||
kerning first=86 second=242 amount=-1
|
||||
kerning first=86 second=111 amount=-1
|
||||
kerning first=86 second=241 amount=-1
|
||||
kerning first=86 second=110 amount=-1
|
||||
kerning first=86 second=109 amount=-1
|
||||
kerning first=86 second=239 amount=1
|
||||
kerning first=86 second=238 amount=1
|
||||
kerning first=86 second=236 amount=1
|
||||
kerning first=86 second=103 amount=-1
|
||||
kerning first=86 second=235 amount=-1
|
||||
kerning first=86 second=234 amount=-1
|
||||
kerning first=86 second=233 amount=-1
|
||||
kerning first=86 second=232 amount=-1
|
||||
kerning first=86 second=101 amount=-1
|
||||
kerning first=86 second=100 amount=-1
|
||||
kerning first=86 second=231 amount=-1
|
||||
kerning first=86 second=99 amount=-1
|
||||
kerning first=86 second=230 amount=-1
|
||||
kerning first=86 second=229 amount=-1
|
||||
kerning first=86 second=228 amount=-1
|
||||
kerning first=86 second=227 amount=-1
|
||||
kerning first=86 second=226 amount=-1
|
||||
kerning first=86 second=225 amount=-1
|
||||
kerning first=86 second=224 amount=-1
|
||||
kerning first=86 second=97 amount=-1
|
||||
kerning first=86 second=74 amount=-1
|
||||
kerning first=86 second=198 amount=-2
|
||||
kerning first=86 second=197 amount=-1
|
||||
kerning first=86 second=196 amount=-1
|
||||
kerning first=86 second=195 amount=-1
|
||||
kerning first=86 second=194 amount=-1
|
||||
kerning first=86 second=193 amount=-1
|
||||
kerning first=86 second=192 amount=-1
|
||||
kerning first=86 second=65 amount=-1
|
||||
kerning first=220 second=74 amount=-1
|
||||
kerning first=220 second=197 amount=-1
|
||||
kerning first=220 second=196 amount=-1
|
||||
kerning first=220 second=195 amount=-1
|
||||
kerning first=220 second=194 amount=-1
|
||||
kerning first=220 second=193 amount=-1
|
||||
kerning first=220 second=192 amount=-1
|
||||
kerning first=220 second=65 amount=-1
|
||||
kerning first=219 second=74 amount=-1
|
||||
kerning first=219 second=197 amount=-1
|
||||
kerning first=219 second=196 amount=-1
|
||||
kerning first=196 second=84 amount=-2
|
||||
kerning first=219 second=195 amount=-1
|
||||
kerning first=219 second=194 amount=-1
|
||||
kerning first=219 second=193 amount=-1
|
||||
kerning first=219 second=192 amount=-1
|
||||
kerning first=219 second=65 amount=-1
|
||||
kerning first=218 second=74 amount=-1
|
||||
kerning first=218 second=197 amount=-1
|
||||
kerning first=218 second=196 amount=-1
|
||||
kerning first=218 second=195 amount=-1
|
||||
kerning first=218 second=194 amount=-1
|
||||
kerning first=218 second=193 amount=-1
|
||||
kerning first=218 second=192 amount=-1
|
||||
kerning first=218 second=65 amount=-1
|
||||
kerning first=196 second=86 amount=-1
|
||||
kerning first=196 second=87 amount=-1
|
||||
kerning first=217 second=74 amount=-1
|
||||
kerning first=217 second=197 amount=-1
|
||||
kerning first=217 second=196 amount=-1
|
||||
kerning first=217 second=195 amount=-1
|
||||
kerning first=196 second=89 amount=-2
|
||||
kerning first=217 second=194 amount=-1
|
||||
kerning first=196 second=221 amount=-2
|
||||
kerning first=217 second=193 amount=-1
|
||||
kerning first=217 second=192 amount=-1
|
||||
kerning first=196 second=116 amount=-1
|
||||
kerning first=217 second=65 amount=-1
|
||||
kerning first=85 second=74 amount=-1
|
||||
kerning first=85 second=197 amount=-1
|
||||
kerning first=196 second=121 amount=-1
|
||||
kerning first=85 second=196 amount=-1
|
||||
kerning first=196 second=253 amount=-1
|
||||
kerning first=85 second=195 amount=-1
|
||||
kerning first=196 second=255 amount=-1
|
||||
kerning first=196 second=63 amount=-1
|
||||
kerning first=85 second=194 amount=-1
|
||||
kerning first=85 second=193 amount=-1
|
||||
kerning first=85 second=192 amount=-1
|
||||
kerning first=85 second=65 amount=-1
|
||||
kerning first=84 second=47 amount=-1
|
||||
kerning first=84 second=46 amount=-3
|
||||
kerning first=84 second=58 amount=-2
|
||||
kerning first=84 second=59 amount=-1
|
||||
kerning first=84 second=44 amount=-3
|
||||
kerning first=84 second=122 amount=-2
|
||||
kerning first=84 second=255 amount=-1
|
||||
kerning first=84 second=253 amount=-1
|
||||
kerning first=84 second=121 amount=-1
|
||||
kerning first=84 second=120 amount=-1
|
||||
kerning first=84 second=119 amount=-1
|
||||
kerning first=84 second=118 amount=-1
|
||||
kerning first=84 second=252 amount=-2
|
||||
kerning first=84 second=251 amount=-2
|
||||
kerning first=84 second=250 amount=-2
|
||||
kerning first=84 second=249 amount=-2
|
||||
kerning first=84 second=117 amount=-2
|
||||
kerning first=84 second=115 amount=-2
|
||||
kerning first=84 second=114 amount=-2
|
||||
kerning first=84 second=113 amount=-2
|
||||
kerning first=84 second=112 amount=-2
|
||||
kerning first=84 second=248 amount=-2
|
||||
kerning first=84 second=246 amount=-2
|
||||
kerning first=84 second=245 amount=-2
|
||||
kerning first=84 second=244 amount=-2
|
||||
kerning first=84 second=243 amount=-2
|
||||
kerning first=84 second=242 amount=-2
|
||||
kerning first=84 second=111 amount=-2
|
||||
kerning first=84 second=241 amount=-2
|
||||
kerning first=84 second=110 amount=-2
|
||||
kerning first=84 second=109 amount=-2
|
||||
kerning first=84 second=239 amount=1
|
||||
kerning first=84 second=238 amount=1
|
||||
kerning first=84 second=103 amount=-2
|
||||
kerning first=84 second=235 amount=-2
|
||||
kerning first=84 second=234 amount=-2
|
||||
kerning first=84 second=233 amount=-2
|
||||
kerning first=84 second=232 amount=-2
|
||||
kerning first=84 second=101 amount=-2
|
||||
kerning first=84 second=100 amount=-2
|
||||
kerning first=84 second=231 amount=-2
|
||||
kerning first=84 second=99 amount=-2
|
||||
kerning first=84 second=230 amount=-2
|
||||
kerning first=84 second=229 amount=-2
|
||||
kerning first=84 second=228 amount=-2
|
||||
kerning first=84 second=227 amount=-2
|
||||
kerning first=84 second=226 amount=-2
|
||||
kerning first=84 second=225 amount=-2
|
||||
kerning first=84 second=224 amount=-2
|
||||
kerning first=84 second=97 amount=-2
|
||||
kerning first=84 second=81 amount=-1
|
||||
kerning first=84 second=214 amount=-1
|
||||
kerning first=84 second=213 amount=-1
|
||||
kerning first=84 second=212 amount=-1
|
||||
kerning first=84 second=211 amount=-1
|
||||
kerning first=84 second=210 amount=-1
|
||||
kerning first=84 second=79 amount=-1
|
||||
kerning first=84 second=74 amount=-1
|
||||
kerning first=84 second=71 amount=-1
|
||||
kerning first=84 second=199 amount=-1
|
||||
kerning first=84 second=67 amount=-1
|
||||
kerning first=84 second=198 amount=-2
|
||||
kerning first=84 second=197 amount=-2
|
||||
kerning first=84 second=196 amount=-2
|
||||
kerning first=84 second=195 amount=-2
|
||||
kerning first=84 second=194 amount=-2
|
||||
kerning first=84 second=193 amount=-2
|
||||
kerning first=84 second=192 amount=-2
|
||||
kerning first=84 second=65 amount=-2
|
||||
kerning first=82 second=248 amount=-1
|
||||
kerning first=82 second=246 amount=-1
|
||||
kerning first=82 second=245 amount=-1
|
||||
kerning first=82 second=244 amount=-1
|
||||
kerning first=82 second=243 amount=-1
|
||||
kerning first=82 second=242 amount=-1
|
||||
kerning first=82 second=111 amount=-1
|
||||
kerning first=81 second=47 amount=2
|
||||
kerning first=81 second=59 amount=1
|
||||
kerning first=81 second=44 amount=1
|
||||
kerning first=81 second=106 amount=1
|
||||
kerning first=81 second=103 amount=1
|
||||
kerning first=81 second=221 amount=-1
|
||||
kerning first=81 second=89 amount=-1
|
||||
kerning first=81 second=84 amount=-1
|
||||
kerning first=81 second=74 amount=1
|
||||
kerning first=81 second=198 amount=1
|
||||
kerning first=80 second=47 amount=-1
|
||||
kerning first=80 second=46 amount=-3
|
||||
kerning first=80 second=44 amount=-3
|
||||
kerning first=80 second=248 amount=-1
|
||||
kerning first=80 second=246 amount=-1
|
||||
kerning first=80 second=245 amount=-1
|
||||
kerning first=80 second=244 amount=-1
|
||||
kerning first=80 second=243 amount=-1
|
||||
kerning first=80 second=242 amount=-1
|
||||
kerning first=80 second=111 amount=-1
|
||||
kerning first=80 second=235 amount=-1
|
||||
kerning first=80 second=234 amount=-1
|
||||
kerning first=80 second=233 amount=-1
|
||||
kerning first=80 second=232 amount=-1
|
||||
kerning first=80 second=101 amount=-1
|
||||
kerning first=80 second=231 amount=-1
|
||||
kerning first=80 second=99 amount=-1
|
||||
kerning first=80 second=230 amount=-1
|
||||
kerning first=80 second=229 amount=-1
|
||||
kerning first=80 second=228 amount=-1
|
||||
kerning first=80 second=227 amount=-1
|
||||
kerning first=80 second=226 amount=-1
|
||||
kerning first=80 second=225 amount=-1
|
||||
kerning first=80 second=224 amount=-1
|
||||
kerning first=80 second=97 amount=-1
|
||||
kerning first=80 second=74 amount=-2
|
||||
kerning first=80 second=198 amount=-2
|
||||
kerning first=80 second=197 amount=-2
|
||||
kerning first=80 second=196 amount=-2
|
||||
kerning first=80 second=195 amount=-2
|
||||
kerning first=80 second=194 amount=-2
|
||||
kerning first=80 second=193 amount=-2
|
||||
kerning first=80 second=192 amount=-2
|
||||
kerning first=80 second=65 amount=-2
|
||||
kerning first=214 second=44 amount=-1
|
||||
kerning first=214 second=221 amount=-1
|
||||
kerning first=214 second=89 amount=-1
|
||||
kerning first=214 second=88 amount=-1
|
||||
kerning first=214 second=84 amount=-1
|
||||
kerning first=213 second=44 amount=-1
|
||||
kerning first=213 second=221 amount=-1
|
||||
kerning first=213 second=89 amount=-1
|
||||
kerning first=213 second=88 amount=-1
|
||||
kerning first=213 second=84 amount=-1
|
||||
kerning first=212 second=44 amount=-1
|
||||
kerning first=212 second=221 amount=-1
|
||||
kerning first=212 second=89 amount=-1
|
||||
kerning first=212 second=88 amount=-1
|
||||
kerning first=212 second=84 amount=-1
|
||||
kerning first=211 second=44 amount=-1
|
||||
kerning first=211 second=221 amount=-1
|
||||
kerning first=211 second=89 amount=-1
|
||||
kerning first=211 second=88 amount=-1
|
||||
kerning first=211 second=84 amount=-1
|
||||
kerning first=210 second=44 amount=-1
|
||||
kerning first=210 second=221 amount=-1
|
||||
kerning first=210 second=89 amount=-1
|
||||
kerning first=210 second=88 amount=-1
|
||||
kerning first=210 second=84 amount=-1
|
||||
kerning first=79 second=44 amount=-1
|
||||
kerning first=79 second=221 amount=-1
|
||||
kerning first=79 second=89 amount=-1
|
||||
kerning first=79 second=88 amount=-1
|
||||
kerning first=79 second=84 amount=-1
|
||||
kerning first=76 second=255 amount=-1
|
||||
kerning first=76 second=253 amount=-1
|
||||
kerning first=76 second=121 amount=-1
|
||||
kerning first=76 second=119 amount=-1
|
||||
kerning first=76 second=118 amount=-1
|
||||
kerning first=76 second=221 amount=-2
|
||||
kerning first=76 second=89 amount=-2
|
||||
kerning first=76 second=87 amount=-2
|
||||
kerning first=76 second=86 amount=-2
|
||||
kerning first=76 second=220 amount=-1
|
||||
kerning first=76 second=219 amount=-1
|
||||
kerning first=76 second=218 amount=-1
|
||||
kerning first=76 second=217 amount=-1
|
||||
kerning first=76 second=85 amount=-1
|
||||
kerning first=76 second=84 amount=-2
|
||||
kerning first=76 second=81 amount=-1
|
||||
kerning first=76 second=214 amount=-1
|
||||
kerning first=76 second=213 amount=-1
|
||||
kerning first=76 second=212 amount=-1
|
||||
kerning first=76 second=211 amount=-1
|
||||
kerning first=76 second=210 amount=-1
|
||||
kerning first=76 second=79 amount=-1
|
||||
kerning first=76 second=71 amount=-1
|
||||
kerning first=76 second=198 amount=1
|
||||
kerning first=75 second=255 amount=-1
|
||||
kerning first=75 second=253 amount=-1
|
||||
kerning first=75 second=121 amount=-1
|
||||
kerning first=75 second=119 amount=-1
|
||||
kerning first=75 second=118 amount=-1
|
||||
kerning first=75 second=231 amount=-1
|
||||
kerning first=75 second=99 amount=-1
|
||||
kerning first=75 second=81 amount=-1
|
||||
kerning first=75 second=214 amount=-1
|
||||
kerning first=75 second=213 amount=-1
|
||||
kerning first=75 second=212 amount=-1
|
||||
kerning first=75 second=211 amount=-1
|
||||
kerning first=75 second=210 amount=-1
|
||||
kerning first=75 second=79 amount=-1
|
||||
kerning first=75 second=71 amount=-1
|
||||
kerning first=75 second=199 amount=-1
|
||||
kerning first=75 second=67 amount=-1
|
||||
kerning first=70 second=47 amount=-1
|
||||
kerning first=70 second=46 amount=-2
|
||||
kerning first=70 second=44 amount=-3
|
||||
kerning first=70 second=230 amount=-1
|
||||
kerning first=70 second=229 amount=-1
|
||||
kerning first=70 second=228 amount=-1
|
||||
kerning first=70 second=227 amount=-1
|
||||
kerning first=70 second=226 amount=-1
|
||||
kerning first=70 second=225 amount=-1
|
||||
kerning first=70 second=224 amount=-1
|
||||
kerning first=70 second=97 amount=-1
|
||||
kerning first=70 second=74 amount=-1
|
||||
kerning first=70 second=198 amount=-1
|
||||
kerning first=70 second=197 amount=-1
|
||||
kerning first=70 second=196 amount=-1
|
||||
kerning first=70 second=195 amount=-1
|
||||
kerning first=70 second=194 amount=-1
|
||||
kerning first=70 second=193 amount=-1
|
||||
kerning first=70 second=192 amount=-1
|
||||
kerning first=70 second=65 amount=-1
|
||||
kerning first=203 second=255 amount=-1
|
||||
kerning first=203 second=253 amount=-1
|
||||
kerning first=203 second=121 amount=-1
|
||||
kerning first=203 second=118 amount=-1
|
||||
kerning first=203 second=102 amount=-1
|
||||
kerning first=202 second=255 amount=-1
|
||||
kerning first=202 second=253 amount=-1
|
||||
kerning first=202 second=121 amount=-1
|
||||
kerning first=202 second=118 amount=-1
|
||||
kerning first=202 second=102 amount=-1
|
||||
kerning first=201 second=255 amount=-1
|
||||
kerning first=201 second=253 amount=-1
|
||||
kerning first=201 second=121 amount=-1
|
||||
kerning first=201 second=118 amount=-1
|
||||
kerning first=201 second=102 amount=-1
|
||||
kerning first=200 second=255 amount=-1
|
||||
kerning first=200 second=253 amount=-1
|
||||
kerning first=200 second=121 amount=-1
|
||||
kerning first=200 second=118 amount=-1
|
||||
kerning first=200 second=102 amount=-1
|
||||
kerning first=69 second=255 amount=-1
|
||||
kerning first=69 second=253 amount=-1
|
||||
kerning first=69 second=121 amount=-1
|
||||
kerning first=69 second=118 amount=-1
|
||||
kerning first=69 second=102 amount=-1
|
||||
kerning first=208 second=46 amount=-1
|
||||
kerning first=208 second=44 amount=-1
|
||||
kerning first=68 second=46 amount=-1
|
||||
kerning first=68 second=44 amount=-1
|
||||
kerning first=197 second=84 amount=-2
|
||||
kerning first=66 second=221 amount=-1
|
||||
kerning first=66 second=89 amount=-1
|
||||
kerning first=66 second=88 amount=-1
|
||||
kerning first=66 second=84 amount=-1
|
||||
kerning first=198 second=255 amount=-1
|
||||
kerning first=198 second=253 amount=-1
|
||||
kerning first=198 second=121 amount=-1
|
||||
kerning first=198 second=118 amount=-1
|
||||
kerning first=198 second=102 amount=-1
|
||||
kerning first=197 second=63 amount=-1
|
||||
kerning first=197 second=255 amount=-1
|
||||
kerning first=197 second=253 amount=-1
|
||||
kerning first=197 second=121 amount=-1
|
||||
kerning first=197 second=86 amount=-1
|
||||
kerning first=197 second=87 amount=-1
|
||||
kerning first=197 second=116 amount=-1
|
||||
kerning first=197 second=221 amount=-2
|
||||
kerning first=197 second=89 amount=-2
|
BIN
External tools/Myra.1.2.1.0/Assets/fonts/calibri32_0.png
Normal file
After Width: | Height: | Size: 16 KiB |
195
External tools/Myra.1.2.1.0/Assets/fonts/comicSans48.fnt
Normal file
|
@ -0,0 +1,195 @@
|
|||
info face="Comic Sans MS" size=48 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0
|
||||
common lineHeight=47 base=37 scaleW=512 scaleH=512 pages=1 packed=0 alphaChnl=1 redChnl=0 greenChnl=0 blueChnl=0
|
||||
page id=0 file="comicSans48_0.png"
|
||||
chars count=191
|
||||
char id=32 x=507 y=30 width=3 height=1 xoffset=-1 yoffset=46 xadvance=10 page=0 chnl=15
|
||||
char id=33 x=341 y=67 width=5 height=28 xoffset=1 yoffset=10 xadvance=8 page=0 chnl=15
|
||||
char id=34 x=269 y=172 width=11 height=11 xoffset=1 yoffset=11 xadvance=14 page=0 chnl=15
|
||||
char id=35 x=293 y=97 width=29 height=26 xoffset=0 yoffset=11 xadvance=29 page=0 chnl=15
|
||||
char id=36 x=441 y=0 width=20 height=34 xoffset=1 yoffset=9 xadvance=24 page=0 chnl=15
|
||||
char id=37 x=439 y=65 width=26 height=27 xoffset=2 yoffset=10 xadvance=28 page=0 chnl=15
|
||||
char id=38 x=49 y=74 width=22 height=28 xoffset=0 yoffset=11 xadvance=22 page=0 chnl=15
|
||||
char id=39 x=308 y=170 width=5 height=9 xoffset=4 yoffset=9 xadvance=13 page=0 chnl=15
|
||||
char id=40 x=82 y=38 width=11 height=34 xoffset=1 yoffset=10 xadvance=12 page=0 chnl=15
|
||||
char id=41 x=94 y=38 width=11 height=34 xoffset=1 yoffset=10 xadvance=12 page=0 chnl=15
|
||||
char id=42 x=110 y=181 width=17 height=14 xoffset=0 yoffset=10 xadvance=18 page=0 chnl=15
|
||||
char id=43 x=175 y=179 width=16 height=13 xoffset=0 yoffset=20 xadvance=16 page=0 chnl=15
|
||||
char id=44 x=370 y=168 width=6 height=8 xoffset=3 yoffset=35 xadvance=9 page=0 chnl=15
|
||||
char id=45 x=465 y=165 width=12 height=3 xoffset=1 yoffset=26 xadvance=13 page=0 chnl=15
|
||||
char id=46 x=383 y=168 width=5 height=4 xoffset=2 yoffset=35 xadvance=8 page=0 chnl=15
|
||||
char id=47 x=284 y=68 width=16 height=28 xoffset=1 yoffset=11 xadvance=17 page=0 chnl=15
|
||||
char id=48 x=112 y=130 width=21 height=26 xoffset=0 yoffset=11 xadvance=21 page=0 chnl=15
|
||||
char id=49 x=497 y=93 width=12 height=26 xoffset=2 yoffset=11 xadvance=15 page=0 chnl=15
|
||||
char id=50 x=330 y=123 width=17 height=26 xoffset=2 yoffset=11 xadvance=21 page=0 chnl=15
|
||||
char id=51 x=348 y=123 width=17 height=26 xoffset=2 yoffset=11 xadvance=21 page=0 chnl=15
|
||||
char id=52 x=134 y=128 width=21 height=26 xoffset=0 yoffset=11 xadvance=21 page=0 chnl=15
|
||||
char id=53 x=177 y=128 width=19 height=26 xoffset=1 yoffset=11 xadvance=21 page=0 chnl=15
|
||||
char id=54 x=255 y=125 width=18 height=26 xoffset=1 yoffset=11 xadvance=21 page=0 chnl=15
|
||||
char id=55 x=90 y=130 width=21 height=26 xoffset=0 yoffset=11 xadvance=21 page=0 chnl=15
|
||||
char id=56 x=197 y=127 width=19 height=26 xoffset=1 yoffset=11 xadvance=21 page=0 chnl=15
|
||||
char id=57 x=115 y=71 width=19 height=28 xoffset=1 yoffset=11 xadvance=21 page=0 chnl=15
|
||||
char id=58 x=32 y=185 width=6 height=17 xoffset=2 yoffset=18 xadvance=10 page=0 chnl=15
|
||||
char id=59 x=202 y=154 width=7 height=22 xoffset=1 yoffset=18 xadvance=10 page=0 chnl=15
|
||||
char id=60 x=140 y=181 width=11 height=14 xoffset=0 yoffset=20 xadvance=13 page=0 chnl=15
|
||||
char id=61 x=239 y=174 width=14 height=12 xoffset=1 yoffset=20 xadvance=17 page=0 chnl=15
|
||||
char id=62 x=56 y=184 width=13 height=16 xoffset=0 yoffset=18 xadvance=13 page=0 chnl=15
|
||||
char id=63 x=456 y=120 width=16 height=26 xoffset=0 yoffset=12 xadvance=17 page=0 chnl=15
|
||||
char id=64 x=423 y=35 width=27 height=29 xoffset=1 yoffset=10 xadvance=30 page=0 chnl=15
|
||||
char id=65 x=0 y=132 width=22 height=26 xoffset=1 yoffset=11 xadvance=24 page=0 chnl=15
|
||||
char id=66 x=19 y=104 width=18 height=27 xoffset=2 yoffset=11 xadvance=21 page=0 chnl=15
|
||||
char id=67 x=466 y=65 width=20 height=27 xoffset=1 yoffset=10 xadvance=20 page=0 chnl=15
|
||||
char id=68 x=26 y=75 width=22 height=28 xoffset=2 yoffset=11 xadvance=25 page=0 chnl=15
|
||||
char id=69 x=95 y=73 width=19 height=28 xoffset=2 yoffset=11 xadvance=21 page=0 chnl=15
|
||||
char id=70 x=135 y=71 width=19 height=28 xoffset=2 yoffset=11 xadvance=21 page=0 chnl=15
|
||||
char id=71 x=23 y=132 width=22 height=26 xoffset=1 yoffset=11 xadvance=23 page=0 chnl=15
|
||||
char id=72 x=450 y=93 width=23 height=26 xoffset=2 yoffset=11 xadvance=26 page=0 chnl=15
|
||||
char id=73 x=402 y=121 width=17 height=26 xoffset=1 yoffset=11 xadvance=19 page=0 chnl=15
|
||||
char id=74 x=72 y=73 width=22 height=28 xoffset=1 yoffset=11 xadvance=23 page=0 chnl=15
|
||||
char id=75 x=174 y=70 width=18 height=28 xoffset=3 yoffset=11 xadvance=21 page=0 chnl=15
|
||||
char id=76 x=212 y=69 width=18 height=28 xoffset=1 yoffset=11 xadvance=19 page=0 chnl=15
|
||||
char id=77 x=382 y=66 width=28 height=27 xoffset=1 yoffset=11 xadvance=29 page=0 chnl=15
|
||||
char id=78 x=349 y=94 width=25 height=26 xoffset=1 yoffset=11 xadvance=27 page=0 chnl=15
|
||||
char id=79 x=323 y=96 width=25 height=26 xoffset=1 yoffset=11 xadvance=27 page=0 chnl=15
|
||||
char id=80 x=420 y=121 width=17 height=26 xoffset=1 yoffset=11 xadvance=18 page=0 chnl=15
|
||||
char id=81 x=106 y=37 width=29 height=33 xoffset=1 yoffset=11 xadvance=30 page=0 chnl=15
|
||||
char id=82 x=156 y=128 width=20 height=26 xoffset=1 yoffset=11 xadvance=21 page=0 chnl=15
|
||||
char id=83 x=473 y=120 width=21 height=25 xoffset=2 yoffset=13 xadvance=24 page=0 chnl=15
|
||||
char id=84 x=375 y=94 width=24 height=26 xoffset=1 yoffset=11 xadvance=23 page=0 chnl=15
|
||||
char id=85 x=474 y=93 width=22 height=26 xoffset=2 yoffset=11 xadvance=25 page=0 chnl=15
|
||||
char id=86 x=46 y=132 width=21 height=26 xoffset=2 yoffset=11 xadvance=22 page=0 chnl=15
|
||||
char id=87 x=347 y=66 width=34 height=27 xoffset=2 yoffset=11 xadvance=35 page=0 chnl=15
|
||||
char id=88 x=425 y=93 width=24 height=26 xoffset=0 yoffset=11 xadvance=25 page=0 chnl=15
|
||||
char id=89 x=68 y=131 width=21 height=26 xoffset=0 yoffset=12 xadvance=22 page=0 chnl=15
|
||||
char id=90 x=400 y=94 width=24 height=26 xoffset=0 yoffset=11 xadvance=24 page=0 chnl=15
|
||||
char id=91 x=238 y=36 width=11 height=32 xoffset=2 yoffset=12 xadvance=13 page=0 chnl=15
|
||||
char id=92 x=318 y=67 width=16 height=28 xoffset=2 yoffset=11 xadvance=19 page=0 chnl=15
|
||||
char id=93 x=226 y=36 width=11 height=32 xoffset=2 yoffset=12 xadvance=13 page=0 chnl=15
|
||||
char id=94 x=281 y=171 width=15 height=9 xoffset=3 yoffset=10 xadvance=19 page=0 chnl=15
|
||||
char id=95 x=413 y=166 width=23 height=3 xoffset=-1 yoffset=40 xadvance=21 page=0 chnl=15
|
||||
char id=96 x=361 y=169 width=8 height=8 xoffset=2 yoffset=10 xadvance=19 page=0 chnl=15
|
||||
char id=97 x=460 y=147 width=17 height=17 xoffset=0 yoffset=20 xadvance=17 page=0 chnl=15
|
||||
char id=98 x=114 y=102 width=17 height=27 xoffset=2 yoffset=10 xadvance=20 page=0 chnl=15
|
||||
char id=99 x=0 y=185 width=15 height=17 xoffset=1 yoffset=20 xadvance=17 page=0 chnl=15
|
||||
char id=100 x=38 y=104 width=18 height=27 xoffset=1 yoffset=10 xadvance=20 page=0 chnl=15
|
||||
char id=101 x=405 y=148 width=18 height=17 xoffset=1 yoffset=20 xadvance=19 page=0 chnl=15
|
||||
char id=102 x=494 y=35 width=16 height=29 xoffset=0 yoffset=10 xadvance=17 page=0 chnl=15
|
||||
char id=103 x=366 y=121 width=17 height=26 xoffset=0 yoffset=20 xadvance=18 page=0 chnl=15
|
||||
char id=104 x=132 y=100 width=17 height=27 xoffset=2 yoffset=10 xadvance=20 page=0 chnl=15
|
||||
char id=105 x=101 y=157 width=6 height=24 xoffset=2 yoffset=13 xadvance=10 page=0 chnl=15
|
||||
char id=106 x=40 y=39 width=13 height=34 xoffset=-1 yoffset=13 xadvance=14 page=0 chnl=15
|
||||
char id=107 x=150 y=100 width=17 height=27 xoffset=2 yoffset=11 xadvance=18 page=0 chnl=15
|
||||
char id=108 x=335 y=67 width=5 height=28 xoffset=2 yoffset=10 xadvance=9 page=0 chnl=15
|
||||
char id=109 x=276 y=152 width=25 height=18 xoffset=1 yoffset=20 xadvance=26 page=0 chnl=15
|
||||
char id=110 x=442 y=147 width=17 height=17 xoffset=1 yoffset=20 xadvance=18 page=0 chnl=15
|
||||
char id=111 x=495 y=146 width=16 height=17 xoffset=1 yoffset=20 xadvance=18 page=0 chnl=15
|
||||
char id=112 x=301 y=68 width=16 height=28 xoffset=1 yoffset=19 xadvance=18 page=0 chnl=15
|
||||
char id=113 x=312 y=124 width=17 height=26 xoffset=0 yoffset=20 xadvance=18 page=0 chnl=15
|
||||
char id=114 x=16 y=185 width=15 height=17 xoffset=1 yoffset=20 xadvance=16 page=0 chnl=15
|
||||
char id=115 x=227 y=154 width=16 height=19 xoffset=0 yoffset=18 xadvance=17 page=0 chnl=15
|
||||
char id=116 x=145 y=155 width=16 height=23 xoffset=0 yoffset=14 xadvance=16 page=0 chnl=15
|
||||
char id=117 x=478 y=146 width=16 height=17 xoffset=1 yoffset=20 xadvance=18 page=0 chnl=15
|
||||
char id=118 x=345 y=150 width=17 height=18 xoffset=0 yoffset=20 xadvance=17 page=0 chnl=15
|
||||
char id=119 x=363 y=150 width=22 height=17 xoffset=1 yoffset=20 xadvance=23 page=0 chnl=15
|
||||
char id=120 x=324 y=151 width=20 height=18 xoffset=0 yoffset=20 xadvance=20 page=0 chnl=15
|
||||
char id=121 x=487 y=65 width=19 height=27 xoffset=-1 yoffset=20 xadvance=18 page=0 chnl=15
|
||||
char id=122 x=424 y=148 width=17 height=17 xoffset=1 yoffset=20 xadvance=18 page=0 chnl=15
|
||||
char id=123 x=68 y=38 width=13 height=34 xoffset=-1 yoffset=10 xadvance=12 page=0 chnl=15
|
||||
char id=124 x=502 y=0 width=4 height=34 xoffset=5 yoffset=9 xadvance=14 page=0 chnl=15
|
||||
char id=125 x=54 y=39 width=13 height=34 xoffset=-1 yoffset=10 xadvance=12 page=0 chnl=15
|
||||
char id=126 x=314 y=170 width=19 height=8 xoffset=1 yoffset=21 xadvance=19 page=0 chnl=15
|
||||
char id=160 x=507 y=28 width=3 height=1 xoffset=-1 yoffset=46 xadvance=10 page=0 chnl=15
|
||||
char id=161 x=287 y=97 width=5 height=27 xoffset=1 yoffset=11 xadvance=8 page=0 chnl=15
|
||||
char id=162 x=193 y=70 width=18 height=28 xoffset=1 yoffset=8 xadvance=21 page=0 chnl=15
|
||||
char id=163 x=317 y=36 width=25 height=30 xoffset=0 yoffset=10 xadvance=27 page=0 chnl=15
|
||||
char id=164 x=302 y=151 width=21 height=18 xoffset=0 yoffset=16 xadvance=21 page=0 chnl=15
|
||||
char id=165 x=81 y=158 width=19 height=24 xoffset=2 yoffset=13 xadvance=22 page=0 chnl=15
|
||||
char id=166 x=507 y=0 width=4 height=27 xoffset=5 yoffset=10 xadvance=14 page=0 chnl=15
|
||||
char id=167 x=236 y=126 width=18 height=26 xoffset=1 yoffset=11 xadvance=22 page=0 chnl=15
|
||||
char id=168 x=437 y=166 width=14 height=3 xoffset=3 yoffset=14 xadvance=19 page=0 chnl=15
|
||||
char id=169 x=177 y=155 width=24 height=22 xoffset=1 yoffset=10 xadvance=26 page=0 chnl=15
|
||||
char id=170 x=225 y=174 width=13 height=13 xoffset=1 yoffset=9 xadvance=16 page=0 chnl=15
|
||||
char id=171 x=90 y=183 width=19 height=14 xoffset=0 yoffset=20 xadvance=20 page=0 chnl=15
|
||||
char id=172 x=334 y=170 width=16 height=8 xoffset=0 yoffset=25 xadvance=16 page=0 chnl=15
|
||||
char id=173 x=452 y=165 width=12 height=3 xoffset=1 yoffset=26 xadvance=13 page=0 chnl=15
|
||||
char id=174 x=35 y=159 width=24 height=24 xoffset=1 yoffset=10 xadvance=26 page=0 chnl=15
|
||||
char id=175 x=389 y=166 width=23 height=3 xoffset=-1 yoffset=6 xadvance=21 page=0 chnl=15
|
||||
char id=176 x=254 y=172 width=14 height=12 xoffset=0 yoffset=9 xadvance=14 page=0 chnl=15
|
||||
char id=177 x=210 y=154 width=16 height=19 xoffset=0 yoffset=20 xadvance=16 page=0 chnl=15
|
||||
char id=178 x=128 y=181 width=11 height=14 xoffset=6 yoffset=8 xadvance=22 page=0 chnl=15
|
||||
char id=179 x=164 y=179 width=10 height=14 xoffset=6 yoffset=9 xadvance=22 page=0 chnl=15
|
||||
char id=180 x=351 y=169 width=9 height=8 xoffset=3 yoffset=10 xadvance=17 page=0 chnl=15
|
||||
char id=181 x=60 y=159 width=20 height=24 xoffset=0 yoffset=20 xadvance=18 page=0 chnl=15
|
||||
char id=182 x=451 y=35 width=23 height=29 xoffset=0 yoffset=11 xadvance=24 page=0 chnl=15
|
||||
char id=183 x=377 y=168 width=5 height=4 xoffset=2 yoffset=24 xadvance=8 page=0 chnl=15
|
||||
char id=184 x=297 y=171 width=10 height=9 xoffset=5 yoffset=35 xadvance=19 page=0 chnl=15
|
||||
char id=185 x=152 y=179 width=11 height=14 xoffset=6 yoffset=8 xadvance=22 page=0 chnl=15
|
||||
char id=186 x=192 y=178 width=16 height=13 xoffset=0 yoffset=9 xadvance=16 page=0 chnl=15
|
||||
char id=187 x=70 y=184 width=19 height=14 xoffset=0 yoffset=20 xadvance=20 page=0 chnl=15
|
||||
char id=188 x=20 y=40 width=19 height=34 xoffset=2 yoffset=9 xadvance=22 page=0 chnl=15
|
||||
char id=189 x=0 y=40 width=19 height=34 xoffset=2 yoffset=9 xadvance=22 page=0 chnl=15
|
||||
char id=190 x=482 y=0 width=19 height=34 xoffset=2 yoffset=9 xadvance=22 page=0 chnl=15
|
||||
char id=191 x=438 y=120 width=17 height=26 xoffset=0 yoffset=12 xadvance=17 page=0 chnl=15
|
||||
char id=192 x=241 y=0 width=22 height=35 xoffset=1 yoffset=2 xadvance=24 page=0 chnl=15
|
||||
char id=193 x=418 y=0 width=22 height=34 xoffset=1 yoffset=3 xadvance=24 page=0 chnl=15
|
||||
char id=194 x=218 y=0 width=22 height=35 xoffset=1 yoffset=2 xadvance=24 page=0 chnl=15
|
||||
char id=195 x=136 y=37 width=24 height=33 xoffset=1 yoffset=4 xadvance=24 page=0 chnl=15
|
||||
char id=196 x=343 y=35 width=22 height=30 xoffset=1 yoffset=7 xadvance=24 page=0 chnl=15
|
||||
char id=197 x=161 y=36 width=22 height=33 xoffset=1 yoffset=4 xadvance=24 page=0 chnl=15
|
||||
char id=198 x=383 y=35 width=39 height=29 xoffset=0 yoffset=10 xadvance=38 page=0 chnl=15
|
||||
char id=199 x=205 y=36 width=20 height=32 xoffset=1 yoffset=11 xadvance=20 page=0 chnl=15
|
||||
char id=200 x=40 y=0 width=19 height=38 xoffset=2 yoffset=1 xadvance=21 page=0 chnl=15
|
||||
char id=201 x=20 y=0 width=19 height=39 xoffset=2 yoffset=0 xadvance=21 page=0 chnl=15
|
||||
char id=202 x=0 y=0 width=19 height=39 xoffset=2 yoffset=0 xadvance=21 page=0 chnl=15
|
||||
char id=203 x=462 y=0 width=19 height=34 xoffset=2 yoffset=5 xadvance=21 page=0 chnl=15
|
||||
char id=204 x=287 y=0 width=17 height=35 xoffset=1 yoffset=2 xadvance=19 page=0 chnl=15
|
||||
char id=205 x=305 y=0 width=17 height=35 xoffset=1 yoffset=2 xadvance=19 page=0 chnl=15
|
||||
char id=206 x=125 y=0 width=17 height=36 xoffset=1 yoffset=1 xadvance=19 page=0 chnl=15
|
||||
char id=207 x=299 y=36 width=17 height=31 xoffset=1 yoffset=6 xadvance=19 page=0 chnl=15
|
||||
char id=208 x=0 y=75 width=25 height=28 xoffset=-1 yoffset=11 xadvance=25 page=0 chnl=15
|
||||
char id=209 x=340 y=0 width=25 height=34 xoffset=1 yoffset=3 xadvance=27 page=0 chnl=15
|
||||
char id=210 x=169 y=0 width=25 height=35 xoffset=1 yoffset=2 xadvance=27 page=0 chnl=15
|
||||
char id=211 x=392 y=0 width=25 height=34 xoffset=1 yoffset=3 xadvance=27 page=0 chnl=15
|
||||
char id=212 x=143 y=0 width=25 height=35 xoffset=1 yoffset=2 xadvance=27 page=0 chnl=15
|
||||
char id=213 x=366 y=0 width=25 height=34 xoffset=1 yoffset=3 xadvance=27 page=0 chnl=15
|
||||
char id=214 x=250 y=36 width=25 height=31 xoffset=1 yoffset=6 xadvance=27 page=0 chnl=15
|
||||
char id=215 x=209 y=177 width=15 height=13 xoffset=0 yoffset=20 xadvance=16 page=0 chnl=15
|
||||
char id=216 x=411 y=65 width=27 height=27 xoffset=1 yoffset=11 xadvance=27 page=0 chnl=15
|
||||
char id=217 x=195 y=0 width=22 height=35 xoffset=2 yoffset=2 xadvance=25 page=0 chnl=15
|
||||
char id=218 x=264 y=0 width=22 height=35 xoffset=2 yoffset=2 xadvance=25 page=0 chnl=15
|
||||
char id=219 x=102 y=0 width=22 height=36 xoffset=2 yoffset=1 xadvance=25 page=0 chnl=15
|
||||
char id=220 x=276 y=36 width=22 height=31 xoffset=2 yoffset=6 xadvance=25 page=0 chnl=15
|
||||
char id=221 x=60 y=0 width=21 height=37 xoffset=0 yoffset=1 xadvance=22 page=0 chnl=15
|
||||
char id=222 x=384 y=121 width=17 height=26 xoffset=1 yoffset=11 xadvance=18 page=0 chnl=15
|
||||
char id=223 x=366 y=35 width=16 height=30 xoffset=0 yoffset=10 xadvance=16 page=0 chnl=15
|
||||
char id=224 x=0 y=104 width=18 height=27 xoffset=0 yoffset=10 xadvance=17 page=0 chnl=15
|
||||
char id=225 x=76 y=102 width=18 height=27 xoffset=0 yoffset=10 xadvance=17 page=0 chnl=15
|
||||
char id=226 x=231 y=69 width=18 height=28 xoffset=0 yoffset=9 xadvance=17 page=0 chnl=15
|
||||
char id=227 x=217 y=127 width=18 height=26 xoffset=0 yoffset=11 xadvance=17 page=0 chnl=15
|
||||
char id=228 x=108 y=157 width=18 height=23 xoffset=0 yoffset=14 xadvance=17 page=0 chnl=15
|
||||
char id=229 x=475 y=35 width=18 height=29 xoffset=0 yoffset=8 xadvance=17 page=0 chnl=15
|
||||
char id=230 x=244 y=153 width=31 height=18 xoffset=0 yoffset=20 xadvance=31 page=0 chnl=15
|
||||
char id=231 x=19 y=159 width=15 height=25 xoffset=1 yoffset=20 xadvance=17 page=0 chnl=15
|
||||
char id=232 x=57 y=103 width=18 height=27 xoffset=1 yoffset=10 xadvance=19 page=0 chnl=15
|
||||
char id=233 x=95 y=102 width=18 height=27 xoffset=1 yoffset=10 xadvance=19 page=0 chnl=15
|
||||
char id=234 x=155 y=71 width=18 height=28 xoffset=1 yoffset=9 xadvance=19 page=0 chnl=15
|
||||
char id=235 x=0 y=159 width=18 height=25 xoffset=1 yoffset=12 xadvance=19 page=0 chnl=15
|
||||
char id=236 x=278 y=97 width=8 height=27 xoffset=0 yoffset=10 xadvance=10 page=0 chnl=15
|
||||
char id=237 x=268 y=97 width=9 height=27 xoffset=1 yoffset=10 xadvance=10 page=0 chnl=15
|
||||
char id=238 x=252 y=97 width=15 height=27 xoffset=-3 yoffset=10 xadvance=10 page=0 chnl=15
|
||||
char id=239 x=162 y=155 width=14 height=23 xoffset=-2 yoffset=14 xadvance=10 page=0 chnl=15
|
||||
char id=240 x=236 y=98 width=15 height=27 xoffset=2 yoffset=10 xadvance=17 page=0 chnl=15
|
||||
char id=241 x=274 y=125 width=18 height=26 xoffset=1 yoffset=11 xadvance=18 page=0 chnl=15
|
||||
char id=242 x=168 y=100 width=16 height=27 xoffset=1 yoffset=10 xadvance=18 page=0 chnl=15
|
||||
char id=243 x=185 y=99 width=16 height=27 xoffset=1 yoffset=10 xadvance=18 page=0 chnl=15
|
||||
char id=244 x=267 y=68 width=16 height=28 xoffset=1 yoffset=9 xadvance=18 page=0 chnl=15
|
||||
char id=245 x=293 y=124 width=18 height=26 xoffset=1 yoffset=11 xadvance=18 page=0 chnl=15
|
||||
char id=246 x=127 y=157 width=17 height=23 xoffset=1 yoffset=14 xadvance=18 page=0 chnl=15
|
||||
char id=247 x=39 y=184 width=16 height=16 xoffset=0 yoffset=18 xadvance=16 page=0 chnl=15
|
||||
char id=248 x=386 y=148 width=18 height=17 xoffset=0 yoffset=20 xadvance=18 page=0 chnl=15
|
||||
char id=249 x=219 y=98 width=16 height=27 xoffset=1 yoffset=10 xadvance=18 page=0 chnl=15
|
||||
char id=250 x=202 y=99 width=16 height=27 xoffset=1 yoffset=10 xadvance=18 page=0 chnl=15
|
||||
char id=251 x=250 y=68 width=16 height=28 xoffset=1 yoffset=9 xadvance=18 page=0 chnl=15
|
||||
char id=252 x=495 y=120 width=16 height=25 xoffset=1 yoffset=12 xadvance=18 page=0 chnl=15
|
||||
char id=253 x=82 y=0 width=19 height=37 xoffset=-1 yoffset=10 xadvance=18 page=0 chnl=15
|
||||
char id=254 x=323 y=0 width=16 height=35 xoffset=1 yoffset=12 xadvance=18 page=0 chnl=15
|
||||
char id=255 x=184 y=36 width=20 height=33 xoffset=-1 yoffset=14 xadvance=18 page=0 chnl=15
|
BIN
External tools/Myra.1.2.1.0/Assets/fonts/comicSans48_0.png
Normal file
After Width: | Height: | Size: 30 KiB |
BIN
External tools/Myra.1.2.1.0/Assets/images/LogoOnly_64px.png
Normal file
After Width: | Height: | Size: 23 KiB |
BIN
External tools/Myra.1.2.1.0/Cyotek.Drawing.BitmapFont.dll
Normal file
BIN
External tools/Myra.1.2.1.0/FontStashSharp.MonoGame.dll
Normal file
BIN
External tools/Myra.1.2.1.0/MonoGame.Framework.dll
Normal file
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<configuration>
|
||||
<dllmap dll="SDL2.dll" os="osx" target="libSDL2-2.0.0.dylib"/>
|
||||
<dllmap dll="soft_oal.dll" os="osx" target="libopenal.1.dylib" />
|
||||
<dllmap dll="SDL2.dll" os="linux" cpu="x86" target="./x86/libSDL2-2.0.so.0"/>
|
||||
<dllmap dll="soft_oal.dll" os="linux" cpu="x86" target="./x86/libopenal.so.1" />
|
||||
<dllmap dll="SDL2.dll" os="linux" cpu="x86-64" target="./x64/libSDL2-2.0.so.0"/>
|
||||
<dllmap dll="soft_oal.dll" os="linux" cpu="x86-64" target="./x64/libopenal.so.1" />
|
||||
</configuration>
|
BIN
External tools/Myra.1.2.1.0/Myra.Samples.AllWidgets.exe
Normal file
BIN
External tools/Myra.1.2.1.0/Myra.Samples.AssetManagement.exe
Normal file
BIN
External tools/Myra.1.2.1.0/Myra.Samples.CustomUIStylesheet.exe
Normal file
BIN
External tools/Myra.1.2.1.0/Myra.Samples.CustomWidgets.exe
Normal file
BIN
External tools/Myra.1.2.1.0/Myra.Samples.DebugConsole.exe
Normal file
BIN
External tools/Myra.1.2.1.0/Myra.Samples.GridContainer.exe
Normal file
BIN
External tools/Myra.1.2.1.0/Myra.Samples.NonModalWindows.exe
Normal file
BIN
External tools/Myra.1.2.1.0/Myra.Samples.Notepad.exe
Normal file
BIN
External tools/Myra.1.2.1.0/Myra.Samples.ObjectEditor.exe
Normal file
BIN
External tools/Myra.1.2.1.0/Myra.Samples.SplitPaneContainer.exe
Normal file
BIN
External tools/Myra.1.2.1.0/Myra.dll
Normal file
BIN
External tools/Myra.1.2.1.0/MyraPad.exe
Normal file
BIN
External tools/Myra.1.2.1.0/StbImageSharp.dll
Normal file
BIN
External tools/Myra.1.2.1.0/StbTrueTypeSharp.dll
Normal file
66
External tools/Myra.1.2.1.0/Stylesheets/allControls.xmmp
Normal file
|
@ -0,0 +1,66 @@
|
|||
<Project StylesheetPath="commodore-64/ui_stylesheet.xmms">
|
||||
<ExportOptions Namespace="Myra.Samples.CustomUIStylesheet" Class="AllWidgets" OutputPath="D:\Projects\Hebron\Myra\Source\Samples\Myra.Samples.CustomUIStylesheet" />
|
||||
<HorizontalSplitPane GridRow="1">
|
||||
<ScrollPane>
|
||||
<Grid ColumnSpacing="8" RowSpacing="8" Id="_gridRight">
|
||||
<ColumnsProportions>
|
||||
<Proportion />
|
||||
<Proportion Type="Fill" />
|
||||
</ColumnsProportions>
|
||||
<RowsProportions>
|
||||
<Proportion />
|
||||
<Proportion />
|
||||
<Proportion />
|
||||
<Proportion />
|
||||
<Proportion />
|
||||
<Proportion />
|
||||
</RowsProportions>
|
||||
<TextBlock Text="Button:" Id="" />
|
||||
<ImageTextButton Text="Button" Id="_button" GridColumn="1" />
|
||||
<CheckBox Text="This is checkbox" GridRow="1" GridColumnSpan="2" />
|
||||
<TextBlock Text="Slider:" Id="" GridRow="2" />
|
||||
<HorizontalSlider GridColumn="1" GridRow="2" />
|
||||
<TextBlock Text="Combo Box:" GridRow="3" />
|
||||
<ComboBox GridColumn="1" GridRow="3">
|
||||
<ListItem Text="Item 1" />
|
||||
<ListItem Text="Item 2" />
|
||||
<ListItem Text="Item 3" />
|
||||
</ComboBox>
|
||||
<TextBlock Text="Text Field:" GridRow="4" />
|
||||
<TextField Text="" GridColumn="1" GridRow="4" />
|
||||
<TextBlock Text="List Box:" GridRow="5" />
|
||||
<ListBox GridColumn="1" GridRow="5">
|
||||
<ListItem Text="Item 1" />
|
||||
<ListItem Text="Item 2" />
|
||||
<ListItem Text="Item 3" />
|
||||
</ListBox>
|
||||
</Grid>
|
||||
</ScrollPane>
|
||||
<VerticalSplitPane>
|
||||
<Grid RowSpacing="8">
|
||||
<ColumnsProportions>
|
||||
<Proportion Type="Fill" />
|
||||
</ColumnsProportions>
|
||||
<RowsProportions>
|
||||
<Proportion />
|
||||
<Proportion Type="Fill" />
|
||||
</RowsProportions>
|
||||
<TextBlock Text="Vertical Slider:" />
|
||||
<VerticalSlider HorizontalAlignment="Center" GridRow="1" />
|
||||
</Grid>
|
||||
<Grid RowSpacing="8">
|
||||
<ColumnsProportions>
|
||||
<Proportion Type="Fill" />
|
||||
</ColumnsProportions>
|
||||
<RowsProportions>
|
||||
<Proportion />
|
||||
<Proportion />
|
||||
<Proportion Type="Fill" />
|
||||
</RowsProportions>
|
||||
<TextBlock Text="Progress Bars:" />
|
||||
<HorizontalProgressBar Id="_horizontalProgressBar" GridRow="1" />
|
||||
<VerticalProgressBar HorizontalAlignment="Center" Id="_verticalProgressBar" GridRow="2" />
|
||||
</Grid>
|
||||
</VerticalSplitPane>
|
||||
</HorizontalSplitPane>
|
||||
</Project>
|
|
@ -0,0 +1,101 @@
|
|||
info face="Commodore 64 Pixelized" size=20 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=1,1,1,1 spacing=-2,-2
|
||||
common lineHeight=20 base=18 scaleW=512 scaleH=64 pages=1 packed=0
|
||||
page id=0 file="ui_stylesheet.atlas:commodore-64"
|
||||
chars count=96
|
||||
char id=10 x=0 y=0 width=0 height=0 xoffset=0 yoffset=0 xadvance=0 page=0 chnl=0
|
||||
char id=32 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=17 xadvance=16 page=0 chnl=0
|
||||
char id=33 x=502 y=0 width=6 height=16 xoffset=5 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=34 x=188 y=34 width=14 height=6 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=35 x=248 y=18 width=18 height=16 xoffset=-1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=36 x=220 y=18 width=14 height=16 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=37 x=234 y=18 width=14 height=16 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=38 x=266 y=18 width=16 height=16 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=39 x=142 y=34 width=10 height=8 xoffset=5 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=40 x=90 y=18 width=10 height=16 xoffset=3 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=41 x=100 y=18 width=10 height=16 xoffset=3 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=42 x=114 y=34 width=18 height=12 xoffset=-1 yoffset=5 xadvance=16 page=0 chnl=0
|
||||
char id=43 x=100 y=34 width=14 height=12 xoffset=1 yoffset=5 xadvance=16 page=0 chnl=0
|
||||
char id=44 x=152 y=34 width=8 height=8 xoffset=3 yoffset=13 xadvance=16 page=0 chnl=0
|
||||
char id=45 x=208 y=34 width=14 height=4 xoffset=1 yoffset=9 xadvance=16 page=0 chnl=0
|
||||
char id=46 x=202 y=34 width=6 height=6 xoffset=5 yoffset=13 xadvance=16 page=0 chnl=0
|
||||
char id=47 x=392 y=18 width=16 height=14 xoffset=1 yoffset=5 xadvance=16 page=0 chnl=0
|
||||
char id=48 x=56 y=18 width=14 height=16 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=49 x=430 y=0 width=14 height=16 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=50 x=444 y=0 width=14 height=16 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=51 x=458 y=0 width=14 height=16 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=52 x=472 y=0 width=16 height=16 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=53 x=488 y=0 width=14 height=16 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=54 x=0 y=18 width=14 height=16 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=55 x=14 y=18 width=14 height=16 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=56 x=28 y=18 width=14 height=16 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=57 x=42 y=18 width=14 height=16 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=58 x=84 y=18 width=6 height=16 xoffset=5 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=59 x=0 y=0 width=8 height=18 xoffset=3 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=60 x=158 y=18 width=14 height=16 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=61 x=160 y=34 width=14 height=8 xoffset=1 yoffset=7 xadvance=16 page=0 chnl=0
|
||||
char id=62 x=172 y=18 width=14 height=16 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=63 x=70 y=18 width=14 height=16 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=64 x=192 y=18 width=14 height=16 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=65 x=8 y=0 width=14 height=16 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=66 x=22 y=0 width=14 height=16 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=67 x=36 y=0 width=14 height=16 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=68 x=50 y=0 width=14 height=16 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=69 x=64 y=0 width=14 height=16 xoffset=1 yoffset=3 xadvance=15 page=0 chnl=0
|
||||
char id=70 x=78 y=0 width=14 height=16 xoffset=1 yoffset=3 xadvance=15 page=0 chnl=0
|
||||
char id=71 x=92 y=0 width=14 height=16 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=72 x=106 y=0 width=14 height=16 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=73 x=120 y=0 width=10 height=16 xoffset=3 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=74 x=130 y=0 width=14 height=16 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=75 x=144 y=0 width=14 height=16 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=76 x=158 y=0 width=14 height=16 xoffset=1 yoffset=3 xadvance=15 page=0 chnl=0
|
||||
char id=77 x=172 y=0 width=16 height=16 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=78 x=188 y=0 width=14 height=16 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=79 x=202 y=0 width=14 height=16 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=80 x=216 y=0 width=14 height=16 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=81 x=230 y=0 width=14 height=16 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=82 x=244 y=0 width=14 height=16 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=83 x=258 y=0 width=14 height=16 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=84 x=272 y=0 width=14 height=16 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=85 x=286 y=0 width=14 height=16 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=86 x=300 y=0 width=14 height=16 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=87 x=314 y=0 width=16 height=16 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=88 x=330 y=0 width=14 height=16 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=89 x=344 y=0 width=14 height=16 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=90 x=358 y=0 width=14 height=16 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=91 x=110 y=18 width=10 height=16 xoffset=3 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=92 x=408 y=18 width=16 height=14 xoffset=1 yoffset=5 xadvance=16 page=0 chnl=0
|
||||
char id=93 x=120 y=18 width=10 height=16 xoffset=3 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=94 x=206 y=18 width=14 height=16 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=95 x=222 y=34 width=18 height=4 xoffset=-1 yoffset=15 xadvance=16 page=0 chnl=0
|
||||
char id=96 x=132 y=34 width=10 height=8 xoffset=5 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=97 x=424 y=18 width=14 height=12 xoffset=1 yoffset=7 xadvance=16 page=0 chnl=0
|
||||
char id=98 x=282 y=18 width=14 height=14 xoffset=1 yoffset=5 xadvance=16 page=0 chnl=0
|
||||
char id=99 x=438 y=18 width=12 height=12 xoffset=1 yoffset=7 xadvance=16 page=0 chnl=0
|
||||
char id=100 x=296 y=18 width=14 height=14 xoffset=1 yoffset=5 xadvance=16 page=0 chnl=0
|
||||
char id=101 x=450 y=18 width=14 height=12 xoffset=1 yoffset=7 xadvance=16 page=0 chnl=0
|
||||
char id=102 x=310 y=18 width=12 height=14 xoffset=3 yoffset=5 xadvance=16 page=0 chnl=0
|
||||
char id=103 x=322 y=18 width=14 height=14 xoffset=1 yoffset=7 xadvance=16 page=0 chnl=0
|
||||
char id=104 x=372 y=0 width=14 height=16 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=105 x=386 y=0 width=10 height=16 xoffset=3 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=106 x=396 y=0 width=10 height=16 xoffset=3 yoffset=5 xadvance=16 page=0 chnl=0
|
||||
char id=107 x=406 y=0 width=14 height=16 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=108 x=420 y=0 width=10 height=16 xoffset=3 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=109 x=464 y=18 width=16 height=12 xoffset=1 yoffset=7 xadvance=16 page=0 chnl=0
|
||||
char id=110 x=480 y=18 width=14 height=12 xoffset=1 yoffset=7 xadvance=16 page=0 chnl=0
|
||||
char id=111 x=494 y=18 width=14 height=12 xoffset=1 yoffset=7 xadvance=16 page=0 chnl=0
|
||||
char id=112 x=336 y=18 width=14 height=14 xoffset=1 yoffset=7 xadvance=16 page=0 chnl=0
|
||||
char id=113 x=350 y=18 width=14 height=14 xoffset=1 yoffset=7 xadvance=16 page=0 chnl=0
|
||||
char id=114 x=0 y=34 width=14 height=12 xoffset=1 yoffset=7 xadvance=16 page=0 chnl=0
|
||||
char id=115 x=14 y=34 width=14 height=12 xoffset=1 yoffset=7 xadvance=16 page=0 chnl=0
|
||||
char id=116 x=364 y=18 width=14 height=14 xoffset=1 yoffset=5 xadvance=16 page=0 chnl=0
|
||||
char id=117 x=28 y=34 width=14 height=12 xoffset=1 yoffset=7 xadvance=16 page=0 chnl=0
|
||||
char id=118 x=42 y=34 width=14 height=12 xoffset=1 yoffset=7 xadvance=16 page=0 chnl=0
|
||||
char id=119 x=56 y=34 width=16 height=12 xoffset=1 yoffset=7 xadvance=16 page=0 chnl=0
|
||||
char id=120 x=72 y=34 width=14 height=12 xoffset=1 yoffset=7 xadvance=16 page=0 chnl=0
|
||||
char id=121 x=378 y=18 width=14 height=14 xoffset=1 yoffset=7 xadvance=16 page=0 chnl=0
|
||||
char id=122 x=86 y=34 width=14 height=12 xoffset=1 yoffset=7 xadvance=16 page=0 chnl=0
|
||||
char id=123 x=130 y=18 width=14 height=16 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=124 x=186 y=18 width=6 height=16 xoffset=5 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=125 x=144 y=18 width=14 height=16 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
char id=126 x=174 y=34 width=14 height=8 xoffset=1 yoffset=3 xadvance=16 page=0 chnl=0
|
||||
kernings count=0
|
|
@ -0,0 +1,274 @@
|
|||
|
||||
ui_stylesheet_atlas.png
|
||||
size: 860,229
|
||||
format: RGBA8888
|
||||
filter: Nearest,Nearest
|
||||
repeat: none
|
||||
blue
|
||||
rotate: false
|
||||
xy: 106, 137
|
||||
size: 2, 2
|
||||
orig: 2, 2
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
button
|
||||
rotate: false
|
||||
xy: 715, 139
|
||||
size: 36, 24
|
||||
split: 18, 17, 11, 12
|
||||
pad: 14, 14, 4, 4
|
||||
orig: 36, 24
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
button-down
|
||||
rotate: false
|
||||
xy: 106, 140
|
||||
size: 36, 24
|
||||
split: 18, 17, 12, 11
|
||||
pad: 14, 14, 4, 4
|
||||
orig: 36, 24
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
check-box
|
||||
rotate: false
|
||||
xy: 162, 152
|
||||
size: 12, 12
|
||||
orig: 12, 12
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
check-box-off
|
||||
rotate: false
|
||||
xy: 715, 109
|
||||
size: 12, 12
|
||||
orig: 12, 12
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
commodore-64
|
||||
rotate: false
|
||||
xy: 1, 165
|
||||
size: 512, 64
|
||||
orig: 512, 64
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
cursor
|
||||
rotate: false
|
||||
xy: 143, 148
|
||||
size: 18, 16
|
||||
split: 9, 8, 7, 8
|
||||
pad: 2, 0, 0, 0
|
||||
orig: 18, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
cursor-black
|
||||
rotate: false
|
||||
xy: 1, 14
|
||||
size: 18, 16
|
||||
split: 9, 8, 7, 8
|
||||
pad: 2, 0, 0, 0
|
||||
orig: 18, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
dialog
|
||||
rotate: false
|
||||
xy: 1, 31
|
||||
size: 38, 38
|
||||
split: 19, 18, 18, 19
|
||||
pad: 13, 13, 24, 13
|
||||
orig: 38, 38
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
grey
|
||||
rotate: false
|
||||
xy: 752, 161
|
||||
size: 2, 2
|
||||
orig: 2, 2
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
horizontal-split-pane
|
||||
rotate: false
|
||||
xy: 732, 128
|
||||
size: 14, 10
|
||||
split: 6, 6, 0, 0
|
||||
pad: 0, 0, 0, 0
|
||||
orig: 14, 10
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
light-blue
|
||||
rotate: false
|
||||
xy: 143, 145
|
||||
size: 2, 2
|
||||
orig: 2, 2
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
list
|
||||
rotate: false
|
||||
xy: 821, 215
|
||||
size: 22, 14
|
||||
split: 0, 21, 0, 13
|
||||
pad: 0, 17, 0, 2
|
||||
orig: 22, 14
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
minus
|
||||
rotate: false
|
||||
xy: 78, 117
|
||||
size: 14, 14
|
||||
orig: 14, 14
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
music
|
||||
rotate: false
|
||||
xy: 715, 164
|
||||
size: 46, 32
|
||||
orig: 46, 32
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
music-off
|
||||
rotate: false
|
||||
xy: 774, 197
|
||||
size: 46, 32
|
||||
orig: 46, 32
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
plus
|
||||
rotate: false
|
||||
xy: 821, 200
|
||||
size: 14, 14
|
||||
orig: 14, 14
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
progress-bar
|
||||
rotate: false
|
||||
xy: 777, 180
|
||||
size: 16, 16
|
||||
split: 7, 8, 7, 8
|
||||
pad: 2, 2, 2, 2
|
||||
orig: 16, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
progress-bar-knob
|
||||
rotate: false
|
||||
xy: 715, 122
|
||||
size: 16, 16
|
||||
split: 4, 4, 4, 4
|
||||
pad: 0, 0, 0, 0
|
||||
orig: 16, 16
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
radio-button
|
||||
rotate: false
|
||||
xy: 844, 217
|
||||
size: 16, 12
|
||||
orig: 16, 12
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
radio-button
|
||||
rotate: false
|
||||
xy: 844, 217
|
||||
size: 16, 12
|
||||
split: 14, 0, 5, 5
|
||||
pad: 13, 0, 0, 0
|
||||
orig: 16, 12
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
radio-button-off
|
||||
rotate: false
|
||||
xy: 1, 1
|
||||
size: 16, 12
|
||||
orig: 16, 12
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
scroll-bar
|
||||
rotate: false
|
||||
xy: 20, 16
|
||||
size: 14, 14
|
||||
split: 6, 6, 6, 6
|
||||
pad: 0, 0, 0, 0
|
||||
orig: 14, 14
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
scroll-bar-horizontal-knob
|
||||
rotate: false
|
||||
xy: 47, 117
|
||||
size: 30, 14
|
||||
split: 15, 14, 7, 6
|
||||
pad: 0, 0, 0, 0
|
||||
orig: 30, 14
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
scroll-bar-vertical-knob
|
||||
rotate: false
|
||||
xy: 762, 166
|
||||
size: 14, 30
|
||||
split: 7, 6, 16, 13
|
||||
pad: 0, 0, 0, 0
|
||||
orig: 14, 30
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
slider
|
||||
rotate: false
|
||||
xy: 40, 65
|
||||
size: 4, 4
|
||||
orig: 4, 4
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
slider-knob
|
||||
rotate: false
|
||||
xy: 777, 167
|
||||
size: 10, 12
|
||||
orig: 10, 12
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
sound
|
||||
rotate: false
|
||||
xy: 715, 197
|
||||
size: 58, 32
|
||||
orig: 58, 32
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
sound-off
|
||||
rotate: false
|
||||
xy: 47, 132
|
||||
size: 58, 32
|
||||
orig: 58, 32
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
touchpad
|
||||
rotate: false
|
||||
xy: 514, 29
|
||||
size: 200, 200
|
||||
orig: 200, 200
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
touchpad-knob
|
||||
rotate: false
|
||||
xy: 1, 70
|
||||
size: 44, 44
|
||||
orig: 44, 44
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
vertical-split-pane
|
||||
rotate: false
|
||||
xy: 794, 182
|
||||
size: 10, 14
|
||||
split: 0, 0, 6, 6
|
||||
pad: 0, 1, 0, 0
|
||||
orig: 10, 14
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
white
|
||||
rotate: false
|
||||
xy: 93, 129
|
||||
size: 2, 2
|
||||
orig: 2, 2
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
window
|
||||
rotate: false
|
||||
xy: 1, 115
|
||||
size: 45, 49
|
||||
split: 20, 20, 22, 22
|
||||
pad: 22, 22, 24, 24
|
||||
orig: 45, 49
|
||||
offset: 0, 0
|
||||
index: -1
|
|
@ -0,0 +1,87 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Stylesheet TextureRegionAtlas="ui_stylesheet.atlas">
|
||||
<Fonts>
|
||||
<Font Id="commodore-64" File="commodore-64.fnt"/>
|
||||
</Fonts>
|
||||
<DesktopStyle Background="blue" />
|
||||
<LabelStyles>
|
||||
<LabelStyle Font="commodore-64" TextColor="white" />
|
||||
</LabelStyles>
|
||||
<TextBoxStyles>
|
||||
<TextBoxStyle Background="white" TextColor="black" Font="commodore-64" Cursor="cursor-black" Selection="light-blue" />
|
||||
</TextBoxStyles>
|
||||
<ScrollViewerStyles>
|
||||
<ScrollViewerStyle HorizontalScrollBackground="scroll-bar" HorizontalScrollKnob="scroll-bar-horizontal-knob" VerticalScrollBackground="scroll-bar" VerticalScrollKnob="scroll-bar-vertical-knob" />
|
||||
</ScrollViewerStyles>
|
||||
<ButtonStyles>
|
||||
<ButtonStyle Background="button" Padding="8, 5" PressedBackground="button-down">
|
||||
<LabelStyle Font="commodore-64" TextColor="white" />
|
||||
</ButtonStyle>
|
||||
</ButtonStyles>
|
||||
<CheckBoxStyles>
|
||||
<CheckBoxStyle>
|
||||
<LabelStyle Font="commodore-64" TextColor="white" />
|
||||
<ImageStyle Image="check-box-off" PressedImage="check-box" />
|
||||
</CheckBoxStyle>
|
||||
</CheckBoxStyles>
|
||||
<HorizontalSliderStyles>
|
||||
<HorizontalSliderStyle Background="slider">
|
||||
<KnobStyle>
|
||||
<ImageStyle Image="slider-knob" />
|
||||
</KnobStyle>
|
||||
</HorizontalSliderStyle>
|
||||
</HorizontalSliderStyles>
|
||||
<VerticalSliderStyles>
|
||||
<VerticalSliderStyle Background="slider">
|
||||
<KnobStyle>
|
||||
<ImageStyle Image="slider-knob" />
|
||||
</KnobStyle>
|
||||
</VerticalSliderStyle>
|
||||
</VerticalSliderStyles>
|
||||
<HorizontalProgressBarStyles>
|
||||
<HorizontalProgressBarStyle Background="progress-bar" Filler="progress-bar-knob" Height="16" />
|
||||
</HorizontalProgressBarStyles>
|
||||
<VerticalProgressBarStyles>
|
||||
<VerticalProgressBarStyle Background="progress-bar" Filler="progress-bar-knob" Width="16" />
|
||||
</VerticalProgressBarStyles>
|
||||
<ComboBoxStyles>
|
||||
<ComboBoxStyle Background="list">
|
||||
<LabelStyle Font="commodore-64" TextColor="white" />
|
||||
<ListBoxStyle Background="blue">
|
||||
<ListItemStyle OverBackground="white" Padding="8, 5" PressedBackground="button-down">
|
||||
<LabelStyle Font="commodore-64" TextColor="white" OverTextColor="blue" PressedTextColor="blue" />
|
||||
</ListItemStyle>
|
||||
</ListBoxStyle>
|
||||
</ComboBoxStyle>
|
||||
</ComboBoxStyles>
|
||||
<ListBoxStyles>
|
||||
<ListBoxStyle>
|
||||
<ListItemStyle PressedBackground="white">
|
||||
<LabelStyle Font="commodore-64" TextColor="white" PressedTextColor="blue" />
|
||||
</ListItemStyle>
|
||||
</ListBoxStyle>
|
||||
</ListBoxStyles>
|
||||
<TreeStyles>
|
||||
<TreeStyle SelectionBackground="progress-bar">
|
||||
<MarkStyle>
|
||||
<ImageStyle Image="plus" PressedImage="minus" />
|
||||
</MarkStyle>
|
||||
<LabelStyle Font="commodore-64" TextColor="white" />
|
||||
</TreeStyle>
|
||||
</TreeStyles>
|
||||
<HorizontalSplitPaneStyles>
|
||||
<HorizontalSplitPaneStyle>
|
||||
<HandleStyle Background="horizontal-split-pane" />
|
||||
</HorizontalSplitPaneStyle>
|
||||
</HorizontalSplitPaneStyles>
|
||||
<VerticalSplitPaneStyles>
|
||||
<VerticalSplitPaneStyle>
|
||||
<HandleStyle Background="vertical-split-pane" />
|
||||
</VerticalSplitPaneStyle>
|
||||
</VerticalSplitPaneStyles>
|
||||
<WindowStyles>
|
||||
<WindowStyle Background="window" Padding="25">
|
||||
<TitleStyle Font="commodore-64" TextColor="white" />
|
||||
</WindowStyle>
|
||||
</WindowStyles>
|
||||
</Stylesheet>
|
After Width: | Height: | Size: 5.8 KiB |
101
External tools/Myra.1.2.1.0/Stylesheets/libgdx/ui_font.fnt
Normal file
|
@ -0,0 +1,101 @@
|
|||
info face="Droid Sans" size=17 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1
|
||||
common lineHeight=20 base=18 scaleW=256 scaleH=128 pages=1 packed=0
|
||||
page id=0 file="ui_stylesheet.atlas:default"
|
||||
chars count=95
|
||||
char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=16 xadvance=4 page=0 chnl=0
|
||||
char id=124 x=0 y=0 width=6 height=20 xoffset=1 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=106 x=6 y=0 width=9 height=20 xoffset=-4 yoffset=3 xadvance=4 page=0 chnl=0
|
||||
char id=81 x=15 y=0 width=15 height=19 xoffset=-2 yoffset=3 xadvance=12 page=0 chnl=0
|
||||
char id=74 x=30 y=0 width=11 height=19 xoffset=-5 yoffset=3 xadvance=4 page=0 chnl=0
|
||||
char id=125 x=41 y=0 width=10 height=18 xoffset=-3 yoffset=3 xadvance=6 page=0 chnl=0
|
||||
char id=123 x=51 y=0 width=10 height=18 xoffset=-3 yoffset=3 xadvance=6 page=0 chnl=0
|
||||
char id=93 x=61 y=0 width=8 height=18 xoffset=-3 yoffset=3 xadvance=5 page=0 chnl=0
|
||||
char id=91 x=69 y=0 width=8 height=18 xoffset=-2 yoffset=3 xadvance=5 page=0 chnl=0
|
||||
char id=41 x=77 y=0 width=9 height=18 xoffset=-3 yoffset=3 xadvance=5 page=0 chnl=0
|
||||
char id=40 x=86 y=0 width=9 height=18 xoffset=-3 yoffset=3 xadvance=5 page=0 chnl=0
|
||||
char id=64 x=95 y=0 width=18 height=17 xoffset=-3 yoffset=3 xadvance=14 page=0 chnl=0
|
||||
char id=121 x=113 y=0 width=13 height=17 xoffset=-3 yoffset=6 xadvance=8 page=0 chnl=0
|
||||
char id=113 x=126 y=0 width=13 height=17 xoffset=-3 yoffset=6 xadvance=9 page=0 chnl=0
|
||||
char id=112 x=139 y=0 width=13 height=17 xoffset=-2 yoffset=6 xadvance=9 page=0 chnl=0
|
||||
char id=103 x=152 y=0 width=13 height=17 xoffset=-3 yoffset=6 xadvance=8 page=0 chnl=0
|
||||
char id=38 x=165 y=0 width=16 height=16 xoffset=-3 yoffset=3 xadvance=11 page=0 chnl=0
|
||||
char id=37 x=181 y=0 width=18 height=16 xoffset=-3 yoffset=3 xadvance=14 page=0 chnl=0
|
||||
char id=36 x=199 y=0 width=12 height=16 xoffset=-2 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=63 x=211 y=0 width=11 height=16 xoffset=-3 yoffset=3 xadvance=7 page=0 chnl=0
|
||||
char id=33 x=222 y=0 width=7 height=16 xoffset=-2 yoffset=3 xadvance=4 page=0 chnl=0
|
||||
char id=48 x=229 y=0 width=13 height=16 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=57 x=242 y=0 width=13 height=16 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=56 x=0 y=20 width=13 height=16 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=54 x=13 y=20 width=13 height=16 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=53 x=26 y=20 width=12 height=16 xoffset=-2 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=51 x=38 y=20 width=13 height=16 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=100 x=51 y=20 width=13 height=16 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=98 x=64 y=20 width=13 height=16 xoffset=-2 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=85 x=77 y=20 width=14 height=16 xoffset=-2 yoffset=3 xadvance=11 page=0 chnl=0
|
||||
char id=83 x=91 y=20 width=13 height=16 xoffset=-3 yoffset=3 xadvance=8 page=0 chnl=0
|
||||
char id=79 x=104 y=20 width=15 height=16 xoffset=-2 yoffset=3 xadvance=12 page=0 chnl=0
|
||||
char id=71 x=119 y=20 width=14 height=16 xoffset=-2 yoffset=3 xadvance=11 page=0 chnl=0
|
||||
char id=67 x=133 y=20 width=13 height=16 xoffset=-2 yoffset=3 xadvance=10 page=0 chnl=0
|
||||
char id=127 x=146 y=20 width=12 height=15 xoffset=-2 yoffset=3 xadvance=10 page=0 chnl=0
|
||||
char id=35 x=158 y=20 width=15 height=15 xoffset=-3 yoffset=3 xadvance=10 page=0 chnl=0
|
||||
char id=92 x=173 y=20 width=11 height=15 xoffset=-3 yoffset=3 xadvance=6 page=0 chnl=0
|
||||
char id=47 x=184 y=20 width=11 height=15 xoffset=-3 yoffset=3 xadvance=6 page=0 chnl=0
|
||||
char id=59 x=195 y=20 width=8 height=15 xoffset=-3 yoffset=6 xadvance=4 page=0 chnl=0
|
||||
char id=55 x=203 y=20 width=13 height=15 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=52 x=216 y=20 width=14 height=15 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=50 x=230 y=20 width=13 height=15 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=49 x=243 y=20 width=9 height=15 xoffset=-2 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=116 x=0 y=36 width=10 height=15 xoffset=-3 yoffset=4 xadvance=5 page=0 chnl=0
|
||||
char id=108 x=10 y=36 width=6 height=15 xoffset=-2 yoffset=3 xadvance=4 page=0 chnl=0
|
||||
char id=107 x=16 y=36 width=12 height=15 xoffset=-2 yoffset=3 xadvance=8 page=0 chnl=0
|
||||
char id=105 x=28 y=36 width=7 height=15 xoffset=-2 yoffset=3 xadvance=4 page=0 chnl=0
|
||||
char id=104 x=35 y=36 width=12 height=15 xoffset=-2 yoffset=3 xadvance=10 page=0 chnl=0
|
||||
char id=102 x=47 y=36 width=11 height=15 xoffset=-3 yoffset=3 xadvance=5 page=0 chnl=0
|
||||
char id=90 x=58 y=36 width=13 height=15 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=89 x=71 y=36 width=13 height=15 xoffset=-3 yoffset=3 xadvance=8 page=0 chnl=0
|
||||
char id=88 x=84 y=36 width=14 height=15 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=87 x=98 y=36 width=19 height=15 xoffset=-3 yoffset=3 xadvance=15 page=0 chnl=0
|
||||
char id=86 x=117 y=36 width=14 height=15 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=84 x=131 y=36 width=13 height=15 xoffset=-3 yoffset=3 xadvance=8 page=0 chnl=0
|
||||
char id=82 x=144 y=36 width=13 height=15 xoffset=-2 yoffset=3 xadvance=10 page=0 chnl=0
|
||||
char id=80 x=157 y=36 width=12 height=15 xoffset=-2 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=78 x=169 y=36 width=14 height=15 xoffset=-2 yoffset=3 xadvance=12 page=0 chnl=0
|
||||
char id=77 x=183 y=36 width=17 height=15 xoffset=-2 yoffset=3 xadvance=14 page=0 chnl=0
|
||||
char id=76 x=200 y=36 width=11 height=15 xoffset=-2 yoffset=3 xadvance=8 page=0 chnl=0
|
||||
char id=75 x=211 y=36 width=13 height=15 xoffset=-2 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=73 x=224 y=36 width=10 height=15 xoffset=-3 yoffset=3 xadvance=5 page=0 chnl=0
|
||||
char id=72 x=234 y=36 width=14 height=15 xoffset=-2 yoffset=3 xadvance=11 page=0 chnl=0
|
||||
char id=70 x=0 y=51 width=11 height=15 xoffset=-2 yoffset=3 xadvance=8 page=0 chnl=0
|
||||
char id=69 x=11 y=51 width=11 height=15 xoffset=-2 yoffset=3 xadvance=8 page=0 chnl=0
|
||||
char id=68 x=22 y=51 width=14 height=15 xoffset=-2 yoffset=3 xadvance=11 page=0 chnl=0
|
||||
char id=66 x=36 y=51 width=13 height=15 xoffset=-2 yoffset=3 xadvance=10 page=0 chnl=0
|
||||
char id=65 x=49 y=51 width=15 height=15 xoffset=-3 yoffset=3 xadvance=10 page=0 chnl=0
|
||||
char id=58 x=64 y=51 width=7 height=13 xoffset=-2 yoffset=6 xadvance=4 page=0 chnl=0
|
||||
char id=117 x=71 y=51 width=12 height=13 xoffset=-2 yoffset=6 xadvance=10 page=0 chnl=0
|
||||
char id=115 x=83 y=51 width=11 height=13 xoffset=-3 yoffset=6 xadvance=7 page=0 chnl=0
|
||||
char id=111 x=94 y=51 width=13 height=13 xoffset=-3 yoffset=6 xadvance=9 page=0 chnl=0
|
||||
char id=101 x=107 y=51 width=13 height=13 xoffset=-3 yoffset=6 xadvance=9 page=0 chnl=0
|
||||
char id=99 x=120 y=51 width=12 height=13 xoffset=-3 yoffset=6 xadvance=7 page=0 chnl=0
|
||||
char id=97 x=132 y=51 width=12 height=13 xoffset=-3 yoffset=6 xadvance=9 page=0 chnl=0
|
||||
char id=60 x=144 y=51 width=13 height=12 xoffset=-3 yoffset=5 xadvance=9 page=0 chnl=0
|
||||
char id=122 x=157 y=51 width=11 height=12 xoffset=-3 yoffset=6 xadvance=7 page=0 chnl=0
|
||||
char id=120 x=168 y=51 width=13 height=12 xoffset=-3 yoffset=6 xadvance=8 page=0 chnl=0
|
||||
char id=119 x=181 y=51 width=17 height=12 xoffset=-3 yoffset=6 xadvance=12 page=0 chnl=0
|
||||
char id=118 x=198 y=51 width=13 height=12 xoffset=-3 yoffset=6 xadvance=8 page=0 chnl=0
|
||||
char id=114 x=211 y=51 width=10 height=12 xoffset=-2 yoffset=6 xadvance=6 page=0 chnl=0
|
||||
char id=110 x=221 y=51 width=12 height=12 xoffset=-2 yoffset=6 xadvance=10 page=0 chnl=0
|
||||
char id=109 x=233 y=51 width=17 height=12 xoffset=-2 yoffset=6 xadvance=15 page=0 chnl=0
|
||||
char id=94 x=0 y=66 width=13 height=11 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=62 x=13 y=66 width=13 height=11 xoffset=-3 yoffset=5 xadvance=9 page=0 chnl=0
|
||||
char id=42 x=26 y=66 width=13 height=10 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0
|
||||
char id=43 x=39 y=66 width=13 height=10 xoffset=-3 yoffset=6 xadvance=9 page=0 chnl=0
|
||||
char id=61 x=52 y=66 width=13 height=8 xoffset=-3 yoffset=7 xadvance=9 page=0 chnl=0
|
||||
char id=39 x=65 y=66 width=6 height=8 xoffset=-2 yoffset=3 xadvance=3 page=0 chnl=0
|
||||
char id=34 x=71 y=66 width=9 height=8 xoffset=-2 yoffset=3 xadvance=6 page=0 chnl=0
|
||||
char id=44 x=80 y=66 width=8 height=7 xoffset=-3 yoffset=14 xadvance=4 page=0 chnl=0
|
||||
char id=126 x=88 y=66 width=13 height=6 xoffset=-3 yoffset=8 xadvance=9 page=0 chnl=0
|
||||
char id=46 x=101 y=66 width=7 height=6 xoffset=-2 yoffset=13 xadvance=4 page=0 chnl=0
|
||||
char id=96 x=108 y=66 width=8 height=6 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=0
|
||||
char id=45 x=116 y=66 width=9 height=5 xoffset=-3 yoffset=10 xadvance=5 page=0 chnl=0
|
||||
char id=95 x=125 y=66 width=13 height=4 xoffset=-4 yoffset=17 xadvance=6 page=0 chnl=0
|
||||
kernings count=-1
|
|
@ -0,0 +1,201 @@
|
|||
|
||||
ui_stylesheet_atlas.png
|
||||
size: 256,128
|
||||
format: RGBA8888
|
||||
filter: Linear,Linear
|
||||
repeat: none
|
||||
check-off
|
||||
rotate: false
|
||||
xy: 11, 5
|
||||
size: 14, 14
|
||||
orig: 14, 14
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
textfield
|
||||
rotate: false
|
||||
xy: 11, 5
|
||||
size: 14, 14
|
||||
split: 3, 3, 3, 3
|
||||
orig: 14, 14
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
check-on
|
||||
rotate: false
|
||||
xy: 125, 35
|
||||
size: 14, 14
|
||||
orig: 14, 14
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
cursor
|
||||
rotate: false
|
||||
xy: 23, 1
|
||||
size: 3, 3
|
||||
split: 1, 1, 1, 1
|
||||
orig: 3, 3
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
default
|
||||
rotate: false
|
||||
xy: 1, 50
|
||||
size: 254, 77
|
||||
orig: 254, 77
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
default-pane
|
||||
rotate: false
|
||||
xy: 11, 1
|
||||
size: 5, 3
|
||||
split: 1, 1, 1, 1
|
||||
orig: 5, 3
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
default-rect-pad
|
||||
rotate: false
|
||||
xy: 11, 1
|
||||
size: 5, 3
|
||||
split: 1, 1, 1, 1
|
||||
orig: 5, 3
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
default-pane-noborder
|
||||
rotate: false
|
||||
xy: 170, 44
|
||||
size: 1, 1
|
||||
split: 0, 0, 0, 0
|
||||
orig: 1, 1
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
default-rect
|
||||
rotate: false
|
||||
xy: 38, 25
|
||||
size: 3, 3
|
||||
split: 1, 1, 1, 1
|
||||
orig: 3, 3
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
default-rect-down
|
||||
rotate: false
|
||||
xy: 170, 46
|
||||
size: 3, 3
|
||||
split: 1, 1, 1, 1
|
||||
orig: 3, 3
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
default-round
|
||||
rotate: false
|
||||
xy: 112, 29
|
||||
size: 12, 20
|
||||
split: 5, 5, 5, 4
|
||||
pad: 4, 4, 1, 1
|
||||
orig: 12, 20
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
default-round-down
|
||||
rotate: false
|
||||
xy: 99, 29
|
||||
size: 12, 20
|
||||
split: 5, 5, 5, 4
|
||||
pad: 4, 4, 1, 1
|
||||
orig: 12, 20
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
default-round-large
|
||||
rotate: false
|
||||
xy: 57, 29
|
||||
size: 20, 20
|
||||
split: 5, 5, 5, 4
|
||||
orig: 20, 20
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
default-scroll
|
||||
rotate: false
|
||||
xy: 78, 29
|
||||
size: 20, 20
|
||||
split: 2, 2, 2, 2
|
||||
orig: 20, 20
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
default-select
|
||||
rotate: false
|
||||
xy: 29, 29
|
||||
size: 27, 20
|
||||
split: 4, 14, 4, 4
|
||||
orig: 27, 20
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
default-select-selection
|
||||
rotate: false
|
||||
xy: 26, 16
|
||||
size: 3, 3
|
||||
split: 1, 1, 1, 1
|
||||
orig: 3, 3
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
default-slider
|
||||
rotate: false
|
||||
xy: 29, 20
|
||||
size: 8, 8
|
||||
split: 2, 2, 2, 2
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
default-slider-knob
|
||||
rotate: false
|
||||
xy: 1, 1
|
||||
size: 9, 18
|
||||
orig: 9, 18
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
default-splitpane
|
||||
rotate: false
|
||||
xy: 17, 1
|
||||
size: 5, 3
|
||||
split: 0, 5, 0, 0
|
||||
orig: 5, 3
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
default-splitpane-vertical
|
||||
rotate: false
|
||||
xy: 125, 29
|
||||
size: 3, 5
|
||||
split: 0, 0, 0, 5
|
||||
orig: 3, 5
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
default-window
|
||||
rotate: false
|
||||
xy: 1, 20
|
||||
size: 27, 29
|
||||
split: 4, 3, 20, 3
|
||||
orig: 27, 29
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
selection
|
||||
rotate: false
|
||||
xy: 174, 48
|
||||
size: 1, 1
|
||||
orig: 1, 1
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
tree-minus
|
||||
rotate: false
|
||||
xy: 140, 35
|
||||
size: 14, 14
|
||||
orig: 14, 14
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
tree-plus
|
||||
rotate: false
|
||||
xy: 155, 35
|
||||
size: 14, 14
|
||||
orig: 14, 14
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
white
|
||||
rotate: false
|
||||
xy: 129, 31
|
||||
size: 3, 3
|
||||
orig: 3, 3
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
|
|
@ -0,0 +1,112 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Stylesheet TextureRegionAtlas="ui_stylesheet.atlas">
|
||||
<Fonts>
|
||||
<Font Id="ui_font" File="ui_font.fnt"/>
|
||||
</Fonts>
|
||||
<TextBlockStyles>
|
||||
<TextBlockStyle Font="ui_font" TextColor="white" DisabledTextColor="gray" />
|
||||
</TextBlockStyles>
|
||||
<TextFieldStyles>
|
||||
<TextFieldStyle Background="textfield" TextColor="white" DisabledTextColor="gray" Font="ui_font" Cursor="cursor" Selection="selection" />
|
||||
</TextFieldStyles>
|
||||
<ScrollPaneStyles>
|
||||
<ScrollPaneStyle Background="default-rect" HorizontalScrollBackground="default-scroll" HorizontalScrollKnob="default-round-large" VerticalScrollBackground="default-scroll" VerticalScrollKnob="default-round-large" />
|
||||
</ScrollPaneStyles>
|
||||
<ButtonStyles>
|
||||
<ButtonStyle Background="default-round" Padding="5, 0" PressedBackground="default-round-down">
|
||||
<TextBlockStyle Font="ui_font" TextColor="white" DisabledTextColor="gray" />
|
||||
</ButtonStyle>
|
||||
</ButtonStyles>
|
||||
<CheckBoxStyles>
|
||||
<CheckBoxStyle>
|
||||
<LabelStyle Font="ui_font" TextColor="white" />
|
||||
<ImageStyle Image="check-off" PressedImage="check-on" />
|
||||
</CheckBoxStyle>
|
||||
</CheckBoxStyles>
|
||||
<SpinButtonStyles>
|
||||
<SpinButtonStyle Background="textfield">
|
||||
<TextFieldStyle TextColor="white" DisabledTextColor="gray" Font="ui_font" Cursor="cursor" Selection="selection" />
|
||||
<UpButtonStyle Background="default-round" PressedBackground="default-round-down">
|
||||
<ImageStyle Image="tree-plus" />
|
||||
</UpButtonStyle>
|
||||
<DownButtonStyle Background="default-round" PressedBackground="default-round-down">
|
||||
<ImageStyle Image="tree-minus" />
|
||||
</DownButtonStyle>
|
||||
</SpinButtonStyle>
|
||||
</SpinButtonStyles>
|
||||
<HorizontalSliderStyles>
|
||||
<HorizontalSliderStyle Background="default-slider">
|
||||
<KnobStyle>
|
||||
<ImageStyle Image="default-slider-knob" />
|
||||
</KnobStyle>
|
||||
</HorizontalSliderStyle>
|
||||
</HorizontalSliderStyles>
|
||||
<VerticalSliderStyles>
|
||||
<VerticalSliderStyle Background="default-slider">
|
||||
<KnobStyle>
|
||||
<ImageStyle Image="default-slider-knob" />
|
||||
</KnobStyle>
|
||||
</VerticalSliderStyle>
|
||||
</VerticalSliderStyles>
|
||||
<HorizontalProgressBarStyles>
|
||||
<HorizontalProgressBarStyle Background="default-round" Filler="default-round-down" />
|
||||
</HorizontalProgressBarStyles>
|
||||
<VerticalProgressBarStyles>
|
||||
<VerticalProgressBarStyle Background="default-round" Filler="default-round-down" />
|
||||
</VerticalProgressBarStyles>
|
||||
<ComboBoxStyles>
|
||||
<ComboBoxStyle Background="default-select">
|
||||
<LabelStyle Font="ui_font" TextColor="white" />
|
||||
<ListBoxStyle Background="default-rect">
|
||||
<ListItemStyle PressedBackground="default-select-selection">
|
||||
<LabelStyle Font="ui_font" TextColor="white" />
|
||||
</ListItemStyle>
|
||||
</ListBoxStyle>
|
||||
</ComboBoxStyle>
|
||||
</ComboBoxStyles>
|
||||
<ListBoxStyles>
|
||||
<ListBoxStyle Background="default-rect">
|
||||
<ListItemStyle Padding="5, 0" PressedBackground="default-select-selection">
|
||||
<LabelStyle Font="ui_font" TextColor="white" DisabledTextColor="gray" />
|
||||
</ListItemStyle>
|
||||
</ListBoxStyle>
|
||||
</ListBoxStyles>
|
||||
<TreeStyles>
|
||||
<TreeStyle>
|
||||
<MarkStyle>
|
||||
<ImageStyle Image="tree-plus" PressedImage="tree-minus" />
|
||||
</MarkStyle>
|
||||
<LabelStyle Font="ui_font" TextColor="white" DisabledTextColor="gray" />
|
||||
</TreeStyle>
|
||||
</TreeStyles>
|
||||
<HorizontalSplitPaneStyles>
|
||||
<HorizontalSplitPaneStyle>
|
||||
<HandleStyle Background="default-splitpane" />
|
||||
</HorizontalSplitPaneStyle>
|
||||
</HorizontalSplitPaneStyles>
|
||||
<VerticalSplitPaneStyles>
|
||||
<VerticalSplitPaneStyle>
|
||||
<HandleStyle Background="default-splitpane-vertical" />
|
||||
</VerticalSplitPaneStyle>
|
||||
</VerticalSplitPaneStyles>
|
||||
<HorizontalMenuStyles>
|
||||
<HorizontalMenuStyle Background="default-round" SelectionBackground="default-round-down">
|
||||
<LabelStyle Padding="5, 0, 5, 2" Font="ui_font" TextColor="white" DisabledTextColor="gray" />
|
||||
<SeparatorStyle Image="default-round" Thickness="3" />
|
||||
</HorizontalMenuStyle>
|
||||
</HorizontalMenuStyles>
|
||||
<VerticalMenuStyles>
|
||||
<VerticalMenuStyle Background="default-round" SelectionBackground="default-round-down">
|
||||
<LabelStyle Padding="5, 2" Font="ui_font" TextColor="white" DisabledTextColor="gray" />
|
||||
<SeparatorStyle Padding="0, 0, 2, 2" Image="default-round" Thickness="4" />
|
||||
</VerticalMenuStyle>
|
||||
</VerticalMenuStyles>
|
||||
<WindowStyles>
|
||||
<WindowStyle Background="default-window" Padding="2, 0">
|
||||
<TitleStyle Padding="5, 0" Font="ui_font" TextColor="white" />
|
||||
<CloseButtonStyle>
|
||||
<ImageStyle Image="default-round" PressedImage="default-round-down" />
|
||||
</CloseButtonStyle>
|
||||
</WindowStyle>
|
||||
</WindowStyles>
|
||||
</Stylesheet>
|
After Width: | Height: | Size: 22 KiB |
BIN
External tools/Myra.1.2.1.0/image.png
Normal file
After Width: | Height: | Size: 40 KiB |
BIN
External tools/Myra.1.2.1.0/info.lundin.math.dll
Normal file
BIN
External tools/Myra.1.2.1.0/libSDL2-2.0.0.dylib
Normal file
BIN
External tools/Myra.1.2.1.0/libopenal.1.dylib
Normal file
36
README.md
|
@ -1,38 +1,2 @@
|
|||
# Map
|
||||
|
||||
to start the container run:
|
||||
|
||||
```
|
||||
docker run --name=<name> -p:5000:80 -v /home/michele/sledgemapper/:/app/db -d privateregistry.michelescandura.com/michele/sledgemapper:<version>
|
||||
```
|
||||
|
||||
Curl
|
||||
|
||||
Register user
|
||||
```
|
||||
curl -i -X POST -H "Content-Type: application/json" http://localhost:5000/users/register -d '{\"FirstName\":\"Michele\",\"LastName\":\"Scandura\", \"Username\":\"michele.scandura@outlook.com\", \"Password\":\"password1\", \"Initials\":\"MS\"}'
|
||||
```
|
||||
|
||||
Login
|
||||
```
|
||||
curl -i -X POST -H "Content-Type: application/json" http://localhost:5000/users/authenticate -d '{\"Username\":\"michele.scandura@outlook.com\", \"Password\":\"password1\"}'
|
||||
```
|
||||
|
||||
New Campaign
|
||||
```
|
||||
curl -i -X POST -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1bmlxdWVfbmFtZSI6IjEiLCJuYmYiOjE2MTM3MjgzMjksImV4cCI6MTYxNDMzMzEyOCwiaWF0IjoxNjEzNzI4MzI5fQ.VEsDbYUTnnvpgWnB5buE88JyGx_cg3TJb5ybC3eLvmc" http://localhost:5000/campaign/highfell -d '""'
|
||||
```
|
||||
|
||||
Get Campaigns
|
||||
```
|
||||
curl -i -X GET -H "Content-Type: application/json" -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1bmlxdWVfbmFtZSI6IjEiLCJuYmYiOjE2MTM3MjgzMjksImV4cCI6MTYxNDMzMzEyOCwiaWF0IjoxNjEzNzI4MzI5fQ.VEsDbYUTnnvpgWnB5buE88JyGx_cg3TJb5ybC3eLvmc" http://localhost:5000/campaign -d '""'
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
curl -i -X POST -H "Content-Type: application/json" http://localhost:5000/AuthManagement/register -d '{\"FirstName\":\"Michele\",\"LastName\":\"Scandura\", \"UserName\":\"michele\", \"Password\":\"Password1!\", \"Initials\":\"MS\", \"Email\":\"michele.scandura@outlook.com\"}'
|
||||
```
|
||||
|
||||
```
|
||||
curl -i -X POST -H "Content-Type: application/json" http://localhost:5000/AuthManagement/login -d '{ \"Password\":\"Password1!\", \"Email\":\"michele.scandura@outlook.com\"}'
|
||||
```
|
|
@ -7,31 +7,13 @@ namespace Sledgemapper.Api.Commands
|
|||
{
|
||||
public double Timestamp { get; private set; }
|
||||
public string SessionName { get; private set; }
|
||||
public Guid SessionId { get; private set; }
|
||||
public Guid Campaign { get; private set; }
|
||||
public string UserId { get; private set; }
|
||||
public int UserId { get; private set; }
|
||||
|
||||
public BaseCommand(string sessionName, string userId)
|
||||
public BaseCommand(string sessionName, int userId)
|
||||
{
|
||||
Timestamp = DateTimeOffset.Now.ToUnixTimeMilliseconds();
|
||||
SessionName = sessionName;
|
||||
UserId = userId;
|
||||
}
|
||||
|
||||
public BaseCommand(string campaign, string sessionName, string userId)
|
||||
{
|
||||
Timestamp = DateTimeOffset.Now.ToUnixTimeMilliseconds();
|
||||
SessionName = sessionName;
|
||||
Campaign = new Guid(campaign);
|
||||
UserId = userId;
|
||||
}
|
||||
|
||||
public BaseCommand(Guid campaign, Guid sessionId, string userId)
|
||||
{
|
||||
Timestamp = DateTimeOffset.Now.ToUnixTimeMilliseconds();
|
||||
SessionId = sessionId;
|
||||
Campaign = campaign;
|
||||
UserId = userId;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
using System;
|
||||
using Sledgemapper.Shared.Entities;
|
||||
|
||||
namespace Sledgemapper.Api.Commands
|
||||
|
@ -7,7 +6,7 @@ namespace Sledgemapper.Api.Commands
|
|||
{
|
||||
public Note Note { get; private set; }
|
||||
|
||||
public DeleteNoteCommand(Guid campaign, Guid mapName, Note note, string userId) : base(campaign, mapName, userId)
|
||||
public DeleteNoteCommand(string sessionName, Note note, int userId) : base(sessionName, userId)
|
||||
{
|
||||
Note = note;
|
||||
}
|
||||
|
|
|
@ -1,13 +1,12 @@
|
|||
using System;
|
||||
using Sledgemapper.Shared.Entities;
|
||||
|
||||
namespace Sledgemapper.Api.Commands
|
||||
{
|
||||
public class DeleteOverlayCommand : BaseCommand<bool>
|
||||
public class DeleteOverlayCommand : BaseCommand<bool>
|
||||
{
|
||||
public Overlay Overlay { get; private set; }
|
||||
|
||||
public DeleteOverlayCommand(Guid campaign, Guid mapName, Overlay overlay, string userId) : base(campaign, mapName, userId)
|
||||
public DeleteOverlayCommand(string sessionName, Overlay overlay, int userId) : base(sessionName, userId)
|
||||
{
|
||||
Overlay = overlay;
|
||||
}
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
using System;
|
||||
using Sledgemapper.Shared.Entities;
|
||||
|
||||
namespace Sledgemapper.Api.Commands
|
||||
|
@ -7,7 +6,7 @@ namespace Sledgemapper.Api.Commands
|
|||
{
|
||||
public Tile Tile { get; private set; }
|
||||
|
||||
public DeleteTileCommand(Guid campaign, Guid mapName, Tile tile, string userId) : base(campaign, mapName, userId)
|
||||
public DeleteTileCommand(string sessionName, Tile tile, int userId) : base(sessionName, userId)
|
||||
{
|
||||
Tile = tile;
|
||||
}
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
using System;
|
||||
using Sledgemapper.Shared.Entities;
|
||||
|
||||
namespace Sledgemapper.Api.Commands
|
||||
|
@ -7,7 +6,7 @@ namespace Sledgemapper.Api.Commands
|
|||
{
|
||||
public Wall Wall { get; private set; }
|
||||
|
||||
public DeleteWallCommand(Guid campaign, Guid mapName, Wall wall, string userId) : base(campaign, mapName, userId)
|
||||
public DeleteWallCommand(string sessionName, Wall wall, int userId) : base(sessionName, userId)
|
||||
{
|
||||
Wall = wall;
|
||||
}
|
||||
|
|
|
@ -1,21 +0,0 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using MediatR;
|
||||
using Sledgemapper.Shared.Entities;
|
||||
|
||||
namespace Sledgemapper.Api.Commands
|
||||
{
|
||||
public class GetCampaignMapsCommand : IRequest<List<Session>>
|
||||
{
|
||||
public double Timestamp { get; private set; }
|
||||
public Guid CampaignId { get; private set; }
|
||||
public string UserId { get; private set; }
|
||||
|
||||
public GetCampaignMapsCommand(Guid campaignId, string userId)
|
||||
{
|
||||
Timestamp = DateTimeOffset.Now.ToUnixTimeMilliseconds();
|
||||
CampaignId = campaignId;
|
||||
UserId = userId;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,29 +0,0 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using MediatR;
|
||||
using Sledgemapper.Shared.Entities;
|
||||
|
||||
namespace Sledgemapper.Api.Commands
|
||||
{
|
||||
public class GetCampaignPlayersCommand : IRequest<List<Player>>
|
||||
{
|
||||
public double Timestamp { get; private set; }
|
||||
public string CampaignName { get; private set; }
|
||||
public string UserId { get; private set; }
|
||||
public Guid CampaignId { get; private set; }
|
||||
|
||||
public GetCampaignPlayersCommand(string campaingName, string userId)
|
||||
{
|
||||
Timestamp = DateTimeOffset.Now.ToUnixTimeMilliseconds();
|
||||
CampaignName = campaingName;
|
||||
UserId = userId;
|
||||
}
|
||||
|
||||
public GetCampaignPlayersCommand(Guid campaignId, string userId)
|
||||
{
|
||||
Timestamp = DateTimeOffset.Now.ToUnixTimeMilliseconds();
|
||||
CampaignId = campaignId;
|
||||
UserId = userId;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,16 +0,0 @@
|
|||
using System.Collections.Generic;
|
||||
using MediatR;
|
||||
using Sledgemapper.Shared.Entities;
|
||||
|
||||
namespace Sledgemapper.Api.Commands
|
||||
{
|
||||
public class GetCampaignsCommand : IRequest<List<Campaign>>
|
||||
{
|
||||
public string UserId { get; private set; }
|
||||
public GetCampaignsCommand(string userId)
|
||||
{
|
||||
UserId = userId;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,18 +1,14 @@
|
|||
using MediatR;
|
||||
using Sledgemapper.Shared.Entities;
|
||||
using System;
|
||||
|
||||
namespace Sledgemapper.Api.Commands
|
||||
{
|
||||
public class GetMapSnapshotCommand : IRequest<Session>
|
||||
{
|
||||
public Guid MapId { get; private set; }
|
||||
public Guid CampaignId { get; private set;
|
||||
}
|
||||
public GetMapSnapshotCommand(Guid campaignId, Guid mapId)
|
||||
public string SessionName { get; private set; }
|
||||
public GetMapSnapshotCommand(string sessionName)
|
||||
{
|
||||
MapId = mapId;
|
||||
CampaignId = campaignId;
|
||||
SessionName = sessionName;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,21 +0,0 @@
|
|||
using System;
|
||||
using MediatR;
|
||||
|
||||
namespace Sledgemapper.Api.Commands
|
||||
{
|
||||
public class InvitePlayerToCampaignCommand : IRequest<bool>
|
||||
{
|
||||
public double Timestamp { get; private set; }
|
||||
public Guid CampaignId { get; private set; }
|
||||
public string Email { get; private set; }
|
||||
public string UserId { get; private set; }
|
||||
public InvitePlayerToCampaignCommand(Guid campaignId, string email, string userId)
|
||||
{
|
||||
Timestamp = DateTimeOffset.Now.ToUnixTimeMilliseconds();
|
||||
CampaignId = campaignId;
|
||||
UserId = userId;
|
||||
Email = email;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,19 +0,0 @@
|
|||
using System;
|
||||
using MediatR;
|
||||
|
||||
namespace Sledgemapper.Api.Commands
|
||||
{
|
||||
public class NewCampaignCommand : IRequest<bool>
|
||||
{
|
||||
public double Timestamp { get; private set; }
|
||||
public string CampaignName { get; private set; }
|
||||
public string UserId { get; private set; }
|
||||
public NewCampaignCommand(string campaingName, string userId)
|
||||
{
|
||||
Timestamp = DateTimeOffset.Now.ToUnixTimeMilliseconds();
|
||||
CampaignName = campaingName;
|
||||
UserId = userId;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,5 +1,4 @@
|
|||
using Sledgemapper.Shared.Entities;
|
||||
using System;
|
||||
|
||||
namespace Sledgemapper.Api.Commands
|
||||
{
|
||||
|
@ -7,7 +6,7 @@ namespace Sledgemapper.Api.Commands
|
|||
{
|
||||
public Line Line { get; private set; }
|
||||
|
||||
public NewLineCommand(Guid campaign, Guid mapName, Line line, string userId) : base(campaign, mapName, userId)
|
||||
public NewLineCommand(string sessionName, Line line, int userId) : base(sessionName, userId)
|
||||
{
|
||||
Line = line;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
using Sledgemapper.Shared.Entities;
|
||||
using System;
|
||||
|
||||
namespace Sledgemapper.Api.Commands
|
||||
{
|
||||
|
@ -7,7 +6,7 @@ namespace Sledgemapper.Api.Commands
|
|||
{
|
||||
public Note Note { get; private set; }
|
||||
|
||||
public NewNoteCommand(Guid campaignId, Guid mapId, Note note, string userId) : base(campaignId, mapId, userId)
|
||||
public NewNoteCommand(string sessionName, Note note, int userId) : base(sessionName, userId)
|
||||
{
|
||||
Note = note;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
using Sledgemapper.Shared.Entities;
|
||||
using System;
|
||||
|
||||
namespace Sledgemapper.Api.Commands
|
||||
{
|
||||
|
@ -7,7 +6,7 @@ namespace Sledgemapper.Api.Commands
|
|||
{
|
||||
public Overlay Overlay { get; private set; }
|
||||
|
||||
public NewOverlayCommand(Guid campaignId, Guid mapId, Overlay overlay, string userId) : base(campaignId, mapId, userId)
|
||||
public NewOverlayCommand(string sessionName, Overlay overlay, int userId) : base(sessionName, userId)
|
||||
{
|
||||
Overlay = overlay;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
using Sledgemapper.Shared.Entities;
|
||||
using System;
|
||||
|
||||
namespace Sledgemapper.Api.Commands
|
||||
{
|
||||
|
@ -7,7 +6,7 @@ namespace Sledgemapper.Api.Commands
|
|||
{
|
||||
public Room Room { get; private set; }
|
||||
|
||||
public NewRoomCommand(Guid campaignId, Guid mapId, Room room, string userId) : base(campaignId, mapId, userId)
|
||||
public NewRoomCommand(string sessionName, Room room, int userId) : base(sessionName, userId)
|
||||
{
|
||||
Room = room;
|
||||
}
|
||||
|
|
|
@ -1,12 +1,9 @@
|
|||
using System;
|
||||
|
||||
namespace Sledgemapper.Api.Commands
|
||||
{
|
||||
public class NewSessionCommand : BaseCommand<Guid>
|
||||
public class NewSessionCommand : BaseCommand<bool>
|
||||
{
|
||||
public NewSessionCommand(string campaign, string sessionName, string userId) : base(campaign, sessionName, userId)
|
||||
public NewSessionCommand(string sessionName, int userId):base(sessionName, userId)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -5,7 +5,7 @@ namespace Sledgemapper.Api.Commands
|
|||
public class NewSnapshotCommand : BaseCommand<bool>
|
||||
{
|
||||
public Session Session { get; private set; }
|
||||
public NewSnapshotCommand(string sessionName, Session session, string userId) : base(sessionName, userId)
|
||||
public NewSnapshotCommand(string sessionName, Session session, int userId) : base(sessionName, userId)
|
||||
{
|
||||
Session = session;
|
||||
}
|
||||
|
|
|
@ -5,7 +5,7 @@ namespace Sledgemapper.Api.Commands
|
|||
public class NewTileCommand : BaseCommand<bool>
|
||||
{
|
||||
public Tile Tile { get; private set; }
|
||||
public NewTileCommand(string sessionName, Tile tile, string userId) : base(sessionName, userId)
|
||||
public NewTileCommand(string sessionName, Tile tile, int userId) : base(sessionName, userId)
|
||||
{
|
||||
Tile = tile;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
using Sledgemapper.Shared.Entities;
|
||||
using System;
|
||||
|
||||
namespace Sledgemapper.Api.Commands
|
||||
{
|
||||
|
@ -7,7 +6,7 @@ namespace Sledgemapper.Api.Commands
|
|||
{
|
||||
public Wall Wall { get; private set; }
|
||||
|
||||
public NewWallCommand(Guid campaignId, Guid mapId, Wall wall, string userId) : base(campaignId, mapId, userId)
|
||||
public NewWallCommand(string sessionName, Wall wall, int userId) : base(sessionName, userId)
|
||||
{
|
||||
Wall = wall;
|
||||
}
|
||||
|
|
|
@ -1,13 +0,0 @@
|
|||
// using Sledgemapper.Shared.Entities;
|
||||
|
||||
// namespace Sledgemapper.Api.Commands
|
||||
// {
|
||||
// public class PingCommand : BaseCommand<bool>
|
||||
// {
|
||||
// public Ping Location { get; private set; }
|
||||
// public PingCommand(string sessionName, Ping location, int userId) : base(sessionName, userId)
|
||||
// {
|
||||
// Location = location;
|
||||
// }
|
||||
// }
|
||||
// }
|
|
@ -1,185 +0,0 @@
|
|||
using AutoMapper;
|
||||
using Microsoft.AspNetCore.Identity;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.Extensions.Options;
|
||||
using Microsoft.IdentityModel.Tokens;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IdentityModel.Tokens.Jwt;
|
||||
using System.Linq;
|
||||
using System.Security.Claims;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Sledgemapper.Api.Core.Entities;
|
||||
using Sledgemapper.Api.Models;
|
||||
|
||||
namespace Sledgemapper.Api.Controllers
|
||||
{
|
||||
[Route("[controller]")] // api/authmanagement
|
||||
[ApiController]
|
||||
public class AuthManagementController : ControllerBase
|
||||
{
|
||||
private readonly UserManager<User> _userManager;
|
||||
private readonly JwtConfig _jwtConfig;
|
||||
private readonly IMapper _mapper;
|
||||
|
||||
public AuthManagementController(UserManager<User> userManager,
|
||||
IOptionsMonitor<JwtConfig> optionsMonitor,
|
||||
IMapper mapper)
|
||||
{
|
||||
_userManager = userManager;
|
||||
_jwtConfig = optionsMonitor.CurrentValue;
|
||||
_mapper = mapper;
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[Route("Register")]
|
||||
public async Task<IActionResult> Register([FromBody] RegisterModel user)
|
||||
{
|
||||
// Check if the incoming request is valid
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
// check i the user with the same email exist
|
||||
var existingUser = await _userManager.FindByEmailAsync(user.Email);
|
||||
|
||||
if (existingUser != null)
|
||||
{
|
||||
return BadRequest(new RegistrationResponse()
|
||||
{
|
||||
Result = false,
|
||||
Errors = new List<string>(){
|
||||
"Email already exist"
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
var newUser = _mapper.Map<User>(user);
|
||||
// var newUser = new User() { Email = user.Email, UserName = user.UserName };
|
||||
var isCreated = await _userManager.CreateAsync(newUser, user.Password);
|
||||
if (isCreated.Succeeded)
|
||||
{
|
||||
var jwtToken = GenerateJwtToken(newUser);
|
||||
|
||||
return Ok(new RegistrationResponse()
|
||||
{
|
||||
Result = true,
|
||||
Token = jwtToken
|
||||
});
|
||||
}
|
||||
|
||||
return new JsonResult(new RegistrationResponse()
|
||||
{
|
||||
Result = false,
|
||||
Errors = isCreated.Errors.Select(x => x.Description).ToList()
|
||||
}
|
||||
)
|
||||
{ StatusCode = 500 };
|
||||
}
|
||||
|
||||
return BadRequest(new RegistrationResponse()
|
||||
{
|
||||
Result = false,
|
||||
Errors = new List<string>(){
|
||||
"Invalid payload"
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[Route("Login")]
|
||||
public async Task<IActionResult> Login([FromBody] UserLoginRequest user)
|
||||
{
|
||||
if (ModelState.IsValid)
|
||||
{
|
||||
// check if the user with the same email exist
|
||||
var existingUser = await _userManager.FindByEmailAsync(user.Email);
|
||||
|
||||
if (existingUser == null)
|
||||
{
|
||||
// We dont want to give to much information on why the request has failed for security reasons
|
||||
return BadRequest(new RegistrationResponse()
|
||||
{
|
||||
Result = false,
|
||||
Errors = new List<string>(){
|
||||
"Invalid authentication request"
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Now we need to check if the user has inputed the right password
|
||||
var isCorrect = await _userManager.CheckPasswordAsync(existingUser, user.Password);
|
||||
|
||||
if (isCorrect)
|
||||
{
|
||||
var jwtToken = GenerateJwtToken(existingUser);
|
||||
|
||||
return Ok(new LoginResponse()
|
||||
{
|
||||
Result = true,
|
||||
Token = jwtToken,
|
||||
Username = existingUser.Email,
|
||||
Initials = existingUser.Initials,
|
||||
Id = existingUser.Id
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
// We dont want to give to much information on why the request has failed for security reasons
|
||||
return BadRequest(new RegistrationResponse()
|
||||
{
|
||||
Result = false,
|
||||
Errors = new List<string>(){
|
||||
"Invalid authentication request"
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return BadRequest(new RegistrationResponse()
|
||||
{
|
||||
Result = false,
|
||||
Errors = new List<string>(){
|
||||
"Invalid payload"
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private string GenerateJwtToken(User user)
|
||||
{
|
||||
// Now its ime to define the jwt token which will be responsible of creating our tokens
|
||||
var jwtTokenHandler = new JwtSecurityTokenHandler();
|
||||
|
||||
// We get our secret from the appsettings
|
||||
var key = Encoding.ASCII.GetBytes(_jwtConfig.Secret);
|
||||
|
||||
// we define our token descriptor
|
||||
// We need to utilise claims which are properties in our token which gives information about the token
|
||||
// which belong to the specific user who it belongs to
|
||||
// so it could contain their id, name, email the good part is that these information
|
||||
// are generated by our server and identity framework which is valid and trusted
|
||||
var tokenDescriptor = new SecurityTokenDescriptor
|
||||
{
|
||||
|
||||
Subject = new ClaimsIdentity(new[]
|
||||
{
|
||||
new Claim("Id", user.Id),
|
||||
new Claim(JwtRegisteredClaimNames.Sub, user.Email),
|
||||
new Claim(JwtRegisteredClaimNames.Email, user.Email),
|
||||
// the JTI is used for our refresh token which we will be convering in the next video
|
||||
new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString())
|
||||
}),
|
||||
// the life span of the token needs to be shorter and utilise refresh token to keep the user signedin
|
||||
// but since this is a demo app we can extend it to fit our current need
|
||||
Expires = DateTime.UtcNow.AddHours(6),
|
||||
// here we are adding the encryption alogorithim information which will be used to decrypt our token
|
||||
SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha512Signature)
|
||||
};
|
||||
|
||||
var token = jwtTokenHandler.CreateToken(tokenDescriptor);
|
||||
|
||||
var jwtToken = jwtTokenHandler.WriteToken(token);
|
||||
|
||||
return jwtToken;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,76 +0,0 @@
|
|||
using MediatR;
|
||||
using Microsoft.AspNetCore.Authentication.JwtBearer;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Sledgemapper.Api.Commands;
|
||||
using Sledgemapper.Shared.Entities;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Sledgemapper.Api.Controllers
|
||||
{
|
||||
[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
|
||||
[Route("[controller]")]
|
||||
public class CampaignController : ControllerBase
|
||||
{
|
||||
private readonly IMediator _mediator;
|
||||
private string UserId => HttpContext.User.Claims.FirstOrDefault(m => m.Type == "Id").Value;
|
||||
|
||||
public CampaignController(IMediator mediator) => _mediator = mediator;
|
||||
|
||||
[HttpPost]
|
||||
[Route("{campaignName}")]
|
||||
public async Task<ActionResult<bool>> Post(string campaignName)
|
||||
{
|
||||
var result = await _mediator.Send(new NewCampaignCommand(campaignName, UserId));
|
||||
if (!result)
|
||||
{
|
||||
return BadRequest();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
//[HttpPost]
|
||||
//[Route("{campaignName}")]
|
||||
//public async Task<Guid> Get(string campaignName)
|
||||
//{
|
||||
// var result = await _mediator.Send(new GetCampaignCommand(campaignName, UserId.ToString()));
|
||||
// return result;
|
||||
//}
|
||||
|
||||
[HttpGet]
|
||||
public async Task<List<Campaign>> Get()
|
||||
{
|
||||
var result = await _mediator.Send(new GetCampaignsCommand(UserId));
|
||||
return result;
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[Route("{campaignId}/players/{email}")]
|
||||
public async Task<bool> Invite(Guid campaignId, string email)
|
||||
{
|
||||
var result = await _mediator.Send(new InvitePlayerToCampaignCommand(campaignId, email, UserId));
|
||||
return result;
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
[Route("{campaignName}/players")]
|
||||
public async Task<List<Player>> GetPlayers(Guid campaignName)
|
||||
{
|
||||
var result = await _mediator.Send(new GetCampaignPlayersCommand(campaignName, UserId));
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
[HttpGet]
|
||||
[Route("{campaignName}/maps")]
|
||||
public async Task<List<Session>> GetMaps(Guid campaignName)
|
||||
{
|
||||
var result = await _mediator.Send(new GetCampaignMapsCommand(campaignName, UserId));
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -1,100 +0,0 @@
|
|||
using System;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using MediatR;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Sledgemapper.Api.Commands;
|
||||
using Sledgemapper.Shared.Entities;
|
||||
|
||||
namespace Sledgemapper.Api.Controllers
|
||||
{
|
||||
[Authorize]
|
||||
[Route("[controller]/{campaign}/{mapName}")]
|
||||
public class MapController : ControllerBase
|
||||
{
|
||||
private readonly IMediator _mediator;
|
||||
|
||||
public MapController(IMediator mediator)
|
||||
{
|
||||
_mediator = mediator;
|
||||
}
|
||||
|
||||
private string UserId => HttpContext.User.Claims.FirstOrDefault(m => m.Type == "Id").Value;
|
||||
|
||||
[HttpDelete("overlay")]
|
||||
public async Task Delete(Guid campaign, Guid mapName, [FromBody] Overlay overlay)
|
||||
{
|
||||
await _mediator.Send(new DeleteOverlayCommand(campaign, mapName, overlay, UserId));
|
||||
}
|
||||
|
||||
[HttpDelete("wall")]
|
||||
public async Task Delete(Guid campaign, Guid mapName, [FromBody] Wall wall)
|
||||
{
|
||||
await _mediator.Send(new DeleteWallCommand(campaign, mapName, wall, UserId));
|
||||
}
|
||||
|
||||
[HttpDelete("note")]
|
||||
public async Task Delete(Guid campaign, Guid mapName, [FromBody] Note note)
|
||||
{
|
||||
await _mediator.Send(new DeleteNoteCommand(campaign, mapName, note, UserId));
|
||||
}
|
||||
|
||||
|
||||
[HttpDelete("tile")]
|
||||
public async Task Delete(Guid campaign, Guid mapName, [FromBody] Tile tile)
|
||||
{
|
||||
await _mediator.Send(new DeleteTileCommand(campaign, mapName, tile, UserId));
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public async Task<Session> Get(Guid campaign, Guid mapName)
|
||||
{
|
||||
var result = await _mediator.Send(new GetMapSnapshotCommand(campaign, mapName));
|
||||
return result;
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
public async Task<Guid> Post(string campaign, string mapName)
|
||||
{
|
||||
var result = await _mediator.Send(new NewSessionCommand(campaign, mapName, UserId));
|
||||
return result;
|
||||
}
|
||||
|
||||
[HttpPost("snapshot")]
|
||||
public async Task Post(string campaign, string mapName, [FromBody] Session session)
|
||||
{
|
||||
await _mediator.Send(new NewSnapshotCommand(mapName, session, UserId));
|
||||
}
|
||||
|
||||
[HttpPost("overlay")]
|
||||
public async Task Post(Guid campaign, Guid mapName, [FromBody] Overlay overlay)
|
||||
{
|
||||
await _mediator.Send(new NewOverlayCommand(campaign, mapName, overlay, UserId));
|
||||
}
|
||||
|
||||
[HttpPost("wall")]
|
||||
public async Task Post(Guid campaign, Guid mapName, [FromBody] Wall wall)
|
||||
{
|
||||
await _mediator.Send(new NewWallCommand(campaign, mapName, wall, UserId));
|
||||
}
|
||||
|
||||
[HttpPost("note")]
|
||||
public async Task Post(Guid campaign, Guid mapName, [FromBody] Note note)
|
||||
{
|
||||
await _mediator.Send(new NewNoteCommand(campaign, mapName, note, UserId));
|
||||
}
|
||||
|
||||
[HttpPost("room")]
|
||||
public async Task Post(Guid campaign, Guid mapName, [FromBody] Room room)
|
||||
{
|
||||
await _mediator.Send(new NewRoomCommand(campaign, mapName, room, UserId));
|
||||
}
|
||||
|
||||
[HttpPost("line")]
|
||||
public async Task Post(Guid campaign, Guid mapName, [FromBody] Line line)
|
||||
{
|
||||
await _mediator.Send(new NewLineCommand(campaign, mapName, line, UserId));
|
||||
}
|
||||
}
|
||||
}
|
99
Sledgemapper.Api/Controllers/SessionController.cs
Normal file
|
@ -0,0 +1,99 @@
|
|||
using MediatR;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Sledgemapper.Api.Commands;
|
||||
using Sledgemapper.Shared.Entities;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Sledgemapper.Api.Controllers
|
||||
{
|
||||
[Authorize]
|
||||
[Route("[controller]/{sessionName}")]
|
||||
public class SessionController : ControllerBase
|
||||
{
|
||||
private readonly IMediator _mediator;
|
||||
private int UserId => int.Parse(HttpContext.User.Identity.Name);
|
||||
|
||||
public SessionController(IMediator mediator) => _mediator = mediator;
|
||||
|
||||
[HttpPost]
|
||||
public async Task<bool> Post(string sessionName)
|
||||
{
|
||||
var result = await _mediator.Send(new NewSessionCommand(sessionName, UserId));
|
||||
return result;
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public async Task<Session> Get(string sessionName)
|
||||
{
|
||||
var result = await _mediator.Send(new GetMapSnapshotCommand(sessionName));
|
||||
return result;
|
||||
}
|
||||
|
||||
[HttpPost("snapshot")]
|
||||
public async Task Post(string sessionName, [FromBody] Session session)
|
||||
{
|
||||
await _mediator.Send(new NewSnapshotCommand(sessionName, session, UserId));
|
||||
}
|
||||
|
||||
[HttpPost("tile")]
|
||||
public async Task Post(string sessionName, [FromBody] Tile tile)
|
||||
{
|
||||
await _mediator.Send(new NewTileCommand(sessionName, tile, UserId));
|
||||
}
|
||||
|
||||
[HttpPost("overlay")]
|
||||
public async Task Post(string sessionName, [FromBody] Overlay overlay)
|
||||
{
|
||||
await _mediator.Send(new NewOverlayCommand(sessionName, overlay, UserId));
|
||||
}
|
||||
|
||||
[HttpPost("wall")]
|
||||
public async Task Post(string sessionName, [FromBody] Wall wall)
|
||||
{
|
||||
await _mediator.Send(new NewWallCommand(sessionName, wall, UserId));
|
||||
}
|
||||
|
||||
[HttpPost("note")]
|
||||
public async Task Post(string sessionName, [FromBody] Note note)
|
||||
{
|
||||
await _mediator.Send(new NewNoteCommand(sessionName, note, UserId));
|
||||
}
|
||||
|
||||
[HttpPost("room")]
|
||||
public async Task Post(string sessionName, [FromBody] Room room)
|
||||
{
|
||||
await _mediator.Send(new NewRoomCommand(sessionName, room, UserId));
|
||||
}
|
||||
|
||||
[HttpPost("line")]
|
||||
public async Task Post(string sessionName, [FromBody] Line line)
|
||||
{
|
||||
await _mediator.Send(new NewLineCommand(sessionName, line, UserId));
|
||||
}
|
||||
|
||||
[HttpDelete("tile")]
|
||||
public async Task Delete(string sessionName, [FromBody] Tile tile)
|
||||
{
|
||||
await _mediator.Send(new DeleteTileCommand(sessionName, tile, UserId));
|
||||
}
|
||||
|
||||
[HttpDelete("overlay")]
|
||||
public async Task Delete(string sessionName, [FromBody] Overlay overlay)
|
||||
{
|
||||
await _mediator.Send(new DeleteOverlayCommand(sessionName, overlay, UserId));
|
||||
}
|
||||
|
||||
[HttpDelete("wall")]
|
||||
public async Task Delete(string sessionName, [FromBody] Wall wall)
|
||||
{
|
||||
await _mediator.Send(new DeleteWallCommand(sessionName, wall, UserId));
|
||||
}
|
||||
|
||||
[HttpDelete("note")]
|
||||
public async Task Delete(string sessionName, [FromBody] Note note)
|
||||
{
|
||||
await _mediator.Send(new DeleteNoteCommand(sessionName, note, UserId));
|
||||
}
|
||||
}
|
||||
}
|
136
Sledgemapper.Api/Controllers/UsersController.cs
Normal file
|
@ -0,0 +1,136 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using AutoMapper;
|
||||
using System.IdentityModel.Tokens.Jwt;
|
||||
|
||||
using Microsoft.Extensions.Options;
|
||||
using System.Text;
|
||||
using Microsoft.IdentityModel.Tokens;
|
||||
using System.Security.Claims;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Sledgemapper.Services;
|
||||
using Sledgemapper.Entities;
|
||||
using Sledgemapper.Models.Users;
|
||||
using Sledgemapper.Helpers;
|
||||
|
||||
namespace Sledgemapper.Controllers
|
||||
{
|
||||
[Authorize]
|
||||
[ApiController]
|
||||
[Route("[controller]")]
|
||||
public class UsersController : ControllerBase
|
||||
{
|
||||
private IUserService _userService;
|
||||
private IMapper _mapper;
|
||||
private readonly AppSettings _appSettings;
|
||||
|
||||
public UsersController(
|
||||
IUserService userService,
|
||||
IMapper mapper,
|
||||
IOptions<AppSettings> appSettings)
|
||||
{
|
||||
_userService = userService;
|
||||
_mapper = mapper;
|
||||
_appSettings = appSettings.Value;
|
||||
}
|
||||
|
||||
[AllowAnonymous]
|
||||
[HttpPost("authenticate")]
|
||||
public IActionResult Authenticate([FromBody]AuthenticateModel model)
|
||||
{
|
||||
var user = _userService.Authenticate(model.Username, model.Password);
|
||||
|
||||
if (user == null)
|
||||
return BadRequest(new { message = "Username or password is incorrect" });
|
||||
|
||||
var tokenHandler = new JwtSecurityTokenHandler();
|
||||
var key = Encoding.ASCII.GetBytes(_appSettings.Secret);
|
||||
var tokenDescriptor = new SecurityTokenDescriptor
|
||||
{
|
||||
Subject = new ClaimsIdentity(new Claim[]
|
||||
{
|
||||
new Claim(ClaimTypes.Name, user.Id.ToString())
|
||||
}),
|
||||
Expires = DateTime.UtcNow.AddDays(7),
|
||||
SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature)
|
||||
};
|
||||
var token = tokenHandler.CreateToken(tokenDescriptor);
|
||||
var tokenString = tokenHandler.WriteToken(token);
|
||||
|
||||
// return basic user info and authentication token
|
||||
return Ok(new
|
||||
{
|
||||
Id = user.Id,
|
||||
Username = user.Username,
|
||||
FirstName = user.FirstName,
|
||||
LastName = user.LastName,
|
||||
Initials = user.Initials,
|
||||
Token = tokenString
|
||||
});
|
||||
}
|
||||
|
||||
[AllowAnonymous]
|
||||
[HttpPost("register")]
|
||||
public IActionResult Register([FromBody]RegisterModel model)
|
||||
{
|
||||
// map model to entity
|
||||
var user = _mapper.Map<User>(model);
|
||||
|
||||
try
|
||||
{
|
||||
// create user
|
||||
_userService.Create(user, model.Password);
|
||||
return Ok();
|
||||
}
|
||||
catch (AppException ex)
|
||||
{
|
||||
// return error message if there was an exception
|
||||
return BadRequest(new { message = ex.Message });
|
||||
}
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
public IActionResult GetAll()
|
||||
{
|
||||
var users = _userService.GetAll();
|
||||
var model = _mapper.Map<IList<UserModel>>(users);
|
||||
return Ok(model);
|
||||
}
|
||||
|
||||
[HttpGet("{id}")]
|
||||
public IActionResult GetById(int id)
|
||||
{
|
||||
var user = _userService.GetById(id);
|
||||
var model = _mapper.Map<UserModel>(user);
|
||||
return Ok(model);
|
||||
}
|
||||
|
||||
[HttpPut("{id}")]
|
||||
public IActionResult Update(int id, [FromBody]UpdateModel model)
|
||||
{
|
||||
// map model to entity and set id
|
||||
var user = _mapper.Map<User>(model);
|
||||
user.Id = id;
|
||||
|
||||
try
|
||||
{
|
||||
// update user
|
||||
_userService.Update(user, model.Password);
|
||||
return Ok();
|
||||
}
|
||||
catch (AppException ex)
|
||||
{
|
||||
// return error message if there was an exception
|
||||
return BadRequest(new { message = ex.Message });
|
||||
}
|
||||
}
|
||||
|
||||
[HttpDelete("{id}")]
|
||||
public IActionResult Delete(int id)
|
||||
{
|
||||
_userService.Delete(id);
|
||||
return Ok();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
public abstract class BaseEntity
|
||||
{
|
||||
[Key]
|
||||
public int Id { get; set; }
|
||||
}
|
|
@ -1,25 +0,0 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Sledgemapper.Api.Models;
|
||||
|
||||
namespace Sledgemapper.Api.Core.Entities
|
||||
{
|
||||
[Index(nameof(CampaignName), nameof(OwnerId), IsUnique = true)]
|
||||
public class Campaign
|
||||
{
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||
public Guid CampaignId { get; set; }
|
||||
|
||||
public string CampaignName { get; set; }
|
||||
|
||||
public string OwnerId { get; set; }
|
||||
|
||||
public User Owner { get; set; }
|
||||
|
||||
public ICollection<User> InvitedUsers { get; set; }
|
||||
|
||||
public ICollection<Session> Maps { get; set; }
|
||||
}
|
||||
}
|
|
@ -1,17 +0,0 @@
|
|||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace Sledgemapper.Api.Core.Entities
|
||||
{
|
||||
public class Map
|
||||
{
|
||||
[Key]
|
||||
public int MapId { get; set; }
|
||||
|
||||
[Required]
|
||||
public string MapName { get; set; }
|
||||
|
||||
[Required]
|
||||
public int CampaignId { get; set; }
|
||||
|
||||
}
|
||||
}
|
|
@ -1,24 +0,0 @@
|
|||
using Microsoft.EntityFrameworkCore;
|
||||
using System;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace Sledgemapper.Api.Core.Entities
|
||||
{
|
||||
[Index(nameof(CampaignId), nameof(SessionName), IsUnique = true)]
|
||||
public class Session
|
||||
{
|
||||
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||
[Key]
|
||||
public Guid SessionId { get; set; }
|
||||
|
||||
[Required]
|
||||
public Guid CampaignId { get; set; }
|
||||
|
||||
[Required]
|
||||
public string SessionName { get; set; }
|
||||
|
||||
[Required]
|
||||
public string OwnerUserId { get; set; }
|
||||
}
|
||||
}
|
|
@ -1,18 +0,0 @@
|
|||
using System.Collections.Generic;
|
||||
using Microsoft.AspNetCore.Identity;
|
||||
|
||||
namespace Sledgemapper.Api.Core.Entities
|
||||
{
|
||||
public class User : IdentityUser
|
||||
{
|
||||
// public int Id { get; set; }
|
||||
public string FirstName { get; set; }
|
||||
public string LastName { get; set; }
|
||||
// public string Email { get; set; }
|
||||
// public string Username { get; set; }
|
||||
public string Initials { get; set; }
|
||||
// public byte[] PasswordHash { get; set; }
|
||||
public byte[] PasswordSalt { get; set; }
|
||||
public ICollection<Campaign> Campaigns { get; set; }
|
||||
}
|
||||
}
|
81
Sledgemapper.Api/Data/MyDbContext.cs
Normal file
|
@ -0,0 +1,81 @@
|
|||
using Microsoft.EntityFrameworkCore;
|
||||
using Sledgemapper.Api.Models;
|
||||
namespace Sledgemapper.Api.Data
|
||||
{
|
||||
public static class DbInitializer
|
||||
{
|
||||
public static void Initialize(MyDbContext context)
|
||||
{
|
||||
context.Database.EnsureCreated();
|
||||
}
|
||||
}
|
||||
|
||||
public class MyDbContext : DbContext
|
||||
{
|
||||
public DbSet<MapLog> MapLogs { get; set; }
|
||||
public DbSet<Session> Sessions { get; set; }
|
||||
public DbSet<UserConnection> UserConnections { get; set; }
|
||||
public DbSet<SessionUser> SessionUsers { get; set; }
|
||||
public DbSet<Snapshot> Snapshots { get; set; }
|
||||
|
||||
public MyDbContext(DbContextOptions options) : base(options)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
||||
// {
|
||||
// // optionsBuilder.
|
||||
// // options.MigrationsAssembly(Assembly.GetExecutingAssembly().FullName);
|
||||
// // optionsBuilder.UseSqlite("Filename=SledgemapperDatabase.db", options =>
|
||||
// // {
|
||||
// // options.MigrationsAssembly(Assembly.GetExecutingAssembly().FullName);
|
||||
// // });
|
||||
// optionsBuilder.UseSqlite("Filename=MyDatabase.db").UseQueryTrackingBehavior(QueryTrackingBehavior.NoTracking);
|
||||
|
||||
// base.OnConfiguring(optionsBuilder);
|
||||
// }
|
||||
|
||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||
{
|
||||
// Map table names
|
||||
modelBuilder.Entity<MapLog>().ToTable("MapLog", "dbo");
|
||||
modelBuilder.Entity<MapLog>(entity =>
|
||||
{
|
||||
entity.HasKey(e => e.MapLogId);
|
||||
});
|
||||
|
||||
modelBuilder.Entity<Session>().ToTable("Session", "dbo");
|
||||
modelBuilder.Entity<Session>(entity =>
|
||||
{
|
||||
entity.HasKey(e => e.SessionId);
|
||||
entity.HasIndex(e => e.SessionName).IsUnique();
|
||||
});
|
||||
|
||||
|
||||
modelBuilder.Entity<UserConnection>().ToTable("UserConnection", "dbo");
|
||||
modelBuilder.Entity<UserConnection>(entity =>
|
||||
{
|
||||
entity.HasKey(e => e.UserConnectionId);
|
||||
entity.HasIndex(e => e.UserId);
|
||||
|
||||
});
|
||||
|
||||
modelBuilder.Entity<SessionUser>().ToTable("SessionUser", "dbo");
|
||||
modelBuilder.Entity<SessionUser>(entity =>
|
||||
{
|
||||
entity.HasKey(e => e.SessionUserId);
|
||||
entity.HasIndex(e => e.SessionId);
|
||||
|
||||
});
|
||||
|
||||
modelBuilder.Entity<Snapshot>().ToTable("Snapshot", "dbo");
|
||||
modelBuilder.Entity<Snapshot>(entity =>
|
||||
{
|
||||
entity.HasKey(e => e.SnapshotId);
|
||||
});
|
||||
|
||||
base.OnModelCreating(modelBuilder);
|
||||
}
|
||||
}
|
||||
}
|
13
Sledgemapper.Api/Entities/User.cs
Normal file
|
@ -0,0 +1,13 @@
|
|||
namespace Sledgemapper.Entities
|
||||
{
|
||||
public class User
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public string FirstName { get; set; }
|
||||
public string LastName { get; set; }
|
||||
public string Username { get; set; }
|
||||
public string Initials { get; set; }
|
||||
public byte[] PasswordHash { get; set; }
|
||||
public byte[] PasswordSalt { get; set; }
|
||||
}
|
||||
}
|
|
@ -1,76 +0,0 @@
|
|||
using MediatR;
|
||||
using Sledgemapper.Api.Commands;
|
||||
using Sledgemapper.Api.Infrastructure.Data;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Sledgemapper.Api.Models;
|
||||
using Sledgemapper.Api.Core.Entities;
|
||||
|
||||
namespace Sledgemapper.Api.Handlers
|
||||
{
|
||||
public abstract class BaseCommandHandler<TRequest, TResponse> : IRequestHandler<TRequest, TResponse> where TRequest : BaseCommand<TResponse>
|
||||
{
|
||||
protected SledgemapperDbContext DbContext { get; }
|
||||
|
||||
protected IMediator Mediator { get; }
|
||||
|
||||
|
||||
public abstract Task<TResponse> Handle(TRequest request, CancellationToken cancellationToken);
|
||||
|
||||
protected BaseCommandHandler(IMediator mediator, SledgemapperDbContext dbContext)
|
||||
{
|
||||
DbContext = dbContext;
|
||||
Mediator = mediator;
|
||||
}
|
||||
|
||||
protected async Task CheckAuthorization(TRequest command)
|
||||
{
|
||||
var user = await DbContext.Users.FindAsync(command.UserId);
|
||||
DbContext.Attach(user);
|
||||
|
||||
|
||||
var campaign = await GetCampaignForUser(command);
|
||||
|
||||
var maps = campaign.Maps.Any(s => s.SessionId == command.SessionId);
|
||||
|
||||
if (!maps)
|
||||
{
|
||||
throw new Exception("Unauthorized");
|
||||
}
|
||||
}
|
||||
|
||||
protected async Task<Campaign> GetCampaignForUser(TRequest command)
|
||||
{
|
||||
var user = await DbContext.Users.FindAsync(command.UserId);
|
||||
DbContext.Attach(user);
|
||||
var campaign = await DbContext
|
||||
.Campaigns
|
||||
.Where(campaign => campaign.CampaignId == command.Campaign)
|
||||
.Include(c => c.InvitedUsers)
|
||||
.Include(c => c.Maps)
|
||||
.Include(c => c.Owner)
|
||||
.Where(campaign => campaign.OwnerId == command.UserId || campaign.InvitedUsers.Contains(user)).FirstAsync();
|
||||
return campaign;
|
||||
}
|
||||
|
||||
protected async Task<Session> SaveLog(TRequest command, string operation, string type, string data, CancellationToken cancellationToken)
|
||||
{
|
||||
var session = DbContext.Sessions.First(m => m.SessionId == command.SessionId);
|
||||
DbContext.MapLogs.Add(new MapLog
|
||||
{
|
||||
Operation = operation,
|
||||
SessionId = session.SessionId,
|
||||
Type = type,
|
||||
Timestamp = command.Timestamp,
|
||||
Object = data,
|
||||
UserId = command.UserId,
|
||||
});
|
||||
await DbContext.SaveChangesAsync(cancellationToken);
|
||||
return session;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -1,25 +1,42 @@
|
|||
using MediatR;
|
||||
using Sledgemapper.Api.Infrastructure.Data;
|
||||
using Sledgemapper.Api.Data;
|
||||
using Sledgemapper.Api.Commands;
|
||||
using Sledgemapper.Api.Notifications;
|
||||
using Sledgemapper.Shared.Entities;
|
||||
using System.Linq;
|
||||
using System.Text.Json;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Sledgemapper.Api.Handlers
|
||||
{
|
||||
public class DeleteNoteCommandHandler : BaseCommandHandler<DeleteNoteCommand, bool>
|
||||
{
|
||||
public DeleteNoteCommandHandler(IMediator mediator, SledgemapperDbContext dbcontext) : base(mediator, dbcontext)
|
||||
{
|
||||
}
|
||||
|
||||
public override async Task<bool> Handle(DeleteNoteCommand command, CancellationToken cancellationToken)
|
||||
public class DeleteNoteCommandHandler : IRequestHandler<DeleteNoteCommand, bool>
|
||||
{
|
||||
private readonly MyDbContext _dbcontext;
|
||||
|
||||
private readonly IMediator _mediator;
|
||||
|
||||
public DeleteNoteCommandHandler(IMediator mediator, MyDbContext dbcontext) { _dbcontext = dbcontext; _mediator = mediator; }
|
||||
|
||||
|
||||
public async Task<bool> Handle(DeleteNoteCommand notification, CancellationToken cancellationToken)
|
||||
{
|
||||
await CheckAuthorization(command);
|
||||
var jsonString = JsonSerializer.Serialize(command.Note);
|
||||
var session = await SaveLog(command, "D", "N", jsonString, cancellationToken);
|
||||
await Mediator.Publish(new DeleteNoteNotification(session, command.Note, command.UserId), cancellationToken);
|
||||
var jsonString = JsonSerializer.Serialize<Note>(notification.Note);
|
||||
var session = _dbcontext.Sessions.First(m => m.SessionName == notification.SessionName);
|
||||
|
||||
_dbcontext.MapLogs.Add(new Sledgemapper.Api.Models.MapLog
|
||||
{
|
||||
Operation = "D",
|
||||
SessionId = session.SessionId,
|
||||
Type = "N",
|
||||
Timestamp = notification.Timestamp,
|
||||
Object = jsonString,
|
||||
UserId = notification.UserId
|
||||
});
|
||||
await _dbcontext.SaveChangesAsync();
|
||||
await _mediator.Publish(new DeleteNoteNotification(session, notification.Note, notification.UserId));
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,25 +1,40 @@
|
|||
using MediatR;
|
||||
using Sledgemapper.Api.Commands;
|
||||
using Sledgemapper.Api.Infrastructure.Data;
|
||||
using Sledgemapper.Api.Data;
|
||||
using Sledgemapper.Shared.Entities;
|
||||
using Sledgemapper.Api.Notifications;
|
||||
using System.Linq;
|
||||
using System.Text.Json;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Sledgemapper.Api.Handlers
|
||||
{
|
||||
public class DeleteOverlayCommandHandler : BaseCommandHandler<DeleteOverlayCommand, bool>
|
||||
public class DeleteOverlayCommandHandler : IRequestHandler<DeleteOverlayCommand, bool>
|
||||
{
|
||||
public DeleteOverlayCommandHandler(IMediator mediator, SledgemapperDbContext dbcontext) : base(mediator, dbcontext)
|
||||
{
|
||||
}
|
||||
private readonly MyDbContext _dbcontext;
|
||||
|
||||
public override async Task<bool> Handle(DeleteOverlayCommand command, CancellationToken cancellationToken)
|
||||
private readonly IMediator _mediator;
|
||||
|
||||
public DeleteOverlayCommandHandler(IMediator mediator, MyDbContext dbcontext) { _dbcontext = dbcontext; _mediator = mediator; }
|
||||
|
||||
public async Task<bool> Handle(DeleteOverlayCommand notification, CancellationToken cancellationToken)
|
||||
{
|
||||
await CheckAuthorization(command);
|
||||
var jsonString = JsonSerializer.Serialize(command.Overlay);
|
||||
var session = await SaveLog(command, "D", "O", jsonString, cancellationToken);
|
||||
await Mediator.Publish(new DeleteOverlayNotification(session, command.Overlay, command.UserId), cancellationToken);
|
||||
var jsonString = JsonSerializer.Serialize<Overlay>(notification.Overlay);
|
||||
var session = _dbcontext.Sessions.First(m=>m.SessionName== notification.SessionName);
|
||||
|
||||
_dbcontext.MapLogs.Add(new Sledgemapper.Api.Models.MapLog
|
||||
{
|
||||
Operation = "D",
|
||||
SessionId = session.SessionId,
|
||||
Type = "O",
|
||||
Timestamp = notification.Timestamp,
|
||||
Object = jsonString,
|
||||
UserId=notification.UserId
|
||||
});
|
||||
|
||||
await _dbcontext.SaveChangesAsync();
|
||||
await _mediator.Publish(new DeleteOverlayNotification(session, notification.Overlay, notification.UserId));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,25 +1,39 @@
|
|||
using MediatR;
|
||||
using Sledgemapper.Api.Commands;
|
||||
using Sledgemapper.Api.Notifications;
|
||||
using Sledgemapper.Api.Infrastructure.Data;
|
||||
using Sledgemapper.Api.Data;
|
||||
using Sledgemapper.Shared.Entities;
|
||||
using System.Linq;
|
||||
using System.Text.Json;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Sledgemapper.Api.Handlers
|
||||
{
|
||||
public class DeleteTileCommandHandler : BaseCommandHandler<DeleteTileCommand, bool>
|
||||
public class DeleteTileCommandHandler : IRequestHandler<DeleteTileCommand,bool>
|
||||
{
|
||||
public DeleteTileCommandHandler(IMediator mediator, SledgemapperDbContext dbcontext) : base(mediator, dbcontext)
|
||||
{
|
||||
}
|
||||
private readonly MyDbContext _dbcontext;
|
||||
|
||||
public override async Task<bool> Handle(DeleteTileCommand command, CancellationToken cancellationToken)
|
||||
private readonly IMediator _mediator;
|
||||
|
||||
public DeleteTileCommandHandler(IMediator mediator, MyDbContext dbcontext) { _dbcontext = dbcontext; _mediator = mediator; }
|
||||
|
||||
public async Task<bool> Handle(DeleteTileCommand notification, CancellationToken cancellationToken)
|
||||
{
|
||||
await CheckAuthorization(command);
|
||||
var jsonString = JsonSerializer.Serialize(command.Tile);
|
||||
var session = await SaveLog(command, "D", "T", jsonString, cancellationToken);
|
||||
await Mediator.Publish(new DeleteTileNotification(session, command.Tile, command.UserId), cancellationToken);
|
||||
var jsonString = JsonSerializer.Serialize<Tile>(notification.Tile);
|
||||
var session = _dbcontext.Sessions.First(m=>m.SessionName== notification.SessionName);
|
||||
|
||||
_dbcontext.MapLogs.Add(new Sledgemapper.Api.Models.MapLog
|
||||
{
|
||||
Operation = "D",
|
||||
SessionId = session.SessionId,
|
||||
Type = "T",
|
||||
Timestamp = notification.Timestamp,
|
||||
Object = jsonString,
|
||||
UserId = notification.UserId
|
||||
});
|
||||
await _dbcontext.SaveChangesAsync();
|
||||
await _mediator.Publish(new DeleteTileNotification(session, notification.Tile, notification.UserId));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,25 +1,42 @@
|
|||
using MediatR;
|
||||
using Sledgemapper.Api.Infrastructure.Data;
|
||||
using Sledgemapper.Api.Data;
|
||||
using Sledgemapper.Api.Commands;
|
||||
using Sledgemapper.Api.Notifications;
|
||||
using Sledgemapper.Shared.Entities;
|
||||
using System.Linq;
|
||||
using System.Text.Json;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Sledgemapper.Api.Handlers
|
||||
{
|
||||
public class DeleteWallCommandHandler : BaseCommandHandler<DeleteWallCommand, bool>
|
||||
{
|
||||
public DeleteWallCommandHandler(IMediator mediator, SledgemapperDbContext dbcontext) : base(mediator, dbcontext)
|
||||
{
|
||||
}
|
||||
|
||||
public override async Task<bool> Handle(DeleteWallCommand command, CancellationToken cancellationToken)
|
||||
public class DeleteWallCommandHandler : IRequestHandler<DeleteWallCommand, bool>
|
||||
{
|
||||
private readonly MyDbContext _dbcontext;
|
||||
|
||||
private readonly IMediator _mediator;
|
||||
|
||||
public DeleteWallCommandHandler(IMediator mediator, MyDbContext dbcontext) { _dbcontext = dbcontext; _mediator = mediator; }
|
||||
|
||||
|
||||
public async Task<bool> Handle(DeleteWallCommand notification, CancellationToken cancellationToken)
|
||||
{
|
||||
await CheckAuthorization(command);
|
||||
var jsonString = JsonSerializer.Serialize(command.Wall);
|
||||
var session = await SaveLog(command, "D", "W", jsonString, cancellationToken);
|
||||
await Mediator.Publish(new DeleteWallNotification(session, command.Wall, command.UserId), cancellationToken);
|
||||
var jsonString = JsonSerializer.Serialize<Wall>(notification.Wall);
|
||||
var session = _dbcontext.Sessions.First(m => m.SessionName == notification.SessionName);
|
||||
|
||||
_dbcontext.MapLogs.Add(new Sledgemapper.Api.Models.MapLog
|
||||
{
|
||||
Operation = "D",
|
||||
SessionId = session.SessionId,
|
||||
Type = "W",
|
||||
Timestamp = notification.Timestamp,
|
||||
Object = jsonString,
|
||||
UserId = notification.UserId
|
||||
});
|
||||
await _dbcontext.SaveChangesAsync();
|
||||
await _mediator.Publish(new DeleteWallNotification(session, notification.Wall, notification.UserId));
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,56 +0,0 @@
|
|||
using MediatR;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Sledgemapper.Api.Commands;
|
||||
using Sledgemapper.Api.Infrastructure.Data;
|
||||
using Sledgemapper.Shared.Entities;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Sledgemapper.Api.Handlers
|
||||
{
|
||||
public class GetCampaignMapsCommandHandler : IRequestHandler<GetCampaignMapsCommand, List<Session>>
|
||||
{
|
||||
private readonly IMediator _mediator;
|
||||
private readonly SledgemapperDbContext _dbcontext;
|
||||
|
||||
public GetCampaignMapsCommandHandler(IMediator mediator, SledgemapperDbContext dbcontext)
|
||||
{
|
||||
_mediator = mediator;
|
||||
_dbcontext = dbcontext;
|
||||
}
|
||||
|
||||
public async Task<List<Session>> Handle(GetCampaignMapsCommand command, CancellationToken cancellationToken)
|
||||
{
|
||||
try
|
||||
{
|
||||
var user = await _dbcontext.Users.FindAsync(command.UserId);
|
||||
_dbcontext.Attach(user);
|
||||
|
||||
|
||||
|
||||
var campaign = await _dbcontext
|
||||
.Campaigns
|
||||
.Where(campaign => campaign.CampaignId == command.CampaignId)
|
||||
.Include(c => c.InvitedUsers)
|
||||
.Include(c => c.Maps)
|
||||
.Include(c => c.Owner)
|
||||
.Where(campaign => campaign.OwnerId == command.UserId || campaign.InvitedUsers.Contains(user)).FirstAsync();
|
||||
|
||||
|
||||
|
||||
|
||||
//var campaign = await _dbcontext.Campaigns.Where(campaign => campaign.CampaignId == command.CampaignId && campaign.OwnerId == command.UserId).Include(campaign => campaign.Maps).FirstAsync();
|
||||
|
||||
var maps = campaign.Maps.Select(session => new Session { SessionName = session.SessionName, SessionId = session.SessionId }).ToList();
|
||||
return maps;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,54 +0,0 @@
|
|||
using MediatR;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Sledgemapper.Api.Commands;
|
||||
using Sledgemapper.Api.Infrastructure.Data;
|
||||
using Sledgemapper.Shared.Entities;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Sledgemapper.Api.Handlers
|
||||
{
|
||||
public class GetCampaignPlayersCommandHandler : IRequestHandler<GetCampaignPlayersCommand, List<Player>>
|
||||
{
|
||||
private readonly IMediator _mediator;
|
||||
private readonly SledgemapperDbContext _dbcontext;
|
||||
|
||||
public GetCampaignPlayersCommandHandler(IMediator mediator, SledgemapperDbContext dbcontext)
|
||||
{
|
||||
_mediator = mediator;
|
||||
_dbcontext = dbcontext;
|
||||
}
|
||||
|
||||
public async Task<List<Player>> Handle(GetCampaignPlayersCommand command, CancellationToken cancellationToken)
|
||||
{
|
||||
try
|
||||
{
|
||||
var user = await _dbcontext.Users.FindAsync(command.UserId);
|
||||
_dbcontext.Attach(user);
|
||||
|
||||
|
||||
var campaign = await _dbcontext
|
||||
.Campaigns
|
||||
.Where(campaign => campaign.CampaignId == command.CampaignId)
|
||||
.Include(c => c.InvitedUsers)
|
||||
|
||||
.Include(c => c.Owner)
|
||||
.Where(campaign => campaign.OwnerId == command.UserId || campaign.InvitedUsers.Contains(user)).FirstAsync();
|
||||
|
||||
|
||||
|
||||
//var campaign = await _dbcontext.Campaigns.Where(campaign => campaign.CampaignId == command.CampaignId && campaign.OwnerId == command.UserId).Include(campaign => campaign.InvitedUsers).FirstAsync();
|
||||
|
||||
var players = campaign.InvitedUsers.Select(user => new Player { Initials = user.Initials, UserName = user.UserName , UserId = new Guid(user.Id)}).ToList();
|
||||
return players;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,45 +0,0 @@
|
|||
using MediatR;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Sledgemapper.Api.Commands;
|
||||
using Sledgemapper.Api.Infrastructure.Data;
|
||||
using Sledgemapper.Shared.Entities;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Sledgemapper.Api.Handlers
|
||||
{
|
||||
public class GetCampaignsCommandHandler : IRequestHandler<GetCampaignsCommand, List<Campaign>>
|
||||
{
|
||||
private readonly IMediator _mediator;
|
||||
private readonly SledgemapperDbContext _dbcontext;
|
||||
|
||||
public GetCampaignsCommandHandler(IMediator mediator, SledgemapperDbContext dbcontext)
|
||||
{
|
||||
_mediator = mediator;
|
||||
_dbcontext = dbcontext;
|
||||
}
|
||||
|
||||
public async Task<List<Campaign>> Handle(GetCampaignsCommand command, CancellationToken cancellationToken)
|
||||
{
|
||||
try
|
||||
{
|
||||
var user = await _dbcontext.Users.FindAsync(command.UserId);
|
||||
_dbcontext.Attach(user);
|
||||
var campaigns = await _dbcontext.Campaigns
|
||||
.Include(c => c.InvitedUsers)
|
||||
.Include(c => c.Owner)
|
||||
.Where(campaign => campaign.OwnerId == command.UserId || campaign.InvitedUsers.Contains(user)).ToListAsync();
|
||||
|
||||
return campaigns.Select(c => new Campaign { Id = c.CampaignId, Name = c.CampaignName }).ToList();
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
}
|
||||
return new List<Campaign>();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,37 +1,36 @@
|
|||
using MediatR;
|
||||
using Sledgemapper.Api.Infrastructure.Data;
|
||||
using Sledgemapper.Api.Data;
|
||||
using Sledgemapper.Shared.Entities;
|
||||
using System.Text.Json;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Linq;
|
||||
using Sledgemapper.Api.Commands;
|
||||
using Sledgemapper.Api.Core.Entities;
|
||||
using Session = Sledgemapper.Shared.Entities.Session;
|
||||
using Sledgemapper.Api.Models;
|
||||
|
||||
namespace Sledgemapper.Api.Handlers
|
||||
namespace Sledgemapper.Api.Commands
|
||||
{
|
||||
public class GetMapSnapshotCommandHandler : IRequestHandler<GetMapSnapshotCommand, Session>
|
||||
public class GetMapSnapshotCommandHandler : IRequestHandler<GetMapSnapshotCommand, Sledgemapper.Shared.Entities.Session>
|
||||
{
|
||||
private readonly SledgemapperDbContext _dbcontext;
|
||||
private readonly MyDbContext _dbcontext;
|
||||
|
||||
public GetMapSnapshotCommandHandler(SledgemapperDbContext dbcontext) { _dbcontext = dbcontext; }
|
||||
public GetMapSnapshotCommandHandler(MyDbContext dbcontext) { _dbcontext = dbcontext; }
|
||||
|
||||
public async Task<Session> Handle(GetMapSnapshotCommand notification, CancellationToken cancellationToken)
|
||||
public async Task<Sledgemapper.Shared.Entities.Session> Handle(GetMapSnapshotCommand notification, CancellationToken cancellationToken)
|
||||
{
|
||||
Snapshot snapshot;
|
||||
double timestamp;
|
||||
Session mapSession;
|
||||
var session = _dbcontext.Sessions.First(m => m.SessionId == notification.MapId);
|
||||
var snapshot = _dbcontext.Snapshots.OrderByDescending(s => s.Timestamp).FirstOrDefault(m => m.SessionId == session.SessionId);
|
||||
Sledgemapper.Shared.Entities.Session mapSession;
|
||||
var session = _dbcontext.Sessions.First(m => m.SessionName == notification.SessionName);
|
||||
snapshot = _dbcontext.Snapshots.OrderByDescending(s => s.Timestamp).FirstOrDefault(m => m.SessionId == session.SessionId);
|
||||
if (snapshot is null)
|
||||
{
|
||||
|
||||
timestamp = 0;
|
||||
mapSession = new Session();
|
||||
mapSession = new Shared.Entities.Session();
|
||||
}
|
||||
else
|
||||
{
|
||||
mapSession = JsonSerializer.Deserialize<Session>(snapshot.Object);
|
||||
mapSession = JsonSerializer.Deserialize<Sledgemapper.Shared.Entities.Session>(snapshot.Object);
|
||||
timestamp = snapshot.Timestamp;
|
||||
}
|
||||
|
||||
|
@ -58,7 +57,7 @@ namespace Sledgemapper.Api.Handlers
|
|||
var note = JsonSerializer.Deserialize<Note>(mapUpdate.Object);
|
||||
mapSession.NewNote(note);
|
||||
break;
|
||||
case "L":
|
||||
case "L":
|
||||
var line = JsonSerializer.Deserialize<Line>(mapUpdate.Object);
|
||||
mapSession.NewLine(line);
|
||||
break;
|
||||
|
@ -66,6 +65,10 @@ namespace Sledgemapper.Api.Handlers
|
|||
var room = JsonSerializer.Deserialize<Room>(mapUpdate.Object);
|
||||
mapSession.NewRoom(room);
|
||||
break;
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -98,10 +101,10 @@ namespace Sledgemapper.Api.Handlers
|
|||
{
|
||||
SessionId = session.SessionId,
|
||||
Timestamp = mapUpdates.Max(mapSession => mapSession.Timestamp),
|
||||
Object = JsonSerializer.Serialize(mapSession)
|
||||
Object = JsonSerializer.Serialize<Sledgemapper.Shared.Entities.Session>(mapSession)
|
||||
};
|
||||
await _dbcontext.Snapshots.AddAsync(newSnapshot, cancellationToken);
|
||||
await _dbcontext.SaveChangesAsync(cancellationToken);
|
||||
await _dbcontext.Snapshots.AddAsync(newSnapshot);
|
||||
await _dbcontext.SaveChangesAsync();
|
||||
}
|
||||
return mapSession;
|
||||
}
|
||||
|
|
|
@ -1,54 +0,0 @@
|
|||
using System;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using MediatR;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Sledgemapper.Api.Commands;
|
||||
using Sledgemapper.Api.Infrastructure.Data;
|
||||
|
||||
namespace Sledgemapper.Api.Handlers
|
||||
{
|
||||
public class InvitePlayerToCampaignCommandHandler : IRequestHandler<InvitePlayerToCampaignCommand, bool>
|
||||
{
|
||||
private readonly SledgemapperDbContext _dbContext;
|
||||
private readonly IMediator _mediator;
|
||||
|
||||
public InvitePlayerToCampaignCommandHandler(IMediator mediator, SledgemapperDbContext dbContext)
|
||||
{
|
||||
_mediator = mediator;
|
||||
_dbContext = dbContext;
|
||||
}
|
||||
|
||||
public async Task<bool> Handle(InvitePlayerToCampaignCommand command, CancellationToken cancellationToken)
|
||||
{
|
||||
try
|
||||
{
|
||||
var user = await _dbContext.Users.FindAsync(command.UserId);
|
||||
|
||||
var campaign = await _dbContext
|
||||
.Campaigns
|
||||
.Where(campaign => campaign.CampaignId == command.CampaignId)
|
||||
.Include(c => c.InvitedUsers)
|
||||
.Where(campaign => campaign.OwnerId == command.UserId || campaign.InvitedUsers.Contains(user))
|
||||
.FirstAsync(cancellationToken);
|
||||
|
||||
|
||||
var invitedUser =
|
||||
await _dbContext.Users.FirstOrDefaultAsync(iUser => iUser.Email == command.Email,
|
||||
cancellationToken);
|
||||
_dbContext.Attach(invitedUser);
|
||||
_dbContext.Attach(campaign);
|
||||
campaign.InvitedUsers.Add(invitedUser);
|
||||
|
||||
await _dbContext.SaveChangesAsync(cancellationToken);
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,48 +0,0 @@
|
|||
using MediatR;
|
||||
using Sledgemapper.Api.Commands;
|
||||
using Sledgemapper.Api.Infrastructure.Data;
|
||||
using System;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Sledgemapper.Api.Core.Entities;
|
||||
|
||||
namespace Sledgemapper.Api.Handlers
|
||||
{
|
||||
public class NewCampaignCommandHandler : IRequestHandler<NewCampaignCommand, bool>
|
||||
{
|
||||
private readonly IMediator _mediator;
|
||||
private readonly SledgemapperDbContext _dbcontext;
|
||||
|
||||
public NewCampaignCommandHandler(IMediator mediator, SledgemapperDbContext dbcontext)
|
||||
{
|
||||
_mediator = mediator;
|
||||
_dbcontext = dbcontext;
|
||||
}
|
||||
|
||||
public async Task<bool> Handle(NewCampaignCommand notification, CancellationToken cancellationToken)
|
||||
{
|
||||
try
|
||||
{
|
||||
var user = await _dbcontext.Users.FindAsync(new object[] { notification.UserId }, cancellationToken);
|
||||
_dbcontext.Attach(user);
|
||||
var campaign = new Core.Entities.Campaign
|
||||
{
|
||||
CampaignName = notification.CampaignName,
|
||||
OwnerId = user.Id,
|
||||
InvitedUsers = new System.Collections.Generic.List<User> { user }
|
||||
};
|
||||
|
||||
_dbcontext.Campaigns.Add(campaign);
|
||||
|
||||
await _dbcontext.SaveChangesAsync(cancellationToken);
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,6 +1,8 @@
|
|||
using MediatR;
|
||||
using Sledgemapper.Api.Infrastructure.Data;
|
||||
using Sledgemapper.Api.Data;
|
||||
using Sledgemapper.Shared.Entities;
|
||||
using Sledgemapper.Api.Commands;
|
||||
using System.Linq;
|
||||
using System.Text.Json;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
@ -8,18 +10,29 @@ using Sledgemapper.Api.Notifications;
|
|||
|
||||
namespace Sledgemapper.Api.Handlers
|
||||
{
|
||||
public class NewLineCommandHandler : BaseCommandHandler<NewLineCommand, bool>
|
||||
public class NewLineCommandHandler : IRequestHandler<NewLineCommand, bool>
|
||||
{
|
||||
public NewLineCommandHandler(IMediator mediator, SledgemapperDbContext dbContext) : base(mediator, dbContext)
|
||||
{
|
||||
}
|
||||
private readonly MyDbContext _dbcontext;
|
||||
|
||||
public override async Task<bool> Handle(NewLineCommand command, CancellationToken cancellationToken)
|
||||
private readonly IMediator _mediator;
|
||||
|
||||
public NewLineCommandHandler(IMediator mediator, MyDbContext dbcontext) { _dbcontext = dbcontext; _mediator = mediator; }
|
||||
|
||||
public async Task<bool> Handle(NewLineCommand notification, CancellationToken cancellationToken)
|
||||
{
|
||||
await CheckAuthorization(command);
|
||||
var jsonString = JsonSerializer.Serialize(command.Line);
|
||||
var session = await SaveLog(command, "N", "L", jsonString, cancellationToken);
|
||||
await Mediator.Publish(new NewLineNotification(session, command.Line, command.UserId), cancellationToken);
|
||||
var jsonString = JsonSerializer.Serialize<Line>(notification.Line);
|
||||
var session = _dbcontext.Sessions.First(m => m.SessionName == notification.SessionName);
|
||||
_dbcontext.MapLogs.Add(new Sledgemapper.Api.Models.MapLog
|
||||
{
|
||||
Operation = "N",
|
||||
SessionId = session.SessionId,
|
||||
Type = "L",
|
||||
Timestamp = notification.Timestamp,
|
||||
Object = jsonString,
|
||||
UserId = notification.UserId,
|
||||
});
|
||||
await _dbcontext.SaveChangesAsync();
|
||||
await _mediator.Publish(new NewLineNotification(session, notification.Line, notification.UserId));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,25 +1,38 @@
|
|||
using MediatR;
|
||||
using Sledgemapper.Api.Infrastructure.Data;
|
||||
using Sledgemapper.Api.Data;
|
||||
using Sledgemapper.Shared.Entities;
|
||||
using Sledgemapper.Api.Commands;
|
||||
using Sledgemapper.Api.Notifications;
|
||||
using System.Linq;
|
||||
using System.Text.Json;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Sledgemapper.Api.Handlers
|
||||
{
|
||||
public class NewNoteCommandHandler : BaseCommandHandler<NewNoteCommand, bool>
|
||||
public class NewNoteCommandHandler : IRequestHandler<NewNoteCommand, bool>
|
||||
{
|
||||
public NewNoteCommandHandler(IMediator mediator, SledgemapperDbContext dbcontext) : base(mediator, dbcontext)
|
||||
{
|
||||
}
|
||||
private readonly MyDbContext _dbcontext;
|
||||
|
||||
public override async Task<bool> Handle(NewNoteCommand command, CancellationToken cancellationToken)
|
||||
private readonly IMediator _mediator;
|
||||
|
||||
public NewNoteCommandHandler(IMediator mediator, MyDbContext dbcontext) { _dbcontext = dbcontext; _mediator = mediator; }
|
||||
|
||||
public async Task<bool> Handle(NewNoteCommand notification, CancellationToken cancellationToken)
|
||||
{
|
||||
await CheckAuthorization(command);
|
||||
var jsonString = JsonSerializer.Serialize(command.Note);
|
||||
var session = await SaveLog(command, "N", "N", jsonString, cancellationToken);
|
||||
await Mediator.Publish(new NewNoteNotification(session, command.Note, command.UserId), cancellationToken);
|
||||
var jsonString = JsonSerializer.Serialize<Note>(notification.Note);
|
||||
var session = _dbcontext.Sessions.First(m => m.SessionName == notification.SessionName);
|
||||
_dbcontext.MapLogs.Add(new Sledgemapper.Api.Models.MapLog
|
||||
{
|
||||
Operation = "N",
|
||||
SessionId = session.SessionId,
|
||||
Type = "N",
|
||||
Timestamp = notification.Timestamp,
|
||||
Object = jsonString,
|
||||
UserId = notification.UserId,
|
||||
});
|
||||
await _dbcontext.SaveChangesAsync();
|
||||
await _mediator.Publish(new NewNoteNotification(session, notification.Note, notification.UserId));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,26 +1,38 @@
|
|||
using MediatR;
|
||||
using Sledgemapper.Api.Commands;
|
||||
using Sledgemapper.Api.Infrastructure.Data;
|
||||
using Sledgemapper.Api.Notifications;
|
||||
using Sledgemapper.Api.Data;
|
||||
using Sledgemapper.Shared.Entities;
|
||||
using System.Linq;
|
||||
using System.Text.Json;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Sledgemapper.Api.Handlers
|
||||
{
|
||||
|
||||
public class NewOverlayCommandHandler : BaseCommandHandler<NewOverlayCommand, bool>
|
||||
public class NewOverlayCommandHandler : IRequestHandler<NewOverlayCommand, bool>
|
||||
{
|
||||
public NewOverlayCommandHandler(IMediator mediator, SledgemapperDbContext dbcontext) : base(mediator, dbcontext)
|
||||
{
|
||||
}
|
||||
private readonly MyDbContext _dbcontext;
|
||||
|
||||
public override async Task<bool> Handle(NewOverlayCommand command, CancellationToken cancellationToken)
|
||||
private readonly IMediator _mediator;
|
||||
|
||||
public NewOverlayCommandHandler(IMediator mediator, MyDbContext dbcontext) { _dbcontext = dbcontext; _mediator = mediator; }
|
||||
|
||||
public async Task<bool> Handle(NewOverlayCommand notification, CancellationToken cancellationToken)
|
||||
{
|
||||
await CheckAuthorization(command);
|
||||
var jsonString = JsonSerializer.Serialize(command.Overlay);
|
||||
var session = await SaveLog(command, "N", "O", jsonString, cancellationToken);
|
||||
await Mediator.Publish(new NewOverlayNotification(session, command.Overlay, command.UserId), cancellationToken);
|
||||
var jsonString = JsonSerializer.Serialize<Overlay>(notification.Overlay);
|
||||
var session = _dbcontext.Sessions.First(m => m.SessionName == notification.SessionName);
|
||||
_dbcontext.MapLogs.Add(new Sledgemapper.Api.Models.MapLog
|
||||
{
|
||||
Operation = "N",
|
||||
SessionId = session.SessionId,
|
||||
Type = "O",
|
||||
Timestamp = notification.Timestamp,
|
||||
Object = jsonString,
|
||||
UserId = notification.UserId,
|
||||
});
|
||||
await _dbcontext.SaveChangesAsync();
|
||||
await _mediator.Publish(new NewOverlayNotification(session, notification.Overlay, notification.UserId));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
using MediatR;
|
||||
using Sledgemapper.Api.Infrastructure.Data;
|
||||
using Sledgemapper.Api.Data;
|
||||
using Sledgemapper.Shared.Entities;
|
||||
using Sledgemapper.Api.Commands;
|
||||
using System.Linq;
|
||||
using System.Text.Json;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
@ -8,17 +10,29 @@ using Sledgemapper.Api.Notifications;
|
|||
|
||||
namespace Sledgemapper.Api.Handlers
|
||||
{
|
||||
public class NewRoomCommandHandler : BaseCommandHandler<NewRoomCommand, bool>
|
||||
public class NewRoomCommandHandler : IRequestHandler<NewRoomCommand, bool>
|
||||
{
|
||||
public NewRoomCommandHandler(IMediator mediator, SledgemapperDbContext dbcontext) : base(mediator, dbcontext)
|
||||
{ }
|
||||
private readonly MyDbContext _dbcontext;
|
||||
|
||||
public override async Task<bool> Handle(NewRoomCommand command, CancellationToken cancellationToken)
|
||||
private readonly IMediator _mediator;
|
||||
|
||||
public NewRoomCommandHandler(IMediator mediator, MyDbContext dbcontext) { _dbcontext = dbcontext; _mediator = mediator; }
|
||||
|
||||
public async Task<bool> Handle(NewRoomCommand notification, CancellationToken cancellationToken)
|
||||
{
|
||||
await CheckAuthorization(command);
|
||||
var jsonString = JsonSerializer.Serialize(command.Room);
|
||||
var session = await SaveLog(command, "N", "R", jsonString, cancellationToken);
|
||||
await Mediator.Publish(new NewRoomNotification(session, command.Room, command.UserId), cancellationToken);
|
||||
var jsonString = JsonSerializer.Serialize<Room>(notification.Room);
|
||||
var session = _dbcontext.Sessions.First(m => m.SessionName == notification.SessionName);
|
||||
_dbcontext.MapLogs.Add(new Sledgemapper.Api.Models.MapLog
|
||||
{
|
||||
Operation = "N",
|
||||
SessionId = session.SessionId,
|
||||
Type = "R",
|
||||
Timestamp = notification.Timestamp,
|
||||
Object = jsonString,
|
||||
UserId = notification.UserId,
|
||||
});
|
||||
await _dbcontext.SaveChangesAsync();
|
||||
await _mediator.Publish(new NewRoomNotification(session, notification.Room, notification.UserId));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,37 +1,34 @@
|
|||
using MediatR;
|
||||
using Sledgemapper.Api.Infrastructure.Data;
|
||||
using Sledgemapper.Api.Data;
|
||||
|
||||
using System.Text.Json;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Linq;
|
||||
using Sledgemapper.Api.Commands;
|
||||
using Sledgemapper.Api.Core.Entities;
|
||||
|
||||
namespace Sledgemapper.Api.Handlers
|
||||
namespace Sledgemapper.Api.Commands
|
||||
{
|
||||
public class NewSnapshotCommandHandler : IRequestHandler<NewSnapshotCommand, bool>
|
||||
{
|
||||
private readonly SledgemapperDbContext _dbcontext;
|
||||
private readonly MyDbContext _dbcontext;
|
||||
private readonly IMediator _mediator;
|
||||
|
||||
public NewSnapshotCommandHandler(IMediator mediator, SledgemapperDbContext dbcontext) { _dbcontext = dbcontext; _mediator = mediator; }
|
||||
public NewSnapshotCommandHandler(IMediator mediator, MyDbContext dbcontext) { _dbcontext = dbcontext; _mediator = mediator; }
|
||||
|
||||
public async Task<bool> Handle(NewSnapshotCommand notification, CancellationToken cancellationToken)
|
||||
{
|
||||
|
||||
|
||||
var session = _dbcontext.Sessions.First(m => m.SessionName == notification.SessionName);
|
||||
|
||||
var newSnapshot = new Snapshot
|
||||
{
|
||||
SessionId = session.SessionId,
|
||||
Timestamp = notification.Timestamp,
|
||||
Object = JsonSerializer.Serialize(notification.Session)
|
||||
|
||||
};
|
||||
await _dbcontext.Snapshots.AddAsync(newSnapshot, cancellationToken);
|
||||
await _dbcontext.SaveChangesAsync(cancellationToken);
|
||||
var newSnapshot = new Sledgemapper.Api.Models.Snapshot{
|
||||
SessionId=session.SessionId,
|
||||
Timestamp=notification.Timestamp,
|
||||
Object = JsonSerializer.Serialize<Sledgemapper.Shared.Entities.Session>(notification.Session)
|
||||
|
||||
};
|
||||
await _dbcontext.Snapshots.AddAsync(newSnapshot);
|
||||
await _dbcontext.SaveChangesAsync();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,26 +1,41 @@
|
|||
using MediatR;
|
||||
using Sledgemapper.Api.Infrastructure.Data;
|
||||
using Sledgemapper.Api.Data;
|
||||
|
||||
using System.Text.Json;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Sledgemapper.Api.Notifications;
|
||||
using Sledgemapper.Api.Commands;
|
||||
using System.Linq;
|
||||
using Sledgemapper.Shared.Entities;
|
||||
|
||||
namespace Sledgemapper.Api.Handlers
|
||||
namespace Sledgemapper.Api.Commands
|
||||
{
|
||||
public class NewTileCommandHandler : BaseCommandHandler<NewTileCommand, bool>
|
||||
public class NewTileCommandHandler : IRequestHandler<NewTileCommand, bool>
|
||||
{
|
||||
public NewTileCommandHandler(IMediator mediator, SledgemapperDbContext dbContext) : base(mediator, dbContext)
|
||||
{
|
||||
}
|
||||
private readonly MyDbContext _dbcontext;
|
||||
private readonly IMediator _mediator;
|
||||
|
||||
public override async Task<bool> Handle(NewTileCommand command, CancellationToken cancellationToken)
|
||||
public NewTileCommandHandler(IMediator mediator, MyDbContext dbcontext) { _dbcontext = dbcontext; _mediator = mediator; }
|
||||
|
||||
public async Task<bool> Handle(NewTileCommand notification, CancellationToken cancellationToken)
|
||||
{
|
||||
await CheckAuthorization(command);
|
||||
var jsonString = JsonSerializer.Serialize(command.Tile);
|
||||
var session = await SaveLog(command, "N", "T", jsonString, cancellationToken);
|
||||
await Mediator.Publish(new NewTileNotification(session, command.Tile, command.UserId), cancellationToken);
|
||||
var jsonString = JsonSerializer.Serialize<Tile>(notification.Tile);
|
||||
var session = _dbcontext.Sessions.First(m => m.SessionName == notification.SessionName);
|
||||
|
||||
_dbcontext.MapLogs.Add(new Sledgemapper.Api.Models.MapLog
|
||||
{
|
||||
Operation = "N",
|
||||
SessionId = session.SessionId,
|
||||
Type = "T",
|
||||
Timestamp = notification.Timestamp,
|
||||
Object = jsonString,
|
||||
UserId = notification.UserId
|
||||
});
|
||||
await _dbcontext.SaveChangesAsync();
|
||||
await _mediator.Publish(new NewTileNotification(session, notification.Tile, notification.UserId));
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,25 +1,38 @@
|
|||
using MediatR;
|
||||
using Sledgemapper.Api.Infrastructure.Data;
|
||||
using Sledgemapper.Api.Data;
|
||||
using Sledgemapper.Shared.Entities;
|
||||
using Sledgemapper.Api.Commands;
|
||||
using Sledgemapper.Api.Notifications;
|
||||
using System.Linq;
|
||||
using System.Text.Json;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Sledgemapper.Api.Handlers
|
||||
{
|
||||
public class NewWallCommandHandler : BaseCommandHandler<NewWallCommand, bool>
|
||||
public class NewWallCommandHandler : IRequestHandler<NewWallCommand, bool>
|
||||
{
|
||||
public NewWallCommandHandler(IMediator mediator, SledgemapperDbContext dbContext) : base(mediator, dbContext)
|
||||
{
|
||||
}
|
||||
private readonly MyDbContext _dbcontext;
|
||||
|
||||
public override async Task<bool> Handle(NewWallCommand command, CancellationToken cancellationToken)
|
||||
private readonly IMediator _mediator;
|
||||
|
||||
public NewWallCommandHandler(IMediator mediator, MyDbContext dbcontext) { _dbcontext = dbcontext; _mediator = mediator; }
|
||||
|
||||
public async Task<bool> Handle(NewWallCommand notification, CancellationToken cancellationToken)
|
||||
{
|
||||
await CheckAuthorization(command);
|
||||
var jsonString = JsonSerializer.Serialize(command.Wall);
|
||||
var session = await SaveLog(command, "N", "W", jsonString, cancellationToken);
|
||||
await Mediator.Publish(new NewWallNotification(session, command.Wall, command.UserId), cancellationToken);
|
||||
var jsonString = JsonSerializer.Serialize<Wall>(notification.Wall);
|
||||
var session = _dbcontext.Sessions.First(m => m.SessionName == notification.SessionName);
|
||||
_dbcontext.MapLogs.Add(new Sledgemapper.Api.Models.MapLog
|
||||
{
|
||||
Operation = "N",
|
||||
SessionId = session.SessionId,
|
||||
Type = "W",
|
||||
Timestamp = notification.Timestamp,
|
||||
Object = jsonString,
|
||||
UserId = notification.UserId,
|
||||
});
|
||||
await _dbcontext.SaveChangesAsync();
|
||||
await _mediator.Publish(new NewWallNotification(session, notification.Wall, notification.UserId));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
using MediatR;
|
||||
using Microsoft.AspNetCore.SignalR;
|
||||
using Sledgemapper.Shared.Clients;
|
||||
using Sledgemapper.Clients;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Sledgemapper.Api.Hubs;
|
||||
|
@ -16,7 +16,7 @@ namespace Sledgemapper.Api.Handlers
|
|||
|
||||
public async Task Handle(DeleteNoteNotification notification, CancellationToken cancellationToken)
|
||||
{
|
||||
await _hub.Clients.Groups(notification.Session.SessionId.ToString()).DeleteNote(notification.Note);
|
||||
await _hub.Clients.Groups(notification.Session.SessionName).DeleteNote(notification.Note);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,9 +2,9 @@ using MediatR;
|
|||
using Microsoft.AspNetCore.SignalR;
|
||||
using Sledgemapper.Api.Hubs;
|
||||
using Sledgemapper.Api.Notifications;
|
||||
using Sledgemapper.Clients;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Sledgemapper.Shared.Clients;
|
||||
|
||||
namespace Sledgemapper.Api.Handlers
|
||||
{
|
||||
|
@ -16,7 +16,7 @@ namespace Sledgemapper.Api.Handlers
|
|||
|
||||
public async Task Handle(DeleteOverlayNotification notification, CancellationToken cancellationToken)
|
||||
{
|
||||
await _hub.Clients.Groups(notification.Session.SessionId.ToString()).DeleteOverlay(notification.Overlay);
|
||||
await _hub.Clients.Groups(notification.Session.SessionName).DeleteOverlay(notification.Overlay);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,9 +2,9 @@ using MediatR;
|
|||
using Microsoft.AspNetCore.SignalR;
|
||||
using Sledgemapper.Api.Hubs;
|
||||
using Sledgemapper.Api.Notifications;
|
||||
using Sledgemapper.Clients;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Sledgemapper.Shared.Clients;
|
||||
|
||||
namespace Sledgemapper.Api.Handlers
|
||||
{
|
||||
|
@ -16,7 +16,7 @@ namespace Sledgemapper.Api.Handlers
|
|||
|
||||
public async Task Handle(DeleteTileNotification notification, CancellationToken cancellationToken)
|
||||
{
|
||||
await _hub.Clients.Groups(notification.Session.SessionId.ToString()).DeleteTile(notification.Tile);
|
||||
await _hub.Clients.Groups(notification.Session.SessionName).DeleteTile(notification.Tile);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
using MediatR;
|
||||
using Microsoft.AspNetCore.SignalR;
|
||||
using Sledgemapper.Api.Notifications;
|
||||
using Sledgemapper.Clients;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Sledgemapper.Api.Hubs;
|
||||
using Sledgemapper.Shared.Clients;
|
||||
|
||||
namespace Sledgemapper.Api.Handlers
|
||||
{
|
||||
|
@ -16,7 +16,7 @@ namespace Sledgemapper.Api.Handlers
|
|||
|
||||
public async Task Handle(DeleteWallNotification notification, CancellationToken cancellationToken)
|
||||
{
|
||||
await _hub.Clients.Groups(notification.Session.SessionId.ToString()).DeleteWall(notification.Wall);
|
||||
await _hub.Clients.Groups(notification.Session.SessionName).DeleteWall(notification.Wall);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
using MediatR;
|
||||
using Microsoft.AspNetCore.SignalR;
|
||||
using Sledgemapper.Api.Notifications;
|
||||
using Sledgemapper.Clients;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Sledgemapper.Api.Hubs;
|
||||
using Sledgemapper.Shared.Clients;
|
||||
|
||||
namespace Sledgemapper.Api.Handlers
|
||||
{
|
||||
|
@ -16,7 +16,7 @@ namespace Sledgemapper.Api.Handlers
|
|||
|
||||
public async Task Handle(NewLineNotification notification, CancellationToken cancellationToken)
|
||||
{
|
||||
await _hub.Clients.Groups(notification.Session.SessionId.ToString()).NewLine(notification.Line);
|
||||
await _hub.Clients.Groups(notification.Session.SessionName).NewLine(notification.Line);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|