diff --git a/assets/languages/en/Options.xml b/assets/languages/en/Options.xml index d1958961f..1cde775d7 100644 --- a/assets/languages/en/Options.xml +++ b/assets/languages/en/Options.xml @@ -177,6 +177,9 @@ Editor SFXs If checked, will play sound effects when working on editors (ex: will play sfxs when checking checkboxes...) + Swap Event Sides + If checked, global events will be on the left of the strumlines. + Chart Pretty Print If checked, the saved files from the chart editor will be formatted to be easily viewable diff --git a/assets/languages/es/Options.xml b/assets/languages/es/Options.xml index bd25ee90b..60ad120cd 100644 --- a/assets/languages/es/Options.xml +++ b/assets/languages/es/Options.xml @@ -117,7 +117,7 @@ Transmición de Música Si está activado, la música será transmitida en tiempo real, liberando un montón de RAM, aunque usará más CPU si hay mucho audio al mismo tiempo (EXPERIMENTAL). Desactivarlo consumirá más RAM, especialmente en canciones más largas. Si no estás seguro, déjalo activado. - + Transmición de Vocales Si está activado, las vocales también serán transmitidas, impactará el rendimiento si hay muchas vocales (EXPERIMENTAL). Si no estás seguro, déjalo desactivade. @@ -158,10 +158,13 @@ Desactivar Tamaño Mínimo Desactiva el tamaño mínimo de los editores (Editores Adaptables debe estar activado). - + Sonidos del Editor Si está activado, habran sonidos en los editores (ej: al activar opciones...) + Cambiar Lados de Eventos + Si está activado, eventos globales estarán a la izquierda de las pistas. + Si está activado, los charts se guardarán de forma más legible (no aplica a XMLs) Difuminado Intensivo diff --git a/assets/languages/pt/Options.xml b/assets/languages/pt/Options.xml index c9f02aac1..82ce97c7d 100644 --- a/assets/languages/pt/Options.xml +++ b/assets/languages/pt/Options.xml @@ -177,6 +177,9 @@ Sons de Editor Se marcado, tocará efeitos sonoros nos editores (ex: ao carregar em caixas...) + Trocar Lados de Eventos + Se marcado, eventos globais estarão no lado esquerdo das pistas. + Mapas Legíveis Se marcado, os ficheiros guardados no editor de mapas serão formatados para serem fácilmente legíveis. diff --git a/source/funkin/editors/charter/Charter.hx b/source/funkin/editors/charter/Charter.hx index a1c39bf89..513d5f6d0 100644 --- a/source/funkin/editors/charter/Charter.hx +++ b/source/funkin/editors/charter/Charter.hx @@ -443,25 +443,26 @@ class Charter extends UIState { gridBackdrops = new CharterBackdropGroup(strumLines); gridBackdrops.notesGroup = this.notesGroup; - leftEventRowText = new UIText(0, -40, 0, translate("info.localEvents"), 12); + leftEventRowText = new UIText(0, -40, 0, translate("info." + (Options.charterSwapEventSides ? "globalEvents" : "localEvents")), 12); leftEventRowText.alignment = "center"; leftEventRowText.alpha = 0.75; leftEventsBackdrop = new EventBackdrop(false); leftEventsBackdrop.x = -leftEventsBackdrop.width; leftEventRowText.cameras = leftEventsBackdrop.cameras = leftEventsGroup.cameras = [charterCamera]; - leftEventsGroup.eventsBackdrop = leftEventsBackdrop; - leftEventsGroup.eventsRowText = leftEventRowText; - rightEventRowText = new UIText(0, -40, 0, translate("info.globalEvents"), 12); + rightEventRowText = new UIText(0, -40, 0, translate("info." + (Options.charterSwapEventSides ? "localEvents" : "globalEvents")), 12); rightEventRowText.alignment = "center"; rightEventRowText.alpha = 0.75; rightEventsBackdrop = new EventBackdrop(true); rightEventsBackdrop.x = 0; rightEventRowText.cameras = rightEventsBackdrop.cameras = rightEventsGroup.cameras = [charterCamera]; - rightEventsGroup.eventsBackdrop = rightEventsBackdrop; - rightEventsGroup.eventsRowText = rightEventRowText; + + leftEventsGroup.eventsBackdrop = Options.charterSwapEventSides ? rightEventsBackdrop : leftEventsBackdrop; + leftEventsGroup.eventsRowText = Options.charterSwapEventSides ? rightEventRowText : leftEventRowText; + rightEventsGroup.eventsBackdrop = Options.charterSwapEventSides ? leftEventsBackdrop : rightEventsBackdrop; + rightEventsGroup.eventsRowText = Options.charterSwapEventSides ? leftEventRowText : rightEventRowText; // thank you neo for pointing out im stupid -lunar // this is future lunar i completely forgot what neo pointed out but hes awesome go follow him on twitter @@ -537,12 +538,12 @@ class Charter extends UIState { strumlineInfoBG.cameras = [charterCamera]; strumLines.cameras = [charterCamera]; - localAddEventSpr = new CharterEventAdd(false); + localAddEventSpr = new CharterEventAdd(Options.charterSwapEventSides); localAddEventSpr.x -= localAddEventSpr.bWidth; localAddEventSpr.cameras = [charterCamera]; localAddEventSpr.alpha = 0; - globalAddEventSpr = new CharterEventAdd(true); + globalAddEventSpr = new CharterEventAdd(!Options.charterSwapEventSides); globalAddEventSpr.x = 0; globalAddEventSpr.cameras = [charterCamera]; globalAddEventSpr.alpha = 0; @@ -920,11 +921,12 @@ class Charter extends UIState { n.cursor = HAND; }, function (e:CharterEvent) { e.snappedToGrid = false; - e.setPosition(e.eventsBackdrop.x + (e.global ? 0 : e.eventsBackdrop.width - e.bWidth) + (mousePos.x - dragStartPos.x), e.step * 40 + (mousePos.y - dragStartPos.y) - 17); + var isGlobal = e.global != Options.charterSwapEventSides; + e.setPosition(e.eventsBackdrop.x + (isGlobal ? 0 : e.eventsBackdrop.width - e.bWidth) + (mousePos.x - dragStartPos.x), e.step * 40 + (mousePos.y - dragStartPos.y) - 17); e.y = CoolUtil.bound(e.y, -17, (__endStep*40)-17); e.cursor = HAND; - e.displayGlobal = e.x + (e.bWidth/2) > ((strumLines.totalKeyCount*40)/2); + e.displayGlobal = e.x + (e.bWidth/2) > ((strumLines.totalKeyCount*40)/2) != Options.charterSwapEventSides; }); currentCursor = HAND; } else { @@ -1045,7 +1047,7 @@ class Charter extends UIState { var e:CharterEvent = cast s; var newEvent = new CharterEvent(e.step, [for (event in e.events) Reflect.copy(event)], e.global); newEvent.refreshEventIcons(); - (e.global ? rightEventsGroup : leftEventsGroup).add(newEvent); + ((e.global != Options.charterSwapEventSides) ? rightEventsGroup : leftEventsGroup).add(newEvent); newSelection.push(newEvent); } } @@ -1123,11 +1125,12 @@ class Charter extends UIState { // Event Spr for (addEventSpr in [localAddEventSpr, globalAddEventSpr]) { addEventSpr.incorporeal = true; - if ((!addEventSpr.global ? mousePos.x < 0 : mousePos.x > strumLines.totalKeyCount * 40) && gridActionType == NONE && inBoundsY) { + var onLeft:Bool = (!addEventSpr.global) != Options.charterSwapEventSides; + if ((onLeft ? mousePos.x < 0 : mousePos.x > strumLines.totalKeyCount * 40) && gridActionType == NONE && inBoundsY) { var event = getHoveredEvent(mousePos.y, !addEventSpr.global ? leftEventsGroup : rightEventsGroup); var hoveredWidth:Float = event != null ? 27 + 40 + event.bWidth : addEventSpr.bWidth; - if ((!addEventSpr.global ? mousePos.x > -hoveredWidth : mousePos.x < strumLines.totalKeyCount * 40 + hoveredWidth)) { + if ((onLeft ? mousePos.x > -hoveredWidth : mousePos.x < strumLines.totalKeyCount * 40 + hoveredWidth)) { addEventSpr.incorporeal = false; if (event != null) addEventSpr.updateEdit(event); diff --git a/source/funkin/editors/charter/CharterEvent.hx b/source/funkin/editors/charter/CharterEvent.hx index f159c83a5..e4c590aa0 100644 --- a/source/funkin/editors/charter/CharterEvent.hx +++ b/source/funkin/editors/charter/CharterEvent.hx @@ -50,7 +50,7 @@ class CharterEvent extends UISliceSprite implements ICharterSelectable { if (snappedToGrid && eventsBackdrop != null) { bWidth = 37 + (icons.length * 22); - x = eventsBackdrop.x + (global ? 0 : eventsBackdrop.width - bWidth); + x = eventsBackdrop.x + ((global != Options.charterSwapEventSides) ? 0 : eventsBackdrop.width - bWidth); } for(k=>i in icons) { @@ -68,7 +68,7 @@ class CharterEvent extends UISliceSprite implements ICharterSelectable { selectedColorTransform(sprite.colorTransform); } - flipX = displayGlobal; + flipX = (displayGlobal != Options.charterSwapEventSides); } @:noCompletion private inline function selectedColorTransform(transform:ColorTransform) { @@ -282,9 +282,9 @@ class CharterEvent extends UISliceSprite implements ICharterSelectable { shouldDoArrow = event.params[1] && event.params[3] != "CLASSIC"; // is Tweened and isnt Lerped icon = getIconFromStrumline(event.params[0]); // camera movement, use health icon } - + if (icon == null) icon = generateDefaultIcon(event.name); - + if(event.params != null && shouldDoArrow && !inMenu) { var group = new EventIconGroup(); group.add(icon); @@ -412,7 +412,7 @@ class CharterEvent extends UISliceSprite implements ICharterSelectable { draggable = true; bWidth = 37 + (icons.length * 22); - x = (snappedToGrid && eventsBackdrop != null && global ? eventsBackdrop.x - bWidth : (global ? 0 : -bWidth)); + x = (snappedToGrid && eventsBackdrop != null && (global != Options.charterSwapEventSides) ? eventsBackdrop.x - bWidth : ((global != Options.charterSwapEventSides) ? 0 : -bWidth)); } } diff --git a/source/funkin/editors/charter/CharterEventAdd.hx b/source/funkin/editors/charter/CharterEventAdd.hx index dca9d3089..ee7ec48ec 100644 --- a/source/funkin/editors/charter/CharterEventAdd.hx +++ b/source/funkin/editors/charter/CharterEventAdd.hx @@ -13,7 +13,8 @@ class CharterEventAdd extends UISliceSprite { public function new(global:Bool) { super(0, 0, 100, 34, 'editors/charter/event-spr-add'); - this.global = flipX = global; + this.global = global; + flipX = (global != Options.charterSwapEventSides); sideText = new UIText(0, -40, 0, TU.translate("charter.eventType-" + (global ? "global" : "local")), 12); sideText.alignment = "center"; sideText.alpha = 0.75; @@ -49,7 +50,7 @@ class CharterEventAdd extends UISliceSprite { super.update(elapsed); if (FlxG.state.subState != null) return; - text.follow(this, global ? bWidth - text.width - (text.text == TU.translate("charter.addEvent") ? 15 : 20) : 20, (bHeight - text.height) / 2); + text.follow(this, (global != Options.charterSwapEventSides) ? 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; @@ -64,7 +65,8 @@ class CharterEventAdd extends UISliceSprite { this.y = (step * 40) - (bHeight / 2); text.text = TU.translate("charter.addEvent"); framesOffset = 0; bWidth = 37 + Math.ceil(text.width); - x = global ? Charter.instance.strumLines.members[Charter.instance.strumLines.members.length-1].x + (40*Charter.instance.strumLines.members[Charter.instance.strumLines.members.length-1].keyCount) : -(bWidth); + x = (global != Options.charterSwapEventSides) ? Charter.instance.strumLines.members[Charter.instance.strumLines.members.length-1].x + (40*Charter.instance.strumLines.members[Charter.instance.strumLines.members.length-1].keyCount) : -(bWidth); + sideText.text = TU.translate("charter.eventType-" + (global ? "global" : "local")); } public function updateEdit(event:CharterEvent) { @@ -73,6 +75,7 @@ class CharterEventAdd extends UISliceSprite { this.y = event.y; text.text = TU.translate("charter.editEvent"); framesOffset = 9; bWidth = 27 + Math.ceil(text.width) + event.bWidth; - x = global ? Charter.instance.strumLines.members[Charter.instance.strumLines.members.length-1].x + (40*Charter.instance.strumLines.members[Charter.instance.strumLines.members.length-1].keyCount) : -(bWidth); + x = (event.global != Options.charterSwapEventSides) ? Charter.instance.strumLines.members[Charter.instance.strumLines.members.length-1].x + (40*Charter.instance.strumLines.members[Charter.instance.strumLines.members.length-1].keyCount) : -(bWidth); + sideText.text = TU.translate("charter.eventType-" + (event.global ? "global" : "local")); } } \ No newline at end of file diff --git a/source/funkin/options/Options.hx b/source/funkin/options/Options.hx index 377dc1918..b3984580f 100644 --- a/source/funkin/options/Options.hx +++ b/source/funkin/options/Options.hx @@ -58,6 +58,7 @@ class Options */ public static var intensiveBlur:Bool = true; public static var editorSFX:Bool = true; + public static var charterSwapEventSides:Bool = false; public static var editorCharterPrettyPrint:Bool = false; public static var editorCharacterPrettyPrint:Bool = true; diff --git a/source/funkin/options/categories/DebugOptions.hx b/source/funkin/options/categories/DebugOptions.hx index 74b2eb8a7..4f63da38b 100644 --- a/source/funkin/options/categories/DebugOptions.hx +++ b/source/funkin/options/categories/DebugOptions.hx @@ -13,6 +13,7 @@ class DebugOptions extends TreeMenuScreen { add(new Checkbox(getNameID("editorCharterPrettyPrint"), getDescID("editorCharterPrettyPrint"), "editorCharterPrettyPrint")); add(new Checkbox(getNameID("editorCharacterPrettyPrint"), getDescID("editorCharacterPrettyPrint"), "editorCharacterPrettyPrint")); add(new Checkbox(getNameID("editorStagePrettyPrint"), getDescID("editorStagePrettyPrint"), "editorStagePrettyPrint")); + add(new Checkbox(getNameID("charterSwapEventSides"), getDescID("charterSwapEventSides"), "charterSwapEventSides")); add(new Checkbox(getNameID("intensiveBlur"), getDescID("intensiveBlur"), "intensiveBlur")); add(new Checkbox(getNameID("charterAutoSaves"), getDescID("charterAutoSaves"), "charterAutoSaves")); add(new NumOption(getNameID("charterAutoSaveTime"), getDescID("charterAutoSaveTime"), 60, 60*10, 1, "charterAutoSaveTime"));