Merge branch 'CodenameCrew:main' into patch-1
@@ -0,0 +1,3 @@
|
||||
# These are supported funding model platforms
|
||||
|
||||
ko_fi: codename_engine
|
||||
@@ -7,7 +7,7 @@ jobs:
|
||||
build:
|
||||
name: Linux Build
|
||||
permissions: write-all
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- name: Pulling the source
|
||||
uses: actions/checkout@v2
|
||||
@@ -35,13 +35,13 @@ jobs:
|
||||
- name: Building the game
|
||||
run: |
|
||||
haxelib run lime build linux
|
||||
- name: Tar files
|
||||
run: tar -zcvf CodenameEngine.tar.gz -C export/release/linux/bin .
|
||||
# - name: Tar files
|
||||
# run: tar -zcvf CodenameEngine.tar.gz -C export/release/linux/bin .
|
||||
- name: Uploading artifact (entire build)
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: Codename Engine
|
||||
path: CodenameEngine.tar.gz
|
||||
path: export/release/linux/bin/
|
||||
# - name: Uploading artifact (executable)
|
||||
# uses: actions/upload-artifact@v4
|
||||
# with:
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
export/
|
||||
dump/
|
||||
latest/windows/obj/
|
||||
latest/windows/haxe/
|
||||
latest/*
|
||||
.vscode/*
|
||||
!.vscode/settings.json
|
||||
!.vscode/tasks.json
|
||||
@@ -11,4 +10,6 @@ docs/doc.xml
|
||||
mods/*
|
||||
addons/*
|
||||
!mods/readme.txt
|
||||
addons/*
|
||||
!addons/readme.txt
|
||||
dev-libs/
|
||||
|
||||
@@ -16,13 +16,14 @@ This changelog lists every change that has been added since the last update (inc
|
||||
- Added a function ``WindowUtils.resetAffixes()`` to reset the prefix and suffix of the engine's window title, and fixed a typo ([1d94945](https://github.com/CodenameCrew/CodenameEngine/commit/1d94945faeea86af02bcaecd715f5bea22ef48fd))
|
||||
- Added a field `extra` to FunkinSprite, which can be used to store any extra data you want (e.g. sprite.extra.set("name", value)) ([fb48570](https://github.com/CodenameCrew/CodenameEngine/commit/fb485701b451d6a7a22a1e696bfc081699f1c6d2))
|
||||
- Added default icon colors to every base game character ([814bd71](https://github.com/CodenameCrew/CodenameEngine/commit/814bd712fe2ea2dd21116e9903d9c2babe5341b1))
|
||||
- Added more features to cne.bat/cne.sh: ([4ef43df](https://github.com/CodenameCrew/CodenameEngine/commit/4ef43dfbecc79283d038d939f94671966802039e), [0dc166c](https://github.com/CodenameCrew/CodenameEngine/commit/0dc166c601b25e3167a1d04542840265484576b4))
|
||||
- Added more features to cne.bat/cne.sh: ([4ef43df](https://github.com/CodenameCrew/CodenameEngine/commit/4ef43dfbecc79283d038d939f94671966802039e), [0dc166c](https://github.com/CodenameCrew/CodenameEngine/commit/0dc166c601b25e3167a1d04542840265484576b4), [21bba98](https://github.com/CodenameCrew/CodenameEngine/commit/21bba98923307fe75667e1395781d068a7ec47ad))
|
||||
- Setup
|
||||
- `--reinstall` to reinstall all libraries
|
||||
- `--no-vscheck` to skip the Visual Studio check
|
||||
- `--silent` to not print the download progress
|
||||
- project file has conditionals now
|
||||
- libs file has conditionals now
|
||||
- `--lib=path.xml` to use a specific setup file
|
||||
- `--fast` for quickly downloading git libraries, but requires you to reinstall it fully when updates happen
|
||||
- Alphabet now allows multiple lines in the text ([d519db0](https://github.com/CodenameCrew/CodenameEngine/commit/d519db011a14aac0ddfc052089836c6b445f7f44))
|
||||
- Allow importing mod root level modules in hscript, instead of only source/ ([7e66ee8](https://github.com/CodenameCrew/CodenameEngine/commit/7e66ee81e24204cd152de20046fa1500bb9d204b))
|
||||
- Added a way to force animations in the `Play Animation` event ([d7b6fbe](https://github.com/CodenameCrew/CodenameEngine/commit/d7b6fbe510edeb832112ab5adc8ab19dfe97d77f))
|
||||
@@ -63,7 +64,6 @@ This changelog lists every change that has been added since the last update (inc
|
||||
- Added `bf` shorthand for `boyfriend` in playstate ([2b81220](https://github.com/CodenameCrew/CodenameEngine/commit/2b81220c15ed77acecd17c09a975ed401677165f))
|
||||
- Added character script extensions ([682358c](https://github.com/CodenameCrew/CodenameEngine/commit/682358c93a0c17469d1a481de0523e4c4e19c6ec))
|
||||
- Folder support in the character editor selection ([68c2fea](https://github.com/CodenameCrew/CodenameEngine/commit/68c2feab373db69d4a00b6f274f98afb3d8e3803))
|
||||
- cne.bat/cne.sh setup --fast for quickly downloading git libraries ([21bba98](https://github.com/CodenameCrew/CodenameEngine/commit/21bba98923307fe75667e1395781d068a7ec47ad))
|
||||
- Allow hold notes to be force deleted ([25b5630](https://github.com/CodenameCrew/CodenameEngine/commit/25b563066fc53ac92ebe3064175c80b5f1ae64bc))
|
||||
- Allow tweening shaders and array values using FlxTween ([3de3c3f](https://github.com/CodenameCrew/CodenameEngine/commit/3de3c3f8286b2b07c9690334e2d85ce052a909c5))
|
||||
- Made the advanced info show `Mod State: {name}` instead of `State: funkin.backend.scripting.ModState` ([3de3c3f](https://github.com/CodenameCrew/CodenameEngine/commit/3de3c3f8286b2b07c9690334e2d85ce052a909c5))
|
||||
|
||||
@@ -84,7 +84,6 @@ If you don't have a github account please go onto https://fnf-cne-devs.github.io
|
||||
<details>
|
||||
<summary><h2>Credits</h2></summary>
|
||||
|
||||
- Credits to [Ne_Eo](https://twitter.com/Ne_Eo_Twitch) and the [3D-HaxeFlixel](https://github.com/lunarcleint/3D-HaxeFlixel) repository for Away3D Flixel support
|
||||
- Credits to the [FlxAnimate](https://github.com/Dot-Stuff/flxanimate) team for the Animate Atlas support
|
||||
- Credits to Smokey555 for the backup Animate Atlas to spritesheet code
|
||||
- Credits to MAJigsaw77 for [hxvlc](https://github.com/MAJigsaw77/hxvlc) (video cutscene/mp4 support) and [hxdiscord_rpc](https://github.com/MAJigsaw77/hxdiscord_rpc) (discord rpc integration)
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
╔═══════════════════════════════════════╗
|
||||
║ HOW TO USE ║
|
||||
╚═══════════════════════════════════════╝
|
||||
DRAG AND DROP YOUR ADDON FOLDER HERE!
|
||||
|
||||
╔═══════════════════════════════════════╗
|
||||
║ ZIP ADDONS ║
|
||||
╚═══════════════════════════════════════╝
|
||||
Zip files are also supported at condition it follows this hierarchy:
|
||||
|
||||
📁addon.zip/
|
||||
📁data
|
||||
📁images
|
||||
📁...
|
||||
|
||||
Instead of this one
|
||||
|
||||
📁addon.zip
|
||||
📁my addon
|
||||
📁data
|
||||
📁images
|
||||
📁...
|
||||
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 79 KiB After Width: | Height: | Size: 79 KiB |
|
Before Width: | Height: | Size: 118 KiB After Width: | Height: | Size: 116 KiB |
|
Before Width: | Height: | Size: 115 KiB After Width: | Height: | Size: 113 KiB |
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 251 B After Width: | Height: | Size: 216 B |
|
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 74 KiB |
|
Before Width: | Height: | Size: 453 KiB After Width: | Height: | Size: 447 KiB |
|
Before Width: | Height: | Size: 75 KiB After Width: | Height: | Size: 74 KiB |
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 448 B After Width: | Height: | Size: 424 B |
|
Before Width: | Height: | Size: 8.1 KiB After Width: | Height: | Size: 7.7 KiB |
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.1 KiB |
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 91 KiB After Width: | Height: | Size: 90 KiB |
|
Before Width: | Height: | Size: 132 KiB After Width: | Height: | Size: 131 KiB |
@@ -2,33 +2,76 @@
|
||||
<letters fps="24">
|
||||
<bold spritesheet="menus/alphabet-bold">
|
||||
<!-- Bold Letters !-->
|
||||
<letter char="A" anim="A bold" />
|
||||
<letter char="B" anim="B bold" />
|
||||
<letter char="C" anim="C bold" />
|
||||
<letter char="D" anim="D bold" />
|
||||
<letter char="E" anim="E bold" />
|
||||
<letter char="F" anim="F bold" />
|
||||
<letter char="G" anim="G bold" />
|
||||
<letter char="H" anim="H bold" />
|
||||
<letter char="I" anim="I bold" />
|
||||
<letter char="J" anim="J bold" />
|
||||
<letter char="K" anim="K bold" />
|
||||
<letter char="L" anim="L bold" />
|
||||
<letter char="M" anim="M bold" />
|
||||
<letter char="N" anim="N bold" />
|
||||
<letter char="O" anim="O bold" />
|
||||
<letter char="P" anim="P bold" />
|
||||
<letter char="Q" anim="Q bold" />
|
||||
<letter char="R" anim="R bold" />
|
||||
<letter char="S" anim="S bold" />
|
||||
<letter char="T" anim="T bold" />
|
||||
<letter char="U" anim="U bold" />
|
||||
<letter char="V" anim="V bold" />
|
||||
<letter char="W" anim="W bold" />
|
||||
<letter char="X" anim="X bold" />
|
||||
<letter char="Y" anim="Y bold" />
|
||||
<letter char="Z" anim="Z bold" />
|
||||
<letter char=">" anim="> Bold" />
|
||||
<letter char="A" anim="character-a" />
|
||||
<letter char="B" anim="character-b" />
|
||||
<letter char="C" anim="character-c" />
|
||||
<letter char="D" anim="character-d" />
|
||||
<letter char="E" anim="character-e" />
|
||||
<letter char="F" anim="character-f" />
|
||||
<letter char="G" anim="character-g" />
|
||||
<letter char="H" anim="character-h" />
|
||||
<letter char="I" anim="character-i" />
|
||||
<letter char="J" anim="character-j" />
|
||||
<letter char="K" anim="character-k" />
|
||||
<letter char="L" anim="character-l" />
|
||||
<letter char="M" anim="character-m" />
|
||||
<letter char="N" anim="character-n" />
|
||||
<letter char="O" anim="character-o" />
|
||||
<letter char="P" anim="character-p" />
|
||||
<letter char="Q" anim="character-q" />
|
||||
<letter char="R" anim="character-r" />
|
||||
<letter char="S" anim="character-s" />
|
||||
<letter char="T" anim="character-t" />
|
||||
<letter char="U" anim="character-u" />
|
||||
<letter char="V" anim="character-v" />
|
||||
<letter char="W" anim="character-w" />
|
||||
<letter char="X" anim="character-x" />
|
||||
<letter char="Y" anim="character-y" />
|
||||
<letter char="Z" anim="character-z" />
|
||||
|
||||
<letter char="&" anim="character-ampersand" />
|
||||
<letter char="<" anim="character-anglebracket-left" />
|
||||
<letter char=">" anim="character-anglebracket-right" />
|
||||
<letter char="*" anim="character-asterisk" />
|
||||
<letter char="@" anim="character-at" />
|
||||
<letter char="\" anim="character-backslash" />
|
||||
<letter char="`" anim="character-backtick" />
|
||||
<letter char="^" anim="character-caret" />
|
||||
<letter char=":" anim="character-colon" />
|
||||
<letter char="," anim="character-comma" />
|
||||
<letter char="{" anim="character-curlybracket-left" />
|
||||
<letter char="}" anim="character-curlybracket-right" />
|
||||
<letter char="$" anim="character-dollar" />
|
||||
<letter char='"' anim="character-doublequote" />
|
||||
<letter char="=" anim="character-equal" />
|
||||
<letter char="!" anim="character-exclamationmark" />
|
||||
<letter char="-" anim="character-hyphen" />
|
||||
<letter char="%" anim="character-percent" />
|
||||
<letter char="." anim="character-period" />
|
||||
<letter char="+" anim="character-plus" />
|
||||
<letter char="#" anim="character-pound" />
|
||||
<letter char="?" anim="character-questionmark" />
|
||||
<letter char="(" anim="character-roundbracket-left" />
|
||||
<letter char=")" anim="character-roundbracket-right" />
|
||||
<letter char=";" anim="character-semicolon" />
|
||||
<letter char="'" anim="character-singlequote" />
|
||||
<letter char="/" anim="character-slash" />
|
||||
<letter char="[" anim="character-squarebracket-left" />
|
||||
<letter char="]" anim="character-squarebracket-right" />
|
||||
<letter char="~" anim="character-tilde" />
|
||||
<letter char="_" anim="character-underscore" />
|
||||
<letter char="|" anim="character-verticalbar" />
|
||||
|
||||
<letter char="0" anim="character-zero" />
|
||||
<letter char="1" anim="character-one" />
|
||||
<letter char="2" anim="character-two" />
|
||||
<letter char="3" anim="character-three" />
|
||||
<letter char="4" anim="character-four" />
|
||||
<letter char="5" anim="character-five" />
|
||||
<letter char="6" anim="character-six" />
|
||||
<letter char="7" anim="character-seven" />
|
||||
<letter char="8" anim="character-eight" />
|
||||
<letter char="9" anim="character-nine" />
|
||||
</bold>
|
||||
<normal spritesheet="menus/alphabet">
|
||||
<!-- Symbols !-->
|
||||
|
||||
@@ -0,0 +1,110 @@
|
||||
<!DOCTYPE codename-engine-alphabet-font>
|
||||
<alphabetFont fps="12" advance="50" lineGap="75" forceCasing="lower">
|
||||
<spritesheet>menus/alphabet-bold</spritesheet>
|
||||
|
||||
<defaultAnim>character-LETTER0</defaultAnim>
|
||||
<anim char="&">character-ampersand</anim>
|
||||
<anim char="<">character-anglebracket-left</anim>
|
||||
<anim char=">">character-anglebracket-right</anim>
|
||||
<anim char="*" y="30">character-asterisk</anim>
|
||||
<anim char="@">character-at</anim>
|
||||
<anim char="\">character-backslash</anim>
|
||||
<anim char="`" y="40">character-backtick</anim>
|
||||
<anim char="^" y="30">character-caret</anim>
|
||||
<anim char=":" y="10">character-colon</anim>
|
||||
<anim char="," y="-15">character-comma</anim>
|
||||
<anim char="{">character-curlybracket-left</anim>
|
||||
<anim char="}">character-curlybracket-right</anim>
|
||||
<anim char="$">character-dollar</anim>
|
||||
<anim char='"' y="35">character-doublequote0</anim>
|
||||
<anim char="=" y="20">character-equal</anim>
|
||||
<anim char="!">character-exclamationmark0</anim>
|
||||
<anim char="-" y="25">character-hyphen</anim>
|
||||
<anim char="%">character-percent</anim>
|
||||
<anim char=".">character-period</anim>
|
||||
<anim char="+" y="10">character-plus</anim>
|
||||
<anim char="#">character-pound</anim>
|
||||
<anim char="?">character-questionmark0</anim>
|
||||
<anim char="(">character-roundbracket-left</anim>
|
||||
<anim char=")">character-roundbracket-right</anim>
|
||||
<anim char=";" y="-15">character-semicolon</anim>
|
||||
<anim char="'" y="35">character-singlequote</anim>
|
||||
<anim char="/">character-slash</anim>
|
||||
<anim char="[">character-squarebracket-left</anim>
|
||||
<anim char="]">character-squarebracket-right</anim>
|
||||
<anim char="~" y="20">character-tilde0</anim>
|
||||
<anim char="_">character-underscore0</anim>
|
||||
<anim char="|">character-verticalbar0</anim>
|
||||
|
||||
<anim char="0">character-zero</anim>
|
||||
<anim char="1">character-one</anim>
|
||||
<anim char="2">character-two</anim>
|
||||
<anim char="3">character-three</anim>
|
||||
<anim char="4">character-four</anim>
|
||||
<anim char="5">character-five</anim>
|
||||
<anim char="6">character-six</anim>
|
||||
<anim char="7">character-seven</anim>
|
||||
<anim char="8">character-eight</anim>
|
||||
<anim char="9">character-nine</anim>
|
||||
|
||||
<composite char="ẽ">
|
||||
<component anim="character-e0" x="0" y="0"/>
|
||||
<component anim="diacritic-tilde-fill" x="3" y="73" outline="diacritic-tilde-outline" outlineX="-1" hasOutline="true"/>
|
||||
</composite>
|
||||
<composite char="ñ">
|
||||
<component anim="character-n0" x="0" y="0"/>
|
||||
<component anim="diacritic-tilde-fill" x="3" y="73" outline="diacritic-tilde-outline" outlineX="-1" hasOutline="true"/>
|
||||
</composite>
|
||||
<composite char="á">
|
||||
<component anim="character-a0" x="0" y="0"/>
|
||||
<component anim="diacritic-acute-fill" x="23" y="70" outline="diacritic-acute-outline" outlineX="-1" hasOutline="true"/>
|
||||
</composite>
|
||||
<composite char="é">
|
||||
<component anim="character-e0" x="0" y="0"/>
|
||||
<component anim="diacritic-acute-fill" x="15" y="70" outline="diacritic-acute-outline" outlineX="-1" hasOutline="true"/>
|
||||
</composite>
|
||||
<composite char="í">
|
||||
<component anim="character-i0" x="0" y="0"/>
|
||||
<component anim="diacritic-acute-fill" x="15" y="68" outline="diacritic-acute-outline" outlineX="-1" hasOutline="true"/>
|
||||
</composite>
|
||||
<composite char="ó">
|
||||
<component anim="character-o0" x="0" y="0"/>
|
||||
<component anim="diacritic-acute-fill" x="18" y="73" outline="diacritic-acute-outline" outlineX="-1" hasOutline="true"/>
|
||||
</composite>
|
||||
<composite char="ú">
|
||||
<component anim="character-u0" x="0" y="0"/>
|
||||
<component anim="diacritic-acute-fill" x="15" y="60" outline="diacritic-acute-outline" outlineX="-1" hasOutline="true"/>
|
||||
</composite>
|
||||
<composite char="ą">
|
||||
<component anim="character-a0" x="0" y="0"/>
|
||||
<component anim="diacritic-ogonek-fill" x="34" y="-12" outline="diacritic-ogonek-outline" outlineX="2" outlineY="-2" hasOutline="true"/>
|
||||
</composite>
|
||||
<composite char="ę">
|
||||
<component anim="character-e0" x="0" y="0"/>
|
||||
<component anim="diacritic-ogonek-fill" x="23" y="-14" outline="diacritic-ogonek-outline" outlineX="2" outlineY="-2" hasOutline="true"/>
|
||||
</composite>
|
||||
<composite char="ć">
|
||||
<component anim="character-c0" x="0" y="0"/>
|
||||
<component anim="diacritic-acute-fill" x="18" y="73" outline="diacritic-acute-outline" outlineX="-1" hasOutline="true"/>
|
||||
</composite>
|
||||
<composite char="ś">
|
||||
<component anim="character-s0" x="0" y="0"/>
|
||||
<component anim="diacritic-acute-fill" x="18" y="73" outline="diacritic-acute-outline" outlineX="-1" hasOutline="true"/>
|
||||
</composite>
|
||||
<composite char="ń">
|
||||
<component anim="character-n0" x="0" y="0"/>
|
||||
<component anim="diacritic-acute-fill" x="18" y="73" outline="diacritic-acute-outline" outlineX="-1" hasOutline="true"/>
|
||||
</composite>
|
||||
<composite char="ź">
|
||||
<component anim="character-z0" x="0" y="0"/>
|
||||
<component anim="diacritic-acute-fill" x="18" y="73" outline="diacritic-acute-outline" outlineX="-1" hasOutline="true"/>
|
||||
</composite>
|
||||
<composite char="ż">
|
||||
<component anim="character-z0" x="0" y="0"/>
|
||||
<component anim="diacritic-dot-fill" x="18" y="73" outline="diacritic-dot-outline" outlineX="-1" hasOutline="true"/>
|
||||
</composite>
|
||||
<composite char="ł">
|
||||
<component anim="character-l0" x="0" y="0"/>
|
||||
<component anim="diacritic-stroke0-short-fill" x="-2" y="30" outline="diacritic-stroke0-short-outline" outlineX="-1" hasOutline="true"/>
|
||||
</composite>
|
||||
</alphabetFont>
|
||||
@@ -0,0 +1,118 @@
|
||||
<!DOCTYPE codename-engine-alphabet-font>
|
||||
<alphabetFont fps="12" advance="30" lineGap="70" colorMode="offsets">
|
||||
<spritesheet>menus/alphabet</spritesheet>
|
||||
|
||||
<defaultAnim casing="upper">character-LOWERLETTER-capital</defaultAnim>
|
||||
<defaultAnim casing="lower">character-LOWERLETTER-lowercase</defaultAnim>
|
||||
<defaultAnim>LETTER</defaultAnim>
|
||||
|
||||
<anim char="g" y="-15">character-g-lowercase</anim>
|
||||
<anim char="j" y="-15">character-j-lowercase</anim>
|
||||
<anim char="p" y="-15">character-p-lowercase</anim>
|
||||
<anim char="q" y="-15">character-q-lowercase</anim>
|
||||
<anim char="y" y="-15">character-y-lowercase</anim>
|
||||
|
||||
<anim char="0">character-zero</anim>
|
||||
<anim char="1">character-one</anim>
|
||||
<anim char="2">character-two</anim>
|
||||
<anim char="3">character-three</anim>
|
||||
<anim char="4">character-four</anim>
|
||||
<anim char="5">character-five</anim>
|
||||
<anim char="6">character-six</anim>
|
||||
<anim char="7">character-seven</anim>
|
||||
<anim char="8">character-eight</anim>
|
||||
<anim char="9">character-nine</anim>
|
||||
|
||||
<anim char="&">character-ampersand</anim>
|
||||
<anim char="<">character-anglebracket-left</anim>
|
||||
<anim char=">">character-anglebracket-right</anim>
|
||||
<anim char="→" y="9">character-arrow-right</anim>
|
||||
<anim char="←" y="9">character-arrow-left</anim>
|
||||
<anim char="↓" y="5">character-arrow-down</anim>
|
||||
<anim char="↑" y="4">character-arrow-up</anim>
|
||||
<anim char="*" y="30">character-asterisk</anim>
|
||||
<anim char="@">character-at</anim>
|
||||
<anim char="\">character-backslash</anim>
|
||||
<anim char="`" y="30">character-backtick</anim>
|
||||
<anim char="^" y="28">character-caret</anim>
|
||||
<anim char=":">character-colon</anim>
|
||||
<anim char="," y="-9">character-comma</anim>
|
||||
<anim char="{">character-curlybracket-left</anim>
|
||||
<anim char="}">character-curlybracket-right</anim>
|
||||
<anim char="$">character-dollar</anim>
|
||||
<anim char='"' y="28">character-doublequote-start</anim>
|
||||
<anim char="=" y="13">character-equal</anim>
|
||||
<anim char="!">character-exclamationmark</anim>
|
||||
<anim char="-" y="20">character-minus</anim>
|
||||
<anim char="%">character-percent</anim>
|
||||
<anim char=".">character-period</anim>
|
||||
<anim char="+" y="9">character-plus</anim>
|
||||
<anim char="#" y="5">character-pound</anim>
|
||||
<anim char="?">character-questionmark</anim>
|
||||
<anim char="(">character-roundbracket-left</anim>
|
||||
<anim char=")">character-roundbracket-right</anim>
|
||||
<anim char=";" y="-9">character-semicolon</anim>
|
||||
<anim char="'" y="28">character-singlequote</anim>
|
||||
<anim char="/">character-slash</anim>
|
||||
<anim char="[">character-squarebracket-left</anim>
|
||||
<anim char="]">character-squarebracket-right</anim>
|
||||
<anim char="~" y="17">character-tilde</anim>
|
||||
<anim char="_">character-underscore</anim>
|
||||
<anim char="|">character-verticalbar</anim>
|
||||
|
||||
<!-- <composite char="á">
|
||||
<component anim="a lowercase0" x="0" y="0"/>
|
||||
<component anim="comma" scaleY="0.5" x="7" y="35"/>
|
||||
</composite>
|
||||
<composite char="é">
|
||||
<component anim="e lowercase0" x="0" y="0"/>
|
||||
<component anim="comma" scaleY="0.5" x="7" y="35"/>
|
||||
</composite>
|
||||
<composite char="í">
|
||||
<component anim="l lowercase0" x="0" y="-10" scaleY="0.5" angle="-2"/>
|
||||
<component anim="comma" x="-7" y="25" scaleY="0.5" angle="-5"/>
|
||||
</composite>
|
||||
<composite char="ó">
|
||||
<component anim="o lowercase0" x="0" y="0"/>
|
||||
<component anim="comma" scaleY="0.5" x="7" y="28"/>
|
||||
</composite>
|
||||
<composite char="ú">
|
||||
<component anim="u lowercase0" x="0" y="0"/>
|
||||
<component anim="comma" scaleY="0.5" x="5" y="28"/>
|
||||
</composite>
|
||||
|
||||
<composite char="ż">
|
||||
<component anim="z lowercase0" x="0" y="0"/>
|
||||
<component anim="period" scaleX="0.6" scaleY="0.8" x="10" y="32"/>
|
||||
</composite>
|
||||
|
||||
<composite char="ą">
|
||||
<component anim="a lowercase0" x="0" y="0"/>
|
||||
<component anim="question hook0" scaleX="0.5" scaleY="0.5" x="10" y="-25" angle="200"/>
|
||||
</composite>
|
||||
|
||||
<composite char="ł">
|
||||
<component anim="l lowercase0" x="0" y="0"/>
|
||||
<component anim="-0" scaleY="0.8" x="-13" y="15" angle="-22"/>
|
||||
</composite>
|
||||
|
||||
<composite char="Ś">
|
||||
<component anim="S capital0" x="0" y="0"/>
|
||||
<component anim="comma" scaleY="0.5" x="7" y="52.3"/>
|
||||
</composite>
|
||||
|
||||
<composite char="å">
|
||||
<component anim="a lowercase0" x="0" y="0"/>
|
||||
<component anim="period" x="10" y="40"/>
|
||||
</composite>
|
||||
<composite char="ë">
|
||||
<component anim="e lowercase0" x="0" y="0"/>
|
||||
<component anim="period" x="0" y="40"/>
|
||||
<component anim="period" x="20" y="40"/>
|
||||
</composite>
|
||||
<composite char="ö">
|
||||
<component anim="o lowercase0" x="0" y="0"/>
|
||||
<component anim="period" x="0" y="35"/>
|
||||
<component anim="period" x="20" y="35"/>
|
||||
</composite> -->
|
||||
</alphabetFont>
|
||||
@@ -1,4 +1,4 @@
|
||||
{
|
||||
"clientID": "1027994136193810442",
|
||||
"clientID": "1383853614589673472",
|
||||
"logoKey": "icon"
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
[Common]
|
||||
Name="baconeggandcheese"
|
||||
Description="who gaf"
|
||||
APIVersion="uhmmmm probs like 2"
|
||||
DownloadedFrom="https://yourmom.org"
|
||||
Dependencies=[
|
||||
"linkA",
|
||||
"linkB",
|
||||
"linkC"
|
||||
]
|
||||
Icon64="path/to/icon64.png"
|
||||
Icon32="path/to/icon32.png"
|
||||
Icon16="path/to/icon16.png"
|
||||
Icon="path/to/icon.ico"
|
||||
|
||||
[Flags]
|
||||
UseNoteRendererV2=false
|
||||
UseAway3D=false
|
||||
UseDiscordRPCIntegration=true
|
||||
UseLocalization=false
|
||||
UseLegacyFlixelAnimateHitbox=false
|
||||
|
||||
[Discord]
|
||||
ClientID="1027994136193810442",
|
||||
LogoKey="icon"
|
||||
@@ -1,4 +1,4 @@
|
||||
<window width="550" height="570" title="Editing Character ${button.getName()}">
|
||||
<window width="550" height="570" title="${translate('win-character-title', [button.getName()])}">
|
||||
<set name="XOFFSET" value="30" />
|
||||
<set name="YOFFSET" value="40" />
|
||||
<set name="TO" value="64" />
|
||||
@@ -16,7 +16,7 @@
|
||||
}
|
||||
</exec>
|
||||
|
||||
<title name="title" x="20" y="30 + 16" text="Character Data" />
|
||||
<title name="title" x="20" y="30 + 16" text="${translate('character-title')}" />
|
||||
|
||||
<section>
|
||||
<set name="curY" value="title.y + TO" />
|
||||
@@ -24,51 +24,51 @@
|
||||
<stepper name="xStepper" label="X" value="char.x" x="col(0)" y="curY" step="1" width="100" />
|
||||
<stepper name="yStepper" label="Y" value="char.y" x="last.x + last.bWidth + XOFFSET - 20" y="curY" step="1" width="100" />
|
||||
|
||||
<stepper name="scrollXStepper" label="Scroll X" value="char.scrollFactor.x" x="col(1)" y="curY" precision="2" step="0.01" width="100" />
|
||||
<stepper name="scrollYStepper" label="Scroll Y" value="char.scrollFactor.y" x="last.x + last.bWidth + XOFFSET - 20" y="curY" precision="2" step="0.01" width="100" />
|
||||
<stepper name="scrollXStepper" label="${translate('scroll', ['X'])}" value="char.scrollFactor.x" x="col(1)" y="curY" precision="2" step="0.01" width="100" />
|
||||
<stepper name="scrollYStepper" label="${translate('scroll', ['Y'])}" value="char.scrollFactor.y" x="last.x + last.bWidth + XOFFSET - 20" y="curY" precision="2" step="0.01" width="100" />
|
||||
|
||||
<stepper name="scaleXStepper" label="Scale X" value="char.scale.x / charScale" x="col(2)" y="curY" precision="2" step="0.01" width="100" />
|
||||
<stepper name="scaleYStepper" label="Scale Y" value="char.scale.y / charScale" x="last.x + last.bWidth + XOFFSET - 20" y="curY" precision="2" step="0.01" width="100" />
|
||||
<stepper name="scaleXStepper" label="${translate('scale', ['X'])}" value="char.scale.x / charScale" x="col(2)" y="curY" precision="2" step="0.01" width="100" />
|
||||
<stepper name="scaleYStepper" label="${translate('scale', ['Y'])}" value="char.scale.y / charScale" x="last.x + last.bWidth + XOFFSET - 20" y="curY" precision="2" step="0.01" width="100" />
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<set name="curY" value="xStepper.y + xStepper.bHeight + YOFFSET" />
|
||||
|
||||
<stepper name="camxStepper" label="Cam X" value="getEx('camX')" x="col(0)" y="curY" step="1" width="100" />
|
||||
<stepper name="camyStepper" label="Cam Y" value="getEx('camY')" x="last.x + last.bWidth + XOFFSET - 20" y="curY" step="1" width="100" />
|
||||
<stepper name="camxStepper" label="${translate('camera', ['X'])}" value="getEx('camX')" x="col(0)" y="curY" step="1" width="100" />
|
||||
<stepper name="camyStepper" label="${translate('camera', ['Y'])}" value="getEx('camY')" x="last.x + last.bWidth + XOFFSET - 20" y="curY" step="1" width="100" />
|
||||
|
||||
<label name="spacingLabel" text="Spacing (X, Y)" x="col(1)" y="curY" size="15" />
|
||||
<label name="spacingLabel" text="${translate('spacing')}" x="col(1)" y="curY" size="15" />
|
||||
<stepper name="spacingXStepper" value="getEx('spacingX')" x="col(1)" y="curY" precision="2" step="0.01" width="100" />
|
||||
<stepper name="spacingYStepper" value="getEx('spacingY')" x="last.x + last.bWidth + XOFFSET - 20" y="curY" precision="2" step="0.01" width="100" />
|
||||
|
||||
<stepper name="skewXStepper" label="Skew X" value="char.skew.x" x="col(2)" y="curY" precision="2" step="0.01" width="100" />
|
||||
<stepper name="skewYStepper" label="Skew Y" value="char.skew.y" x="last.x + last.bWidth + XOFFSET - 20" y="curY" precision="2" step="0.01" width="100" />
|
||||
<stepper name="skewXStepper" label="${translate('skew', ['X'])}" value="char.skew.x" x="col(2)" y="curY" precision="2" step="0.01" width="100" />
|
||||
<stepper name="skewYStepper" label="${translate('skew', ['Y'])}" value="char.skew.y" x="last.x + last.bWidth + XOFFSET - 20" y="curY" precision="2" step="0.01" width="100" />
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<set name="curY" value="camxStepper.y + camxStepper.bHeight + YOFFSET" />
|
||||
|
||||
<stepper name="alphaStepper" label="Alpha" value="char.alpha / 0.75" x="col(0)" y="curY" precision="2" step="0.01" width="100" />
|
||||
<stepper name="angleStepper" label="Angle" value="char.angle" x="last.x + last.bWidth + XOFFSET - 20" y="curY" precision="2" step="0.01" width="100" />
|
||||
<stepper name="alphaStepper" label="${translate('alpha')}" value="char.alpha / 0.75" x="col(0)" y="curY" precision="2" step="0.01" width="100" />
|
||||
<stepper name="angleStepper" label="${translate('angle')}" value="char.angle" x="last.x + last.bWidth + XOFFSET - 20" y="curY" precision="2" step="0.01" width="100" />
|
||||
|
||||
<stepper name="zoomFactorStepper" label="Zoom Factor" value="char.zoomFactor" x="col(1)" y="curY" precision="2" step="0.01" width="100" />
|
||||
<stepper name="zoomFactorStepper" label="${translate('zoomFactor')" value="char.zoomFactor" x="col(1)" y="curY" precision="2" step="0.01" width="100" />
|
||||
|
||||
<section if="!StringTools.startsWith(char.name, 'NO_DELETE_')">
|
||||
<textbox name="charName" label="Position Name" value="char.name" x="col(2)" y="curY" width="100"/>
|
||||
<textbox name="charName" label="${translate('positionName')}" value="char.name" x="col(2)" y="curY" width="100"/>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<set name="curY" value="alphaStepper.y + alphaStepper.bHeight + YOFFSET - 20" />
|
||||
|
||||
<checkbox name="flipXCheckbox" text="Flip X" value="char.isPlayer" x="col(0)" y="curY" />
|
||||
<checkbox name="flipXCheckbox" text="${translate('flipX')}" value="char.isPlayer" x="col(0)" y="curY" />
|
||||
|
||||
<radio for="memoryCheck" name="highMemoryRadio" text="High Memory Only" value="getEx('highMemory')" x="last.field.x + last.field.width + XOFFSET * 2" y="curY" />
|
||||
<radio for="memoryCheck" name="lowMemoryRadio" text="Low Memory Only" value="getEx('lowMemory')" x="last.field.x + last.field.width + XOFFSET * 2" y="curY" />
|
||||
<radio for="memoryCheck" name="highMemoryRadio" text="${translate('highMemory')}" value="getEx('highMemory')" x="last.field.x + last.field.width + XOFFSET * 2" y="curY" />
|
||||
<radio for="memoryCheck" name="lowMemoryRadio" text="${translate('lowMemory')}" value="getEx('lowMemory')" x="last.field.x + last.field.width + XOFFSET * 2" y="curY" />
|
||||
</section>
|
||||
|
||||
<section if="previewSprite != null">
|
||||
<title name="previewTitle" x="20" y="self.winHeight - 220" text="Preview Transform:" size="15" />
|
||||
<title name="previewTitle" x="20" y="self.winHeight - 220" text="${translate('transformPreview')}" size="15" />
|
||||
</section>
|
||||
<section if="previewSprite == null">
|
||||
<exec>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<window width="1056" height="520" title="Editing Sprite ${button.getName()}">
|
||||
<window width="1056" height="520" title="${translate('win-sprite-title', [button.getName()])}">
|
||||
<set name="MARGIN" value="20" />
|
||||
<set name="XOFFSET" value="50" />
|
||||
<set name="YOFFSET" value="40" />
|
||||
@@ -17,15 +17,15 @@
|
||||
}
|
||||
</exec>
|
||||
|
||||
<title name="title" x="20" y="30 + 16" text="Sprite Data" />
|
||||
<title name="title" x="20" y="30 + 16" text="${translate('sprite-title')}" />
|
||||
|
||||
<section> <!-- ROW 1 -->
|
||||
<set name="curY" value="title.y + TO" />
|
||||
|
||||
<textbox name="nameTextBox" label="Name Identifier" value="button.getName()" x="col(0)" y="curY" width="200" height="32" />
|
||||
<textbox name="nameTextBox" label="${translate('nameID')}" value="button.getName()" x="col(0)" y="curY" width="200" height="32" />
|
||||
<textbox name="spriteTextBox" value="getEx('imageFile')" x="last.x + last.bWidth + XOFFSET" y="curY" width="200" height="32" />
|
||||
<stepper name="alphaStepper" label="Alpha" value="sprite.alpha" x="spriteTextBox.x + spriteTextBox.bWidth + XOFFSET" y="curY" precision="2" step="0.01" width="100" />
|
||||
<label name="imageFile" text="Image File (WIP: needs reload) In (${stage.spritesParentFolder})" x="spriteTextBox.x" y="spriteTextBox.y - 14" size="15" />
|
||||
<label name="imageFile" text="${translate('imageFile')}" x="spriteTextBox.x" y="spriteTextBox.y - 14" size="15" />
|
||||
</section>
|
||||
|
||||
<section> <!-- ROW 2 -->
|
||||
@@ -34,36 +34,36 @@
|
||||
<stepper name="xStepper" label="X" value="sprite.x" x="col(0)" y="curY" step="1" width="100" />
|
||||
<stepper name="yStepper" label="Y" value="sprite.y" x="last.x + last.bWidth + XOFFSET - 20" y="curY" step="1" width="100" />
|
||||
|
||||
<stepper name="scrollXStepper" label="Scroll X" value="sprite.scrollFactor.x" x="spriteTextBox.x" y="curY" precision="2" step="0.01" width="100" />
|
||||
<stepper name="scrollYStepper" label="Scroll Y" value="sprite.scrollFactor.y" x="last.x + last.bWidth + XOFFSET - 20" y="curY" precision="2" step="0.01" width="100" />
|
||||
<stepper name="scrollXStepper" label="${translate('scroll', ['X'])}" value="sprite.scrollFactor.x" x="spriteTextBox.x" y="curY" precision="2" step="0.01" width="100" />
|
||||
<stepper name="scrollYStepper" label="${translate('scroll', ['Y'])}" value="sprite.scrollFactor.y" x="last.x + last.bWidth + XOFFSET - 20" y="curY" precision="2" step="0.01" width="100" />
|
||||
|
||||
<stepper name="scaleXStepper" label="Scale X" value="sprite.scale.x" x="col(2)" y="curY" precision="2" step="0.01" width="100" />
|
||||
<stepper name="scaleYStepper" label="Scale Y" value="sprite.scale.y" x="last.x + last.bWidth + XOFFSET - 20" y="curY" precision="2" step="0.01" width="100" />
|
||||
<stepper name="scaleXStepper" label="${translate('scale', ['X'])}" value="sprite.scale.x" x="col(2)" y="curY" precision="2" step="0.01" width="100" />
|
||||
<stepper name="scaleYStepper" label="${translate('scale', ['Y'])}" value="sprite.scale.y" x="last.x + last.bWidth + XOFFSET - 20" y="curY" precision="2" step="0.01" width="100" />
|
||||
</section>
|
||||
|
||||
<section> <!-- ROW 3 -->
|
||||
<set name="curY" value="xStepper.y + xStepper.bHeight + YOFFSET" />
|
||||
|
||||
<stepper name="angleStepper" label="Angle" value="sprite.angle" x="col(0)" y="curY" precision="2" step="0.01" width="100" />
|
||||
<stepper name="zoomFactorStepper" label="Zoom Factor" value="sprite.zoomFactor" x="last.x + last.bWidth + XOFFSET - 20" y="curY" precision="2" step="0.01" width="100" />
|
||||
<stepper name="angleStepper" label="${translate('angle')}" value="sprite.angle" x="col(0)" y="curY" precision="2" step="0.01" width="100" />
|
||||
<stepper name="zoomFactorStepper" label="${translate('zoomFactor')}" value="sprite.zoomFactor" x="last.x + last.bWidth + XOFFSET - 20" y="curY" precision="2" step="0.01" width="100" />
|
||||
|
||||
<!-- TODO: Simplify this -->
|
||||
<dropdown name="animType" label="Animation Type" value="sprite.spriteAnimType" x="col(1)" y="curY" width="150" height="32">
|
||||
<item label="NONE" value="0" />
|
||||
<item label="BEAT" value="1" />
|
||||
<item label="LOOP" value="2" />
|
||||
<dropdown name="animType" label="${translate('animType')}" value="sprite.spriteAnimType" x="col(1)" y="curY" width="150" height="32">
|
||||
<item label="${translate('animType.none')}" value="0" />
|
||||
<item label="${translate('animType.beat')}" value="1" />
|
||||
<item label="${translate('animType.loop')}" value="2" />
|
||||
</dropdown>
|
||||
|
||||
<stepper name="skewXStepper" label="Skew X" value="sprite.skew.x" x="col(2)" y="curY" precision="2" step="0.01" width="100" />
|
||||
<stepper name="skewYStepper" label="Skew Y" value="sprite.skew.y" x="last.x + last.bWidth + XOFFSET - 20" y="curY" precision="2" step="0.01" width="100" />
|
||||
<stepper name="skewXStepper" label="${translate('skew', ['X'])}" value="sprite.skew.x" x="col(2)" y="curY" precision="2" step="0.01" width="100" />
|
||||
<stepper name="skewYStepper" label="${translate('skew', ['Y'])}" value="sprite.skew.y" x="last.x + last.bWidth + XOFFSET - 20" y="curY" precision="2" step="0.01" width="100" />
|
||||
</section>
|
||||
|
||||
<section> <!-- ROW 4 -->
|
||||
<set name="curY" value="angleStepper.y + angleStepper.bHeight + YOFFSET" />
|
||||
|
||||
<checkbox name="antialiasingCheckbox" text="Antialiasing" value="sprite.antialiasing" x="col(0)" y="curY" />
|
||||
<radio for="memoryCheck" name="highMemoryRadio" text="High Memory Only" value="getEx('highMemory')" x="col(1)" y="curY" />
|
||||
<radio for="memoryCheck" name="lowMemoryRadio" text="Low Memory Only" value="getEx('lowMemory')" x="col(2)" y="curY" />
|
||||
<checkbox name="antialiasingCheckbox" text="${translate('antialiasing')}" value="sprite.antialiasing" x="col(0)" y="curY" />
|
||||
<radio for="memoryCheck" name="highMemoryRadio" text="${translate('highMemory')}" value="getEx('highMemory')" x="col(1)" y="curY" />
|
||||
<radio for="memoryCheck" name="lowMemoryRadio" text="${translate('lowMemory')}" value="getEx('lowMemory')" x="col(2)" y="curY" />
|
||||
|
||||
<!-- TODO: Animation list -->
|
||||
</section>
|
||||
@@ -72,7 +72,7 @@
|
||||
<set name="curY" value="title.y + TO" />
|
||||
<set name="listWidth" value="250" />
|
||||
|
||||
<buttonlist name="animations" label="Animations (TODO)" x="col(3)" y="curY" width="listWidth" height="330" buttonSizeX="listWidth-10" buttonSizeY="35" buttonSpacing="5">
|
||||
<buttonlist name="animations" label="${translate('animations')}" x="col(3)" y="curY" width="listWidth" height="330" buttonSizeX="listWidth-10" buttonSizeY="35" buttonSpacing="5">
|
||||
<texture path="editors/ui/inputbox" />
|
||||
<camSpacing value="0" />
|
||||
|
||||
@@ -103,14 +103,14 @@
|
||||
</code> -->
|
||||
</buttonlist>
|
||||
|
||||
<text text="Tip: To access custom properties, hold shift when clicking edit" x="col(2) - 60" y="self.winHeight - 50" size="15" />
|
||||
<text text="${translate('tipCustomProperties')}" x="col(2) - 60" y="self.winHeight - 50" size="15" />
|
||||
</section>
|
||||
|
||||
|
||||
<!-- Preview Transform -->
|
||||
|
||||
<section if="previewSprite != null">
|
||||
<title name="previewTitle" x="20" y="self.winHeight - 150" text="Preview Transform:" size="15" />
|
||||
<title name="previewTitle" x="20" y="self.winHeight - 150" text="${translate('transformPreview')}" size="15" />
|
||||
</section>
|
||||
|
||||
<exec>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<window width="470" height="620" title="Editing Stage Info '${stage.stageName}'">
|
||||
<window width="470" height="620" title="${translate('win-title', [stage.stageName])}">
|
||||
<set name="MARGIN" value="20" />
|
||||
<set name="XOFFSET" value="50" />
|
||||
<set name="YOFFSET" value="40" />
|
||||
@@ -28,31 +28,31 @@
|
||||
}
|
||||
</exec>
|
||||
|
||||
<title name="title" x="MARGIN" y="30 + 16" text="Stage Info" />
|
||||
<title name="title" x="MARGIN" y="30 + 16" text="${translate('title')}" />
|
||||
|
||||
<section> <!-- ROW 1 -->
|
||||
<set name="curY" value="title.y + TO" />
|
||||
|
||||
<textbox name="nameTextBox" label="Stage Name" value="stage.stageName" x="col(0)" y="curY" width="200" height="32" />
|
||||
<textbox name="nameTextBox" label="${translate('stageName')}" value="stage.stageName" x="col(0)" y="curY" width="200" height="32" />
|
||||
<textbox name="spritePathTextBox" value="stage.spritesParentFolder" x="col(1)" y="curY" width="200" height="32" />
|
||||
<label text="Sprite Path (Needs Refresh)" x="spritePathTextBox.x" y="spritePathTextBox.y - 14" size="15" />
|
||||
<label text="${translate('spritePath')}" x="spritePathTextBox.x" y="spritePathTextBox.y - 14" size="15" />
|
||||
</section>
|
||||
|
||||
<section> <!-- ROW 2 -->
|
||||
<set name="curY" value="nameTextBox.y + nameTextBox.bHeight + YOFFSET" />
|
||||
|
||||
<label text="Start Cam Pos (X, Y)" x="col(0)" y="curY" />
|
||||
<label text="${translate('startCamPos')}" x="col(0)" y="curY" />
|
||||
<stepper name="camxStepper" value="stage.startCam.x" x="col(0)" y="curY" step="1" width="120" />
|
||||
<stepper name="camyStepper" value="stage.startCam.y" x="last.x + last.bWidth + XOFFSET - 30" y="curY" step="1" width="120" />
|
||||
|
||||
<stepper name="zoomStepper" label="Zoom" value="stage.defaultZoom" x="col(1)" y="curY" precision="2" step="0.01" width="100" />
|
||||
<stepper name="zoomStepper" label="${translate('zoom')}" value="stage.defaultZoom" x="col(1)" y="curY" precision="2" step="0.01" width="100" />
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<set name="curY" value="camxStepper.y + camxStepper.bHeight + YOFFSET" />
|
||||
<set name="listWidth" value="self.winWidth - MARGIN * 2" />
|
||||
|
||||
<buttonlist name="attributesList" label="Custom Attributes" x="col(0)" y="curY" width="listWidth" height="290" buttonSizeX="listWidth-10" buttonSizeY="35" buttonSpacing="5">
|
||||
<buttonlist name="attributesList" label="${translate('customAttributes')}" x="col(0)" y="curY" width="listWidth" height="290" buttonSizeX="listWidth-10" buttonSizeY="35" buttonSpacing="5">
|
||||
<texture path="editors/ui/inputbox" />
|
||||
<camSpacing value="0" />
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<window width="350" height="570" title="Editing XML <${button.getName()} />">
|
||||
<window width="350" height="570" title="${translate('win-title', [button.getName()])}">
|
||||
<set name="MARGIN" value="20" />
|
||||
<set name="XOFFSET" value="30" />
|
||||
<set name="YOFFSET" value="40" />
|
||||
@@ -10,25 +10,25 @@
|
||||
}
|
||||
</exec>
|
||||
|
||||
<title name="title" x="MARGIN" y="30 + 16" text="Xml Data" />
|
||||
<title name="title" x="MARGIN" y="30 + 16" text="${translate('title')}" />
|
||||
|
||||
<section>
|
||||
<set name="curY" value="title.y + TO" />
|
||||
|
||||
<textbox name="nodeNameTextBox" label="Element Name" value="button.getName()" x="col(0)" y="curY" width="280" height="32" />
|
||||
<textbox name="nodeNameTextBox" label="${translate('elementName')}" value="button.getName()" x="col(0)" y="curY" width="280" height="32" />
|
||||
</section>
|
||||
<section>
|
||||
<set name="curY" value="nodeNameTextBox.y + nodeNameTextBox.bHeight + YOFFSET - 30" />
|
||||
|
||||
<radio for="memoryCheck" name="highMemoryRadio" text="High Memory Only" value="button.highMemory" x="col(0)" y="curY" />
|
||||
<radio for="memoryCheck" name="lowMemoryRadio" text="Low Memory Only" value="button.lowMemory" x="col(0)" y="last.y + last.check.height + YOFFSET - 30" />
|
||||
<radio for="memoryCheck" name="highMemoryRadio" text="${translate('highMemory')}" value="button.highMemory" x="col(0)" y="curY" />
|
||||
<radio for="memoryCheck" name="lowMemoryRadio" text="${translate('lowMemory')}" value="button.lowMemory" x="col(0)" y="last.y + last.check.height + YOFFSET - 30" />
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<set name="curY" value="lowMemoryRadio.y + lowMemoryRadio.check.height + YOFFSET" />
|
||||
<set name="listWidth" value="self.winWidth - MARGIN * 2" />
|
||||
|
||||
<buttonlist name="attributesList" label="Attributes" x="col(0)" y="curY" width="listWidth" height="260" buttonSizeX="listWidth-10" buttonSizeY="35" buttonSpacing="5">
|
||||
<buttonlist name="attributesList" label="${translate('attributes')}" x="col(0)" y="curY" width="listWidth" height="260" buttonSizeX="listWidth-10" buttonSizeY="35" buttonSpacing="5">
|
||||
<texture path="editors/ui/inputbox" />
|
||||
<camSpacing value="0" />
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<window width="450" height="570" title="Editing XML ${type}">
|
||||
<window width="450" height="570" title="${translate('win-title', [type])}">
|
||||
<!-- BASED ON unknownEditScreen.xml -->
|
||||
<set name="MARGIN" value="20" />
|
||||
<set name="XOFFSET" value="30" />
|
||||
@@ -11,13 +11,13 @@
|
||||
}
|
||||
</exec>
|
||||
|
||||
<title name="title" x="MARGIN" y="30 + 16" text="Xml Data" />
|
||||
<title name="title" x="MARGIN" y="30 + 16" text="${translate('title')}" />
|
||||
|
||||
<section>
|
||||
<set name="curY" value="title.y + TO" />
|
||||
<set name="listWidth" value="self.winWidth - MARGIN * 2" />
|
||||
|
||||
<buttonlist name="attributesList" label="Attributes" x="col(0)" y="curY" width="listWidth" height="400" buttonSizeX="listWidth-10" buttonSizeY="35" buttonSpacing="5">
|
||||
<buttonlist name="attributesList" label="${translate('attributes')}" x="col(0)" y="curY" width="listWidth" height="400" buttonSizeX="listWidth-10" buttonSizeY="35" buttonSpacing="5">
|
||||
<texture path="editors/ui/inputbox" />
|
||||
<camSpacing value="0" />
|
||||
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
//
|
||||
function update(elapsed:Float)
|
||||
if (FlxG.keys.justPressed.F5) FlxG.resetState();
|
||||
@@ -1,2 +1,2 @@
|
||||
function onNoteHit(event) if (event.noteType == "Alt Anim Note") event.animSuffix = "-alt";
|
||||
function onPlayerMiss(event) if (event.noteType == "Alt Anim Note") event.animSuffix = "-alt";
|
||||
function onPlayerMiss(event) if (event.noteType == "Alt Anim Note") event.animSuffix = "miss-alt";
|
||||
@@ -18,9 +18,7 @@ public var daPixelZoom = PlayState.daPixelZoom;
|
||||
* UI
|
||||
*/
|
||||
function onNoteCreation(event) {
|
||||
if (event.note.strumLine == playerStrums && !pixelNotesForBF) return;
|
||||
if (event.note.strumLine == cpuStrums && !pixelNotesForDad) return;
|
||||
|
||||
if ((event.note.strumLine == playerStrums && !pixelNotesForBF) || (event.note.strumLine == cpuStrums && !pixelNotesForDad)) return;
|
||||
event.cancel();
|
||||
|
||||
var note = event.note;
|
||||
@@ -38,18 +36,14 @@ function onNoteCreation(event) {
|
||||
var strumScale = event.note.strumLine.strumScale;
|
||||
note.scale.set(daPixelZoom*strumScale, daPixelZoom*strumScale);
|
||||
note.updateHitbox();
|
||||
note.antialiasing = false;
|
||||
}
|
||||
|
||||
function onPostNoteCreation(event) {
|
||||
var splashes = event.note;
|
||||
if (pixelSplashes)
|
||||
splashes.splash = "pixel-default";
|
||||
}
|
||||
function onPostNoteCreation(event) if (pixelSplashes)
|
||||
event.note.splash = "pixel-default";
|
||||
|
||||
function onStrumCreation(event) {
|
||||
if (event.player == 1 && !pixelNotesForBF) return;
|
||||
if (event.player == 0 && !pixelNotesForDad) return;
|
||||
|
||||
if ((event.player == 1 && !pixelNotesForBF) || (event.player == 0 && !pixelNotesForDad)) return;
|
||||
event.cancel();
|
||||
|
||||
var strum = event.strum;
|
||||
@@ -64,6 +58,7 @@ function onStrumCreation(event) {
|
||||
var strumScale = strumLines.members[event.player].strumScale;
|
||||
strum.scale.set(daPixelZoom*strumScale, daPixelZoom*strumScale);
|
||||
strum.updateHitbox();
|
||||
strum.antialiasing = false;
|
||||
}
|
||||
|
||||
function onCountdown(event) {
|
||||
@@ -94,9 +89,9 @@ function onPlayerHit(event:NoteHitEvent) {
|
||||
* CAMERA HACKS!!
|
||||
*/
|
||||
function postCreate() {
|
||||
if (enablePauseMenu) {
|
||||
if (enablePauseMenu)
|
||||
PauseSubState.script = 'data/scripts/week6-pause';
|
||||
}
|
||||
|
||||
if (enableCameraHacks) {
|
||||
camGame.pixelPerfectRender = true;
|
||||
camGame.antialiasing = false;
|
||||
@@ -105,9 +100,6 @@ function postCreate() {
|
||||
defaultCamZoom /= daPixelZoom;
|
||||
}
|
||||
|
||||
iconP1.antialiasing = false;
|
||||
iconP2.antialiasing = false;
|
||||
|
||||
if (enablePixelGameOver) {
|
||||
gameOverSong = "pixel/gameOver";
|
||||
lossSFX = "pixel/gameOverSFX";
|
||||
@@ -115,8 +107,8 @@ function postCreate() {
|
||||
}
|
||||
}
|
||||
|
||||
function onStartCountdown() {
|
||||
/*var newNoteCamera = new HudCamera();
|
||||
/*function onStartCountdown() {
|
||||
var newNoteCamera = new HudCamera();
|
||||
newNoteCamera.bgColor = 0; // transparent
|
||||
FlxG.cameras.add(newNoteCamera, false);
|
||||
|
||||
@@ -130,8 +122,8 @@ function onStartCountdown() {
|
||||
i++;
|
||||
}
|
||||
}
|
||||
makeCameraPixely(newNoteCamera);*/
|
||||
}
|
||||
makeCameraPixely(newNoteCamera);
|
||||
}*/
|
||||
|
||||
/**
|
||||
* Use this to make any camera pixelly (you wont be able to zoom with it anymore!)
|
||||
@@ -156,33 +148,29 @@ function destroy() {
|
||||
FlxG.game.stage.quality = oldStageQuality;
|
||||
}
|
||||
|
||||
function pixelCam(cam) {
|
||||
function pixelCam(cam)
|
||||
makeCameraPixely(cam);
|
||||
}
|
||||
|
||||
var pixellyCameras = [];
|
||||
var pixellyShaders = [];
|
||||
|
||||
function postUpdate(elapsed) {
|
||||
for(e in pixellyCameras) {
|
||||
if (Std.isOfType(e, HudCamera))
|
||||
e.downscroll = camHUD.downscroll;
|
||||
}
|
||||
if (enableCameraHacks) {
|
||||
for(p in strumLines)
|
||||
p.notes.forEach(function(n) {
|
||||
if(n.isSustainNote) return; // hacky fix for hold
|
||||
n.y -= n.y % daPixelZoom;
|
||||
n.x -= n.x % daPixelZoom;
|
||||
});
|
||||
function postUpdate() {
|
||||
for (e in pixellyCameras) if (Std.isOfType(e, HudCamera))
|
||||
e.downscroll = camHUD.downscroll;
|
||||
|
||||
if (enableCameraHacks) for (p in strumLines) {
|
||||
p.notes.forEach(function(n) {
|
||||
if(n.isSustainNote) return; // hacky fix for hold
|
||||
n.y -= n.y % daPixelZoom;
|
||||
n.x -= n.x % daPixelZoom;
|
||||
});
|
||||
}
|
||||
|
||||
var zoom = 1 / daPixelZoom / Math.min(FlxG.scaleMode.scale.x, FlxG.scaleMode.scale.y);
|
||||
for(e in pixellyCameras) {
|
||||
for (e in pixellyCameras) {
|
||||
if (!e.exists) continue;
|
||||
e.zoom = zoom;
|
||||
}
|
||||
for(e in pixellyShaders) {
|
||||
for (e in pixellyShaders)
|
||||
e.pixelZoom = zoom;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ import flixel.text.FlxText;
|
||||
import flixel.text.FlxTextBorderStyle;
|
||||
import flixel.util.FlxAxes;
|
||||
|
||||
var pixelScript:Script;
|
||||
var pixelScript:Script = game.scripts.getByName("pixel.hx");
|
||||
var pauseCam = new FlxCamera();
|
||||
|
||||
var bg:FlxSprite;
|
||||
@@ -19,47 +19,40 @@ function create(event) {
|
||||
|
||||
event.music = isThorns ? "pixel/LunchboxScary" : "pixel/breakfast";
|
||||
|
||||
cameras = [];
|
||||
|
||||
pixelScript = game.scripts.getByName("pixel.hx");
|
||||
pixelScript.call("pixelCam", [pauseCam]);
|
||||
// allowing this pause script even if the pixel script is not loaded - Nex
|
||||
pixelScript?.call("pixelCam", [pauseCam]);
|
||||
|
||||
FlxG.cameras.add(pauseCam, false);
|
||||
cameras = [pauseCam];
|
||||
|
||||
pauseCam.bgColor = isThorns ? 0x88000000 : 0x88FF99CC;
|
||||
pauseCam.alpha = 0;
|
||||
|
||||
bg = new FlxSprite(44 * 6, 14 * 6);
|
||||
bg.loadGraphic(Paths.image('stages/school/pause/bg'));
|
||||
if (isThorns)
|
||||
bg.color = 0xFF000000;
|
||||
bg = new FlxSprite(44 * 6, 14 * 6, Paths.image('stages/school/pause/bg'));
|
||||
bg.antialiasing = false;
|
||||
if (isThorns) bg.color = 0xFF000000;
|
||||
bg.scale.set(6, 6);
|
||||
bg.updateHitbox();
|
||||
bg.scale.y = 4;
|
||||
bg.cameras = [pauseCam];
|
||||
add(bg);
|
||||
|
||||
songText = new FlxText(0, 22 * 6, 0, "Pause", 8, false);
|
||||
confText(songText);
|
||||
add(songText);
|
||||
|
||||
var i = 2;
|
||||
for(e in menuItems) {
|
||||
text = new FlxText(0, (22 * 6) + (i * 9 * 6), 0, e, 8, false);
|
||||
for (i=>e in menuItems) {
|
||||
text = new FlxText(0, (22 * 6) + ((i+2) * 9 * 6), 0, e, 8, false);
|
||||
confText(text);
|
||||
add(text);
|
||||
texts.push(text);
|
||||
i++;
|
||||
}
|
||||
|
||||
hand = new FlxSprite().loadGraphic(Paths.image('stages/school/ui/hand_textbox'));
|
||||
hand.antialiasing = false;
|
||||
hand.scale.set(6, 6);
|
||||
hand.updateHitbox();
|
||||
add(hand);
|
||||
|
||||
FlxTween.tween(bg, {"scale.y": 6}, 0.75, {ease: FlxEase.elasticOut});
|
||||
FlxTween.tween(bg.scale, {y: 6}, 0.75, {ease: FlxEase.elasticOut});
|
||||
|
||||
cameras = [pauseCam];
|
||||
|
||||
FlxG.sound.play(Paths.sound(isThorns ? 'pixel/ANGRY' : 'pixel/clickText'));
|
||||
}
|
||||
@@ -70,55 +63,50 @@ function confText(text) {
|
||||
text.screenCenter(FlxAxes.X);
|
||||
text.borderStyle = FlxTextBorderStyle.OUTLINE;
|
||||
if (!isThorns) text.borderColor = 0xFF953E3E;
|
||||
|
||||
text.antialiasing = false;
|
||||
texts.push(text);
|
||||
add(text);
|
||||
}
|
||||
|
||||
function destroy() {
|
||||
if(FlxG.cameras.list.contains(pauseCam))
|
||||
FlxG.cameras.remove(pauseCam);
|
||||
}
|
||||
function destroy() if (FlxG.cameras.list.contains(pauseCam))
|
||||
FlxG.cameras.remove(pauseCam);
|
||||
|
||||
var canDoShit = true;
|
||||
var time:Float = 0;
|
||||
function update(elapsed) {
|
||||
pixelScript.call("postUpdate", [elapsed]);
|
||||
pixelScript?.call("postUpdate", [elapsed]);
|
||||
|
||||
pauseCam.alpha = lerp(pauseCam.alpha, 1, 0.25);
|
||||
time += elapsed;
|
||||
|
||||
var curText = texts[curSelected];
|
||||
var curText = texts[curSelected + 1];
|
||||
hand.setPosition(curText.x - hand.width - 18 + (Math.sin(time * Math.PI * 2) * 12), curText.y + (text.height - hand.height) - 6);
|
||||
hand.x -= hand.x % 6;
|
||||
hand.y -= hand.y % 6;
|
||||
|
||||
if (!canDoShit) return;
|
||||
var oldSec = curSelected;
|
||||
|
||||
changeSelection((controls.UP_P ? -1 : 0) + (controls.DOWN_P ? 1 : 0) - FlxG.mouse.wheel);
|
||||
|
||||
if (oldSec != curSelected)
|
||||
FlxG.sound.play(Paths.sound(isThorns ? 'pixel/type' : 'pixel/pixelText'));
|
||||
if (controls.ACCEPT) enterOption();
|
||||
}
|
||||
|
||||
if (controls.ACCEPT) {
|
||||
FlxG.sound.play(Paths.sound(isThorns ? 'pixel/ANGRY' : 'pixel/clickText'));
|
||||
var option = menuItems[curSelected];
|
||||
if (option == "Resume" || option == "Exit to menu") {
|
||||
var scrollSFX = FlxG.sound.load(Paths.sound(isThorns ? 'pixel/type' : 'pixel/pixelText'));
|
||||
function changeSelection(change) if (canDoShit) { // this overrides the function inside of the normal pause btw, so no event gets called - Nex
|
||||
curSelected = FlxMath.wrap(curSelected + change, 0, menuItems.length - 1);
|
||||
if (change != 0) scrollSFX.play();
|
||||
}
|
||||
|
||||
var enterSFX = FlxG.sound.load(Paths.sound(isThorns ? 'pixel/ANGRY' : 'pixel/clickText'));
|
||||
function enterOption() if (canDoShit) {
|
||||
var option = menuItems[curSelected];
|
||||
enterSFX.play();
|
||||
|
||||
switch(option) {
|
||||
case "Resume", "Exit to menu":
|
||||
canDoShit = false;
|
||||
for(t in texts) t.visible = false;
|
||||
hand.visible = songText.visible = false;
|
||||
FlxTween.tween(bg, {"scale.y": 0}, 0.125, {ease: FlxEase.cubeOut, onComplete: function() {
|
||||
selectOption();
|
||||
}});
|
||||
} else {
|
||||
selectOption();
|
||||
}
|
||||
FlxTween.tween(bg.scale, {y: 0}, 0.125, {ease: FlxEase.cubeOut, onComplete: selectOption});
|
||||
default: selectOption();
|
||||
}
|
||||
}
|
||||
|
||||
function changeSelection(change) { // this overrides the function inside of the normal pause btw, so no event gets called - Nex
|
||||
curSelected += change;
|
||||
|
||||
if (curSelected < 0)
|
||||
curSelected = menuItems.length - 1;
|
||||
if (curSelected >= menuItems.length)
|
||||
curSelected = 0;
|
||||
}
|
||||
@@ -3,13 +3,7 @@ var sound:Sound;
|
||||
function create()
|
||||
sound = Paths.sound('jeffGameover/jeffGameover-' + FlxG.random.int(1, 25, !Options.naughtyness ? [1, 3, 8, 13, 17, 21] : null));
|
||||
|
||||
function beatHit(cur:Int) {
|
||||
if(cur != 0) return;
|
||||
|
||||
function beatHit(cur:Int) if (cur == 0) {
|
||||
FlxG.sound.play(sound, 1, false, null, true, () -> if (!isEnding) FlxG.sound.music.fadeIn(4, 0.2, 1));
|
||||
FlxG.sound.music.volume = 0.2;
|
||||
FlxG.sound.play(sound, 1, false, null, true, function()
|
||||
{
|
||||
if (!isEnding)
|
||||
FlxG.sound.music.fadeIn(4, 0.2, 1);
|
||||
});
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
var tankAngle:Float = FlxG.random.int(-90, 45);
|
||||
var tankSpeed:Float = FlxG.random.float(5, 7);
|
||||
|
||||
function postCreate() if(PlayState.isStoryMode)
|
||||
function postCreate() if (PlayState.isStoryMode)
|
||||
GameOverSubstate.script = 'data/scripts/week7-balledLines';
|
||||
|
||||
function update(elapsed:Float) {
|
||||
@@ -12,7 +12,7 @@ function update(elapsed:Float) {
|
||||
}
|
||||
|
||||
function onPostCountdown(event) {
|
||||
if(!playCutscenes || event.sprite == null) return;
|
||||
if (!playCutscenes || event.sprite == null) return;
|
||||
var lastIndex:Int = members.indexOf(event.sprite);
|
||||
remove(event.sprite);
|
||||
insert(lastIndex + 4, event.sprite);
|
||||
|
||||
@@ -15,14 +15,14 @@
|
||||
<line text="ninjamuffin99" />
|
||||
<line text="phantomArcade" />
|
||||
<line text="kawaisprite" />
|
||||
<line text="evilsk8er" />
|
||||
<line text="evilsk8r" />
|
||||
</text>
|
||||
|
||||
<text beat="3">
|
||||
<line text="ninjamuffin99" />
|
||||
<line text="phantomArcade" />
|
||||
<line text="kawaisprite" />
|
||||
<line text="evilsk8er" />
|
||||
<line text="evilsk8r" />
|
||||
<line text="presents" />
|
||||
</text>
|
||||
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
<!DOCTYPE codename-engine-week-character>
|
||||
<char scale="0.5" x="80" y="-50"/>
|
||||
<char scale="0.5" x="80" y="-50" beatInterval="1"/>
|
||||
|
Before Width: | Height: | Size: 978 KiB After Width: | Height: | Size: 960 KiB |
|
Before Width: | Height: | Size: 459 KiB After Width: | Height: | Size: 456 KiB |
|
Before Width: | Height: | Size: 1.6 MiB After Width: | Height: | Size: 1.6 MiB |
|
Before Width: | Height: | Size: 2.0 MiB After Width: | Height: | Size: 1.8 MiB |
|
Before Width: | Height: | Size: 2.2 MiB After Width: | Height: | Size: 2.1 MiB |
|
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 57 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 1.3 MiB After Width: | Height: | Size: 1.3 MiB |
|
Before Width: | Height: | Size: 488 KiB After Width: | Height: | Size: 481 KiB |
|
Before Width: | Height: | Size: 579 KiB After Width: | Height: | Size: 562 KiB |
|
Before Width: | Height: | Size: 76 KiB After Width: | Height: | Size: 74 KiB |
|
Before Width: | Height: | Size: 230 KiB After Width: | Height: | Size: 228 KiB |
|
Before Width: | Height: | Size: 9.0 KiB After Width: | Height: | Size: 8.5 KiB |
|
Before Width: | Height: | Size: 106 KiB After Width: | Height: | Size: 105 KiB |
|
Before Width: | Height: | Size: 169 KiB After Width: | Height: | Size: 165 KiB |
|
Before Width: | Height: | Size: 1.8 MiB After Width: | Height: | Size: 1.8 MiB |
|
Before Width: | Height: | Size: 993 KiB After Width: | Height: | Size: 972 KiB |
|
Before Width: | Height: | Size: 792 KiB After Width: | Height: | Size: 779 KiB |
|
Before Width: | Height: | Size: 1.2 MiB After Width: | Height: | Size: 1.1 MiB |
|
Before Width: | Height: | Size: 4.5 MiB After Width: | Height: | Size: 4.4 MiB |
|
Before Width: | Height: | Size: 2.8 MiB After Width: | Height: | Size: 2.8 MiB |
|
Before Width: | Height: | Size: 946 KiB After Width: | Height: | Size: 932 KiB |
|
Before Width: | Height: | Size: 105 KiB After Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 394 KiB After Width: | Height: | Size: 390 KiB |
|
Before Width: | Height: | Size: 652 KiB After Width: | Height: | Size: 630 KiB |
|
Before Width: | Height: | Size: 95 KiB After Width: | Height: | Size: 94 KiB |
|
Before Width: | Height: | Size: 78 KiB After Width: | Height: | Size: 77 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 148 B |
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 271 KiB After Width: | Height: | Size: 271 KiB |
|
Before Width: | Height: | Size: 130 B After Width: | Height: | Size: 117 B |
|
Before Width: | Height: | Size: 263 B After Width: | Height: | Size: 250 B |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 460 KiB After Width: | Height: | Size: 457 KiB |
|
Before Width: | Height: | Size: 275 B After Width: | Height: | Size: 190 B |
|
Before Width: | Height: | Size: 147 B After Width: | Height: | Size: 126 B |
|
Before Width: | Height: | Size: 159 B After Width: | Height: | Size: 144 B |
|
Before Width: | Height: | Size: 184 B After Width: | Height: | Size: 170 B |
|
After Width: | Height: | Size: 158 B |
|
Before Width: | Height: | Size: 185 B After Width: | Height: | Size: 149 B |
|
Before Width: | Height: | Size: 159 B After Width: | Height: | Size: 146 B |
|
Before Width: | Height: | Size: 144 B After Width: | Height: | Size: 131 B |
|
Before Width: | Height: | Size: 183 B After Width: | Height: | Size: 151 B |
|
Before Width: | Height: | Size: 639 B After Width: | Height: | Size: 618 B |
|
Before Width: | Height: | Size: 202 B After Width: | Height: | Size: 177 B |
|
Before Width: | Height: | Size: 189 B After Width: | Height: | Size: 166 B |
|
After Width: | Height: | Size: 112 B |
|
Before Width: | Height: | Size: 139 B After Width: | Height: | Size: 126 B |
|
After Width: | Height: | Size: 96 B |
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TextureAtlas imagePath="arrow-down.png">
|
||||
<SubTexture name="tail" x="0" y="0" width="8" height="3"/>
|
||||
<SubTexture name="segment" x="0" y="3" width="8" height="1"/>
|
||||
<SubTexture name="arrow" x="0" y="6" width="8" height="6"/>
|
||||
</TextureAtlas>
|
||||
|
After Width: | Height: | Size: 104 B |