Fix typos

This commit is contained in:
Ne_Eo
2024-12-10 04:35:32 +01:00
parent da717919ba
commit d6dc3ea232
76 changed files with 214 additions and 211 deletions
+3 -3
View File
@@ -13,7 +13,7 @@ _**QOL = Quality of Life**_
- Downscroll
- Ghost Tapping
- Opponent & Co-op modes
- Memory optimisation (most of the game runs < 500mb)
- Memory optimization (most of the game runs < 500mb)
- Usage of [flxanimate](https://github.com/Dot-Stuff/flxanimate) on big sprites, such as Girlfriend to save memory.
- You can further optimize it on certain stages by enabling `Low Memory Mode` in `Options > Appearance`.
- New volume change SFX (no more loud flixel beep, customizable)
@@ -36,7 +36,7 @@ _**QOL = Quality of Life**_
- Support for `hscript-improved`, a fork made to allow HScript to push modding even further
- Allows for imports
- Allows for public variables (variables shared between every script in a ScriptPack such as a song scripts)
- Allows for static variables (variabels shared between every single script ran in this mod)
- Allows for static variables (variables shared between every single script ran in this mod)
- Allows you to use for example `boyfriend` instead of `PlayState.boyfriend` or `game.boyfriend`, for smaller and easier to comprehend code.
- Allows you to use `@:bypassAccessor`
- Allows you to use maps
@@ -59,7 +59,7 @@ _**QOL = Quality of Life**_
- Position them
- Add animations
- Change their scale
- Change their scrollfactor
- Change their scroll factor
- Change their zoomfactor
- Turn on/off their antialiasing (on by default)
- Change additional properties via child nodes.
+3 -3
View File
@@ -15,7 +15,7 @@
- New SEXY editor assets by paige and nex!!!! (and lunar, does 16x16 even count??? 😭)
- NEW EVENTS (Camera events, play animation, scroll speed change)
- Events window is now scrollable (more events, more room)
- Custom Properities in Meta AND Character (Editable in Charter and Character Editor :D) (accessible with SONG.meta.customValues.[property] and [character].extras.[property])
- Custom Properties in Meta AND Character (Editable in Charter and Character Editor :D) (accessible with SONG.meta.customValues.[property] and [character].extras.[property])
- SMALLER BUT STILL COOL
- Multiple Icons now show up on strumlines with multiple characters in the charter
- Note hoverer to show where your note is going to be placed
@@ -63,7 +63,7 @@
- Fix for pressing F5 in an editor breaking it
- Fix when getting GitHub data and a redirect happens
- Fix for healthbar incorrectly colored in opponent mode
- Video cutscenes are ALOT more stable (thanks majigsaw :D)
- Video cutscenes are A LOT more stable (thanks majigsaw :D)
- 3D now works again (so cool i love away3d in 2024)
- Lots and lots of grammar and wording fixes (so true bro -lunar)
- Lots and lots of other optimizations made
@@ -76,5 +76,5 @@
- Some other shit idk ill add it whenever someone tells me backward compat is broke 💔
</details>
thanks so much for the support and always being there, it really does mean alot to us < 3
thanks so much for the support and always being there, it really does mean a lot to us < 3
we are one step closer to turning beta so we really can't wait !
+2 -2
View File
@@ -11,7 +11,7 @@ Also, the command `.\cne test` uses the source assets folder instead of the expo
## Codename Engine
Codename Engine is a new Friday Night Funkin' Engine aimed at simplifying modding, along with extensiblity and ease of use.<br>
Codename Engine is a new Friday Night Funkin' Engine aimed at simplifying modding, along with extensibility and ease of use.<br>
### Before making issues or need help with something, check our website [HERE](https://fnf-cne-devs.github.io/) (it contains a wiki of how to mod with EXAMPLES, an api, lists of mods made with Codename Engine and more)!!!
#### The Engine includes many new features, as seen [here](FEATURES.md)<br>
#### Wanna see the new features added in the most recent update? Click [here](PATCHNOTES.md)<br>
@@ -70,7 +70,7 @@ If you don't have a github account please go onto https://fnf-cne-devs.github.io
- Mod and fork the engine (without using it for illicit purposes)
- Contribute to the engine (for example through *Pull Requests*, *Issues*, etc)
- Create a sub engine with Codename Engine as **TEMPLATE** with **CREDITS** (for example leaving the *credits menu submenu with the GitHub contributors* and putting the *[main devs](https://github.com/FNF-CNE-Devs)* in a *README* specifying that it's a *sub engine from Codename Engine*)
- Release excutable mods that use Codename Engine as source (Specifing that uses Codename Engine by for example the same way written above this)
- Release executable mods that use Codename Engine as source (Specifying that uses Codename Engine by for example the same way written above this)
- Release modpacks
### You can't:
+2 -2
View File
@@ -26,7 +26,7 @@
- [ ] BPM Changes Events
- [ ] Character Editor
- [x] Animation Editing
- [x] Animation Deletion/Creationg
- [x] Animation Deletion/Creation
- [x] Character Info Editing
- [x] Character Saving
- [x] Add Undos to Actions
@@ -49,7 +49,7 @@
- [ ] Fix bugs
## `v1.1.0`
- [ ] Charter Waveforms (maybe in v1.1.0, dont wanna slow shit down)
- [ ] Charter Waveforms (maybe in v1.1.0, don't wanna slow shit down)
- [ ] Custom classes
- [ ] Proper super overrides (FlxText_HSX doesn't allow overrides for update because of this)
- [ ] Custom Class extending Custom Classes
+1 -1
View File
@@ -7,7 +7,7 @@ function postCreate() {
}
var toAdd:Bool = true; // Using this just to make sure
function update(elpased) {
function update(elapsed) {
if(toAdd) {
toAdd = false;
PlayState.instance.insert(PlayState.instance.members.indexOf(self), trail);
@@ -1,4 +1,4 @@
var loopedTimah:FlxTimer; // Hey! a man has fallen into the river in lego city! and if youre asking why this is here, you shall disappear! - Nex
var loopedTimer:FlxTimer; // Hey! a man has fallen into the river in lego city! and if youre asking why this is here, you shall disappear! - Nex
var bgFade:FlxSprite;
var hand:FlxSprite;
@@ -9,7 +9,7 @@ function postCreate() {
bgFade.alpha = 0;
cutscene.insert(0, bgFade);
loopedTimah = new FlxTimer().start(0.83, function(tmr:FlxTimer)
loopedTimer = new FlxTimer().start(0.83, function(tmr:FlxTimer)
{
bgFade.alpha += (1 / 5) * 0.7;
if (bgFade.alpha > 0.7)
@@ -30,8 +30,8 @@ function close(event) {
cutscene.curMusic?.fadeOut(1, 0);
for(c in cutscene.charMap) c.visible = false;
loopedTimah.cancel();
loopedTimah = new FlxTimer().start(0.2, function(tmr:FlxTimer)
loopedTimer.cancel();
loopedTimer = new FlxTimer().start(0.2, function(tmr:FlxTimer)
{
if (tmr.elapsedLoops <= 5) {
cutscene.dialogueBox.alpha -= 1 / 5;
+1 -1
View File
@@ -11,7 +11,7 @@ function create() {
}
var adder:Int = 0;
function postUpdate(elapsed:Float) { // Doing it like this so at least the red bump doesnt look too much instant
function postUpdate(elapsed:Float) { // Doing it like this so at least the red bump doesn't look too much instant
var toAdd:Int = lerp(adder, 0, elapsed);
idk.amount = camGame.zoom * camHUD.zoom + toAdd;
idk.strength = (camGame.zoom - camHUD.zoom + toAdd) * 5;
+1 -1
View File
@@ -16,7 +16,7 @@
antialiasing="false" scale="4.797" scroll="0.9" updateHitbox="true" type="loop"/>
<sprite name="bgTrees" x="-590" y="-800" sprite="weebTrees" antialiasing="false" scale="5.102" scroll="0.85" updateHitbox="true" type="loop">
<!-- Frame 19 isnt used in og -->
<!-- Frame 19 isn't used in og -->
<anim name="trees" anim="trees" indices="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19" fps="12" loop="true"/>
</sprite>
+1 -1
View File
@@ -16,7 +16,7 @@ public function lightningStrikeShit():Void
lightningStrikeBeat = curBeat;
lightningOffset = FlxG.random.int(8, 24);
boyfriend.playAnim('scared', true, "SING"); // SING so that they dont get indefinitely looped
boyfriend.playAnim('scared', true, "SING"); // SING so that they don't get indefinitely looped
gf.playAnim('scared', true, "SING");
}
+1 -1
View File
@@ -25,7 +25,7 @@
<dad x="20" y="160"/>
<boyfriend x="810"/>
<!-- FOREGROUND TANKMANS -->
<!-- FOREGROUND TANKMENs -->
<high-memory>
<sprite name="tank0" x="-500" y="650" sprite="tank0" scrollx="1.7" scrolly="1.5" type="onbeat" zoomfactor="1.25"/>
+1 -1
View File
@@ -1,4 +1,4 @@
# THIS FILE ISNT NECESSARY,
# THIS FILE ISN'T NECESSARY,
# BUT YOU CAN USE IT TO SORT WEEKS
tutorial
+2 -2
View File
@@ -1,4 +1,4 @@
## Here are guides on common mistakes and advices for writting shaders for flixel and openfl.
## Here are guides on common mistakes and advices for writing shaders for flixel and openfl.
It's important to follow this guide as most shader coders make these mistakes a lot and end up with shaders that only work on certain devices.
@@ -51,7 +51,7 @@ We will show each step to converting this shader into an usable openfl/flixel sh
1. replace ``void mainImage( out vec4 fragColor, in vec2 fragCoord )`` with a simple ``void main()`` (flixel and openfl do not have any parameters since the coords are defined outside the function)
2. replace ``vec2 uv = fragCoord/iResolution.xy;`` with ``vec2 uv = openfl_TextureCoordv`` (or in some cases, add ``vec2 fragCoord = openfl_TextureCoordv*openfl_TextureSize.xy`` before it and replace `iResolution.xy` with ``openfl_TextureSize.xy`` (if the uv value is different than usual))
3. replace ``vec4 col = texture(iChannel0, uv);`` with ``vec4 col = texture2D(bitmap, uv);`` or ``vec4 col = flixel_texture2D(bitmap, uv);`` (keep in mind bitmap is the pixels of the camera/sprite the shader is aplied to)
3. replace ``vec4 col = texture(iChannel0, uv);`` with ``vec4 col = texture2D(bitmap, uv);`` or ``vec4 col = flixel_texture2D(bitmap, uv);`` (keep in mind bitmap is the pixels of the camera/sprite the shader is applied to)
4. finally, replace ``fragColor = col;`` with ``gl_FragColor = col;``
###### Keep in mind that this covers the most basic on how to convert a shader from shadertoy.com, complex shaders will need more expertise with handling shaders before converting those.
+19 -19
View File
@@ -5,8 +5,8 @@
const vec3 gradient1 = vec3(114.0/255.0, 81.0/255.0, 135.0/255.0);
const vec3 gradient2 = vec3(144.0/255.0, 80.0/255.0, 186.0/255.0);
const vec4 outlinecolor = vec4(0.1);
const vec3 lowdetailcol = vec3(0.0, 0.0, 1.0);
const vec4 outlineColor = vec4(0.1);
const vec3 lowDetailCol = vec3(0.0, 0.0, 1.0);
uniform vec2 textureRes;
uniform float pixelOffset;
@@ -21,7 +21,7 @@ uniform bool lowDetail;
float getAmplitude(vec2 pixel) {
float pixelID = floor((pixel.y+pixelOffset)/3.0);
// TODO: INVESTIGATE THE 1.+ AND WHY IT WORKS (SRSLY I GOT NO CLUE) -lunar
// TODO: INVESTIGATE THE 1.+ AND WHY IT WORKS (SERIOUSLY I GOT NO CLUE) -lunar
vec2 wavePixel = vec2(mod(pixelID, waveformSize.x), 1.0+floor(pixelID/waveformSize.x));
vec4 waveData = texture2D(waveformTexture, wavePixel / waveformSize);
@@ -41,28 +41,28 @@ bool inWaveForm(vec2 pixel, float width) {
return pixel.x > widthdiv2 && pixel.x < textureRes.x-widthdiv2;
}
float getHightlight(float ampwidth) {
float remapCoord = (ampwidth/textureRes.x)/2.0;
float getHighlight(float ampWidth) {
float remapCoord = (ampWidth/textureRes.x)/2.0;
float mappedCoord = map(openfl_TextureCoordv.x, remapCoord, 1.0-remapCoord, 0.0, 1.0);
return 1.0-(abs(mappedCoord-0.5)*2.0);
}
void outlineWaveform(vec2 pixel, vec2 offset) {
float amplitude = getAmplitude(pixel - offset);
float ampwidth = (1.0-amplitude) * textureRes.x;
float ampWidth = (1.0-amplitude) * textureRes.x;
if (!inWaveForm(pixel, ampwidth))
gl_FragColor -= outlinecolor*mix(0.5, 0.8, amplitude);
if (!inWaveForm(pixel, ampWidth))
gl_FragColor -= outlineColor*mix(0.5, 0.8, amplitude);
}
void highDetailWaveform(vec2 pixel, float amplitude, float ampwidth) {
void highDetailWaveform(vec2 pixel, float amplitude, float ampWidth) {
vec3 gradientColor = mix(gradient1, gradient2, openfl_TextureCoordv.x);
gradientColor *= pixel.y+pixelOffset>playerPosition ? 0.7 : 1.0;
gradientColor = mix(gradientColor, gradientColor * vec3(1.8), map(getHightlight(amplitude), 0.0, 1.0, 0.5, 1.0));
gradientColor = mix(gradientColor, gradientColor * vec3(1.8), map(getHighlight(amplitude), 0.0, 1.0, 0.5, 1.0));
float ampwidthHighlight = getAmpWidth(amplitude/3.0);
if (inWaveForm(pixel, ampwidthHighlight))
gradientColor = mix(gradientColor, gradientColor * vec3(1.8), map(getHightlight(ampwidthHighlight), 0.0, 1.0, 0.5, 1.0));
float ampWidthHighlight = getAmpWidth(amplitude/3.0);
if (inWaveForm(pixel, ampWidthHighlight))
gradientColor = mix(gradientColor, gradientColor * vec3(1.8), map(getHighlight(ampWidthHighlight), 0.0, 1.0, 0.5, 1.0));
gl_FragColor = vec4(vec3(gradientColor * mix(0.5, 0.8, amplitude))*openfl_Alphav, openfl_Alphav);
@@ -70,19 +70,19 @@ void highDetailWaveform(vec2 pixel, float amplitude, float ampwidth) {
outlineWaveform(pixel, vec2(0.0, 1.0));
}
void lowDetailWaveform(vec2 pixel, float amplitude, float ampwidth) {
gl_FragColor = vec4(lowdetailcol * (pixel.y+pixelOffset>playerPosition ? 0.7 : 1.0), 1.0);
void lowDetailWaveform(vec2 pixel, float amplitude, float ampWidth) {
gl_FragColor = vec4(lowDetailCol * (pixel.y+pixelOffset>playerPosition ? 0.7 : 1.0), 1.0);
}
void main()
{
vec2 pixel = openfl_TextureCoordv * textureRes;
float amplitude = getAmplitude(pixel);
float ampwidth = getAmpWidth(amplitude);
float ampWidth = getAmpWidth(amplitude);
gl_FragColor = vec4(0.0);
if (!inWaveForm(pixel, ampwidth)) return;
if (!inWaveForm(pixel, ampWidth)) return;
if (lowDetail) lowDetailWaveform(pixel, amplitude, ampwidth);
else highDetailWaveform(pixel, amplitude, ampwidth);
if (lowDetail) lowDetailWaveform(pixel, amplitude, ampWidth);
else highDetailWaveform(pixel, amplitude, ampWidth);
}
+3 -3
View File
@@ -41,7 +41,7 @@ class Main {
dDoc: [
"Usage: test <optional args>",
"",
"This will create a quick debug build binded to the source then run it, which means:",
"This will create a quick debug build connected to the source then run it, which means:",
"- The assets WON'T be copied over - Assets will be read from the game's source.",
"- This build WON'T be ready for release - Running anywhere else than in the bin folder will result in a crash from missing assets",
"- This build will also use the mods folder from the source directory.",
@@ -59,7 +59,7 @@ class Main {
dDoc: [
"Usage: build <optional arguments>",
"",
"This will create a quick debug build binded to the source then run it, which means:",
"This will create a quick debug build connected to the source then run it, which means:",
"- The assets WON'T be copied over - Assets will be read from the game's source.",
"- This build WON'T be ready for release - Running anywhere else than in the bin folder will result in a crash from missing assets",
"- This build will also use the mods folder from the source directory.",
@@ -103,7 +103,7 @@ class Main {
"",
"This will optimize a JSON file, which means it will remove all unnecessary spacing from the file.",
"WARNING: Order might be lost.",
"WARNING: Comments arent supported.",
"WARNING: Comments aren't supported.",
"",
"-O | --no-old : No Old file will be created.",
].join("\n")
+1 -1
View File
@@ -133,7 +133,7 @@
<!-- Comment this out to disable support for custom ndlls. !-->
<haxedef name="NDLLS_SUPPORTED" unless="web || iphonesim || hl" />
<!-- Comment this out to disable support for Away3D Flixel Intergration (reduces compile times) !-->
<!-- Comment this out to disable support for Away3D Flixel Integration (reduces compile times) !-->
<define name="THREE_D_SUPPORT" />
<!-- Comment this out to disable support for Funkin Audio Visualizer (reduces compile times) !-->
+1 -1
View File
@@ -363,7 +363,7 @@ class Xml {
/**
Removes a child from the Document or Element.
Returns true if the child was successfuly removed.
Returns true if the child was successfully removed.
**/
public function removeChild(x:Xml):Bool {
ensureElementType();
+1 -1
View File
@@ -7,7 +7,7 @@ import flixel.FlxG;
#end
/**
* @author lunarclient
* @author lunarcleint
* @see https://twitter.com/lunarcleint
*
* Help from Ne_Eo
+3 -3
View File
@@ -28,7 +28,7 @@ class FlxAnimate extends flxanimate.FlxAnimate {
var angleOff = (frameOffsetAngle - angle) * FlxAngle.TO_RAD;
var cos = Math.cos(angleOff);
var sin = Math.sin(angleOff);
// cos doesnt need to be negated
// cos doesn't need to be negated
rMatrix.rotateWithTrig(cos, -sin);
rMatrix.translate(-frameOffset.x, -frameOffset.y);
rMatrix.rotateWithTrig(cos, sin);
@@ -72,7 +72,7 @@ class FlxAnimate extends flxanimate.FlxAnimate {
#end
}
// doesnt work, needs to be remade
// doesn't work, needs to be remade
// #if FLX_DEBUG
// if (FlxG.debugger.drawDebug)
// drawDebug();
@@ -81,7 +81,7 @@ class FlxAnimate extends flxanimate.FlxAnimate {
override function limbOnScreen(limb:FlxFrame, m:FlxMatrix, ?Camera:FlxCamera)
{
// TODO: ACTUAL OPTIMISATION
// TODO: ACTUAL OPTIMIZATION
return true;
}
}
+2 -1
View File
@@ -49,7 +49,8 @@ class FunkinSprite extends FlxSkewedSprite implements IBeatReceiver implements I
public var globalCurFrame(get, set):Int;
/**
* ODD interval -> asynced; EVEN interval -> synced
* ODD interval -> not aligned to beats
* EVEN interval -> aligned to beats
*/
public var beatInterval(default, set):Int = 2;
public var beatOffset:Int = 0;
+1 -1
View File
@@ -17,7 +17,7 @@ class MusicBeatSubstate extends FlxSubState implements IBeatReceiver
private var lastStep:Float = 0;
/**
* Whether this specifc substate can open custom transitions
* Whether this specific substate can open custom transitions
*/
public var canOpenCustomTransition:Bool = false;
/**
+2 -1
View File
@@ -42,8 +42,9 @@ class ModsFolder {
* Whenever its the first time mods has been reloaded.
*/
private static var __firstTime:Bool = true;
/**
* Initialises `mods` folder.
* Initializes `mods` folder.
*/
public static function init() {
if(!getModsList().contains(Options.lastLoadedMod))
@@ -15,9 +15,9 @@ class BaseGameParser {
result.customValues = {};
result.customValues.timeChanges = data.timeChanges;
var firstTimeChng:SwagTimeChange = data.timeChanges[0];
result.bpm = firstTimeChng.bpm;
result.beatsPerMeasure = firstTimeChng.b != null ? firstTimeChng.b : Flags.DEFAULT_BEATS_PER_MEASURE;
var firstTimeChange:SwagTimeChange = data.timeChanges[0];
result.bpm = firstTimeChange.bpm;
result.beatsPerMeasure = firstTimeChange.b != null ? firstTimeChange.b : Flags.DEFAULT_BEATS_PER_MEASURE;
result.difficulties = data.playData.difficulties.concat(data.playData.songVariations);
Reflect.deleteField(data.playData, "difficulties");
+1 -1
View File
@@ -55,7 +55,7 @@ class Chart {
}
public static function detectChartFormat(data:Dynamic):ChartFormat {
var __temp:Dynamic; // imma reuse this var so the program doesnt have to get values multiple times - Nex
var __temp:Dynamic; // imma reuse this var so the program doesn't have to get values multiple times - Nex
if ((__temp = data.codenameChart) == true || __temp == "true")
return CODENAME;
+1 -1
View File
@@ -44,7 +44,7 @@ typedef ChartStrumLine = {
var ?scrollSpeed:Float;
var ?vocalsSuffix:String;
var ?strumLinePos:Float; // Backwards compatability
var ?strumLinePos:Float; // Backwards compatibility
}
typedef ChartNote = {
+1 -1
View File
@@ -106,7 +106,7 @@ class PsychParser {
var eventStep:Float = Conductor.getStepForTime(event.time);
psychEvents.push([
"Change Scroll Speed",
FlxMath.roundDecimal(event.params[1]/chart.scrollSpeed, 2), // SCROLL SPEED MULTIPLER
FlxMath.roundDecimal(event.params[1]/chart.scrollSpeed, 2), // SCROLL SPEED MULTIPLIER
FlxMath.roundDecimal( // TIME
event.params[0] ? // IS TWEENED?
(Conductor.getTimeForStep(eventStep+event.params[2]) - Conductor.getTimeForStep(eventStep))/1000
@@ -4,7 +4,7 @@ import flixel.FlxState;
import funkin.backend.scripting.events.*;
class EventManager {
// map doesnt work for that
// map doesn't work for that
public static var eventValues:Array<CancellableEvent> = [];
public static var eventKeys:Array<Class<CancellableEvent>> = [];
@@ -11,11 +11,11 @@ import funkin.backend.system.Conductor;
class GlobalScript {
public static var scripts:ScriptPack;
private static var initalized:Bool = false;
private static var initialized:Bool = false;
public static function init() {
if(initalized) return;
initalized = true;
if(initialized) return;
initialized = true;
#if MOD_SUPPORT
ModsFolder.onModSwitch.add(onModSwitch);
#end
+1 -1
View File
@@ -16,7 +16,7 @@ class HScript extends Script {
public static function initParser() {
var parser = new Parser();
parser.allowJSON = parser.allowMetadata = parser.allowTypes = true;
parser.preprocesorValues = Script.getDefaultPreprocessors();
parser.preprocessorValues = Script.getDefaultPreprocessors();
return parser;
}
+1 -1
View File
@@ -307,7 +307,7 @@ class Script extends FlxBasic implements IFlxDestroyable {
}
/**
* Loads the code from a string, doesnt really work after the script has been loaded
* Loads the code from a string, doesn't really work after the script has been loaded
* @param code The code.
*/
public function loadFromString(code:String) {
@@ -2,11 +2,11 @@ package funkin.backend.scripting.events.menu.freeplay;
final class FreeplayAlphaUpdateEvent extends CancellableEvent {
/**
* The alpha when nothing is playing and isnt selected
* The alpha when nothing is playing and isn't selected
*/
public var idleAlpha:Float;
/**
* The alpha when something is playing and isnt selected
* The alpha when something is playing and isn't selected
*/
public var idlePlayingAlpha:Float;
/**
@@ -86,7 +86,7 @@ final class NoteHitEvent extends CancellableEvent {
*/
public var healthGain:Float;
/**
* Rating name. Defaults to "sick", "good", "bad" and "shit". Customisable.
* Rating name. Defaults to "sick", "good", "bad" and "shit". Customizable.
*/
public var rating:String = "sick";
/**
@@ -532,7 +532,7 @@ class FunkinShader extends FlxShader implements IHScriptCustomBehaviour {
// cant do "field is ShaderInput" because ShaderInput has the @:generic metadata
// aka instead of ShaderInput<Float> it gets built as ShaderInput_Float
// this should be fine tho because we check the class, and the fields dont vary based on the type
// this should be fine tho because we check the class, and the fields don't vary based on the type
// thanks for looking in the code cne fans :D!! -lunar
+2 -2
View File
@@ -38,7 +38,7 @@ class Conductor
public static var stepCrochet:Float = crochet / 4; // steps in milliseconds
/**
* Number of beats per mesure (top number in time signature). Defaults to 4.
* Number of beats per measure (top number in time signature). Defaults to 4.
*/
public static var beatsPerMeasure:Float = 4;
@@ -190,7 +190,7 @@ class Conductor
__updateSongPos(FlxG.elapsed);
if (bpm > 0) {
// updates curbeat and stuff
// updates curBeat and stuff
__lastChange = {
stepTime: 0,
songTime: 0,
+1 -1
View File
@@ -76,7 +76,7 @@ class Flags {
public static var DEFAULT_OPPONENT_MODE_ALLOWED:Bool = false;
@:also(funkin.game.PlayState.coopMode)
public static var DEFAULT_COOP_MODE:Bool = false; // used in playstate if it doesnt find it
public static var DEFAULT_COOP_MODE:Bool = false; // used in playstate if it doesn't find it
@:also(funkin.game.PlayState.opponentMode)
public static var DEFAULT_OPPONENT_MODE:Bool = false;
@@ -3,7 +3,7 @@ package funkin.backend.system;
import flixel.graphics.FlxGraphic;
/**
* Dummy FlxSprite that allows you to cache FlxGraphics, and immediatly send them to GPU memory.
* Dummy FlxSprite that allows you to cache FlxGraphics, and immediately send them to GPU memory.
*/
class GraphicCacheSprite extends FlxSprite {
/**
+1 -1
View File
@@ -31,7 +31,7 @@ class Logs {
var prefix = "[FLIXEL]";
var color:ConsoleColor = LIGHTGRAY;
var level:Level = INFO;
if (style == LogStyle.CONSOLE) // cant place a switch here as these arent inline values - Nex
if (style == LogStyle.CONSOLE) // cant place a switch here as these aren't inline values - Nex
{
prefix = "> ";
color = WHITE;
+2 -2
View File
@@ -202,8 +202,8 @@ class Main extends Sprite
}
private static function onStateSwitchPost() {
// manual asset clearing since base openfl one doesnt clear lime one
// doesnt clear bitmaps since flixel fork does it auto
// manual asset clearing since base openfl one does'nt clear lime one
// does'nt clear bitmaps since flixel fork does it auto
@:privateAccess {
// clear uint8 pools
@@ -126,7 +126,7 @@ class Framerate extends Sprite {
bgSprite.scaleY = height;
var selectable = debugMode == 2;
{ // idk i tried to make it more lookable:sob: - Nex
{ // idk i tried to make it more readable:sob: - Nex
memoryCounter.memoryText.selectable = memoryCounter.memoryPeakText.selectable =
fpsCounter.fpsNum.selectable = fpsCounter.fpsLabel.selectable =
#if SHOW_BUILD_ON_FPS codenameBuildField.selectable = #end selectable;
@@ -63,7 +63,7 @@ class SystemInfo extends FramerateCategory {
cpuName = process.stdout.readAll().toString().trim().split("\n")[1].trim();
#elseif mac
var process = new HiddenProcess("sysctl -a | grep brand_string"); // Somehow this isnt able to use the args but it still works
var process = new HiddenProcess("sysctl -a | grep brand_string"); // Somehow this isn't able to use the args but it still works
if (process.exitCode() != 0) throw 'Could not fetch CPU information';
cpuName = process.stdout.readAll().toString().trim().split(":")[1].trim();
@@ -78,9 +78,9 @@ class ControlsMacro
});
function buildBindControl(s:String, prefix:String) {
var prefixxed = prefix + s;
var prefixed = prefix + s;
return macro bindKeys(Control.$s, Options.$prefixxed);
return macro bindKeys(Control.$s, Options.$prefixed);
}
fields.push({
@@ -184,7 +184,7 @@ class FlagMacro {
}
case TPath({name: "Array", pack: []}):
Context.error("Flag " + field.name + " cannot be an Array that isnt a String or Bool or TrimmedString or Int or Float", field.pos);
Context.error("Flag " + field.name + " cannot be an Array that isn't a String or Bool or TrimmedString or Int or Float", field.pos);
case TPath({name: "Map", pack: []}):
Context.error("Flag " + field.name + " cannot be a Map<K, V>", field.pos);
default:
@@ -81,8 +81,8 @@ class HashLinkFixer {
var returns:Bool = !fun.ret.match(TPath({name: "Void"}));
var printer = new haxe.macro.Printer();
if(cl.module == "hl.Gc" && fun.ret == null) returns = false; // fix since they dont explicitly set :Void
if(cl.module == "hl.Format" && fun.ret == null) returns = false; // fix since they dont explicitly set :Void
if(cl.module == "hl.Gc" && fun.ret == null) returns = false; // fix since they don't explicitly set :Void
if(cl.module == "hl.Format" && fun.ret == null) returns = false; // fix since they don't explicitly set :Void
var name = 'hlf_${f.name}';
@@ -114,7 +114,7 @@ class HashLinkFixer {
default:
}
var fiel:Field = {
var field:Field = {
name: name,
pos: Context.currentPos(),
kind: FFun({
@@ -126,7 +126,7 @@ class HashLinkFixer {
access: f.access.copy().filter(function(a) return a != APublic && a != APrivate).concat([APrivate]),
meta: meta
};
fields.push(fiel);
fields.push(field);
definedFields.push(f.name);
// Remove meta from original function
@@ -6,7 +6,7 @@ import funkin.backend.utils.NativeAPI;
import lime.media.AudioManager;
/**
* if youre stealing this keep this comment at least please lol
* if you are stealing this keep this comment at least please lol
*
* hi gray itsa me yoshicrafter29 i fixed it hehe
*/
+16 -15
View File
@@ -117,14 +117,14 @@ class CoolUtil
* Gets file attributes from a file or a folder adding eventual missing folders in the path
* (WARNING: Only works on `windows` for now. On other platforms the attributes' value it's always going to be `0` -thanks to the wrapper you can also use `isNothing` for checking- but still creates eventual missing folders if the platforms allows it to).
* @param path Path to the file or folder
* @param useAbsol If it should use the absolute path (By default it's `true` but if it's `false` you can use files outside from this program's directory for example)
* @param useAbsolute If it should use the absolute path (By default it's `true` but if it's `false` you can use files outside from this program's directory for example)
* @return The attributes through the `FileAttributeWrapper`
*/
@:noUsing public static inline function safeGetAttributes(path:String, useAbsol:Bool = true):FileAttributeWrapper {
@:noUsing public static inline function safeGetAttributes(path:String, useAbsolute:Bool = true):FileAttributeWrapper {
#if sys
addMissingFolders(Path.directory(path));
var result = NativeAPI.getFileAttributes(path, useAbsol);
var result = NativeAPI.getFileAttributes(path, useAbsolute);
if(result.isNothing) Logs.trace('The file where it has been tried to get the attributes from, might be corrupted or inexistent (code: ${result.getValue()})', WARNING);
return result;
#else
@@ -137,15 +137,15 @@ class CoolUtil
* (WARNING: Only works on `windows` for now. On other platforms the return code it's always going to be `0` but still creates eventual missing folders if the platforms allows it to).
* @param path Path to the file or folder
* @param attrib The attribute(s) to set (WARNING: There are some non settable attributes, such as the `COMPRESSED` one)
* @param useAbsol If it should use the absolute path (By default it's `true` but if it's `false` you can use files outside from this program's directory for example)
* @param useAbsolute If it should use the absolute path (By default it's `true` but if it's `false` you can use files outside from this program's directory for example)
* @return The result code: `0` means that it failed setting
*/
@:noUsing public static inline function safeSetAttributes(path:String, attrib:OneOfThree<NativeAPI.FileAttribute, FileAttributeWrapper, Int>, useAbsol:Bool = true):Int {
@:noUsing public static inline function safeSetAttributes(path:String, attrib:OneOfThree<NativeAPI.FileAttribute, FileAttributeWrapper, Int>, useAbsolute:Bool = true):Int {
// yes, i'm aware that FileAttribute is also an Int so need to include it too, but at least like this we don't have to make cast sometimes while passing the arguments - Nex
#if sys
addMissingFolders(Path.directory(path));
var result = NativeAPI.setFileAttributes(path, attrib, useAbsol);
var result = NativeAPI.setFileAttributes(path, attrib, useAbsolute);
if(result == 0) Logs.trace('Failed to set attributes to $path with a code of: $result', WARNING);
return result;
#else
@@ -158,14 +158,14 @@ class CoolUtil
* (WARNING: Only works on `windows` for now. On other platforms the return code it's always going to be `0` but still creates eventual missing folders if the platforms allows it to).
* @param path Path to the file or folder
* @param attrib The attribute(s) to add (WARNING: There are some non settable attributes, such as the `COMPRESSED` one)
* @param useAbsol If it should use the absolute path (By default it's `true` but if it's `false` you can use files outside from this program's directory for example)
* @param useAbsolute If it should use the absolute path (By default it's `true` but if it's `false` you can use files outside from this program's directory for example)
* @return The result code: `0` means that it failed setting
*/
@:noUsing public static inline function safeAddAttributes(path:String, attrib:OneOfTwo<NativeAPI.FileAttribute, Int>, useAbsol:Bool = true):Int {
@:noUsing public static inline function safeAddAttributes(path:String, attrib:OneOfTwo<NativeAPI.FileAttribute, Int>, useAbsolute:Bool = true):Int {
#if sys
addMissingFolders(Path.directory(path));
var result = NativeAPI.addFileAttributes(path, attrib, useAbsol);
var result = NativeAPI.addFileAttributes(path, attrib, useAbsolute);
if(result == 0) Logs.trace('Failed to add attributes to $path with a code of: $result', WARNING);
return result;
#else
@@ -178,14 +178,14 @@ class CoolUtil
* (WARNING: Only works on `windows` for now. On other platforms the return code it's always going to be `0` but still creates eventual missing folders if the platforms allows it to).
* @param path Path to the file or folder
* @param attrib The attribute(s) to remove (WARNING: There are some non settable attributes, such as the `COMPRESSED` one)
* @param useAbsol If it should use the absolute path (By default it's `true` but if it's `false` you can use files outside from this program's directory for example)
* @param useAbsolute If it should use the absolute path (By default it's `true` but if it's `false` you can use files outside from this program's directory for example)
* @return The result code: `0` means that it failed setting
*/
@:noUsing public static inline function safeRemoveAttributes(path:String, attrib:OneOfTwo<NativeAPI.FileAttribute, Int>, useAbsol:Bool = true):Int {
@:noUsing public static inline function safeRemoveAttributes(path:String, attrib:OneOfTwo<NativeAPI.FileAttribute, Int>, useAbsolute:Bool = true):Int {
#if sys
addMissingFolders(Path.directory(path));
var result = NativeAPI.removeFileAttributes(path, attrib, useAbsol);
var result = NativeAPI.removeFileAttributes(path, attrib, useAbsolute);
if(result == 0) Logs.trace('Failed to remove attributes to $path with a code of: $result', WARNING);
return result;
#else
@@ -426,7 +426,7 @@ class CoolUtil
var beatsPerMeasure:Float = Flags.DEFAULT_BEATS_PER_MEASURE;
var stepsPerBeat:Int = Flags.DEFAULT_STEPS_PER_BEAT;
// Check later, i dont think timeSignParsed can contain null, only nan
// Check later, i don't think timeSignParsed can contain null, only nan
if (timeSignParsed.length == 2 && !timeSignParsed.contains(null)) {
beatsPerMeasure = timeSignParsed[0] == null || timeSignParsed[0] <= 0 ? Flags.DEFAULT_BEATS_PER_MEASURE : cast timeSignParsed[0];
stepsPerBeat = timeSignParsed[1] == null || timeSignParsed[1] <= 0 ? Flags.DEFAULT_STEPS_PER_BEAT : cast timeSignParsed[1];
@@ -884,9 +884,10 @@ class CoolUtil
* Converts an array of numbers into a string of ranges.
* Example: [1,2,3,5,7,8,9,8,7,6,5] -> "1..3,5,7..9,8..5"
* @param numbers Array of numbers
* @param separator Separator between ranges
* @return String representing the ranges
*/
public static function formatNumberRange(numbers:Array<Int>, seperator:String = ","):String {
public static function formatNumberRange(numbers:Array<Int>, separator:String = ","):String {
if (numbers.length == 0) return "";
var result:Array<String> = [];
@@ -923,7 +924,7 @@ class CoolUtil
i++;
}
return result.join(seperator);
return result.join(separator);
}
public static function deepFlatten(arr:Array<Dynamic>, ?result:Array<Dynamic>):Array<Dynamic> {
+1 -1
View File
@@ -32,7 +32,7 @@ class FunkinSave {
if (!__eventAdded) {
Lib.application.onExit.add(function(i:Int) {
trace("Saving savedata...");
trace("Saving save data...");
flush();
});
__eventAdded = true;
+1 -1
View File
@@ -1,7 +1,7 @@
package funkin.backend.utils;
/**
* DOESNT SUPPORT CATEGORIES YET!!
* DOESN'T SUPPORT CATEGORIES YET!!
*/
class IniUtil {
public static inline function parseAsset(assetPath:String, ?defaultVariables:Map<String, String>)
+10 -10
View File
@@ -35,9 +35,9 @@ class NativeAPI {
/**
* Gets the specified file's (or folder) attributes.
*/
public static function getFileAttributesRaw(path:String, useAbsol:Bool = true):Int {
public static function getFileAttributesRaw(path:String, useAbsolute:Bool = true):Int {
#if windows
if(useAbsol) path = sys.FileSystem.absolutePath(path);
if(useAbsolute) path = sys.FileSystem.absolutePath(path);
return Windows.getFileAttributes(path);
#else
return -1;
@@ -47,16 +47,16 @@ class NativeAPI {
/**
* Gets the specified file's (or folder) attributes and passes it to `FileAttributeWrapper`.
*/
public static function getFileAttributes(path:String, useAbsol:Bool = true):FileAttributeWrapper {
return new FileAttributeWrapper(getFileAttributesRaw(path, useAbsol));
public static function getFileAttributes(path:String, useAbsolute:Bool = true):FileAttributeWrapper {
return new FileAttributeWrapper(getFileAttributesRaw(path, useAbsolute));
}
/**
* Sets the specified file's (or folder) attributes. If it fails, the return value is `0`.
*/
public static function setFileAttributes(path:String, attrib:OneOfThree<NativeAPI.FileAttribute, FileAttributeWrapper, Int>, useAbsol:Bool = true):Int {
public static function setFileAttributes(path:String, attrib:OneOfThree<NativeAPI.FileAttribute, FileAttributeWrapper, Int>, useAbsolute:Bool = true):Int {
#if windows
if(useAbsol) path = sys.FileSystem.absolutePath(path);
if(useAbsolute) path = sys.FileSystem.absolutePath(path);
return Windows.setFileAttributes(path, attrib is FileAttributeWrapper ? cast(attrib, FileAttributeWrapper).getValue() : cast(attrib, Int));
#else
return 0;
@@ -66,9 +66,9 @@ class NativeAPI {
/**
* Removes from the specified file's (or folder) one (or more) specific attribute.
*/
public static function addFileAttributes(path:String, attrib:OneOfTwo<NativeAPI.FileAttribute, Int>, useAbsol:Bool = true):Int {
public static function addFileAttributes(path:String, attrib:OneOfTwo<NativeAPI.FileAttribute, Int>, useAbsolute:Bool = true):Int {
#if windows
return setFileAttributes(path, getFileAttributesRaw(path, useAbsol) | cast(attrib, Int), useAbsol);
return setFileAttributes(path, getFileAttributesRaw(path, useAbsolute) | cast(attrib, Int), useAbsolute);
#else
return 0;
#end
@@ -77,9 +77,9 @@ class NativeAPI {
/**
* Removes from the specified file's (or folder) one (or more) specific attribute.
*/
public static function removeFileAttributes(path:String, attrib:OneOfTwo<NativeAPI.FileAttribute, Int>, useAbsol:Bool = true):Int {
public static function removeFileAttributes(path:String, attrib:OneOfTwo<NativeAPI.FileAttribute, Int>, useAbsolute:Bool = true):Int {
#if windows
return setFileAttributes(path, getFileAttributesRaw(path, useAbsol) & ~cast(attrib, Int), useAbsol);
return setFileAttributes(path, getFileAttributesRaw(path, useAbsolute) & ~cast(attrib, Int), useAbsolute);
#else
return 0;
#end
+1 -1
View File
@@ -38,7 +38,7 @@ class NdllUtil {
return Reflect.makeVarArgs(function(a:Array<Dynamic>) {
// This generates horrific code
return funkin.backend.system.macros.Utils.generateReflectionLike(25, "func", "a");
//return Reflect.callMethod(null, func, a); // wouldnt work for some reason, maybe cause like c++ functions doesnt have reflection enabled
//return Reflect.callMethod(null, func, a); // wouldn't work for some reason, maybe cause like c++ functions doesn't have reflection enabled
});
#else
Logs.trace('NDLLs are not supported on this platform.', WARNING);
+2 -2
View File
@@ -21,13 +21,13 @@ import sys.thread.Thread;
using StringTools;
// import ZipUtils; ZipUtils.uncompressZip(ZipUtils.openZip("E:\\Desktop\\test\\termination lua.ycemod"), "E:\\Desktop\\test\\uncompressed\\");
// import ZipUtils; var e = ZipUtils.createZipFile("gjnsdghs.ycemod"); ZipUtils.writeFolderToZip(e, "./mods/Friday Night Funkin'/", "Friday Night Funkin'/"); e.flush(); e.close();
// import ZipUtils; var e = ZipUtils.createZipFile("file.ycemod"); ZipUtils.writeFolderToZip(e, "./mods/Friday Night Funkin'/", "Friday Night Funkin'/"); e.flush(); e.close();
class ZipUtil {
public static var bannedNames:Array<String> = [".git", ".gitignore", ".github", ".vscode", ".gitattributes", "readme.txt"];
/**
* [Description] Uncompresses `zip` into the `destFolder` folder
* [Description] Decompresses a `zip` into the `destFolder` folder
* @param zip
* @param destFolder
*/
@@ -13,7 +13,7 @@ import funkin.backend.utils.NativeAPI.MessageBoxIcon;
</target>
')
// majority is taken from microsofts doc
// majority is taken from Microsoft's doc
@:cppFileCode('
#include "mmdeviceapi.h"
#include "combaseapi.h"
@@ -132,7 +132,7 @@ class Windows {
int darkMode = enable ? 1 : 0;
HWND window = FindWindowA(NULL, title.c_str());
// Look for child windows if top level aint found
// Look for child windows if top level is not found
if (window == NULL) window = FindWindowExA(GetActiveWindow(), NULL, NULL, title.c_str());
// If still not found, try to get the active window
if (window == NULL) window = GetActiveWindow();
+4 -4
View File
@@ -37,11 +37,11 @@ class DebugOptionsScreen extends OptionsScreen {
#end
add(new Checkbox(
"Editor SFXs",
"If checked, will play sound effects when working on editors (ex: will play sfxs when checking checkboxes...)",
"If checked, will play sound effects when working on editors (ex: will play SFXs when checking checkboxes...)",
"editorSFX"));
add(new Checkbox(
"Pretty Print",
"If checked, the saved files from the editor will be formatted to be easily viewable (does not apply to xmls...)",
"If checked, the saved files from the editor will be formatted to be easily viewable (does not apply to XMLs...)",
"editorPrettyPrint"));
add(new Checkbox(
"Intensive Blur",
@@ -65,7 +65,7 @@ class DebugOptionsScreen extends OptionsScreen {
));
add(new Checkbox(
"Autosaves Folder",
"If checked, this will autosave your file in a seperate folder with a time stamp instead of overriding your current file. (song/autosaves/)",
"charterAutoSavesSeperateFolder"));
"If checked, this will autosave your file in a separate folder with a time stamp instead of overriding your current file. (song/autosaves/)",
"charterAutoSavesSeparateFolder"));
}
}
@@ -29,7 +29,7 @@ class CharacterEditor extends UIState {
public var uiGroup:FlxTypedGroup<FlxSprite> = new FlxTypedGroup<FlxSprite>();
// WINDOWS
public var characterPropertiresWindow:CharacterPropertiesWindow;
public var characterPropertiesWindow:CharacterPropertiesWindow;
public var characterAnimsWindow:UIButtonList<CharacterAnimButtons>;
// camera for the character itself so that it can be unzoomed/zoomed in again
@@ -237,8 +237,8 @@ class CharacterEditor extends UIState {
topMenuSpr = new UITopMenu(topMenu);
topMenuSpr.cameras = uiGroup.cameras = [uiCamera];
characterPropertiresWindow = new CharacterPropertiesWindow();
uiGroup.add(characterPropertiresWindow);
characterPropertiesWindow = new CharacterPropertiesWindow();
uiGroup.add(characterPropertiesWindow);
characterAnimsWindow = new UIButtonList<CharacterAnimButtons>(777, 209, 473, 488, "Character Animations", FlxPoint.get(429, 32));
characterAnimsWindow.addButton.callback = function() CharacterEditor.instance.createAnimWithUI();
@@ -284,9 +284,9 @@ class CharacterEditor extends UIState {
}
if (character != null)
characterPropertiresWindow.characterInfo.text = '${character.getNameList().length} Animations\nFlipped: ${character.flipX}\nSprite: ${character.sprite}\nAnim: ${character.getAnimName()}\nOffset: (${character.frameOffset.x}, ${character.frameOffset.y})';
characterPropertiesWindow.characterInfo.text = '${character.getNameList().length} Animations\nFlipped: ${character.flipX}\nSprite: ${character.sprite}\nAnim: ${character.getAnimName()}\nOffset: (${character.frameOffset.x}, ${character.frameOffset.y})';
if (!(characterPropertiresWindow.hovered || characterAnimsWindow.hovered) && !characterAnimsWindow.dragging) {
if (!(characterPropertiesWindow.hovered || characterAnimsWindow.hovered) && !characterAnimsWindow.dragging) {
if (FlxG.mouse.wheel != 0) {
zoom += 0.25 * FlxG.mouse.wheel;
__camZoom = Math.pow(2, zoom);
@@ -441,7 +441,7 @@ class CharacterEditor extends UIState {
}));
}
public function createAnim(animData:AnimData, animID:Int = -1, addtoUndo:Bool = true) {
public function createAnim(animData:AnimData, animID:Int = -1, addToUndo:Bool = true) {
XMLUtil.addAnimToSprite(character, animData);
ghosts.createGhost(animData.name);
var newButton = new CharacterAnimButtons(0, 0, animData.name, FlxPoint.get(animData.x,animData.y));
@@ -450,11 +450,11 @@ class CharacterEditor extends UIState {
playAnimation(animData.name);
if (addtoUndo)
if (addToUndo)
undos.addToUndo(CCreateAnim(character.getNameList().length, animData));
}
public function editAnim(name:String, animData:AnimData, addtoUndo:Bool = true) {
public function editAnim(name:String, animData:AnimData, addToUndo:Bool = true) {
var oldAnimData:AnimData = character.animDatas.get(name);
var buttoner:CharacterAnimButtons = null;
for (button in characterAnimsWindow.buttons.members)
@@ -468,11 +468,11 @@ class CharacterEditor extends UIState {
if (character.getAnimName() == animData.name) // update anim ifs its currently selected
playAnimation(animData.name);
if (addtoUndo)
if (addToUndo)
undos.addToUndo(CEditAnim(animData.name, oldAnimData, animData));
}
public function deleteAnim(name:String, addtoUndo:Bool = true) {
public function deleteAnim(name:String, addToUndo:Bool = true) {
var animOrder:Array<String> = [
for (button in characterAnimsWindow.buttons.members)
button.anim
@@ -495,7 +495,7 @@ class CharacterEditor extends UIState {
if (character.animOffsets.exists(name)) character.animOffsets.remove(name);
if (character.animDatas.exists(name)) character.animDatas.remove(name);
if (addtoUndo)
if (addToUndo)
undos.addToUndo(CDeleteAnim(oldID, oldAnimData));
}
@@ -505,7 +505,7 @@ class CharacterEditor extends UIState {
}));
}
public function editInfo(newInfo:Xml, addtoUndo:Bool = true) {
public function editInfo(newInfo:Xml, addToUndo:Bool = true) {
var lastAnim:String = character.getAnimName();
var oldInfo = character.buildXML();
@@ -514,7 +514,7 @@ class CharacterEditor extends UIState {
playAnimation(lastAnim);
if (addtoUndo)
if (addToUndo)
undos.addToUndo(CEditInfo(oldInfo, newInfo));
}
@@ -581,7 +581,7 @@ class CharacterEditor extends UIState {
clearOffsets();
}
function changeOffset(anim:String, change:FlxPoint, addtoUndo:Bool = true) {
function changeOffset(anim:String, change:FlxPoint, addToUndo:Bool = true) {
if (character.getNameList().length == 0) return;
var animData = character.animDatas.get(anim);
@@ -598,11 +598,11 @@ class CharacterEditor extends UIState {
ghosts.updateOffsets(anim, change);
if (addtoUndo)
if (addToUndo)
undos.addToUndo(CChangeOffset(anim, change));
}
function clearOffsets(addtoUndo:Bool = true) {
function clearOffsets(addToUndo:Bool = true) {
if (character.getNameList().length == 0) return;
var oldOffsets:Map<String, FlxPoint> = [
@@ -619,7 +619,7 @@ class CharacterEditor extends UIState {
changeOffset(character.getAnimName(), FlxPoint.get(), false);
ghosts.clearOffsets();
if (addtoUndo)
if (addToUndo)
undos.addToUndo(CResetOffsets(oldOffsets));
}
@@ -44,7 +44,7 @@ class CharacterSelection extends EditorTreeMenu
}
list.insert(0, new NewOption("New Character", "New Character", function() {
openSubState(new UIWarningSubstate("New Character: Feature Not Implemented!", "This feature isnt implemented yet. Please wait for more cne updates to have this functional.\n\n\n- Codename Devs", [
openSubState(new UIWarningSubstate("New Character: Feature Not Implemented!", "This feature isn't implemented yet. Please wait for more cne updates to have this functional.\n\n\n- Codename Devs", [
{label: "Ok", color: 0xFFFF0000, onClick: function(t) {}}
]));
}));
@@ -61,7 +61,7 @@ class ChartCreationScreen extends UISubstateWindow {
scrollSpeedTextBox.onChange = function (text:String) {
@:privateAccess scrollSpeedTextBox.__onChange(text);
for (button in strumLineList.buttons.members)
if (button.usesChartscrollSpeed.checked)
if (button.usesChartScrollSpeed.checked)
button.scrollSpeedStepper.value = scrollSpeedTextBox.value;
}
add(scrollSpeedTextBox);
@@ -148,7 +148,7 @@ class ChartCreationScreen extends UISubstateWindow {
@:privateAccess stepper.__onChange(stepper.label.text);
strumLines.push({
characters: [for (charb in strline.charactersList.buttons.members) charb.textBox.label.text],
characters: [for (char in strline.charactersList.buttons.members) char.textBox.label.text],
type: strline.typeDropdown.index,
notes: [],
position: strline.stagePositionDropdown.label.text.toLowerCase(),
@@ -156,7 +156,7 @@ class ChartCreationScreen extends UISubstateWindow {
strumPos: [0, strline.hudYStepper.value],
strumLinePos: strline.hudXStepper.value,
strumScale: strline.hudScaleStepper.value,
scrollSpeed: strline.usesChartscrollSpeed.checked ? strline.scrollSpeedStepper.value : null
scrollSpeed: strline.usesChartScrollSpeed.checked ? strline.scrollSpeedStepper.value : null
});
}
@@ -185,7 +185,7 @@ class StrumLineButton extends UIButton {
public var hudYStepper:UINumericStepper;
public var visibleCheckbox:UICheckbox;
public var scrollSpeedStepper:UINumericStepper;
public var usesChartscrollSpeed:UICheckbox;
public var usesChartScrollSpeed:UICheckbox;
public var deleteButton:UIButton;
public var deleteIcon:FlxSprite;
@@ -260,15 +260,15 @@ class StrumLineButton extends UIButton {
members.push(scrollSpeedStepper);
addLabelOn(scrollSpeedStepper, "Scroll Speed");
usesChartscrollSpeed = new UICheckbox(scrollSpeedStepper.x + 104, typeDropdown.y + 135, "Uses charts scroll speed?", strumLine.scrollSpeed == null);
usesChartscrollSpeed.onChecked = function(b) {
usesChartScrollSpeed = new UICheckbox(scrollSpeedStepper.x + 104, typeDropdown.y + 135, "Uses charts scroll speed?", strumLine.scrollSpeed == null);
usesChartScrollSpeed.onChecked = function(b) {
if(b) {
scrollSpeedStepper.value = subState.scrollSpeedTextBox.value;
scrollSpeedStepper.selectable = false;
} else
scrollSpeedStepper.selectable = true;
}
members.push(usesChartscrollSpeed);
members.push(usesChartScrollSpeed);
deleteButton = new UIButton(16, 246-32-11, "", function () {
parent.remove(this);
@@ -293,7 +293,7 @@ class StrumLineButton extends UIButton {
hudYStepper.follow(this, hudXStepper.x + 84 - 32 + 26, 8+26 + 64);
visibleCheckbox.follow(this, hudYStepper.x + hudYStepper.bWidth + 42, 8+26 + 64 + 9);
scrollSpeedStepper.follow(this, typeDropdown.x, 8+26 + 128);
usesChartscrollSpeed.follow(this, scrollSpeedStepper.x + 104, 8+26 + 135);
usesChartScrollSpeed.follow(this, scrollSpeedStepper.x + 104, 8+26 + 135);
deleteButton.follow(this, 16, 246-32-11);
deleteIcon.follow(this, 16 + ((deleteButton.bWidth/2)-(15/2)), (246-32-11) + ((deleteButton.bHeight/2)-(16/2)));
+6 -6
View File
@@ -714,10 +714,10 @@ class Charter extends UIState {
autoSaveTimer -= elapsed;
if (autoSaveTimer < Options.charterAutoSaveWarningTime && !autoSaveNotif.cancelled && !autoSaveNotif.showedAnimation) {
if (Options.charterAutoSavesSeperateFolder)
if (Options.charterAutoSavesSeparateFolder)
__autoSaveLocation = __diff.toLowerCase() + DateTools.format(Date.now(), "%m-%d_%H-%M");
autoSaveNotif.startAutoSave(autoSaveTimer,
!Options.charterAutoSavesSeperateFolder ? 'Saved chart at ${__diff.toLowerCase()}.json!' :
!Options.charterAutoSavesSeparateFolder ? 'Saved chart at ${__diff.toLowerCase()}.json!' :
'Saved chart at $__autoSaveLocation.json!'
);
}
@@ -727,7 +727,7 @@ class Charter extends UIState {
buildChart();
var songPath:String = '${Paths.getAssetsRoot()}/songs/${__song.toLowerCase()}';
if (Options.charterAutoSavesSeperateFolder)
if (Options.charterAutoSavesSeparateFolder)
Chart.save(songPath, PlayState.SONG, __autoSaveLocation, {saveMetaInChart: false, folder: "autosaves", prettyPrint: Options.editorPrettyPrint});
else
Chart.save(songPath, PlayState.SONG, __diff.toLowerCase(), {saveMetaInChart: false, prettyPrint: Options.editorPrettyPrint});
@@ -820,7 +820,7 @@ class Charter extends UIState {
var boundedChange:FlxPoint = changePoint.clone();
// Some maths, so cool bro -lunar (i dont know why i quopte my self here)
// Some maths, so cool bro -lunar (i don't know why i quote my self here)
if (s.step + changePoint.x < 0) boundedChange.x += Math.abs(s.step + changePoint.x);
if (s.step + changePoint.x > __endStep-1) boundedChange.x -= (s.step + changePoint.x) - (__endStep-1);
@@ -1651,7 +1651,7 @@ class Charter extends UIState {
inline function _snap_resetsnap(_) setquant(16);
inline function changequant(change:Int) {quant = quants[FlxMath.wrap(quants.indexOf(quant) + change, 0, quants.length-1)]; buildSnapsUI();};
inline function setquant(newquant:Int) {quant = newquant; buildSnapsUI();}
inline function setquant(newQuant:Int) {quant = newQuant; buildSnapsUI();}
function buildSnapsUI():Array<UIContextMenuOption> {
var snapsTopButton:UITopMenuButton = topMenuSpr == null ? null : cast topMenuSpr.members[snapIndex];
@@ -1856,7 +1856,7 @@ class Charter extends UIState {
return newSelection.filter((s:ICharterSelectable) -> {return s != null;});
}
// UH OH!!! DANGER ZONE APPOARCHING !!!! LUNARS SHITTY CODE !!!! -lunar
// UH OH!!! DANGER ZONE APPROACHING !!!! LUNARS SHITTY CODE !!!! -lunar
@:noCompletion public function __relinkSingleSelection(selectable:ICharterSelectable):ICharterSelectable {
if (selectable is CharterNote)
@@ -63,7 +63,7 @@ class CharterAutoSaveUI extends UISliceSprite {
var __timer:FlxTimer;
var __tween:FlxTween;
public function startAutoSave(time:Float, sucessText:String) {
public function startAutoSave(time:Float, successText:String) {
appearAnimation();
__tween = FlxTween.num(0, 1, time, null, (v:Float) -> {
@@ -74,7 +74,7 @@ class CharterAutoSaveUI extends UISliceSprite {
});
__timer = new FlxTimer();
__timer.start(time, (_) -> {
autosavingText.text = sucessText; cancelButton.visible = false;
autosavingText.text = successText; cancelButton.visible = false;
icon.animation.curAnim.curFrame = 1;
for (member in [this, progressBar, progressBarBack, autosavingText]) member.color = 0xFFA3EC95;
@@ -23,7 +23,7 @@ class CharterMetaDataScreen extends UISubstateWindow {
public var opponentModeCheckbox:UICheckbox;
public var coopAllowedCheckbox:UICheckbox;
public var colorWheel:UIColorwheel;
public var difficulitesTextBox:UITextBox;
public var difficultiesTextBox:UITextBox;
public function new(metadata:ChartMetaData) {
super();
@@ -88,9 +88,9 @@ class CharterMetaDataScreen extends UISubstateWindow {
add(colorWheel);
addLabelOn(colorWheel, "Color");
difficulitesTextBox = new UITextBox(opponentModeCheckbox.x, opponentModeCheckbox.y + 6 + 32 + 26, metadata.difficulties.join(", "));
add(difficulitesTextBox);
addLabelOn(difficulitesTextBox, "Difficulties");
difficultiesTextBox = new UITextBox(opponentModeCheckbox.x, opponentModeCheckbox.y + 6 + 32 + 26, metadata.difficulties.join(", "));
add(difficultiesTextBox);
addLabelOn(difficultiesTextBox, "Difficulties");
customPropertiesButtonList = new UIButtonList<PropertyButton>(stepsPerBeatStepper.x + 80 + 26 + 105, songNameTextBox.y, 290, 316, '', FlxPoint.get(280, 35), null, 5);
customPropertiesButtonList.frames = Paths.getFrames('editors/ui/inputbox');
@@ -162,7 +162,7 @@ class CharterMetaDataScreen extends UISubstateWindow {
parsedColor: colorWheel.curColor,
opponentModeAllowed: opponentModeCheckbox.checked,
coopAllowed: coopAllowedCheckbox.checked,
difficulties: [for (diff in difficulitesTextBox.label.text.split(",")) diff.trim()],
difficulties: [for (diff in difficultiesTextBox.label.text.split(",")) diff.trim()],
customValues: customVals,
};
@@ -89,10 +89,10 @@ class CharterSelection extends EditorTreeMenu {
}
public function saveSong(creation:SongCreationData) {
var songAlreadlyExsits:Bool = [for (s in freeplayList.songs) s.name.toLowerCase()].contains(creation.meta.name.toLowerCase());
var songAlreadyExists:Bool = [for (s in freeplayList.songs) s.name.toLowerCase()].contains(creation.meta.name.toLowerCase());
if (songAlreadlyExsits) {
openSubState(new UIWarningSubstate("Creating Song: Error!", "The song you are trying to create alreadly exists, if you would like to override it delete the song first!", [
if (songAlreadyExists) {
openSubState(new UIWarningSubstate("Creating Song: Error!", "The song you are trying to create Already exists, if you would like to override it delete the song first!", [
{label: "Ok", color: 0xFFFF0000, onClick: function(t) {}}
]));
return;
@@ -134,10 +134,10 @@ class CharterSelection extends EditorTreeMenu {
}
public function saveChart(name:String, data:ChartData) {
var difficultyAlreadlyExsits:Bool = curSong.difficulties.contains(name);
var difficultyAlreadyExists:Bool = curSong.difficulties.contains(name);
if (difficultyAlreadlyExsits) {
openSubState(new UIWarningSubstate("Creating Chart: Error!", "The chart you are trying to create alreadly exists, if you would like to override it delete the chart first!", [
if (difficultyAlreadyExists) {
openSubState(new UIWarningSubstate("Creating Chart: Error!", "The chart you are trying to create already exists, if you would like to override it delete the chart first!", [
{label: "Ok", color: 0xFFFF0000, onClick: function(t) {}}
]));
return;
@@ -18,7 +18,7 @@ class CharterStrumlineScreen extends UISubstateWindow {
public var hudYStepper:UINumericStepper;
public var visibleCheckbox:UICheckbox;
public var scrollSpeedStepper:UINumericStepper;
public var usesChartscrollSpeed:UICheckbox;
public var usesChartScrollSpeed:UICheckbox;
public var characterIcons:Array<HealthIcon> = [];
@@ -78,8 +78,8 @@ class CharterStrumlineScreen extends UISubstateWindow {
add(typeDropdown);
addLabelOn(typeDropdown, "Type");
usesChartscrollSpeed = new UICheckbox(typeDropdown.x + 104, typeDropdown.y + 135, "Uses charts scroll speed?", strumLine.scrollSpeed == null);
usesChartscrollSpeed.onChecked = function(b) {
usesChartScrollSpeed = new UICheckbox(typeDropdown.x + 104, typeDropdown.y + 135, "Uses charts scroll speed?", strumLine.scrollSpeed == null);
usesChartScrollSpeed.onChecked = function(b) {
if(b)
{
scrollSpeedStepper.value = PlayState.SONG.scrollSpeed;
@@ -88,10 +88,10 @@ class CharterStrumlineScreen extends UISubstateWindow {
scrollSpeedStepper.selectable = true;
}
}
add(usesChartscrollSpeed);
add(usesChartScrollSpeed);
scrollSpeedStepper = new UINumericStepper(typeDropdown.x, typeDropdown.y + 128, usesChartscrollSpeed.checked ? PlayState.SONG.scrollSpeed : strumLine.scrollSpeed, 0.1, 2, 0, 10, 82);
if(usesChartscrollSpeed.checked)
scrollSpeedStepper = new UINumericStepper(typeDropdown.x, typeDropdown.y + 128, usesChartScrollSpeed.checked ? PlayState.SONG.scrollSpeed : strumLine.scrollSpeed, 0.1, 2, 0, 10, 82);
if(usesChartScrollSpeed.checked)
{
scrollSpeedStepper.selectable = false;
} else {
@@ -141,20 +141,20 @@ class CharterStrumlineScreen extends UISubstateWindow {
add(closeButton);
closeButton.color = 0xFFFF0000;
var suffixlist = ["NONE"];
var suffixList = ["NONE"];
for (i in Paths.getFolderContent('songs/${Charter.__song.toLowerCase()}/song'))
if (i.startsWith("Voices")) {
i = haxe.io.Path.withoutExtension(i.substr("Voices".length));
if (i == "") continue;
for (j in PlayState.SONG.meta.difficulties) {
if (i.endsWith('-${j.toLowerCase()}'))
suffixlist.pushOnce(i.substring(0, i.length - j.length));
suffixList.pushOnce(i.substring(0, i.length - j.length));
else
suffixlist.pushOnce(i);
suffixList.pushOnce(i);
}
}
vocalsSuffixDropDown = new UIDropDown(typeDropdown.x, hudScaleStepper.y + 128, 200, 32, suffixlist, strumLine.vocalsSuffix != null && strumLine.vocalsSuffix != "" ? suffixlist.indexOf(strumLine.vocalsSuffix) : 0);
vocalsSuffixDropDown = new UIDropDown(typeDropdown.x, hudScaleStepper.y + 128, 200, 32, suffixList, strumLine.vocalsSuffix != null && strumLine.vocalsSuffix != "" ? suffixList.indexOf(strumLine.vocalsSuffix) : 0);
add(vocalsSuffixDropDown);
addLabelOn(vocalsSuffixDropDown, "Vocal Suffix");
}
@@ -177,7 +177,7 @@ class CharterStrumlineScreen extends UISubstateWindow {
strumScale: hudScaleStepper.value,
vocalsSuffix: vocalsSuffixDropDown.options[vocalsSuffixDropDown.index] != "NONE" ? vocalsSuffixDropDown.options[vocalsSuffixDropDown.index] : ""
};
if(!usesChartscrollSpeed.checked) newStrumLine.scrollSpeed = scrollSpeedStepper.value;
if(!usesChartScrollSpeed.checked) newStrumLine.scrollSpeed = scrollSpeedStepper.value;
if (onSave != null) onSave(newStrumLine);
}
}
@@ -28,7 +28,7 @@ class SongCreationScreen extends UISubstateWindow {
public var opponentModeCheckbox:UICheckbox;
public var coopAllowedCheckbox:UICheckbox;
public var colorWheel:UIColorwheel;
public var difficulitesTextBox:UITextBox;
public var difficultiesTextBox:UITextBox;
public var backButton:UIButton;
public var saveButton:UIButton;
@@ -125,9 +125,9 @@ class SongCreationScreen extends UISubstateWindow {
menuDataGroup.add(colorWheel);
addLabelOn(colorWheel, "Color");
difficulitesTextBox = new UITextBox(opponentModeCheckbox.x, opponentModeCheckbox.y + 6 + 32 + 26, "");
menuDataGroup.add(difficulitesTextBox);
addLabelOn(difficulitesTextBox, "Difficulties");
difficultiesTextBox = new UITextBox(opponentModeCheckbox.x, opponentModeCheckbox.y + 6 + 32 + 26, "");
menuDataGroup.add(difficultiesTextBox);
addLabelOn(difficultiesTextBox, "Difficulties");
for (checkbox in [opponentModeCheckbox, coopAllowedCheckbox])
{checkbox.y += 6; checkbox.x += 4;}
@@ -240,7 +240,7 @@ class SongCreationScreen extends UISubstateWindow {
parsedColor: colorWheel.curColor,
opponentModeAllowed: opponentModeCheckbox.checked,
coopAllowed: coopAllowedCheckbox.checked,
difficulties: [for (diff in difficulitesTextBox.label.text.split(",")) diff.trim()],
difficulties: [for (diff in difficultiesTextBox.label.text.split(",")) diff.trim()],
};
if (onSave != null) onSave({
+6 -6
View File
@@ -44,10 +44,10 @@ class UIColorwheel extends UISliceSprite {
// Im too lazy to use a shader for this if its not even gonna change
colorSlider.pixels.lock();
for (pixely in 0...Std.int(colorSlider.height)) {
var color:Int = FlxColor.fromHSB(pixely / (colorSlider.height-1) * 360, 1, 1);
for (pixelx in 0...Std.int(colorSlider.width))
if (colorSlider.pixels.getPixel32(pixelx, pixely) != FlxColor.TRANSPARENT) colorSlider.pixels.setPixel32(pixelx, pixely, color);
for (pixelY in 0...Std.int(colorSlider.height)) {
var color:Int = FlxColor.fromHSB(pixelY / (colorSlider.height-1) * 360, 1, 1);
for (pixelX in 0...Std.int(colorSlider.width))
if (colorSlider.pixels.getPixel32(pixelX, pixelY) != FlxColor.TRANSPARENT) colorSlider.pixels.setPixel32(pixelX, pixelY, color);
}
colorSlider.pixels.unlock();
@@ -123,7 +123,7 @@ class UIColorwheel extends UISliceSprite {
public var colorChanged:Bool = false;
// Make the colorwheel feel better
static inline var hitBoxExtenstion:Float = 8;
static inline var hitBoxExtension:Float = 8;
public override function update(elapsed:Float) {
if (hovered && FlxG.mouse.pressed) {
@@ -132,7 +132,7 @@ class UIColorwheel extends UISliceSprite {
for (sprite in [colorPicker, colorSlider]) {
var spritePos:FlxPoint = sprite.getScreenPosition(FlxPoint.get(), __lastDrawCameras[0]);
if (((mousePos.x > (spritePos.x - (hitBoxExtenstion/2))) && (mousePos.x < spritePos.x - (hitBoxExtenstion/2) + (sprite.width + hitBoxExtenstion))) && ((mousePos.y > (spritePos.y - (hitBoxExtenstion/2))) && (mousePos.y < spritePos.y - (hitBoxExtenstion/2) + (sprite.height + hitBoxExtenstion)))) {
if (((mousePos.x > (spritePos.x - (hitBoxExtension/2))) && (mousePos.x < spritePos.x - (hitBoxExtension/2) + (sprite.width + hitBoxExtension))) && ((mousePos.y > (spritePos.y - (hitBoxExtension/2))) && (mousePos.y < spritePos.y - (hitBoxExtension/2) + (sprite.height + hitBoxExtension)))) {
mousePos -= FlxPoint.weak(spritePos.x, spritePos.y);
mousePos.set(FlxMath.bound(mousePos.x, 0, sprite.width), FlxMath.bound(mousePos.y, 0, sprite.height));
+3 -3
View File
@@ -5,14 +5,14 @@ import flixel.util.FlxColor;
using StringTools;
using flixel.util.FlxSpriteUtil;
typedef SliderSegement = {
typedef SliderSegment = {
var start:Float;
var end:Float;
var size:Float;
}
class UISlider extends UISprite {
public var segments:Array<SliderSegement> = [];
public var segments:Array<SliderSegment> = [];
public var barWidth:Int = 120;
public var progressbar:UISprite;
@@ -36,7 +36,7 @@ class UISlider extends UISprite {
public var valueStepper:UINumericStepper;
public var onChange:Float->Void;
public function new(x:Float, y:Float, width:Int = 120, value:Float, segments:Array<SliderSegement>, centered:Bool) {
public function new(x:Float, y:Float, width:Int = 120, value:Float, segments:Array<SliderSegment>, centered:Bool) {
this.segments = segments;
this.barWidth = width;
this.progressCentered = centered;
+1 -1
View File
@@ -15,7 +15,7 @@ class UIUtil {
}
/**
* Process all options with shortcuts present in a `Array<UIContextMenuOption>`. Also checks childrens.
* Process all options with shortcuts present in a `Array<UIContextMenuOption>`. Also checks children.
* @param topMenuOptions
*/
public static function processShortcuts(topMenuOptions:Array<UIContextMenuOption>) {
+1 -1
View File
@@ -117,7 +117,7 @@ class NoteGroup extends FlxTypedGroup<Note> {
if (index < 0)
return null;
// doesnt prevent looping from breaking
// doesn't prevent looping from breaking
if (Splice && __currentlyLooping && i >= index)
i++;
+2 -2
View File
@@ -423,7 +423,7 @@ class PlayState extends MusicBeatState
*/
public var events:Array<ChartEvent> = [];
/**
* Current camera target. -1 means no automatic camera targetting.
* Current camera target. -1 means no automatic camera targeting.
*/
public var curCameraTarget:Int = 0;
/**
@@ -642,7 +642,7 @@ class PlayState extends MusicBeatState
for(folder in scriptsFolders) {
for(file in Paths.getFolderContent(folder, true, fromMods ? MODS : BOTH)) {
if (folder == 'data/charts/')
Logs.trace('[PlayState] data/charts/ is deprecrated and will be removed in the future. Please move script $file to songs/', WARNING, DARKYELLOW);
Logs.trace('[PlayState] data/charts/ is deprecated and will be removed in the future. Please move script $file to songs/', WARNING, DARKYELLOW);
addScript(file);
}
+1 -1
View File
@@ -35,7 +35,7 @@ class SplashGroup extends FlxTypedGroup<FunkinSprite> {
pregenerateSplashes(splash);
add(splash);
// immediatly draw once and put image in GPU to prevent freezes
// immediately draw once and put image in GPU to prevent freezes
// TODO: change to graphics cache
splash.drawComplex(FlxG.camera);
} catch(e:Dynamic) {
+1 -1
View File
@@ -185,7 +185,7 @@ class Stage extends FlxBasic implements IBeatReceiver {
setStagesSprites(stageScript);
// i know this for gets run twice under, but its better like this in case a script modifies the short lived ones, i dont wanna save them in an array; more dynamic like this - Nex
// i know this for gets run twice under, but its better like this in case a script modifies the short lived ones, i don't wanna save them in an array; more dynamic like this - Nex
for (info in xmlImportedScripts) if (info.importStageSprites) {
var script = info.getScript();
if (script != null) setStagesSprites(script);
+2 -2
View File
@@ -71,7 +71,7 @@ class StrumLine extends FlxTypedGroup<Strum> {
*/
public var animSuffix(default, set):String = "";
/**
* TODO: Write documention about this being a variable that can help when making multi key
* TODO: Write documentation about this being a variable that can help when making multi key
*/
public var strumAnimPrefix = ["left", "down", "up", "right"];
/**
@@ -153,7 +153,7 @@ class StrumLine extends FlxTypedGroup<Strum> {
if(scrollSpeed == null) if (PlayState.instance != null) scrollSpeed = PlayState.instance.scrollSpeed;
if(scrollSpeed == null) scrollSpeed = 1;
// TODO: Make this work by accounting zoom and scrollspeed changes - Nex
// TODO: Make this work by accounting zoom and scroll speed changes - Nex
/*var limit = FlxG.height / 0.45;
notes.limit = limit / scrollSpeed;
OR
@@ -35,7 +35,7 @@ class DialogueCutscene extends ScriptedCutscene {
return curLine = val;
}
// Backwards comapt funcs - Nex
// Backwards compat funcs - Nex
public function set_dialogueScript(val:Script) return script = val;
public function get_dialogueScript() return script;
@@ -10,7 +10,7 @@ import haxe.xml.Access;
class DialogueBox extends FunkinSprite {
public var dialogueBoxData:Access;
public var positions:Map<String, CharPosDef> = [];
public var dialogueEnded:Bool = false; // Using text._typing is also fair but it doesnt check for eventual opening anims! - Nex
public var dialogueEnded:Bool = false; // Using text._typing is also fair but it doesn't check for eventual opening anims! - Nex
public var nextSFX:String = Paths.sound('dialogue/next');
public var defaultTextTypeSFX:Array<FlxSound>;
@@ -22,7 +22,7 @@ class DialogueBox extends FunkinSprite {
public function new(name:String) {
super();
var textTypeSFX:String = Paths.sound('dialogue/text'); // Default if xml doesnt have it - Nex
var textTypeSFX:String = Paths.sound('dialogue/text'); // Default if xml doesn't have it - Nex
dialogueBoxScript = Script.create(Paths.script('data/' + defPath + name));
dialogueBoxScript.setParent(this);
+2 -2
View File
@@ -14,7 +14,7 @@ using StringTools;
class FreeplayState extends MusicBeatState
{
/**
* Array containing all of the songs metadatas
* Array containing all of the songs' metadata.
*/
public var songs:Array<ChartMetaData> = [];
@@ -144,7 +144,7 @@ class FreeplayState extends MusicBeatState
add(icon);
// songText.x += 40;
// DONT PUT X IN THE FIRST PARAMETER OF new ALPHABET() !!
// DON'T PUT X IN THE FIRST PARAMETER OF new ALPHABET() !!
// songText.screenCenter(X);
}
+1 -1
View File
@@ -162,7 +162,7 @@ class MainMenuState extends MusicBeatState
{
case 'story mode': FlxG.switchState(new StoryMenuState());
case 'freeplay': FlxG.switchState(new FreeplayState());
case 'donate', 'credits': FlxG.switchState(new CreditsMain()); // kept donate for not breaking scripts, if you dont want donate to bring you to the credits menu, thats easy softcodable - Nex
case 'donate', 'credits': FlxG.switchState(new CreditsMain()); // kept donate for not breaking scripts, if you don't want donate to bring you to the credits menu, thats easy softcodable - Nex
case 'options': FlxG.switchState(new OptionsMenu());
}
});
+1 -1
View File
@@ -10,7 +10,7 @@ class FunkinSoundTray extends FlxSoundTray
{
public var script:Script;
// Neeo wanted them since it would reduce lags for some people if activated - Nex
// Ne_Eo wanted them since it would reduce lags for some people if activated - Nex
public var callsUpdate:Bool = true;
public var callsPostUpdate:Bool = true;
+1 -1
View File
@@ -66,7 +66,7 @@ class Options
public static var charterAutoSaves:Bool = true;
public static var charterAutoSaveTime:Float = 60*5;
public static var charterAutoSaveWarningTime:Float = 5;
public static var charterAutoSavesSeperateFolder:Bool = false;
public static var charterAutoSavesSeparateFolder:Bool = false;
/**
* PLAYER 1 CONTROLS
@@ -13,11 +13,11 @@ class AppearanceOptions extends OptionsScreen {
__changeFPS)); // callback
add(new Checkbox(
"Antialiasing",
"If unchecked, will disable antialiasing on every sprite. Can boost performances at the cost of sharper, more pixely sprites.",
"If unchecked, will disable antialiasing on every sprite. Can boost performances at the cost of sharper, more pixelated sprites.",
"antialiasing"));
add(new Checkbox(
"Colored Healthbar",
"If unchecked, the game will use the orginal red/green health bar from the week 6 fnf game.",
"If unchecked, the game will use the original red/green health bar from the week 6 fnf game.",
"colorHealthBar"));
add(new Checkbox(
"Pixel Perfect Effect",
@@ -49,7 +49,7 @@ class GithubUserIcon extends FlxSprite
}
final mutex = new sys.thread.Mutex();
override function drawComplex(camera:FlxCamera):Void { // Making the image downlaod only if the player actually sees it on the screeeeen - Nex
override function drawComplex(camera:FlxCamera):Void { // Making the image download only if the player actually sees it on the screen - Nex
if(waitUntilLoad <= 0) {
waitUntilLoad = null;
Main.execAsync(function() {