Finished Charter & Options in Translation File
This commit is contained in:
@@ -23,7 +23,7 @@
|
||||
|
||||
<group name="ChartEditor">
|
||||
<group name="CharterSelection" prefix="charterSelection.">
|
||||
<str id="desc">Select a song to modify the charts from."</str>
|
||||
<str id="desc">Select a song to modify the charts from.</str>
|
||||
<str id="acceptSong">Press ACCEPT to choose a difficulty to edit.</str>
|
||||
<str id="acceptDifficulty">Press ACCEPT to edit the chart for the selected difficulty.</str>
|
||||
<str id="selectDifficulty">Select a difficulty to continue.</str>
|
||||
@@ -113,10 +113,22 @@
|
||||
|
||||
<group name="SongCreationScreen" prefix="songCreationScreen.">
|
||||
<str id="win-title">Creating New Song</str>
|
||||
<str id="win-title-importing">Importing Song</str>
|
||||
<str id="title">Song Info</str>
|
||||
|
||||
<str id="instAudio">Inst Audio File $* Required*$</str>
|
||||
<str id="voicesAudio">Vocal Audio File $* Required*$</str>
|
||||
<str id="voicesAudio">Vocal Audio File</str>
|
||||
|
||||
<str id="importFrom">Import from...</str>
|
||||
<str id="importSource">Import Source:</str>
|
||||
<str id="legacyOrPsych">Psych/Legacy FNF</str>
|
||||
<str id="vslice">V-Slice</str>
|
||||
<str id="vsliceProject">V-Slice Project (.fnfc)</str>
|
||||
<str id="importChartFormat">Chart Format</str>
|
||||
<str id="importAudios">Add Audios</str>
|
||||
<str id="songFileName">Song file name $* Required$</str>
|
||||
<str id="songDataFile">Data/Chart File $* Required$</str>
|
||||
<str id="songMetaFile">Meta File $* Required$</str>
|
||||
|
||||
<str id="back">Back</str>
|
||||
<str id="next">Next</str>
|
||||
@@ -129,13 +141,15 @@
|
||||
<str id="scrollSpeed">Scroll Speed</str>
|
||||
<str id="stagePos">Stage Position</str>
|
||||
<str id="scale">Scale</str>
|
||||
<str id="spacing">Spacing</str>
|
||||
<str id="hudPos">Hud Position (X [Ratio 0-1],Y)</str>
|
||||
<str id="visible">Visible?</str>
|
||||
<str id="useChartScrollSpeed">Uses charts scroll speed?</str>
|
||||
<str id="vocalSuffix">Vocal Suffix</str>
|
||||
<str id="keyCount">Key Count</str>
|
||||
</group>
|
||||
|
||||
<group name="ChartEditor" prefix="chart.">
|
||||
<group name="ChartEditor" prefix="charter.">
|
||||
<!-- Charter.hx -->
|
||||
<group name="TopBar">
|
||||
<str id="topBar.file">File</str>
|
||||
@@ -143,10 +157,10 @@
|
||||
<str id="new">New</str>
|
||||
<str id="save">Save</str>
|
||||
<str id="saveAs">Save As...</str>
|
||||
<str id="saveWithoutEvents">Save Without Events</str>
|
||||
<str id="saveWithoutEventsAs">Save Without Events As...</str>
|
||||
<str id="saveEventsSeparately">Save Events Separately</str>
|
||||
<str id="saveEventsSeparatelyAs">Save Events Separately As...</str>
|
||||
<str id="saveGlobalEvents">Save Global Events</str>
|
||||
<str id="saveGlobalEventsAs">Save Global Events As...</str>
|
||||
<str id="saveNoLocalEvents">Save Chart without Local Events</str>
|
||||
<str id="saveNoLocalEventsAs">Save Chart without Local Events As...</str>
|
||||
<str id="saveMeta">Save Meta</str>
|
||||
<str id="saveMetaAs">Save Meta As...</str>
|
||||
<str id="exportFnfLegacy">Export For FNF Legacy...</str>
|
||||
@@ -182,7 +196,11 @@
|
||||
<str id="resetZoom">Reset Zoom</str>
|
||||
<str id="showSectionsSeparator">Show Sections Separator</str>
|
||||
<str id="showBeatsSeparator">Show Beats Separator</str>
|
||||
<str id="rainbowWaveforms">Rainbow Waveforms</str>
|
||||
<str id="lowDetailWaveforms">Low Detail Waveforms</str>
|
||||
<str id="scrollLeft">Scroll Left</str>
|
||||
<str id="scrollRight">Scroll Right</str>
|
||||
<str id="scrollReset">Reset Scroll</str>
|
||||
</group>
|
||||
|
||||
<str id="topBar.song">Song</str>
|
||||
@@ -193,6 +211,18 @@
|
||||
<str id="muteVoices">Mute voices</str>
|
||||
</group>
|
||||
|
||||
<group name="BookmarkMenu" prefix="bookmarks.">
|
||||
<str id="addBookmarkHere">Add Bookmark Here</str>
|
||||
<str id="editBookmarkList">Edit Bookmark List</str>
|
||||
<str id="goto">Go to "{0}"</str>
|
||||
<str id="createBookmarkTitle">Creating New Bookmark...</str>
|
||||
<str id="createBookmarkName">Bookmark Name:</str>
|
||||
<str id="createBookmarkColor">Bookmark Color:</str>
|
||||
<str id="editBookmarkListTitle">Bookmark List</str>
|
||||
<str id="editBookmarksTitle">Edit Bookmarks</str>
|
||||
<str id="newBookmarkName">New Bookmark</str>
|
||||
</group>
|
||||
|
||||
<str id="topBar.note">Note</str>
|
||||
<group name="NoteMenu" prefix="note.">
|
||||
<str id="addSustainLength">Add sustain length</str>
|
||||
@@ -218,6 +248,9 @@
|
||||
<str id="speedLower">↓ Speed {0}%</str>
|
||||
<str id="sectionBack">Go back a section</str>
|
||||
<str id="sectionForward">Go forward a section</str>
|
||||
<str id="sectionStart">Go to start of section</str>
|
||||
<str id="backStep">Go back a step</str>
|
||||
<str id="forwardStep">Go forward a step</str>
|
||||
<str id="metronome">Metronome</str>
|
||||
<str id="visualMetronome">Visual metronome</str>
|
||||
</group>
|
||||
@@ -257,6 +290,11 @@
|
||||
<str id="createNew">Create New</str>
|
||||
<str id="lock-unlock">Lock/Unlock</str>
|
||||
|
||||
<str id="info.localEvents">Local Events\n(Only This Difficulty)</str>
|
||||
<str id="info.globalEvents">Global Events\n(All Difficulties)</str>
|
||||
<str id="eventType-local">Local Event</str>
|
||||
<str id="eventType-global">Global Event</str>
|
||||
|
||||
<!-- CharterEventAdd.hx -->
|
||||
<str id="addEvent">Add Event</str>
|
||||
<str id="editEvent">Edit</str> <!-- Should maybe be "Edit Event" -->
|
||||
@@ -279,7 +317,7 @@
|
||||
|
||||
<group name="Warnings" prefix="warnings.">
|
||||
<str id="notImplemented-title">New Character: Feature Not Implemented!</str>
|
||||
<str id="notImplemented-body">This feature isn't implemented yet. Please wait for more cne updates to have this functional.\n\n\n- Codename Devs</str>
|
||||
<str id="notImplemented-body">This feature isn't implemented yet. Please wait for more cne updates to have this functional.\n\n\n- Codename Crew</str>
|
||||
</group>
|
||||
</group>
|
||||
|
||||
|
||||
@@ -42,7 +42,17 @@
|
||||
|
||||
<str id="category.engine">Engine</str>
|
||||
<group name="engine" prefix="engine.">
|
||||
<str id="switchMod">Mod/Mode</str>
|
||||
<str id="switchMod">Switch Mod</str>
|
||||
</group>
|
||||
|
||||
<str id="category.volume">Volume</str>
|
||||
<str id="volume.mute">mute</str>
|
||||
|
||||
<str id="category.developer">Developer</str>
|
||||
<group name="developer" prefix="developer.">
|
||||
<str id="devMenus">Developer Menus</str>
|
||||
<str id="openConsole">Open Console</str>
|
||||
<str id="reloadState">Reload State</str>
|
||||
</group>
|
||||
</group>
|
||||
|
||||
@@ -73,6 +83,12 @@
|
||||
|
||||
<str id="autoPause-name">Auto Pause</str>
|
||||
<str id="autoPause-desc">If checked, switching windows will pause the game.</str>
|
||||
|
||||
<str id="streamedMusic-name">Streamed Music</str>
|
||||
<str id="streamedMusic-desc">"If checked, only musics will have streamed audio, ALSO freeing a LOT of memory with the downside of higher cpu usage if more audio are being streamed at once (EXPERIMENTAL). Turning this off will consume a lot of memory, especially on longer songs. If you aren't sure, leave this on.</str>
|
||||
|
||||
<str id="streamedVocals-name">Streamed Vocals</str>
|
||||
<str id="streamedVocals-desc">If checked, vocals will also be streamed if Streamed Music is checked, will impact the performance if the song uses alot of vocals (EXPERIMENTAL). If you aren't sure, leave this on.</str>
|
||||
</group>
|
||||
|
||||
<group name="GameplayOptions" prefix="GameplayOptions.">
|
||||
@@ -108,6 +124,9 @@
|
||||
<str id="checkForUpdates-desc">Select this option to check for new engine updates.</str>
|
||||
<str id="checkForUpdates-noUpdateFound">No update found.</str>
|
||||
|
||||
<str id="devMode-name">Developer Mode</str>
|
||||
<str id="devMode-desc">If checked, you will be able to access developer features like certain keybinds, editors, developer options, state reloads, console and more.</str>
|
||||
|
||||
<str id="resetSaveData-name">Reset Save Data</str>
|
||||
<str id="resetSaveData-desc">Select this option to reset save data. This will remove all of your highscores.</str>
|
||||
</group>
|
||||
@@ -119,6 +138,12 @@
|
||||
<str id="showConsole-name">Show Console</str>
|
||||
<str id="showConsole-desc">Select this to show the debug console, which contains log information about the game.</str>
|
||||
|
||||
<str id="editorsResizable-name">Resizable Editors</str>
|
||||
<str id="editorsResizable-desc">If checked, this will allow the editors to render beyond the base 1280x720 resolution of FNF (allowing for more detail and space...)</str>
|
||||
|
||||
<str id="bypassEditorsResize-name">Bypass Editor Resize</str>
|
||||
<str id="bypassEditorsResize-desc">Disables the minimum resolution for resizing editors (Needs Resizable Editors To Be Enabled).</str>
|
||||
|
||||
<str id="editorSFX-name">Editor SFXs</str>
|
||||
<str id="editorSFX-desc">If checked, will play sound effects when working on editors (ex: will play sfxs when checking checkboxes...)</str>
|
||||
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@
|
||||
title="Friday Night Funkin' - Codename Engine" main="funkin.backend.system.Main"
|
||||
file="CodenameEngine" packageName="com.yoshman29.codenameengine"
|
||||
package="com.yoshman29.codenameengine"
|
||||
version="0.1.0-legacy" company="Yoshman29" />
|
||||
version="1.0.0" company="Yoshman29" />
|
||||
|
||||
<!--
|
||||
CHANGE THE SAVE PATH & NAME FOR YOUR MOD HERE!
|
||||
|
||||
@@ -37,9 +37,13 @@ class DebugOptionsScreen extends OptionsScreen {
|
||||
}));
|
||||
#end
|
||||
add(new Checkbox(
|
||||
"Resizable Editors",
|
||||
"If checked, this will allow the editors to render beyond the base 1280x720 resolution of FNF (allowing for more detail and space...)",
|
||||
getName("editorsResizable"),
|
||||
getDesc("editorsResizable"),
|
||||
"editorsResizable"));
|
||||
add(new Checkbox(
|
||||
getName("bypassEditorsResize"),
|
||||
getDesc("bypassEditorsResize"),
|
||||
"bypassEditorsResize"));
|
||||
add(new Checkbox(
|
||||
getName("editorSFX"),
|
||||
getDesc("editorSFX"),
|
||||
|
||||
@@ -48,7 +48,7 @@ class CharacterCreationScreen extends UISubstateWindow {
|
||||
[new FlxTextFormatMarkerPair(new FlxTextFormat(0xFFAD1212), "$")]);
|
||||
imageExplorer.maxSize.y -= 100;
|
||||
|
||||
saveButton = new UIButton(windowSpr.x + windowSpr.bWidth - 20 - 125, windowSpr.y + windowSpr.bHeight - 16 - 32, "Save & Close", function() {
|
||||
saveButton = new UIButton(windowSpr.x + windowSpr.bWidth - 20 - 125, windowSpr.y + windowSpr.bHeight - 16 - 32, TU.translate("editor.saveClose"), function() {
|
||||
close();
|
||||
createCharacter();
|
||||
}, 125);
|
||||
|
||||
@@ -436,7 +436,7 @@ class CharacterEditor extends UIState {
|
||||
super.onResize(width, height);
|
||||
if (!UIState.resolutionAware) return;
|
||||
|
||||
if (width < FlxG.initialWidth || height < FlxG.initialHeight) {
|
||||
if ((width < FlxG.initialWidth || height < FlxG.initialHeight) && !Options.bypassEditorsResize) {
|
||||
width = FlxG.initialWidth; height = FlxG.initialHeight;
|
||||
}
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ class CharacterSpriteScreen extends UISubstateWindow {
|
||||
|
||||
ogImageSaveData = imageExplorer.getSaveData();
|
||||
|
||||
saveButton = new UIButton(windowSpr.x + windowSpr.bWidth - 20, windowSpr.y + windowSpr.bHeight - 20, "Save & Close", function() {
|
||||
saveButton = new UIButton(windowSpr.x + windowSpr.bWidth - 20, windowSpr.y + windowSpr.bHeight - 20, TU.translate("editor.saveClose"), function() {
|
||||
addToUndo(); // should be async?? -lunar
|
||||
imageExplorer.saveFiles('${Paths.getAssetsRoot()}/images/characters', () -> {
|
||||
onSave('${imageExplorer.saveData.directory.length > 0 ? '${imageExplorer.saveData.directory}/' : ""}' + imageExplorer.imageName, imageExplorer.isAtlas);
|
||||
|
||||
@@ -34,6 +34,9 @@ class Charter extends UIState {
|
||||
private function get_chart()
|
||||
return PlayState.SONG;
|
||||
|
||||
inline function translate(id:String, ?args:Array<Dynamic>)
|
||||
return TU.translate("charter." + id, args);
|
||||
|
||||
public static var instance(get, never):Charter;
|
||||
|
||||
private static inline function get_instance()
|
||||
@@ -129,149 +132,143 @@ class Charter extends UIState {
|
||||
|
||||
topMenu = [
|
||||
{
|
||||
label: TU.translate("chart.topBar.file"),
|
||||
label: translate("topBar.file"),
|
||||
childs: [
|
||||
/*{
|
||||
label: TU.translate("chart.file.new")
|
||||
label: translate("file.new")
|
||||
},
|
||||
null,*/
|
||||
{
|
||||
label: TU.translate("chart.file.save"),
|
||||
label: translate("file.save"),
|
||||
keybind: [CONTROL, S],
|
||||
onSelect: _file_save_all,
|
||||
},
|
||||
null,
|
||||
{
|
||||
label: "Save chart",
|
||||
keybind: [CONTROL, SHIFT, S],
|
||||
onSelect: _file_save,
|
||||
},
|
||||
{
|
||||
label: TU.translate("chart.file.saveAs"),
|
||||
label: translate("file.saveAs"),
|
||||
keybind: [CONTROL, SHIFT, S],
|
||||
onSelect: _file_saveas,
|
||||
},
|
||||
null,
|
||||
{
|
||||
label: "Save global events",
|
||||
label: translate("file.saveGlobalEvents"),
|
||||
keybind: [CONTROL, B, S],
|
||||
onSelect: _file_events_save,
|
||||
},
|
||||
{
|
||||
label: "Save global events as...",
|
||||
label: translate("file.saveGlobalEvents"),
|
||||
onSelect: _file_events_saveas,
|
||||
},
|
||||
{
|
||||
label: "Save chart without local events",
|
||||
label: translate("file.saveNoLocalEvents"),
|
||||
keybind: [CONTROL, ALT, S],
|
||||
onSelect: _file_save_no_events,
|
||||
},
|
||||
{
|
||||
label: "Save chart without local events as...",
|
||||
label: translate("file.saveNoLocalEventsAs"),
|
||||
onSelect: _file_saveas_no_events,
|
||||
},
|
||||
null,
|
||||
{
|
||||
label: TU.translate("chart.file.saveMeta"),
|
||||
label: translate("file.saveMeta"),
|
||||
keybind: [CONTROL, M, S],
|
||||
onSelect: _file_meta_save,
|
||||
},
|
||||
{
|
||||
label: TU.translate("chart.file.saveMetaAs"),
|
||||
label: translate("file.saveMetaAs"),
|
||||
onSelect: _file_meta_saveas,
|
||||
},
|
||||
null,
|
||||
{
|
||||
label: TU.translate("chart.file.exportFnfLegacy"),
|
||||
label: translate("file.exportFnfLegacy"),
|
||||
onSelect: _file_saveas_fnflegacy,
|
||||
},
|
||||
{
|
||||
label: TU.translate("chart.file.exportPsych"),
|
||||
label: translate("file.exportPsych"),
|
||||
onSelect: _file_saveas_psych,
|
||||
},
|
||||
null,
|
||||
{
|
||||
label: TU.translate("chart.file.exit"),
|
||||
label: translate("file.exit"),
|
||||
onSelect: _file_exit
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
label: TU.translate("chart.topBar.edit"),
|
||||
label: translate("topBar.edit"),
|
||||
childs: [
|
||||
{
|
||||
label: TU.translate("chart.edit.undo"),
|
||||
label: translate("edit.undo"),
|
||||
keybind: [CONTROL, Z],
|
||||
onSelect: _edit_undo
|
||||
},
|
||||
{
|
||||
label: TU.translate("chart.edit.redo"),
|
||||
label: translate("edit.redo"),
|
||||
keybinds: [[CONTROL, Y], [CONTROL, SHIFT, Z]],
|
||||
onSelect: _edit_redo
|
||||
},
|
||||
null,
|
||||
{
|
||||
label: TU.translate("chart.edit.copy"),
|
||||
label: translate("edit.copy"),
|
||||
keybind: [CONTROL, C],
|
||||
onSelect: _edit_copy
|
||||
},
|
||||
{
|
||||
label: TU.translate("chart.edit.paste"),
|
||||
label: translate("edit.paste"),
|
||||
keybind: [CONTROL, V],
|
||||
onSelect: _edit_paste
|
||||
},
|
||||
null,
|
||||
{
|
||||
label: TU.translate("chart.edit.cut"),
|
||||
label: translate("edit.cut"),
|
||||
keybind: [CONTROL, X],
|
||||
onSelect: _edit_cut
|
||||
},
|
||||
{
|
||||
label: TU.translate("chart.edit.delete"),
|
||||
label: translate("edit.delete"),
|
||||
keybind: [DELETE],
|
||||
onSelect: _edit_delete
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
label: TU.translate("chart.topBar.chart"),
|
||||
label: translate("topBar.chart"),
|
||||
childs: [
|
||||
{
|
||||
label: TU.translate("chart.chart.playtest"),
|
||||
label: translate("chart.playtest"),
|
||||
keybind: [ENTER],
|
||||
onSelect: _chart_playtest
|
||||
},
|
||||
{
|
||||
label: TU.translate("chart.chart.playtestHere"),
|
||||
label: translate("chart.playtestHere"),
|
||||
keybind: [SHIFT, ENTER],
|
||||
onSelect: _chart_playtest_here
|
||||
},
|
||||
null,
|
||||
{
|
||||
label: TU.translate("chart.chart.playtestOpponent"),
|
||||
label: translate("chart.playtestOpponent"),
|
||||
keybind: [CONTROL, ENTER],
|
||||
onSelect: _chart_playtest_opponent
|
||||
},
|
||||
{
|
||||
label: TU.translate("chart.chart.playtestOpponentHere"),
|
||||
label: translate("chart.playtestOpponentHere"),
|
||||
keybind: [CONTROL, SHIFT, ENTER],
|
||||
onSelect: _chart_playtest_opponent_here
|
||||
},
|
||||
null,
|
||||
{
|
||||
label: TU.translate("chart.chart.enableScripts"),
|
||||
label: translate("chart.enableScripts"),
|
||||
onSelect: _chart_enablescripts,
|
||||
icon: Options.charterEnablePlaytestScripts ? 1 : 0
|
||||
},
|
||||
null,
|
||||
{
|
||||
label: TU.translate("chart.chart.editChartData"),
|
||||
label: translate("chart.editChartData"),
|
||||
color: 0xFF959829, icon: 4,
|
||||
onCreate: function (button:UIContextMenuOptionSpr) {button.label.offset.x = button.icon.offset.x = -2;},
|
||||
onSelect: chart_edit_data
|
||||
},
|
||||
{
|
||||
label: TU.translate("chart.chart.editMetadata"),
|
||||
label: translate("chart.editMetadata"),
|
||||
color: 0xFF959829, icon: 4,
|
||||
onCreate: function (button:UIContextMenuOptionSpr) {button.label.offset.x = button.icon.offset.x = -2;},
|
||||
onSelect: chart_edit_metadata
|
||||
@@ -279,133 +276,133 @@ class Charter extends UIState {
|
||||
]
|
||||
},
|
||||
{
|
||||
label: TU.translate("chart.topBar.view"),
|
||||
label: translate("topBar.view"),
|
||||
childs: [
|
||||
{
|
||||
label: TU.translate("chart.view.zoomIn"),
|
||||
label: translate("view.zoomIn"),
|
||||
keybind: [CONTROL, NUMPADPLUS],
|
||||
onSelect: _view_zoomin
|
||||
},
|
||||
{
|
||||
label: TU.translate("chart.view.zoomOut"),
|
||||
label: translate("view.zoomOut"),
|
||||
keybind: [CONTROL, NUMPADMINUS],
|
||||
onSelect: _view_zoomout
|
||||
},
|
||||
{
|
||||
label: TU.translate("chart.view.resetZoom"),
|
||||
label: translate("view.resetZoom"),
|
||||
keybind: [CONTROL, NUMPADZERO],
|
||||
onSelect: _view_zoomreset
|
||||
},
|
||||
null,
|
||||
{
|
||||
label: TU.translate("chart.view.showSectionsSeparator"),
|
||||
label: translate("view.showSectionsSeparator"),
|
||||
onSelect: _view_showeventSecSeparator,
|
||||
icon: Options.charterShowSections ? 1 : 0
|
||||
},
|
||||
{
|
||||
label: TU.translate("chart.view.showBeatsSeparator"),
|
||||
label: translate("view.showBeatsSeparator"),
|
||||
onSelect: _view_showeventBeatSeparator,
|
||||
icon: Options.charterShowBeats ? 1 : 0
|
||||
},
|
||||
null,
|
||||
{
|
||||
label: 'Rainbow Waveforms',
|
||||
label: translate("view.rainbowWaveforms"),
|
||||
onSelect: _view_switchWaveformRainbow,
|
||||
icon: Options.charterRainbowWaveforms ? 1 : 0
|
||||
},
|
||||
{
|
||||
label: TU.translate("chart.view.lowDetailWaveforms"),
|
||||
label: translate("view.lowDetailWaveforms"),
|
||||
onSelect: _view_switchWaveformDetail,
|
||||
icon: Options.charterLowDetailWaveforms ? 1 : 0
|
||||
},
|
||||
null,
|
||||
{
|
||||
label: "Scroll left",
|
||||
label: translate("view.scrollLeft"),
|
||||
keybind: [SHIFT, LEFT],
|
||||
onSelect: _view_scrollleft
|
||||
},
|
||||
{
|
||||
label: "Scroll right",
|
||||
label: translate("view.scrollRight"),
|
||||
keybind: [SHIFT, RIGHT],
|
||||
onSelect: _view_scrollright
|
||||
},
|
||||
{
|
||||
label: "Reset scroll",
|
||||
label: translate("view.scrollReset"),
|
||||
keybind: [SHIFT, DOWN],
|
||||
onSelect: _view_scrollreset
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
label: TU.translate("chart.topBar.song"),
|
||||
label: translate("topBar.song"),
|
||||
childs: buildSongUI()
|
||||
},
|
||||
{
|
||||
label: TU.translate("chart.topBar.note") + " >",
|
||||
label: translate("topBar.note") + " >",
|
||||
childs: buildNoteTypesUI()
|
||||
},
|
||||
{
|
||||
label: TU.translate("chart.topBar.snap") + " >",
|
||||
label: translate("topBar.snap") + " >",
|
||||
childs: buildSnapsUI()
|
||||
},
|
||||
{
|
||||
label: TU.translate("chart.topBar.playback") + " >",
|
||||
label: translate("topBar.playback") + " >",
|
||||
childs: [
|
||||
{
|
||||
label: TU.translate("chart.playback.play"),
|
||||
label: translate("playback.play"),
|
||||
keybind: [SPACE],
|
||||
onSelect: _playback_play
|
||||
},
|
||||
null,
|
||||
{
|
||||
label: TU.translate("chart.playback.speedRaise", ["25"]),
|
||||
label: translate("playback.speedRaise", ["25"]),
|
||||
keybind: [PERIOD],
|
||||
onSelect: _playback_speed_raise
|
||||
},
|
||||
{
|
||||
label: TU.translate("chart.playback.speedReset"),
|
||||
label: translate("playback.speedReset"),
|
||||
onSelect: _playback_speed_reset
|
||||
},
|
||||
{
|
||||
label: TU.translate("chart.playback.speedLower", ["25"]),
|
||||
label: translate("playback.speedLower", ["25"]),
|
||||
keybind: [COMMA],
|
||||
onSelect: _playback_speed_lower
|
||||
},
|
||||
null,
|
||||
{
|
||||
label: TU.translate("chart.playback.sectionBack"),
|
||||
label: translate("playback.sectionBack"),
|
||||
keybind: [A],
|
||||
onSelect: _playback_back
|
||||
},
|
||||
{
|
||||
label: TU.translate("chart.playback.sectionForward"),
|
||||
label: translate("playback.sectionForward"),
|
||||
keybind: [D],
|
||||
onSelect: _playback_forward
|
||||
},
|
||||
{
|
||||
label: "Go to start of section",
|
||||
label: translate("playback.sectionStart"),
|
||||
keybind: [SHIFT, S],
|
||||
onSelect: _playback_section_start
|
||||
},
|
||||
null,
|
||||
{
|
||||
label: "Go back a step",
|
||||
label: translate("playback.backStep"),
|
||||
keybind: [W],
|
||||
onSelect: _playback_back_step
|
||||
},
|
||||
{
|
||||
label: "Go forward a step",
|
||||
label: translate("playback.forwardStep"),
|
||||
keybind: [S],
|
||||
onSelect: _playback_forward_step
|
||||
},
|
||||
null,
|
||||
{
|
||||
label: TU.translate("chart.playback.metronome"),
|
||||
label: translate("playback.metronome"),
|
||||
onSelect: _playback_metronome,
|
||||
icon: Options.charterMetronomeEnabled ? 1 : 0
|
||||
},
|
||||
/*{
|
||||
label: TU.translate("chart.playback.visualMetronome")
|
||||
label: translate("playback.visualMetronome")
|
||||
},*/
|
||||
]
|
||||
}
|
||||
@@ -431,7 +428,7 @@ class Charter extends UIState {
|
||||
gridBackdrops = new CharterBackdropGroup(strumLines);
|
||||
gridBackdrops.notesGroup = this.notesGroup;
|
||||
|
||||
leftEventRowText = new UIText(0, -40, 0, "Local Events\n(Only This Difficulty)", 12);
|
||||
leftEventRowText = new UIText(0, -40, 0, translate("info.localEvents"), 12);
|
||||
leftEventRowText.alignment = "center"; leftEventRowText.alpha = 0.75;
|
||||
|
||||
leftEventsBackdrop = new EventBackdrop(false);
|
||||
@@ -441,7 +438,7 @@ class Charter extends UIState {
|
||||
leftEventsGroup.eventsBackdrop = leftEventsBackdrop;
|
||||
leftEventsGroup.eventsRowText = leftEventRowText;
|
||||
|
||||
rightEventRowText = new UIText(0, -40, 0, "Global Events\n(All Difficulties)", 12);
|
||||
rightEventRowText = new UIText(0, -40, 0, translate("info.globalEvents"), 12);
|
||||
rightEventRowText.alignment = "center"; rightEventRowText.alpha = 0.75;
|
||||
|
||||
rightEventsBackdrop = new EventBackdrop(true);
|
||||
@@ -469,7 +466,7 @@ class Charter extends UIState {
|
||||
topMenuSpr = new UITopMenu(topMenu);
|
||||
topMenuSpr.cameras = uiGroup.cameras = [uiCamera];
|
||||
|
||||
noteTypeText = new UIText(0, 0, 0, "(0) " + TU.translate("chart.noteTypes.default"));
|
||||
noteTypeText = new UIText(0, 0, 0, "(0) " + translate("noteTypes.default"));
|
||||
noteTypeText.cameras = [uiCamera];
|
||||
|
||||
scrollBar = new UIScrollBar(FlxG.width - 20, topMenuSpr.bHeight, 1000, 0, 100);
|
||||
@@ -507,12 +504,12 @@ class Charter extends UIState {
|
||||
autoSaveNotif = new CharterAutoSaveUI(20, strumlineInfoBG.y + strumlineInfoBG.height + 20);
|
||||
uiGroup.add(autoSaveNotif);
|
||||
|
||||
strumlineAddButton = new CharterStrumlineButton("editors/new", TU.translate("chart.createNew"));
|
||||
strumlineAddButton = new CharterStrumlineButton("editors/new", translate("createNew"));
|
||||
strumlineAddButton.onClick = createStrumWithUI;
|
||||
strumlineAddButton.animationOnClick = false;
|
||||
strumlineAddButton.textColorLerp = 0.5;
|
||||
|
||||
strumlineLockButton = new CharterStrumlineButton("editors/charter/lock-strumline", TU.translate("chart.lock-unlock"));
|
||||
strumlineLockButton = new CharterStrumlineButton("editors/charter/lock-strumline", translate("lock-unlock"));
|
||||
strumlineLockButton.onClick = function () {
|
||||
if (strumLines != null) {
|
||||
strumLines.draggable = !strumLines.draggable;
|
||||
@@ -782,7 +779,7 @@ class Charter extends UIState {
|
||||
if (Options.charterAutoSavesSeparateFolder)
|
||||
__autoSaveLocation = __diff.toLowerCase() + DateTools.format(Date.now(), "%m-%d_%H-%M");
|
||||
var filename = !Options.charterAutoSavesSeparateFolder ? '${__diff.toLowerCase()}.json' : '${__autoSaveLocation}.json';
|
||||
autoSaveNotif.startAutoSave(autoSaveTimer, TU.translate("chart.popup.savedChartAt", [filename]));
|
||||
autoSaveNotif.startAutoSave(autoSaveTimer, translate("popup.savedChartAt", [filename]));
|
||||
}
|
||||
if (autoSaveTimer <= 0) {
|
||||
autoSaveTimer = Options.charterAutoSaveTime;
|
||||
@@ -1331,7 +1328,7 @@ class Charter extends UIState {
|
||||
noteTypeText.x = noteTopButton.x + noteTopButton.bWidth + 6;
|
||||
noteTypeText.y = Std.int((noteTopButton.bHeight - noteTypeText.height) / 2);
|
||||
}
|
||||
noteTypeText.text = '($noteType) ' + (noteTypes[noteType-1] == null ? TU.translate("chart.noteTypes.default") : noteTypes[noteType-1]);
|
||||
noteTypeText.text = '($noteType) ' + (noteTypes[noteType-1] == null ? translate("noteTypes.default") : noteTypes[noteType-1]);
|
||||
|
||||
super.update(elapsed);
|
||||
|
||||
@@ -1431,7 +1428,7 @@ class Charter extends UIState {
|
||||
super.onResize(width, height);
|
||||
if (!UIState.resolutionAware) return;
|
||||
|
||||
if (width < FlxG.initialWidth || height < FlxG.initialHeight) {
|
||||
if ((width < FlxG.initialWidth || height < FlxG.initialHeight) && !Options.bypassEditorsResize) {
|
||||
width = FlxG.initialWidth; height = FlxG.initialHeight;
|
||||
}
|
||||
|
||||
@@ -1854,7 +1851,7 @@ class Charter extends UIState {
|
||||
}
|
||||
|
||||
if (FlxG.keys.pressed.SHIFT)
|
||||
addBookmarkAt("New Bookmark", 0xFF911DD9, curStepFloat);
|
||||
addBookmarkAt(translate("bookmarks.newBookmarkName"), 0xFF911DD9, curStepFloat);
|
||||
else {
|
||||
FlxG.state.openSubState(new CharterBookmarkCreation(curStepFloat, (success, n, c, s) -> {
|
||||
if (success)
|
||||
@@ -1943,22 +1940,22 @@ class Charter extends UIState {
|
||||
var songTopButton:UITopMenuButton = topMenuSpr == null ? null : cast topMenuSpr.members[songIndex];
|
||||
var newChilds:Array<UIContextMenuOption> = [
|
||||
{
|
||||
label: TU.translate("chart.song.goStart"),
|
||||
label: translate("song.goStart"),
|
||||
keybind: [HOME],
|
||||
onSelect: _song_start
|
||||
},
|
||||
{
|
||||
label: TU.translate("chart.song.goEnd"),
|
||||
label: translate("song.goEnd"),
|
||||
keybind: [END],
|
||||
onSelect: _song_end
|
||||
},
|
||||
null,
|
||||
{
|
||||
label: "Add Bookmark Here",
|
||||
label: translate("bookmarks.addBookmarkHere"),
|
||||
onSelect: _bookmarks_add
|
||||
},
|
||||
{
|
||||
label: "Edit Bookmark List",
|
||||
label: translate("bookmarks.editBookmarkList"),
|
||||
color: 0xFF959829, icon: 4,
|
||||
onCreate: function (button:UIContextMenuOptionSpr) {button.label.offset.x = button.icon.offset.x = -2; button.icon.offset.y = -1;},
|
||||
onSelect: _bookmarks_edit_list
|
||||
@@ -1970,10 +1967,11 @@ class Charter extends UIState {
|
||||
|
||||
if (bookmarks.length > 0)
|
||||
{
|
||||
var goToBookmark = TU.getRaw("charter.bookmarks.goTo");
|
||||
for (b in bookmarks)
|
||||
{
|
||||
newChilds.push({
|
||||
label: "Go To \"" + b.name + "\"",
|
||||
label: goToBookmark.format([b.name]),
|
||||
onSelect: function(_) { Conductor.songPosition = Conductor.getTimeForStep(b.time); }
|
||||
});
|
||||
}
|
||||
@@ -1982,12 +1980,12 @@ class Charter extends UIState {
|
||||
|
||||
|
||||
newChilds.push({
|
||||
label: TU.translate("chart.song.muteInst"),
|
||||
label: translate("song.muteInst"),
|
||||
onSelect: _song_muteinst
|
||||
});
|
||||
|
||||
newChilds.push({
|
||||
label: TU.translate("chart.song.muteVoices"),
|
||||
label: translate("song.muteVoices"),
|
||||
onSelect: _song_mutevoices
|
||||
});
|
||||
|
||||
@@ -2045,16 +2043,16 @@ class Charter extends UIState {
|
||||
var snapsTopButton:UITopMenuButton = topMenuSpr == null ? null : cast topMenuSpr.members[snapIndex];
|
||||
var newChilds:Array<UIContextMenuOption> = [
|
||||
{
|
||||
label: TU.translate("chart.snap.increaseSnap"),
|
||||
label: translate("snap.increaseSnap"),
|
||||
keybind: [X],
|
||||
onSelect: _snap_increasesnap
|
||||
},
|
||||
{
|
||||
label: TU.translate("chart.snap.resetSnap"),
|
||||
label: translate("snap.resetSnap"),
|
||||
onSelect: _snap_resetsnap
|
||||
},
|
||||
{
|
||||
label: TU.translate("chart.snap.decreaseSnap"),
|
||||
label: translate("snap.decreaseSnap"),
|
||||
keybind: [Z],
|
||||
onSelect: _snap_decreasesnap
|
||||
},
|
||||
@@ -2133,29 +2131,29 @@ class Charter extends UIState {
|
||||
var noteTopButton:UITopMenuButton = topMenuSpr == null ? null : cast topMenuSpr.members[noteIndex];
|
||||
var newChilds:Array<UIContextMenuOption> = [
|
||||
{
|
||||
label: TU.translate("chart.note.addSustainLength"),
|
||||
label: translate("note.addSustainLength"),
|
||||
keybind: [E],
|
||||
onSelect: _note_addsustain
|
||||
},
|
||||
{
|
||||
label: TU.translate("chart.note.subtractSustainLength"),
|
||||
label: translate("note.subtractSustainLength"),
|
||||
keybind: [Q],
|
||||
onSelect: _note_subtractsustain
|
||||
},
|
||||
null,
|
||||
{
|
||||
label: TU.translate("chart.note.selectAll"),
|
||||
label: translate("note.selectAll"),
|
||||
keybind: [CONTROL, A],
|
||||
onSelect: _note_selectall
|
||||
},
|
||||
{
|
||||
label: TU.translate("chart.note.selectMeasure"),
|
||||
label: translate("note.selectMeasure"),
|
||||
keybind: [CONTROL, SHIFT, A],
|
||||
onSelect: _note_selectmeasure
|
||||
},
|
||||
null,
|
||||
{
|
||||
label: "(0) " + TU.translate("chart.noteTypes.default"),
|
||||
label: "(0) " + translate("noteTypes.default"),
|
||||
keybind: [ZERO],
|
||||
onSelect: (_) -> {changeNoteType(0);},
|
||||
icon: this.noteType == 0 ? 1 : 0
|
||||
@@ -2175,7 +2173,7 @@ class Charter extends UIState {
|
||||
newChilds.push(newChild);
|
||||
}
|
||||
newChilds.push({
|
||||
label: TU.translate("chart.note.editNoteTypesList"),
|
||||
label: translate("note.editNoteTypesList"),
|
||||
color: 0xFF959829, icon: 4,
|
||||
onCreate: function (button:UIContextMenuOptionSpr) {button.label.offset.x = button.icon.offset.x = -2;},
|
||||
onSelect: editNoteTypesList
|
||||
|
||||
@@ -20,7 +20,7 @@ class CharterBookmarkCreation extends UISubstateWindow {
|
||||
|
||||
winWidth = 320;
|
||||
winHeight = 250;
|
||||
winTitle = 'Creating New Bookmark';
|
||||
winTitle = TU.translate("charter.bookmarks.createBookmarkTitle");
|
||||
|
||||
callback = close;
|
||||
|
||||
@@ -39,22 +39,22 @@ class CharterBookmarkCreation extends UISubstateWindow {
|
||||
|
||||
super.create();
|
||||
|
||||
textBox = new UITextBox(windowSpr.x + 20, windowSpr.y + 70, "New Bookmark", 276);
|
||||
textBox = new UITextBox(windowSpr.x + 20, windowSpr.y + 70, TU.translate("charter.bookmarks.newBookmarkName"), 276);
|
||||
textBox.antialiasing = true;
|
||||
add(textBox);
|
||||
addLabelOn(textBox, "Bookmark Name:");
|
||||
addLabelOn(textBox, TU.translate("charter.bookmarks.createBookmarkName"));
|
||||
|
||||
colorPicker = new UICompactColorwheel(textBox.x, textBox.y + textBox.bHeight + 34, flixel.util.FlxColor.RED);
|
||||
add(colorPicker);
|
||||
addLabelOn(colorPicker, "Bookmark Color:");
|
||||
addLabelOn(colorPicker, TU.translate("charter.bookmarks.createBookmarkColor"));
|
||||
|
||||
saveButton = new UIButton(windowSpr.x + windowSpr.bWidth - 20 - 125, windowSpr.y + windowSpr.bHeight - 16 - 32, "Save & Close", function() {
|
||||
saveButton = new UIButton(windowSpr.x + windowSpr.bWidth - 20 - 125, windowSpr.y + windowSpr.bHeight - 16 - 32, TU.translate("editor.saveClose"), function() {
|
||||
callback(true, textBox.label.text, colorPicker.curColor, bookmarkStep);
|
||||
close();
|
||||
}, 125);
|
||||
add(saveButton);
|
||||
|
||||
closeButton = new UIButton(saveButton.x - 20, saveButton.y, "Close", function() {
|
||||
closeButton = new UIButton(saveButton.x - 20, saveButton.y, TU.translate("editor.close"), function() {
|
||||
callback(false, "", FlxColor.TRANSPARENT, -1);
|
||||
close();
|
||||
}, 125);
|
||||
|
||||
@@ -12,14 +12,14 @@ class CharterBookmarkList extends UISubstateWindow {
|
||||
FlxG.sound.music.pause();
|
||||
Charter.instance.vocals.pause();
|
||||
|
||||
winTitle = 'Bookmark List Editor';
|
||||
winTitle = TU.translate("charter.bookmarks.editBookmarkListTitle");
|
||||
winWidth = 380;
|
||||
winHeight = 390;
|
||||
|
||||
super.create();
|
||||
|
||||
var title:UIText;
|
||||
add(title = new UIText(windowSpr.x + 20, windowSpr.y + 30 + 16, 0, "Edit Bookmarks", 28));
|
||||
add(title = new UIText(windowSpr.x + 20, windowSpr.y + 30 + 16, 0, TU.translate("charter.bookmarks.editBookmarksTitle"), 28));
|
||||
|
||||
bookmarkList = new UIButtonList<BookmarkButton>(20, title.y + title.height + 10, winWidth - 40, 342 - 85 - 16, null, FlxPoint.get(winWidth - 40, (342 - 85 - 16)/4), null, 0);
|
||||
bookmarkList.cameraSpacing = 0;
|
||||
@@ -32,13 +32,13 @@ class CharterBookmarkList extends UISubstateWindow {
|
||||
|
||||
bookmarkList.content.remove(bookmarkList.addButton); //i dont need it
|
||||
|
||||
saveButton = new UIButton(windowSpr.x + windowSpr.bWidth - 20 - 125, windowSpr.y + windowSpr.bHeight - 16 - 32, "Save & Close", function() {
|
||||
saveButton = new UIButton(windowSpr.x + windowSpr.bWidth - 20 - 125, windowSpr.y + windowSpr.bHeight - 16 - 32, TU.translate("editor.saveClose"), function() {
|
||||
saveList();
|
||||
close();
|
||||
}, 125);
|
||||
add(saveButton);
|
||||
|
||||
closeButton = new UIButton(saveButton.x - 20, saveButton.y, "Close", function() {
|
||||
closeButton = new UIButton(saveButton.x - 20, saveButton.y, TU.translate("editor.close"), function() {
|
||||
close();
|
||||
}, 125);
|
||||
add(closeButton);
|
||||
|
||||
@@ -15,7 +15,7 @@ class CharterEventAdd extends UISliceSprite {
|
||||
|
||||
this.global = flipX = global;
|
||||
|
||||
sideText = new UIText(0, -40, 0, global ? "Global Event" : "Local Event", 12);
|
||||
sideText = new UIText(0, -40, 0, TU.translate("charter.eventType-" + (global ? "global" : "local")), 12);
|
||||
sideText.alignment = "center"; sideText.alpha = 0.75;
|
||||
|
||||
text = new UIText(0, 0, 0, "");
|
||||
@@ -37,7 +37,7 @@ class CharterEventAdd extends UISliceSprite {
|
||||
public override function update(elapsed:Float) {
|
||||
super.update(elapsed);
|
||||
|
||||
text.follow(this, global ? bWidth - text.width - (text.text == "Add event" ? 15 : 20) : 20, (bHeight - text.height) / 2);
|
||||
text.follow(this, global ? bWidth - text.width - (text.text == TU.translate("charter.addEvent") ? 15 : 20) : 20, (bHeight - text.height) / 2);
|
||||
sideText.follow(this, (bWidth/2) - (sideText.fieldWidth/2), -(sideText.height + 2));
|
||||
alpha = sprAlpha * 0.75;
|
||||
text.alpha = sprAlpha;
|
||||
|
||||
@@ -122,7 +122,7 @@ class CharterStrumlineScreen extends UISubstateWindow {
|
||||
|
||||
hudSpacingStepper = new UINumericStepper(hudScaleStepper.x + 80 - 32 + 26, hudScaleStepper.y, strumLine.strumSpacing != null ? strumLine.strumSpacing : 1, 0.001, 10, null, null, 84);
|
||||
add(hudSpacingStepper);
|
||||
addLabelOn(hudSpacingStepper, "Spacing");
|
||||
addLabelOn(hudSpacingStepper, TU.translate("charterStrumLine.spacing"));
|
||||
|
||||
var strOffset:Float = strumLine.strumLinePos == null ? (strumLine.type == 1 ? 0.75 : 0.25) : strumLine.strumLinePos;
|
||||
|
||||
@@ -175,7 +175,7 @@ class CharterStrumlineScreen extends UISubstateWindow {
|
||||
keyCountStepper = new UINumericStepper(stagePositionDropdown.x, vocalsSuffixDropDown.y, strumLine.keyCount != null ? strumLine.keyCount : 4, 1, 0, 1, 1000, 84);
|
||||
// if (Flags.CHARTER_ADVANCED_SETTINGS) {
|
||||
add(keyCountStepper);
|
||||
addLabelOn(keyCountStepper, "Key Count");
|
||||
addLabelOn(keyCountStepper, TU.translate("charterStrumLine.keyCount"));
|
||||
// }
|
||||
|
||||
strumLineCam = new HudCamera();
|
||||
|
||||
@@ -140,10 +140,10 @@ class SongCreationScreen extends UISubstateWindow {
|
||||
translate("voicesAudio"),
|
||||
[new FlxTextFormatMarkerPair(new FlxTextFormat(0xFFAD1212), "$")]);*/
|
||||
|
||||
addLabelOn(voicesExplorer, "Vocal Audio File");
|
||||
addLabelOn(voicesExplorer, translate("voicesAudio"));
|
||||
|
||||
importFrom = new UIButton(windowSpr.x + 20, windowSpr.y + windowSpr.bHeight - 16 - 32, "Import From...", function() {
|
||||
winTitle = "Importing Song";
|
||||
importFrom = new UIButton(windowSpr.x + 20, windowSpr.y + windowSpr.bHeight - 16 - 32, translate("importFrom"), function() {
|
||||
winTitle = translate("win-title-importing");
|
||||
isImporting = true;
|
||||
updatePagesTexts();
|
||||
refreshPages();
|
||||
@@ -183,14 +183,14 @@ class SongCreationScreen extends UISubstateWindow {
|
||||
{checkbox.y += 6; checkbox.x += 4;}
|
||||
|
||||
var menuTitle:UIText;
|
||||
selectFormatGroup.add(menuTitle = new UIText(windowSpr.x + 20, windowSpr.y + 30 + 16, 0, "Import From:", 28));
|
||||
selectFormatGroup.add(menuTitle = new UIText(windowSpr.x + 20, windowSpr.y + 30 + 16, 0, translate("importSource"), 28));
|
||||
|
||||
engineDropdown = new UIDropDown(menuTitle.x, menuTitle.y + menuTitle.height + 36, 480, 32, ["Psych/Legacy FNF", "V-Slice", "V-Slice Project (.fnfc)"]);
|
||||
engineDropdown = new UIDropDown(menuTitle.x, menuTitle.y + menuTitle.height + 36, 480, 32, [translate("legacyOrPsych"), translate("vslice"), translate("vsliceProject")]);
|
||||
selectFormatGroup.add(engineDropdown);
|
||||
addLabelOn(engineDropdown, "Chart Format");
|
||||
addLabelOn(engineDropdown, translate("importChartFormat"));
|
||||
|
||||
createSong = new UIButton(windowSpr.x + 20, windowSpr.y + windowSpr.bHeight - 16 - 32, "< Back", function() {
|
||||
winTitle = "Creating New Song";
|
||||
createSong = new UIButton(windowSpr.x + 20, windowSpr.y + windowSpr.bHeight - 16 - 32, "< " + translate("back"), function() {
|
||||
winTitle = translate("win-title");
|
||||
isImporting = false;
|
||||
updatePagesTexts();
|
||||
refreshPages();
|
||||
@@ -198,7 +198,7 @@ class SongCreationScreen extends UISubstateWindow {
|
||||
selectFormatGroup.add(createSong);
|
||||
|
||||
var menuTitle:UIText;
|
||||
importAudioGroup.add(menuTitle = new UIText(windowSpr.x + 20, windowSpr.y + 30 + 16, 0, "Add Audios", 28));
|
||||
importAudioGroup.add(menuTitle = new UIText(windowSpr.x + 20, windowSpr.y + 30 + 16, 0, translate("importAudios"), 28));
|
||||
|
||||
importInstExplorer = new UIFileExplorer(menuTitle.x, menuTitle.y + menuTitle.height + 36, null, null, Flags.SOUND_EXT, function (path, res) {
|
||||
if (path == null || res == null) return;
|
||||
@@ -207,8 +207,8 @@ class SongCreationScreen extends UISubstateWindow {
|
||||
importInstExplorer.uiElement = audioPlayer;
|
||||
});
|
||||
importAudioGroup.add(importInstExplorer);
|
||||
addLabelOn(importInstExplorer, "Inst Audio File").applyMarkup(
|
||||
"Inst Audio File $* Required$",
|
||||
addLabelOn(importInstExplorer, "").applyMarkup(
|
||||
translate("instAudio"),
|
||||
[new FlxTextFormatMarkerPair(new FlxTextFormat(0xFFAD1212), "$")]);
|
||||
|
||||
importVoicesExplorer = new UIFileExplorer(importInstExplorer.x + 320 + 26, importInstExplorer.y, null, null, Flags.SOUND_EXT, function (path, res) {
|
||||
@@ -218,26 +218,26 @@ class SongCreationScreen extends UISubstateWindow {
|
||||
importVoicesExplorer.uiElement = audioPlayer;
|
||||
});
|
||||
importAudioGroup.add(importVoicesExplorer);
|
||||
addLabelOn(importVoicesExplorer, "Vocal Audio File");
|
||||
addLabelOn(importVoicesExplorer, translate("voicesAudio"));
|
||||
|
||||
var menuTitle:UIText;
|
||||
importDataGroup.add(menuTitle = new UIText(windowSpr.x + 20, windowSpr.y + 30 + 16, 0, "Add Data", 28));
|
||||
|
||||
importDataGroup.add(importIdTextBox = new UITextBox(menuTitle.x, menuTitle.y + menuTitle.height + 36));
|
||||
addLabelOn(importIdTextBox, "Song file name").applyMarkup(
|
||||
"Song file name $* Required$",
|
||||
addLabelOn(importIdTextBox, "").applyMarkup(
|
||||
translate("songFileName"),
|
||||
[new FlxTextFormatMarkerPair(new FlxTextFormat(0xFFAD1212), "$")]);
|
||||
|
||||
importChartFile = new UIFileExplorer(importIdTextBox.x, importIdTextBox.y + importIdTextBox.height + 56, null, null, "fnfc", function (_, _) importIdTextBox.label.text = new haxe.io.Path(importChartFile.filePath).file);
|
||||
importDataGroup.add(importChartFile);
|
||||
addLabelOn(importChartFile, "Data/Chart File").applyMarkup(
|
||||
"Data/Chart File $* Required$",
|
||||
addLabelOn(importChartFile, "").applyMarkup(
|
||||
translate("songDataFile"),
|
||||
[new FlxTextFormatMarkerPair(new FlxTextFormat(0xFFAD1212), "$")]);
|
||||
|
||||
importMetaFile = new UIFileExplorer(importChartFile.x + 320 + 26, importChartFile.y, null, null, "json");
|
||||
importDataGroup.add(importMetaFile);
|
||||
addLabelOn(importMetaFile, "Meta File").applyMarkup(
|
||||
"Meta File $* Required$",
|
||||
addLabelOn(importMetaFile, "").applyMarkup(
|
||||
translate("songMetaFile"),
|
||||
[new FlxTextFormatMarkerPair(new FlxTextFormat(0xFFAD1212), "$")]);
|
||||
|
||||
saveButton = new UIButton(windowSpr.x + windowSpr.bWidth - 20 - 125, windowSpr.y + windowSpr.bHeight - 16 - 32, TU.translate("editor.saveClose"), function() {
|
||||
@@ -291,7 +291,7 @@ class SongCreationScreen extends UISubstateWindow {
|
||||
if (isImporting)
|
||||
{
|
||||
var name = engineDropdown.options[engineDropdown.index];
|
||||
var project = name == "V-Slice Project (.fnfc)";
|
||||
var project = name == translate("vsliceProject");
|
||||
|
||||
if (curPage == 1) {
|
||||
importInstExplorer.selectable = importVoicesExplorer.selectable = !project;
|
||||
@@ -299,7 +299,7 @@ class SongCreationScreen extends UISubstateWindow {
|
||||
} else if (curPage == 2) {
|
||||
importIdTextBox.selectable = !project;
|
||||
importChartFile.fileType = project ? "fnfc" : "json";
|
||||
importMetaFile.selectable = name == "V-Slice";
|
||||
importMetaFile.selectable = name == translate("vslice");
|
||||
saveButton.selectable = importChartFile.file != null && (!importMetaFile.selectable || importMetaFile.file != null) && (!importIdTextBox.selectable || importIdTextBox.label.text.trim().length > 0);
|
||||
} else
|
||||
saveButton.selectable = true;
|
||||
@@ -331,7 +331,7 @@ class SongCreationScreen extends UISubstateWindow {
|
||||
titleSpr.x = windowSpr.x + 25;
|
||||
titleSpr.y = windowSpr.y + ((30 - titleSpr.height) / 2);
|
||||
|
||||
saveButton.field.text = curPage == pages.length-1 ? "Save & Close" : 'Next >';
|
||||
saveButton.field.text = curPage == pages.length-1 ? TU.translate("editor.saveClose") : translate("next") + ' >';
|
||||
titleSpr.text = '$winTitle (${curPage+1}/${pages.length})';
|
||||
|
||||
backButton.field.text = '< ' + translate("back");
|
||||
@@ -358,9 +358,9 @@ class SongCreationScreen extends UISubstateWindow {
|
||||
function saveSongInfo() {
|
||||
if (isImporting)
|
||||
{
|
||||
try switch(engineDropdown.options[engineDropdown.index])
|
||||
try switch(engineDropdown.index)
|
||||
{
|
||||
case "V-Slice Project (.fnfc)":
|
||||
case 0 /*"V-Slice Project (.fnfc)"*/:
|
||||
var files:Map<String, Any> = [];
|
||||
for (field in new ZipReader(new BytesInput(importChartFile.file)).read()) {
|
||||
var fileName = field.fileName;
|
||||
@@ -368,7 +368,7 @@ class SongCreationScreen extends UISubstateWindow {
|
||||
files.set(fileName, fileContent);
|
||||
}
|
||||
saveFromVSlice(files);
|
||||
case "V-Slice":
|
||||
case 1 /*"V-Slice"*/:
|
||||
var songId = importIdTextBox.label.text;
|
||||
var files:Map<String, Any> = [];
|
||||
files.set('${songId}-metadata.json', importMetaFile.file);
|
||||
|
||||
@@ -43,7 +43,7 @@ class StageCreationScreen extends UISubstateWindow {
|
||||
add(stagePathTextBox = new UITextBox(stageNameTextBox.x + 320 + 26, stageNameTextBox.y, "Stage Path"));
|
||||
addLabelOn(stagePathTextBox, "Stage Path");
|
||||
|
||||
add(saveButton = new UIButton(windowSpr.x + windowSpr.bWidth - 20 - 125, windowSpr.y + windowSpr.bHeight - 16 - 32, "Save & Close", function() {
|
||||
add(saveButton = new UIButton(windowSpr.x + windowSpr.bWidth - 20 - 125, windowSpr.y + windowSpr.bHeight - 16 - 32, TU.translate("editor.saveClose"), function() {
|
||||
saveStageInfo();
|
||||
close();
|
||||
}, 125));
|
||||
|
||||
@@ -88,6 +88,14 @@ class UIContextMenu extends MusicBeatSubstate {
|
||||
for(o in separators)
|
||||
o.y -= bg.bHeight;
|
||||
}
|
||||
|
||||
if (bg.x + bg.bWidth > FlxG.width && bg.x > FlxG.width*0.5) {
|
||||
bg.x -= bg.bWidth;
|
||||
for(o in contextMenuOptions)
|
||||
o.x -= bg.bWidth;
|
||||
for(o in separators)
|
||||
o.x -= bg.bWidth;
|
||||
}
|
||||
}
|
||||
|
||||
public function select(option:UIContextMenuOption) {
|
||||
|
||||
@@ -4,7 +4,7 @@ import flixel.system.scaleModes.StageSizeScaleMode;
|
||||
|
||||
class UIScaleMode extends StageSizeScaleMode {
|
||||
override public function onMeasure(Width:Int, Height:Int):Void {
|
||||
if (Width < FlxG.initialWidth || Height < FlxG.initialHeight) {
|
||||
if ((Width < FlxG.initialWidth || Height < FlxG.initialHeight) && !Options.bypassEditorsResize) {
|
||||
@:privateAccess {
|
||||
FlxG.width = FlxG.initialWidth;
|
||||
FlxG.height = FlxG.initialHeight;
|
||||
|
||||
@@ -283,7 +283,7 @@ class UISoftcodedWindow extends UISubstateWindow {
|
||||
addLayout(getArr(layout.elements));
|
||||
|
||||
if(get("hasSaveButton")) {
|
||||
saveButton = new UIButton(windowSpr.x + windowSpr.bWidth - 20, windowSpr.y + windowSpr.bHeight - 20, "Save & Close", function() {
|
||||
saveButton = new UIButton(windowSpr.x + windowSpr.bWidth - 20, windowSpr.y + windowSpr.bHeight - 20, TU.translate("editor.saveClose"), function() {
|
||||
saveData();
|
||||
close();
|
||||
}, 125);
|
||||
@@ -295,7 +295,7 @@ class UISoftcodedWindow extends UISubstateWindow {
|
||||
if(get("hasCloseButton")) {
|
||||
var x = saveButton != null ? saveButton.x - 20 : windowSpr.x + windowSpr.bWidth - 20;
|
||||
var y = saveButton != null ? saveButton.y : windowSpr.y + windowSpr.bHeight - 20;
|
||||
closeButton = new UIButton(x, y, "Close", function() {
|
||||
closeButton = new UIButton(x, y, TU.translate("editor.close"), function() {
|
||||
close();
|
||||
}, 125);
|
||||
if(saveButton != null)
|
||||
|
||||
@@ -56,6 +56,7 @@ class Options
|
||||
public static var editorSFX:Bool = true;
|
||||
public static var editorPrettyPrint:Bool = false;
|
||||
public static var editorsResizable:Bool = true;
|
||||
public static var bypassEditorsResize:Bool = false;
|
||||
public static var maxUndos:Int = 120;
|
||||
|
||||
/**
|
||||
|
||||
@@ -44,12 +44,12 @@ class AppearanceOptions extends OptionsScreen {
|
||||
}
|
||||
#end
|
||||
add(new Checkbox(
|
||||
"Streamed Music",
|
||||
"If checked, only musics will have streamed audio, ALSO freeing a LOT of memory with the downside of higher cpu usage if more audio are being streamed at once (EXPERIMENTAL). Turning this off will consume a lot of memory, especially on longer songs. If you aren't sure, leave this on.",
|
||||
getName("streamedMusic"),
|
||||
getDesc("streamedMusic"),
|
||||
"streamedMusic"));
|
||||
add(new Checkbox(
|
||||
"Streamed Vocals",
|
||||
"If checked, vocals will also be streamed if Streamed Music is checked, will impact the performance if the song uses alot of vocals (EXPERIMENTAL). If you aren't sure, leave this on.",
|
||||
getName("streamedVocals"),
|
||||
getDesc("streamedVocals"),
|
||||
"streamedVocals"));
|
||||
add(new Checkbox(
|
||||
getName("autoPause"),
|
||||
|
||||
@@ -4,8 +4,8 @@ class MiscOptions extends OptionsScreen {
|
||||
public override function new(title:String, desc:String) {
|
||||
super(title, desc, "MiscOptions.");
|
||||
add(new Checkbox(
|
||||
"Developer Mode",
|
||||
"If checked, you will be able to access developer features like certain keybinds, editors, developer options, state reloads, console and more.",
|
||||
getName("devMode"),
|
||||
getDesc("devMode"),
|
||||
"devMode"));
|
||||
#if UPDATE_CHECKING
|
||||
add(new Checkbox(
|
||||
|
||||
@@ -100,18 +100,18 @@ class KeybindsOptions extends MusicBeatSubstate {
|
||||
]
|
||||
},
|
||||
{
|
||||
name: 'Volume',
|
||||
name: translate("category.volume"),
|
||||
settings: [
|
||||
{
|
||||
name: 'Up',
|
||||
name: translate("up"),
|
||||
control: 'VOLUME_UP'
|
||||
},
|
||||
{
|
||||
name: 'Down',
|
||||
name: translate("down"),
|
||||
control: 'VOLUME_DOWN'
|
||||
},
|
||||
{
|
||||
name: 'Mute',
|
||||
name: translate("volume.mute"),
|
||||
control: 'VOLUME_MUTE'
|
||||
},
|
||||
]
|
||||
@@ -126,19 +126,19 @@ class KeybindsOptions extends MusicBeatSubstate {
|
||||
]
|
||||
},
|
||||
{
|
||||
name: 'Developer',
|
||||
name: translate("category.developer"),
|
||||
devModeOnly: true,
|
||||
settings: [
|
||||
{
|
||||
name: 'Developer Menus',
|
||||
name: translate("developer.devMenus"),
|
||||
control: 'DEV_ACCESS'
|
||||
},
|
||||
{
|
||||
name: 'Open Console',
|
||||
name: translate("developer.openConsole"),
|
||||
control: 'DEV_CONSOLE'
|
||||
},
|
||||
{
|
||||
name: 'Reload State',
|
||||
name: translate("developer.reloadState"),
|
||||
control: 'DEV_RELOAD'
|
||||
},
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user