diff --git a/source/states/substates/SheetSubstate.hx b/source/states/substates/SheetSubstate.hx index c67735b8..8da7a11e 100644 --- a/source/states/substates/SheetSubstate.hx +++ b/source/states/substates/SheetSubstate.hx @@ -9,6 +9,7 @@ import ui.sheets.StickerSelectSheet; class SheetSubstate extends flixel.FlxSubState { var sheet_ui:BaseSelectSheet; + public static var instance:SheetSubstate; override public function new(sheet_ui:BaseSelectSheet) @@ -27,9 +28,13 @@ class SheetSubstate extends flixel.FlxSubState override function update(elapsed:Float) { super.update(elapsed); - if (Ctrl.jaction[1] && sheet_ui.canSelect) { + if (Ctrl.jinteract[1] && sheet_ui.canSelect) + { sheet_ui.transOut(); - new FlxTimer().start(1.2, function(tmr:FlxTimer) {close();}); + new FlxTimer().start(1.2, function(tmr:FlxTimer) + { + close(); + }); } } @@ -45,4 +50,4 @@ class SheetSubstate extends flixel.FlxSubState sheet_ui.kill(); super.close(); } -} \ No newline at end of file +} diff --git a/source/ui/sheets/BaseSelectSheet.hx b/source/ui/sheets/BaseSelectSheet.hx index 46ab466f..079400bd 100644 --- a/source/ui/sheets/BaseSelectSheet.hx +++ b/source/ui/sheets/BaseSelectSheet.hx @@ -22,6 +22,7 @@ class BaseSelectSheet extends FlxGroupExt var effectSheet:FlxEffectSprite; var description:FlxText; var title:FlxText; + public var selector:FlxSprite; public var backTab:FlxSpriteExt; @@ -35,6 +36,7 @@ class BaseSelectSheet extends FlxGroupExt final descGroup:FlxTypedSpriteGroup = new FlxTypedSpriteGroup(-440); var graphicSheet:Bool = false; + public var canSelect:Bool = false; public var seen:Array = []; @@ -50,7 +52,8 @@ class BaseSelectSheet extends FlxGroupExt this.type = type; - if(newState) FlxG.state.openSubState(new SheetSubstate(this)); + if (newState) + FlxG.state.openSubState(new SheetSubstate(this)); add(descGroup); @@ -120,22 +123,27 @@ class BaseSelectSheet extends FlxGroupExt sprite.angle = identity.angle; characterSprites.add(sprite); daNames.push(identity.name); - if(!seen.contains(identity.name)) { + if (!seen.contains(identity.name)) + { final newFrame:FlxSpriteExt = new FlxSpriteExt(sprite_position.x + (sprite.width / 2) - 141, sprite_position.y + (sprite.height / 2) - 163); newFrame.loadAllFromAnimationSet('new-sticker-overlay'); newFrame.ID = i; notSeenSprites.add(newFrame); @:privateAccess newFrame.anim('idle'); - new FlxTimer().start(4.3, function(tmr:FlxTimer) { - if(!newFrame.alive) return; + new FlxTimer().start(4.3, function(tmr:FlxTimer) + { + if (!newFrame.alive) + return; newFrame.anim('shine'); - new FlxTimer().start(0.5, function(tmr:FlxTimer) {newFrame.anim('idle');}); + new FlxTimer().start(0.5, function(tmr:FlxTimer) + { + newFrame.anim('idle'); + }); }, 0); } } - trace("sheet exists"); if (characterSprites.members.length != 0) { characterSpritesArray.push(characterSprites); @@ -167,7 +175,8 @@ class BaseSelectSheet extends FlxGroupExt daMem.scrollFactor.set(0, 0); FlxTween.tween(daMem, {y: daMem.y - 1300}, 0.8, {ease: FlxEase.cubeInOut}); }); - new FlxTimer().start(0.8, function(tmr:FlxTimer) { + new FlxTimer().start(0.8, function(tmr:FlxTimer) + { canSelect = true; FlxTween.tween(descGroup, {x: 0}, 0.5, {ease: FlxEase.cubeOut}); }); @@ -185,7 +194,8 @@ class BaseSelectSheet extends FlxGroupExt function control() { - if(!canSelect) return; + if (!canSelect) + return; for (i in 0...characterSpritesArray[current_sheet].length) { // TODO: make this mobile-friendly @@ -200,19 +210,27 @@ class BaseSelectSheet extends FlxGroupExt current_sheet = current_sheet + 1; if (Ctrl.cdown[1]) current_sheet = current_sheet - 1; - if(FlxG.mouse.overlaps(backTab)) { - if(backTab.y != 110) + if (FlxG.mouse.overlaps(backTab)) + { + if (backTab.y != 110) backTab.y = 110; - if(FlxG.mouse.justPressed) { - if(backTab.scale.x != 0.8) backTab.scale.set(0.8, 0.8); + if (FlxG.mouse.justPressed) + { + if (backTab.scale.x != 0.8) + backTab.scale.set(0.8, 0.8); SheetSubstate.instance.reload(type == COSTUME ? "STICKER" : "COSTUME"); - } else if (!FlxG.mouse.pressed && backTab.scale.x != 1.1) backTab.scale.set(1.1, 1.1); - } else if (backTab.scale.x != 1) backTab.scale.set(1, 1); + } + else if (!FlxG.mouse.pressed && backTab.scale.x != 1.1) + backTab.scale.set(1.1, 1.1); + } + else if (backTab.scale.x != 1) + backTab.scale.set(1, 1); } function set_current_sheet(val:Int):Int { - if (characterSpritesArray.length > 1) { + if (characterSpritesArray.length > 1) + { characterSpritesArray[current_sheet].kill(); notSeenGroup[current_sheet].kill(); } @@ -228,6 +246,7 @@ class BaseSelectSheet extends FlxGroupExt return current_sheet; } + function set_current_selection(val:Int):Int { // characterSpritesArray[current_sheet].members[current_selection].scale.set(1, 1); @@ -239,9 +258,12 @@ class BaseSelectSheet extends FlxGroupExt else current_selection = val; - if(notSeenGroup[current_sheet].members.length > 0) { - final matches:Array = notSeenGroup[current_sheet].members.filter(i -> i.ID == characterSpritesArray[current_sheet].members[current_selection].ID); - if(matches.length > 0) { + if (notSeenGroup[current_sheet].members.length > 0) + { + final matches:Array = notSeenGroup[current_sheet].members.filter(i -> + i.ID == characterSpritesArray[current_sheet].members[current_selection].ID); + if (matches.length > 0) + { seen.push(characterNames[current_sheet][current_selection]); notSeenGroup[current_sheet].members.remove(matches[0]); } @@ -256,7 +278,7 @@ class BaseSelectSheet extends FlxGroupExt graphicSheet = sheet_collection.sheets[current_sheet].graphic != null ? true : false; if (graphicSheet) stickerSheetBase.loadGraphic(Paths.get(sheet_collection.sheets[current_sheet].graphic + '.png')); - else + else stickerSheetBase.makeGraphic(1430, 845, FlxColor.BLACK); characterSpritesArray[current_sheet].revive(); @@ -272,23 +294,30 @@ class BaseSelectSheet extends FlxGroupExt final sticker:StickerDef = data.JsonData.get_sticker(characterNames[current_sheet][current_selection]); title.text = sticker.properName.toUpperCase(); description.text = (sticker.desc != null ? (sticker.desc + ' ') : '') + 'Created by ${sticker.artist != null ? sticker.artist : "Unknown"}'; - //selector.setPosition(characterSpritesArray[current_sheet].members[current_selection].x + (characterSpritesArray[current_sheet].members[current_selection].width / 2) - 175, characterSpritesArray[current_sheet].members[current_selection].y + (characterSpritesArray[current_sheet].members[current_selection].height / 2) - 177); + // selector.setPosition(characterSpritesArray[current_sheet].members[current_selection].x + (characterSpritesArray[current_sheet].members[current_selection].width / 2) - 175, characterSpritesArray[current_sheet].members[current_selection].y + (characterSpritesArray[current_sheet].members[current_selection].height / 2) - 177); } else { final costume:CostumeDef = data.JsonData.get_costume(characterNames[current_sheet][current_selection]); title.text = costume.display.toUpperCase(); description.text = (costume.desc != null ? costume.desc : ''); - //selector.setPosition(characterSpritesArray[current_sheet].members[current_selection].x - 110, characterSpritesArray[current_sheet].members[current_selection].y - 80); + // selector.setPosition(characterSpritesArray[current_sheet].members[current_selection].x - 110, characterSpritesArray[current_sheet].members[current_selection].y - 80); } - selector.setPosition(characterSpritesArray[current_sheet].members[current_selection].x + (characterSpritesArray[current_sheet].members[current_selection].width / 2) - 175, characterSpritesArray[current_sheet].members[current_selection].y + (characterSpritesArray[current_sheet].members[current_selection].height / 2) - 167); + selector.setPosition(characterSpritesArray[current_sheet].members[current_selection].x + + (characterSpritesArray[current_sheet].members[current_selection].width / 2) + - 175, + characterSpritesArray[current_sheet].members[current_selection].y + + (characterSpritesArray[current_sheet].members[current_selection].height / 2) + - 167); // characterSpritesArray[current_sheet].members[current_selection].scale.set(1.1, 1.1); } - public function transOut() { + public function transOut() + { canSelect = false; FlxTween.tween(descGroup, {x: -440}, 0.5, {ease: FlxEase.quintIn}); - new FlxTimer().start(0.3, function(tmr:FlxTimer) { + new FlxTimer().start(0.3, function(tmr:FlxTimer) + { members.for_all_members((member:FlxBasic) -> { final daMem:FlxObject = cast(member, FlxObject); @@ -302,4 +331,4 @@ enum abstract SheetType(String) from String to String { final COSTUME; final STICKER; -} \ No newline at end of file +}