Modified assets to not include hardcoded constants
This commit is contained in:
@@ -1,8 +1,4 @@
|
||||
{
|
||||
"single": [
|
||||
"sprites/battery/label.png"
|
||||
],
|
||||
"ranges": [
|
||||
{ "base": "sprites/battery/", "start": 0, "end": 4 }
|
||||
]
|
||||
"flashlightLabel": "sprites/battery/label.png",
|
||||
"stages": { "base": "sprites/battery/", "start": 0, "end": 4 }
|
||||
}
|
||||
|
||||
@@ -1,36 +1,38 @@
|
||||
{
|
||||
"single": [
|
||||
"sprites/cameras/utils/Map.png",
|
||||
"sprites/cameras/utils/Border.png",
|
||||
"sprites/cameras/utils/1.png",
|
||||
"sprites/cameras/utils/2.png",
|
||||
"sprites/cameras/Labels/13.png",
|
||||
"sprites/cameras/Labels/14.png",
|
||||
"sprites/cameras/Labels/18.png",
|
||||
"sprites/cameras/Labels/16.png",
|
||||
"sprites/cameras/Labels/17.png",
|
||||
"sprites/cameras/Labels/15.png"
|
||||
],
|
||||
"ranges": [
|
||||
{ "base": "sprites/cameras/Labels/", "start": 1, "end": 12 },
|
||||
{ "base": "sprites/cameras/mangle/", "start": 0, "end": 3 },
|
||||
{ "base": "sprites/cameras/static/", "start": 1, "end": 6 },
|
||||
{ "base": "sprites/cameras/static/", "start": 10, "end": 13 },
|
||||
{ "base": "sprites/cameras/static/s2/", "start": 1, "end": 5 },
|
||||
{ "base": "sprites/cameras/music_box_timer/", "start": 1, "end": 21 }
|
||||
],
|
||||
"utils": {
|
||||
"map": "sprites/cameras/utils/Map.png",
|
||||
"borderline": "sprites/cameras/utils/Border.png",
|
||||
"recordSprite": "sprites/cameras/utils/1.png",
|
||||
"signalInterrupted": "sprites/cameras/utils/2.png"
|
||||
},
|
||||
"labels": {
|
||||
"roomButtonUnselected": "sprites/cameras/labels/13.png",
|
||||
"roomButtonSelected": "sprites/cameras/labels/14.png",
|
||||
"clicknhold": "sprites/cameras/labels/18.png",
|
||||
"musicBoxButtonOff": "sprites/cameras/labels/16.png",
|
||||
"musicBoxButtonOn": "sprites/cameras/labels/17.png",
|
||||
"musicBoxLabel": "sprites/cameras/labels/15.png",
|
||||
"roomLabels": { "base": "sprites/cameras/labels/", "start": 1, "end": 12 }
|
||||
},
|
||||
"ranges": {
|
||||
"mangle": { "base": "sprites/cameras/mangle/", "start": 0, "end": 3 },
|
||||
"staticA": { "base": "sprites/cameras/static/", "start": 1, "end": 6 },
|
||||
"staticB": { "base": "sprites/cameras/static/", "start": 10, "end": 13 },
|
||||
"staticStripes": { "base": "sprites/cameras/static/s2/", "start": 1, "end": 5 },
|
||||
"musicBoxTimer": { "base": "sprites/cameras/music_box_timer/", "start": 1, "end": 21 }
|
||||
},
|
||||
"locations": [
|
||||
{ "name": "PartyRoom1", "frameCount": 4 },
|
||||
{ "name": "PartyRoom2", "frameCount": 5 },
|
||||
{ "name": "PartyRoom3", "frameCount": 5 },
|
||||
{ "name": "PartyRoom4", "frameCount": 7 },
|
||||
{ "name": "PrizeCorner", "frameCount": 6 },
|
||||
{ "name": "RightAirVent", "frameCount": 5 },
|
||||
{ "name": "LeftAirVent", "frameCount": 6 },
|
||||
{ "name": "GameArea", "frameCount": 6 },
|
||||
{ "name": "KidsCove", "frameCount": 3 },
|
||||
{ "name": "PartsnService", "frameCount": 7 },
|
||||
{ "name": "ShowStage", "frameCount": 7 },
|
||||
{ "name": "MainHall", "frameCount": 6 }
|
||||
{ "name": "PartyRoom1", "base": "sprites/cameras/locations/PartyRoom1/", "frameCount": 4 },
|
||||
{ "name": "PartyRoom2", "base": "sprites/cameras/locations/PartyRoom2/", "frameCount": 5 },
|
||||
{ "name": "PartyRoom3", "base": "sprites/cameras/locations/PartyRoom3/", "frameCount": 5 },
|
||||
{ "name": "PartyRoom4", "base": "sprites/cameras/locations/PartyRoom4/", "frameCount": 7 },
|
||||
{ "name": "PrizeCorner", "base": "sprites/cameras/locations/PrizeCorner/", "frameCount": 6 },
|
||||
{ "name": "RightAirVent", "base": "sprites/cameras/locations/RightAirVent/", "frameCount": 5 },
|
||||
{ "name": "LeftAirVent", "base": "sprites/cameras/locations/LeftAirVent/", "frameCount": 6 },
|
||||
{ "name": "GameArea", "base": "sprites/cameras/locations/GameArea/", "frameCount": 6 },
|
||||
{ "name": "KidsCove", "base": "sprites/cameras/locations/KidsCove/", "frameCount": 3 },
|
||||
{ "name": "PartsnService", "base": "sprites/cameras/locations/PartsnService/", "frameCount": 7 },
|
||||
{ "name": "ShowStage", "base": "sprites/cameras/locations/ShowStage/", "frameCount": 7 },
|
||||
{ "name": "MainHall", "base": "sprites/cameras/locations/MainHall/", "frameCount": 6 }
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,17 +1,15 @@
|
||||
{
|
||||
"single": [
|
||||
"sprites/custom_night/labels/1.png",
|
||||
"sprites/custom_night/labels/2.png",
|
||||
"sprites/custom_night/labels/3.png",
|
||||
"sprites/custom_night/labels/4.png",
|
||||
"sprites/custom_night/labels/5.png",
|
||||
"sprites/custom_night/labels/6.png",
|
||||
"sprites/custom_night/labels/7.png"
|
||||
],
|
||||
"ranges": [
|
||||
{ "base": "sprites/custom_night/icons/", "start": 1, "end": 10 },
|
||||
{ "base": "sprites/custom_night/names/", "start": 1, "end": 10 },
|
||||
{ "base": "sprites/custom_night/modes/", "start": 1, "end": 10 },
|
||||
{ "base": "sprites/custom_night/rewards/", "start": 0, "end": 8 }
|
||||
]
|
||||
"labels": {
|
||||
"title": "sprites/custom_night/labels/1.png",
|
||||
"arrowRight": "sprites/custom_night/labels/2.png",
|
||||
"arrowLeft": "sprites/custom_night/labels/3.png",
|
||||
"readyButton": "sprites/custom_night/labels/4.png",
|
||||
"arrowRight2": "sprites/custom_night/labels/5.png",
|
||||
"arrowLeft2": "sprites/custom_night/labels/6.png",
|
||||
"levelInfo": "sprites/custom_night/labels/7.png"
|
||||
},
|
||||
"icons": { "base": "sprites/custom_night/icons/", "start": 1, "end": 10 },
|
||||
"names": { "base": "sprites/custom_night/names/", "start": 1, "end": 10 },
|
||||
"modes": { "base": "sprites/custom_night/modes/", "start": 1, "end": 10 },
|
||||
"rewards": { "base": "sprites/custom_night/rewards/", "start": 0, "end": 8 }
|
||||
}
|
||||
|
||||
@@ -1,15 +1,11 @@
|
||||
{
|
||||
"single": [
|
||||
"sprites/cutscenes/30.png",
|
||||
"sprites/cutscenes/40.png",
|
||||
"sprites/cutscenes/1.png",
|
||||
"sprites/cutscenes/0.png",
|
||||
"sprites/cutscenes/2.png",
|
||||
"sprites/cutscenes/3.png",
|
||||
"sprites/cutscenes/4.png"
|
||||
],
|
||||
"ranges": [
|
||||
{ "base": "sprites/cutscenes/", "start": 10, "end": 12 },
|
||||
{ "base": "sprites/cutscenes/", "start": 20, "end": 22 }
|
||||
]
|
||||
"freddy": "sprites/cutscenes/30.png",
|
||||
"puppet": "sprites/cutscenes/40.png",
|
||||
"background": "sprites/cutscenes/1.png",
|
||||
"black": "sprites/cutscenes/0.png",
|
||||
"mask": "sprites/cutscenes/2.png",
|
||||
"errImg": "sprites/cutscenes/3.png",
|
||||
"itsMe": "sprites/cutscenes/4.png",
|
||||
"chica": { "base": "sprites/cutscenes/", "start": 10, "end": 12 },
|
||||
"bonnie": { "base": "sprites/cutscenes/", "start": 20, "end": 22 }
|
||||
}
|
||||
|
||||
@@ -1,14 +1,12 @@
|
||||
{
|
||||
"ranges": [
|
||||
{ "base": "sprites/jumpscares/puppet/", "start": 1, "end": 15 },
|
||||
{ "base": "sprites/jumpscares/toy_bonnie/", "start": 1, "end": 13 },
|
||||
{ "base": "sprites/jumpscares/toy_chica/", "start": 1, "end": 13 },
|
||||
{ "base": "sprites/jumpscares/toy_freddy/", "start": 1, "end": 12 },
|
||||
{ "base": "sprites/jumpscares/withered_freddy/", "start": 1, "end": 13 },
|
||||
{ "base": "sprites/jumpscares/withered_bonnie/", "start": 1, "end": 16 },
|
||||
{ "base": "sprites/jumpscares/withered_chica/", "start": 1, "end": 12 },
|
||||
{ "base": "sprites/jumpscares/withered_foxy/", "start": 1, "end": 14 },
|
||||
{ "base": "sprites/jumpscares/mangle/", "start": 1, "end": 16 },
|
||||
{ "base": "sprites/jumpscares/withered_golden_freddy/", "start": 1, "end": 13 }
|
||||
]
|
||||
"puppet": { "base": "sprites/jumpscares/puppet/", "start": 1, "end": 15 },
|
||||
"toyBonnie": { "base": "sprites/jumpscares/toy_bonnie/", "start": 1, "end": 13 },
|
||||
"toyChica": { "base": "sprites/jumpscares/toy_chica/", "start": 1, "end": 13 },
|
||||
"toyFreddy": { "base": "sprites/jumpscares/toy_freddy/", "start": 1, "end": 12 },
|
||||
"witheredFreddy": { "base": "sprites/jumpscares/withered_freddy/", "start": 1, "end": 13 },
|
||||
"witheredBonnie": { "base": "sprites/jumpscares/withered_bonnie/", "start": 1, "end": 16 },
|
||||
"witheredChica": { "base": "sprites/jumpscares/withered_chica/", "start": 1, "end": 12 },
|
||||
"foxy": { "base": "sprites/jumpscares/withered_foxy/", "start": 1, "end": 14 },
|
||||
"mangle": { "base": "sprites/jumpscares/mangle/", "start": 1, "end": 16 },
|
||||
"goldenFreddy": { "base": "sprites/jumpscares/withered_golden_freddy/", "start": 1, "end": 13 }
|
||||
}
|
||||
|
||||
@@ -1,8 +1,4 @@
|
||||
{
|
||||
"single": [
|
||||
"sprites/mask/button.png"
|
||||
],
|
||||
"ranges": [
|
||||
{ "base": "sprites/mask/", "start": 1, "end": 10 }
|
||||
]
|
||||
"button": "sprites/mask/button.png",
|
||||
"sprites": { "base": "sprites/mask/", "start": 1, "end": 10 }
|
||||
}
|
||||
|
||||
@@ -1,40 +1,46 @@
|
||||
{
|
||||
"single": [
|
||||
"sprites/menu/logos/2.png",
|
||||
"sprites/menu/logos/1.png",
|
||||
"sprites/menu/logos/10.png",
|
||||
"sprites/menu/logos/3.png",
|
||||
"sprites/menu/logos/5.png",
|
||||
"sprites/menu/logos/6.png",
|
||||
"sprites/menu/logos/7.png",
|
||||
"sprites/menu/logos/9.png",
|
||||
"sprites/menu/logos/8.png",
|
||||
"sprites/menu/logos/12.png",
|
||||
"sprites/menu/logos/13.png",
|
||||
"sprites/menu/logos/14.png",
|
||||
"sprites/menu/logos/15.png",
|
||||
"sprites/menu/logos/16.png",
|
||||
"sprites/menu/logos/17.png",
|
||||
"sprites/menu/logos/11.png",
|
||||
"sprites/menu/logos/0.png",
|
||||
"sprites/menu/nights/8.png",
|
||||
"sprites/menu/nights/9.png",
|
||||
"sprites/menu/nights/10.png",
|
||||
"sprites/menu/nights/11.png",
|
||||
"sprites/menu/nights/12.png",
|
||||
"sprites/menu/paychecks/1.png",
|
||||
"sprites/menu/paychecks/2.png",
|
||||
"sprites/menu/paychecks/3.png",
|
||||
"sprites/menu/paychecks/4.png",
|
||||
"sprites/menu/misc/4.png",
|
||||
"sprites/menu/misc/5.png"
|
||||
],
|
||||
"ranges": [
|
||||
{ "base": "sprites/menu/misc/", "start": 0, "end": 3 },
|
||||
{ "base": "sprites/menu/nights/", "start": 1, "end": 7 },
|
||||
{ "base": "sprites/menu/sprinkles/", "start": 0, "end": 4 },
|
||||
{ "base": "sprites/menu/sprinkles/", "start": 10, "end": 14 },
|
||||
{ "base": "sprites/menu/sprinkles/", "start": 20, "end": 24 },
|
||||
{ "base": "sprites/menu/sprinkles/", "start": 30, "end": 34 }
|
||||
]
|
||||
"logos": {
|
||||
"title": "sprites/menu/logos/2.png",
|
||||
"scottCredits": "sprites/menu/logos/1.png",
|
||||
"selScottCredits": "sprites/menu/logos/10.png",
|
||||
"optionSelected": "sprites/menu/logos/3.png",
|
||||
"newGame": "sprites/menu/logos/5.png",
|
||||
"continueGame": "sprites/menu/logos/6.png",
|
||||
"deleteData": "sprites/menu/logos/7.png",
|
||||
"version": "sprites/menu/logos/9.png",
|
||||
"nightLabel2": "sprites/menu/logos/8.png",
|
||||
"escToReturn": "sprites/menu/logos/12.png",
|
||||
"extras": "sprites/menu/logos/13.png",
|
||||
"animatronics": "sprites/menu/logos/14.png",
|
||||
"jumpscares": "sprites/menu/logos/15.png",
|
||||
"minigames": "sprites/menu/logos/16.png",
|
||||
"selSquare": "sprites/menu/logos/17.png",
|
||||
"realTimeButton": "sprites/menu/logos/11.png",
|
||||
"loadingIcon": "sprites/menu/logos/0.png"
|
||||
},
|
||||
"nights": {
|
||||
"nightSix": "sprites/menu/nights/11.png",
|
||||
"customNight": "sprites/menu/nights/12.png",
|
||||
"lostScreen": "sprites/menu/nights/9.png",
|
||||
"gameOver": "sprites/menu/nights/10.png",
|
||||
"realTimeNight": "sprites/menu/nights/8.png",
|
||||
"night12am": { "base": "sprites/menu/nights/", "start": 1, "end": 7 }
|
||||
},
|
||||
"paychecks": {
|
||||
"newspaper": "sprites/menu/paychecks/1.png",
|
||||
"nightFive": "sprites/menu/paychecks/2.png",
|
||||
"nightSix": "sprites/menu/paychecks/3.png",
|
||||
"nightSeven":"sprites/menu/paychecks/4.png"
|
||||
},
|
||||
"misc": {
|
||||
"star": "sprites/menu/misc/4.png",
|
||||
"blueStar": "sprites/menu/misc/5.png",
|
||||
"background": { "base": "sprites/menu/misc/", "start": 0, "end": 3 }
|
||||
},
|
||||
"ranges": {
|
||||
"confettiBlue": { "base": "sprites/menu/sprinkles/", "start": 0, "end": 4 },
|
||||
"confettiGreen": { "base": "sprites/menu/sprinkles/", "start": 10, "end": 14 },
|
||||
"confettiYellow": { "base": "sprites/menu/sprinkles/", "start": 20, "end": 24 },
|
||||
"confettiPink": { "base": "sprites/menu/sprinkles/", "start": 30, "end": 34 }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,54 +1,55 @@
|
||||
{
|
||||
"single": [
|
||||
"sprites/minigames/GG_GL/4.png",
|
||||
"sprites/minigames/GG_GL/7.png",
|
||||
"sprites/minigames/GG_GL/6.png",
|
||||
"sprites/minigames/GG_GL/10.png",
|
||||
"sprites/minigames/GG_GL/11.png",
|
||||
"sprites/minigames/GG_GL/0.png",
|
||||
"sprites/minigames/GG_GL/1.png",
|
||||
"sprites/minigames/GG_GL/2.png",
|
||||
"sprites/minigames/GG_GL/3.png",
|
||||
|
||||
"sprites/minigames/SAVE THEM/10.png",
|
||||
"sprites/minigames/SAVE THEM/11.png",
|
||||
"sprites/minigames/SAVE THEM/12.png",
|
||||
"sprites/minigames/SAVE THEM/13.png",
|
||||
"sprites/minigames/SAVE THEM/14.png",
|
||||
"sprites/minigames/SAVE THEM/15.png",
|
||||
"sprites/minigames/SAVE THEM/16.png",
|
||||
"sprites/minigames/SAVE THEM/20.png",
|
||||
"sprites/minigames/SAVE THEM/21.png",
|
||||
"sprites/minigames/SAVE THEM/22.png",
|
||||
"sprites/minigames/SAVE THEM/23.png",
|
||||
"sprites/minigames/SAVE THEM/24.png",
|
||||
"sprites/minigames/SAVE THEM/27.png",
|
||||
"sprites/minigames/SAVE THEM/31.png",
|
||||
"sprites/minigames/SAVE THEM/30.png",
|
||||
|
||||
"sprites/minigames/Go! Go! Go!/4.png",
|
||||
"sprites/minigames/Go! Go! Go!/20.png",
|
||||
"sprites/minigames/Go! Go! Go!/21.png",
|
||||
"sprites/minigames/Go! Go! Go!/22.png",
|
||||
"sprites/minigames/Go! Go! Go!/23.png",
|
||||
"sprites/minigames/Go! Go! Go!/31.png",
|
||||
"sprites/minigames/Go! Go! Go!/32.png",
|
||||
"sprites/minigames/Go! Go! Go!/33.png",
|
||||
|
||||
"sprites/minigames/TCTTC/17.png",
|
||||
"sprites/minigames/TCTTC/30.png",
|
||||
"sprites/minigames/TCTTC/31.png"
|
||||
],
|
||||
"ranges": [
|
||||
{ "base": "sprites/minigames/SAVE THEM/", "start": 0, "end": 5 },
|
||||
{ "base": "sprites/minigames/SAVE THEM/", "start": 25, "end": 26 },
|
||||
{ "base": "sprites/minigames/Go! Go! Go!/", "start": 0, "end": 1 },
|
||||
{ "base": "sprites/minigames/Go! Go! Go!/", "start": 10, "end": 17 },
|
||||
{ "base": "sprites/minigames/TCTTC/", "start": 0, "end": 1 },
|
||||
{ "base": "sprites/minigames/TCTTC/", "start": 10, "end": 16 },
|
||||
{ "base": "sprites/minigames/TCTTC/", "start": 20, "end": 25 },
|
||||
{ "base": "sprites/minigames/screenshots/", "start": 0, "end": 3 },
|
||||
{ "base": "sprites/rare/", "start": 1, "end": 3 },
|
||||
{ "base": "sprites/animatronics/", "start": 0, "end": 8 }
|
||||
]
|
||||
"giveGifts": {
|
||||
"puppet": "sprites/minigames/GG_GL/4.png",
|
||||
"soul": "sprites/minigames/GG_GL/7.png",
|
||||
"gift": "sprites/minigames/GG_GL/6.png",
|
||||
"giveGifts": "sprites/minigames/GG_GL/10.png",
|
||||
"giveLife": "sprites/minigames/GG_GL/11.png",
|
||||
"chicaMask": "sprites/minigames/GG_GL/0.png",
|
||||
"fredMask": "sprites/minigames/GG_GL/1.png",
|
||||
"bonnieMask": "sprites/minigames/GG_GL/2.png",
|
||||
"foxyMask": "sprites/minigames/GG_GL/3.png"
|
||||
},
|
||||
"saveThem": {
|
||||
"table": "sprites/minigames/SAVE THEM/10.png",
|
||||
"desk": "sprites/minigames/SAVE THEM/11.png",
|
||||
"scenery": "sprites/minigames/SAVE THEM/12.png",
|
||||
"dust": "sprites/minigames/SAVE THEM/13.png",
|
||||
"floor1": "sprites/minigames/SAVE THEM/14.png",
|
||||
"floor2": "sprites/minigames/SAVE THEM/15.png",
|
||||
"wasd": "sprites/minigames/SAVE THEM/16.png",
|
||||
"suit1": "sprites/minigames/SAVE THEM/20.png",
|
||||
"suit2": "sprites/minigames/SAVE THEM/21.png",
|
||||
"suit3": "sprites/minigames/SAVE THEM/22.png",
|
||||
"suitGr1": "sprites/minigames/SAVE THEM/23.png",
|
||||
"suitGr2": "sprites/minigames/SAVE THEM/24.png",
|
||||
"sadSoul": "sprites/minigames/SAVE THEM/27.png",
|
||||
"blood": "sprites/minigames/SAVE THEM/31.png",
|
||||
"bigGift": "sprites/minigames/SAVE THEM/30.png",
|
||||
"freddyWalking": { "base": "sprites/minigames/SAVE THEM/", "start": 0, "end": 5 },
|
||||
"endoAnim": { "base": "sprites/minigames/SAVE THEM/", "start": 25, "end": 26 }
|
||||
},
|
||||
"foxyGoGo": {
|
||||
"courtain": "sprites/minigames/Go! Go! Go!/4.png",
|
||||
"sadChild": "sprites/minigames/Go! Go! Go!/20.png",
|
||||
"happyChild": "sprites/minigames/Go! Go! Go!/21.png",
|
||||
"arrow": "sprites/minigames/Go! Go! Go!/22.png",
|
||||
"purpleGuy": "sprites/minigames/Go! Go! Go!/23.png",
|
||||
"getReady": "sprites/minigames/Go! Go! Go!/31.png",
|
||||
"go": "sprites/minigames/Go! Go! Go!/32.png",
|
||||
"hurray": "sprites/minigames/Go! Go! Go!/33.png",
|
||||
"foxyAnim": { "base": "sprites/minigames/Go! Go! Go!/", "start": 0, "end": 1 },
|
||||
"confetti": { "base": "sprites/minigames/Go! Go! Go!/", "start": 10, "end": 17 }
|
||||
},
|
||||
"tcttc": {
|
||||
"deadChild": "sprites/minigames/TCTTC/17.png",
|
||||
"car": "sprites/minigames/TCTTC/30.png",
|
||||
"label": "sprites/minigames/TCTTC/31.png",
|
||||
"cakeFreddy": { "base": "sprites/minigames/TCTTC/", "start": 0, "end": 1 },
|
||||
"childCrying": { "base": "sprites/minigames/TCTTC/", "start": 10, "end": 16 },
|
||||
"child": { "base": "sprites/minigames/TCTTC/", "start": 20, "end": 25 }
|
||||
},
|
||||
"screenshots": { "base": "sprites/minigames/screenshots/", "start": 0, "end": 3 },
|
||||
"rare": { "base": "sprites/rare/", "start": 1, "end": 3 },
|
||||
"animatronics": { "base": "sprites/animatronics/", "start": 0, "end": 8 }
|
||||
}
|
||||
|
||||
@@ -1,8 +1,4 @@
|
||||
{
|
||||
"single": [
|
||||
"sprites/monitor/button.png"
|
||||
],
|
||||
"ranges": [
|
||||
{ "base": "sprites/monitor/", "start": 1, "end": 11 }
|
||||
]
|
||||
"button": "sprites/monitor/button.png",
|
||||
"sprites": { "base": "sprites/monitor/", "start": 1, "end": 11 }
|
||||
}
|
||||
|
||||
@@ -1,17 +1,14 @@
|
||||
{
|
||||
"single": [
|
||||
"sprites/numbers/1rst/medium/dot.png",
|
||||
"sprites/clock/20.png",
|
||||
"sprites/clock/2.png",
|
||||
"sprites/clock/1.png"
|
||||
],
|
||||
"ranges": [
|
||||
{ "base": "sprites/numbers/1rst/medium/", "start": 0, "end": 9 },
|
||||
{ "base": "sprites/numbers/1rst/small/", "start": 0, "end": 9 },
|
||||
{ "base": "sprites/numbers/1rst/big/", "start": 0, "end": 9 },
|
||||
{ "base": "sprites/numbers/2nd/medium/", "start": 0, "end": 9 },
|
||||
{ "base": "sprites/numbers/2nd/small/", "start": 0, "end": 9 },
|
||||
{ "base": "sprites/clock/", "start": 3, "end": 7 },
|
||||
{ "base": "sprites/clock/", "start": 8, "end": 13 }
|
||||
]
|
||||
"dots": "sprites/numbers/1rst/medium/dot.png",
|
||||
"nightLabel": "sprites/clock/20.png",
|
||||
"amLabel": "sprites/clock/2.png",
|
||||
"bigAm": "sprites/clock/1.png",
|
||||
|
||||
"medium": { "base": "sprites/numbers/1rst/medium/", "start": 0, "end": 9 },
|
||||
"small": { "base": "sprites/numbers/1rst/small/", "start": 0, "end": 9 },
|
||||
"big": { "base": "sprites/numbers/1rst/big/", "start": 0, "end": 9 },
|
||||
"medium2": { "base": "sprites/numbers/2nd/medium/", "start": 0, "end": 9 },
|
||||
"small2": { "base": "sprites/numbers/2nd/small/", "start": 0, "end": 9 },
|
||||
"fiveAnimation": { "base": "sprites/clock/", "start": 3, "end": 7 },
|
||||
"sixAnimation": { "base": "sprites/clock/", "start": 8, "end": 13 }
|
||||
}
|
||||
|
||||
@@ -1,27 +1,33 @@
|
||||
{
|
||||
"background": "sprites/office/office.png",
|
||||
"single": [
|
||||
"sprites/office/utils/3.png",
|
||||
"sprites/office/utils/4.png",
|
||||
"sprites/office/utils/1.png",
|
||||
"sprites/office/utils/2.png",
|
||||
"sprites/office/utils/20.png",
|
||||
"sprites/office/utils/40.png",
|
||||
"sprites/office/inside/8.png",
|
||||
"sprites/office/inside/DWARF.png",
|
||||
"sprites/office/inside/10.png",
|
||||
"sprites/office/inside/3.png",
|
||||
"sprites/office/inside/6.png",
|
||||
"sprites/office/inside/7.png",
|
||||
"sprites/office/inside/5.png"
|
||||
],
|
||||
"ranges": [
|
||||
{ "base": "sprites/office/inside/", "start": 0, "end": 4 },
|
||||
{ "base": "sprites/office/hallway/", "start": 0, "end": 10 },
|
||||
{ "base": "sprites/office/right_vents/", "start": 0, "end": 2 },
|
||||
{ "base": "sprites/office/left_vents/", "start": 0, "end": 2 },
|
||||
{ "base": "sprites/office/utils/", "start": 10, "end": 13 },
|
||||
{ "base": "sprites/office/utils/", "start": 24, "end": 25 },
|
||||
{ "base": "sprites/office/utils/", "start": 30, "end": 31 }
|
||||
]
|
||||
"bg": "sprites/office/office.png",
|
||||
|
||||
"ventButtons": {
|
||||
"leftOff": "sprites/office/utils/1.png",
|
||||
"leftOn": "sprites/office/utils/2.png",
|
||||
"rightOff": "sprites/office/utils/3.png",
|
||||
"rightOn": "sprites/office/utils/4.png"
|
||||
},
|
||||
|
||||
"telephoneMute": "sprites/office/utils/20.png",
|
||||
"ctrlAdv": "sprites/office/utils/40.png",
|
||||
|
||||
"easterEggs": {
|
||||
"balloonGirl": "sprites/office/inside/8.png",
|
||||
"dwarf": "sprites/office/inside/DWARF.png",
|
||||
"plastic": "sprites/office/inside/10.png",
|
||||
"bunny": "sprites/office/inside/3.png",
|
||||
"goldenFreddy": "sprites/office/inside/6.png",
|
||||
"mangle": "sprites/office/inside/7.png",
|
||||
"balloonBoy": "sprites/office/inside/5.png"
|
||||
},
|
||||
|
||||
"ranges": {
|
||||
"inside": { "base": "sprites/office/inside/", "start": 0, "end": 4 },
|
||||
"hallway": { "base": "sprites/office/hallway/", "start": 0, "end": 10 },
|
||||
"rightVents": { "base": "sprites/office/right_vents/", "start": 0, "end": 2 },
|
||||
"leftVents": { "base": "sprites/office/left_vents/", "start": 0, "end": 2 },
|
||||
"desk": { "base": "sprites/office/utils/", "start": 10, "end": 13 },
|
||||
"warnBig": { "base": "sprites/office/utils/", "start": 24, "end": 25 },
|
||||
"warnSmall": { "base": "sprites/office/utils/", "start": 30, "end": 31 }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,395 +2,149 @@ package io.github.eldek0.asset;
|
||||
|
||||
import com.badlogic.gdx.Gdx;
|
||||
import com.badlogic.gdx.assets.AssetManager;
|
||||
import com.badlogic.gdx.audio.Music;
|
||||
import com.badlogic.gdx.audio.Sound;
|
||||
import com.badlogic.gdx.files.FileHandle;
|
||||
import com.badlogic.gdx.graphics.Texture;
|
||||
import com.badlogic.gdx.utils.Array;
|
||||
import com.badlogic.gdx.utils.Json;
|
||||
|
||||
import io.github.eldek0.asset.group.*;
|
||||
|
||||
public class GameAssetManager {
|
||||
|
||||
private static final String DATA = "data/";
|
||||
|
||||
private final AssetManager manager = new AssetManager();
|
||||
private final Json json = new Json();
|
||||
|
||||
// =========================================================
|
||||
// DATA CLASSES
|
||||
// =========================================================
|
||||
// ---- Typed asset groups (public, acceso directo) ----
|
||||
public MonitorAssets monitor;
|
||||
public OfficeAssets office;
|
||||
public MaskAssets mask;
|
||||
public CameraAssets cameras;
|
||||
public BatteryAssets battery;
|
||||
public NumbersAssets numbers;
|
||||
public CustomNightAssets customNight;
|
||||
public JumpscareAssets jumpscares;
|
||||
public CutsceneAssets cutscenes;
|
||||
public MinigameAssets minigames;
|
||||
public MenuAssets menu;
|
||||
|
||||
public static class AssetGroupData {
|
||||
public String background;
|
||||
public Array<String> single;
|
||||
public Array<FrameRangeData> ranges;
|
||||
public Array<CameraLocationData> locations;
|
||||
public Array<SoundData> sounds;
|
||||
public Array<MusicData> music;
|
||||
}
|
||||
|
||||
public static class FrameRangeData {
|
||||
public String base;
|
||||
public int start;
|
||||
public int end;
|
||||
/** Optional: custom extension, defaults to "png" */
|
||||
public String ext = "png";
|
||||
}
|
||||
|
||||
public static class CameraLocationData {
|
||||
public String name;
|
||||
public int frameCount;
|
||||
/** Base path override; if null defaults to "sprites/cameras/locations/<name>/" */
|
||||
public String basePath;
|
||||
}
|
||||
|
||||
public static class SoundData {
|
||||
public String path;
|
||||
}
|
||||
|
||||
public static class MusicData {
|
||||
public String path;
|
||||
}
|
||||
|
||||
// =========================================================
|
||||
// PATHS — kept as constants for use elsewhere in the codebase
|
||||
// =========================================================
|
||||
|
||||
public static final String DATA_PATH = "data/";
|
||||
|
||||
// Monitor
|
||||
public static final String MONITOR_PATH = "sprites/monitor/";
|
||||
public static final String MONITOR_BUTTON = MONITOR_PATH + "button.png";
|
||||
|
||||
// Office
|
||||
public static final String OFFICE_PATH = "sprites/office/";
|
||||
public static final String OFFICE_INSIDE_PATH = OFFICE_PATH + "inside/";
|
||||
public static final String OFFICE_HALLWAY_PATH = OFFICE_PATH + "hallway/";
|
||||
public static final String OFFICE_RVENTS_PATH = OFFICE_PATH + "right_vents/";
|
||||
public static final String OFFICE_LVENTS_PATH = OFFICE_PATH + "left_vents/";
|
||||
public static final String OFFICE_UTILS_PATH = OFFICE_PATH + "utils/";
|
||||
|
||||
public static final String OFFICE_BG = OFFICE_PATH + "office.png";
|
||||
public static final String RIGHT_VENT_BUTTON_OFF = OFFICE_UTILS_PATH + "3.png";
|
||||
public static final String RIGHT_VENT_BUTTON_ON = OFFICE_UTILS_PATH + "4.png";
|
||||
public static final String LEFT_VENT_BUTTON_OFF = OFFICE_UTILS_PATH + "1.png";
|
||||
public static final String LEFT_VENT_BUTTON_ON = OFFICE_UTILS_PATH + "2.png";
|
||||
public static final String TELEPHONE_MUTE = OFFICE_UTILS_PATH + "20.png";
|
||||
public static final String CTRL_ADV = OFFICE_UTILS_PATH + "40.png";
|
||||
public static final String BALLOON_GIRL = OFFICE_INSIDE_PATH + "8.png";
|
||||
public static final String DWARF = OFFICE_INSIDE_PATH + "DWARF.png";
|
||||
public static final String PLASTIC = OFFICE_INSIDE_PATH + "10.png";
|
||||
public static final String OFFICE_BUNNY = OFFICE_INSIDE_PATH + "3.png";
|
||||
public static final String OFFICE_GOLDEN_FREDDY = OFFICE_INSIDE_PATH + "6.png";
|
||||
public static final String OFFICE_MANGLE = OFFICE_INSIDE_PATH + "7.png";
|
||||
public static final String OFFICE_BALLOON_BOY = OFFICE_INSIDE_PATH + "5.png";
|
||||
|
||||
// Mask
|
||||
public static final String MASK_PATH = "sprites/mask/";
|
||||
public static final String MASK_BUTTON = MASK_PATH + "button.png";
|
||||
|
||||
// Cameras
|
||||
public static final String CAM_PATH = "sprites/cameras/";
|
||||
public static final String CAM_UTILS_PATH = CAM_PATH + "utils/";
|
||||
public static final String CAM_LABELS_PATH = CAM_PATH + "Labels/";
|
||||
public static final String CAM_STATIC_PATH = CAM_PATH + "static/";
|
||||
public static final String CAM_LOC_PATH = CAM_PATH + "locations/";
|
||||
public static final String CAM_MANGLE_PATH = CAM_PATH + "mangle/";
|
||||
|
||||
public static final String CAMERA_MAP = CAM_UTILS_PATH + "Map.png";
|
||||
public static final String CAMERA_BORDERLINE = CAM_UTILS_PATH + "Border.png";
|
||||
public static final String CAMERA_RECORD_SPRITE = CAM_UTILS_PATH + "1.png";
|
||||
public static final String CAMERA_SIGNAL_INTERRUPTED = CAM_UTILS_PATH + "2.png";
|
||||
public static final String ROOM_BUTTON_UNSELECTED = CAM_LABELS_PATH + "13.png";
|
||||
public static final String ROOM_BUTTON_SELECTED = CAM_LABELS_PATH + "14.png";
|
||||
public static final String CLICKNHOLD = CAM_LABELS_PATH + "18.png";
|
||||
public static final String MUSIC_BOX_BUTTON_OFF = CAM_LABELS_PATH + "16.png";
|
||||
public static final String MUSIC_BOX_BUTTON_ON = CAM_LABELS_PATH + "17.png";
|
||||
public static final String MUSIC_BOX_LABEL = CAM_LABELS_PATH + "15.png";
|
||||
|
||||
// Battery
|
||||
public static final String BATTERY_PATH = "sprites/battery/";
|
||||
public static final String FLASHLIGHT_LABEL = BATTERY_PATH + "label.png";
|
||||
|
||||
// Menu
|
||||
public static final String MENU_PATH = "sprites/menu/";
|
||||
public static final String MENU_MISC_PATH = MENU_PATH + "misc/";
|
||||
public static final String MENU_LOGOS_PATH = MENU_PATH + "logos/";
|
||||
public static final String MENU_NIGHTS_PATH = MENU_PATH + "nights/";
|
||||
public static final String MENU_SPRINKLES_PATH = MENU_PATH + "sprinkles/";
|
||||
public static final String MENU_PAYCHECKS_PATH = MENU_PATH + "paychecks/";
|
||||
|
||||
public static final String FNAF_TITLE = MENU_LOGOS_PATH + "2.png";
|
||||
public static final String SCOTT_CREDITS = MENU_LOGOS_PATH + "1.png";
|
||||
public static final String SEL_SCOTT_CREDITS = MENU_LOGOS_PATH + "10.png";
|
||||
public static final String OPTION_SELECTED = MENU_LOGOS_PATH + "3.png";
|
||||
public static final String NEW_GAME_OPTION = MENU_LOGOS_PATH + "5.png";
|
||||
public static final String CONTINUE_OPTION = MENU_LOGOS_PATH + "6.png";
|
||||
public static final String DELETE_DATA_LABEL = MENU_LOGOS_PATH + "7.png";
|
||||
public static final String VERSION = MENU_LOGOS_PATH + "9.png";
|
||||
public static final String NIGHT_LABEL_2 = MENU_LOGOS_PATH + "8.png";
|
||||
public static final String ESC_TO_RETURN = MENU_LOGOS_PATH + "12.png";
|
||||
public static final String EXTRAS_BUTTON = MENU_LOGOS_PATH + "13.png";
|
||||
public static final String ANIMATRONICS_BUTTON= MENU_LOGOS_PATH + "14.png";
|
||||
public static final String JUMPSCARES_BUTTON = MENU_LOGOS_PATH + "15.png";
|
||||
public static final String MINIGAMES_BUTTON = MENU_LOGOS_PATH + "16.png";
|
||||
public static final String SEL_SQUARE = MENU_LOGOS_PATH + "17.png";
|
||||
public static final String REAL_TIME_BUTTON = MENU_LOGOS_PATH + "11.png";
|
||||
public static final String LOADING_ICON = MENU_LOGOS_PATH + "0.png";
|
||||
|
||||
public static final String NIGHT_SIX_OPTION = MENU_NIGHTS_PATH + "11.png";
|
||||
public static final String CUSTOM_NIGHT_OPTION = MENU_NIGHTS_PATH + "12.png";
|
||||
public static final String LOST_SCREEN = MENU_NIGHTS_PATH + "9.png";
|
||||
public static final String GAME_OVER = MENU_NIGHTS_PATH + "10.png";
|
||||
public static final String REAL_TIME_NIGHT = MENU_NIGHTS_PATH + "8.png";
|
||||
|
||||
public static final String STAR = MENU_MISC_PATH + "4.png";
|
||||
public static final String BLUE_STAR = MENU_MISC_PATH + "5.png";
|
||||
|
||||
public static final String NEWSPAPER = MENU_PAYCHECKS_PATH + "1.png";
|
||||
public static final String NIGHT_FIVE_PAYCHECK = MENU_PAYCHECKS_PATH + "2.png";
|
||||
public static final String NIGHT_SIX_PAYCHECK = MENU_PAYCHECKS_PATH + "3.png";
|
||||
public static final String NIGHT_SEVEN_PAYCHECK= MENU_PAYCHECKS_PATH + "4.png";
|
||||
|
||||
// Numbers & Clock
|
||||
public static final String NUMBERS_PATH = "sprites/numbers/";
|
||||
public static final String CLOCK_PATH = "sprites/clock/";
|
||||
public static final String DOTS = NUMBERS_PATH + "1rst/medium/dot.png";
|
||||
public static final String NIGHT_LABEL = CLOCK_PATH + "20.png";
|
||||
public static final String AM_LABEL = CLOCK_PATH + "2.png";
|
||||
public static final String BIG_AM = CLOCK_PATH + "1.png";
|
||||
|
||||
// Custom Night
|
||||
public static final String CN_PATH = "sprites/custom_night/";
|
||||
public static final String CN_ICONS_PATH = CN_PATH + "icons/";
|
||||
public static final String CN_NAMES_PATH = CN_PATH + "names/";
|
||||
public static final String CN_LABELS_PATH = CN_PATH + "labels/";
|
||||
public static final String CN_MODES_PATH = CN_PATH + "modes/";
|
||||
public static final String CN_REWARDS_PATH = CN_PATH + "rewards/";
|
||||
|
||||
public static final String CUSTOM_NIGHT_TITLE = CN_LABELS_PATH + "1.png";
|
||||
public static final String ARROW_RIGHT = CN_LABELS_PATH + "2.png";
|
||||
public static final String ARROW_LEFT = CN_LABELS_PATH + "3.png";
|
||||
public static final String READY_BUTTON = CN_LABELS_PATH + "4.png";
|
||||
public static final String ARROW_RIGHT2 = CN_LABELS_PATH + "5.png";
|
||||
public static final String ARROW_LEFT2 = CN_LABELS_PATH + "6.png";
|
||||
public static final String CUSTOM_NIGHT_LEVEL_INFO = CN_LABELS_PATH + "7.png";
|
||||
|
||||
// Jumpscares
|
||||
public static final String JS_PATH = "sprites/jumpscares/";
|
||||
|
||||
// Cutscenes
|
||||
public static final String CS_PATH = "sprites/cutscenes/";
|
||||
public static final String CUTSCENE_FREDDY = CS_PATH + "30.png";
|
||||
public static final String CUTSCENE_PUPPET = CS_PATH + "40.png";
|
||||
public static final String CUTSCENE_BACKGROUND = CS_PATH + "1.png";
|
||||
public static final String CUTSCENE_BLACK = CS_PATH + "0.png";
|
||||
public static final String CUTSCENE_MASK = CS_PATH + "2.png";
|
||||
public static final String ERR_IMG = CS_PATH + "3.png";
|
||||
public static final String ITS_ME = CS_PATH + "4.png";
|
||||
|
||||
// Minigames
|
||||
public static final String MG_PATH = "sprites/minigames/";
|
||||
public static final String MG_GGGL_PATH = MG_PATH + "GG_GL/";
|
||||
public static final String MG_SAVETHEM_PATH = MG_PATH + "SAVE THEM/";
|
||||
public static final String MG_FOXY_PATH = MG_PATH + "Go! Go! Go!/";
|
||||
public static final String MG_TCTTC_PATH = MG_PATH + "TCTTC/";
|
||||
public static final String MG_SCREENS_PATH = MG_PATH + "screenshots/";
|
||||
|
||||
public static final String PUPPET_MINIGAME = MG_GGGL_PATH + "4.png";
|
||||
public static final String SOUL = MG_GGGL_PATH + "7.png";
|
||||
public static final String GIFT = MG_GGGL_PATH + "6.png";
|
||||
public static final String GIVE_GIFTS = MG_GGGL_PATH + "10.png";
|
||||
public static final String GIVE_LIFE = MG_GGGL_PATH + "11.png";
|
||||
public static final String CHICA_MASK = MG_GGGL_PATH + "0.png";
|
||||
public static final String FRED_MASK = MG_GGGL_PATH + "1.png";
|
||||
public static final String BONNIE_MASK = MG_GGGL_PATH + "2.png";
|
||||
public static final String FOXY_MASK = MG_GGGL_PATH + "3.png";
|
||||
|
||||
public static final String TABLE = MG_SAVETHEM_PATH + "10.png";
|
||||
public static final String DESK_MIN = MG_SAVETHEM_PATH + "11.png";
|
||||
public static final String SCENEARY = MG_SAVETHEM_PATH + "12.png";
|
||||
public static final String DUST = MG_SAVETHEM_PATH + "13.png";
|
||||
public static final String FLOOR1 = MG_SAVETHEM_PATH + "14.png";
|
||||
public static final String FLOOR2 = MG_SAVETHEM_PATH + "15.png";
|
||||
public static final String WASD = MG_SAVETHEM_PATH + "16.png";
|
||||
public static final String SUIT1 = MG_SAVETHEM_PATH + "20.png";
|
||||
public static final String SUIT2 = MG_SAVETHEM_PATH + "21.png";
|
||||
public static final String SUIT3 = MG_SAVETHEM_PATH + "22.png";
|
||||
public static final String SUIT_GR_1 = MG_SAVETHEM_PATH + "23.png";
|
||||
public static final String SUIT_GR_2 = MG_SAVETHEM_PATH + "24.png";
|
||||
public static final String SAD_SOUL = MG_SAVETHEM_PATH + "27.png";
|
||||
public static final String BLOOD = MG_SAVETHEM_PATH + "31.png";
|
||||
public static final String BIG_GIFT = MG_SAVETHEM_PATH + "30.png";
|
||||
|
||||
public static final String COURTAIN = MG_FOXY_PATH + "4.png";
|
||||
public static final String SAD_CHILD = MG_FOXY_PATH + "20.png";
|
||||
public static final String HAPPY_CHILD = MG_FOXY_PATH + "21.png";
|
||||
public static final String ARROW_MIN = MG_FOXY_PATH + "22.png";
|
||||
public static final String PURPLE_GUY = MG_FOXY_PATH + "23.png";
|
||||
public static final String GET_READY_TXT = MG_FOXY_PATH + "31.png";
|
||||
public static final String GO_TXT = MG_FOXY_PATH + "32.png";
|
||||
public static final String HURRAY_TXT = MG_FOXY_PATH + "33.png";
|
||||
|
||||
public static final String DEAD_CHILD = MG_TCTTC_PATH + "17.png";
|
||||
public static final String CAR = MG_TCTTC_PATH + "30.png";
|
||||
public static final String TAKE_CAKE_TO_THE_CHILDREN_LABEL = MG_TCTTC_PATH + "31.png";
|
||||
|
||||
// Rare / Animatronics
|
||||
public static final String RARE_PATH = "sprites/rare/";
|
||||
public static final String ANIMATRONICS_PATH = "sprites/animatronics/";
|
||||
// ---- Cached JSON data (needed for fetch step) ----
|
||||
private MonitorAssets.Data monitorData;
|
||||
private OfficeAssets.Data officeData;
|
||||
private MaskAssets.Data maskData;
|
||||
private CameraAssets.Data cameraData;
|
||||
private BatteryAssets.Data batteryData;
|
||||
private NumbersAssets.Data numbersData;
|
||||
private CustomNightAssets.Data customNightData;
|
||||
private JumpscareAssets.Data jumpscareData;
|
||||
private CutsceneAssets.Data cutsceneData;
|
||||
private MinigameAssets.Data minigameData;
|
||||
private MenuAssets.Data menuData;
|
||||
|
||||
// =========================================================
|
||||
// LOAD ENTRY POINTS
|
||||
// =========================================================
|
||||
|
||||
/** Queue all menu assets for async loading. Call update() each frame until done. */
|
||||
public void loadMenuAssets() {
|
||||
loadGroup("menu.json");
|
||||
}
|
||||
|
||||
public void loadGameAssets() {
|
||||
String[] groups = {
|
||||
"monitor.json",
|
||||
"office.json",
|
||||
"mask.json",
|
||||
"cameras.json",
|
||||
"battery.json",
|
||||
"numbers.json",
|
||||
"custom_night.json",
|
||||
"jumpscares.json",
|
||||
"cutscenes.json",
|
||||
"minigames.json",
|
||||
"misc.json"
|
||||
};
|
||||
for (String g : groups) {
|
||||
loadGroup(g);
|
||||
}
|
||||
}
|
||||
|
||||
// =========================================================
|
||||
// CORE LOADER
|
||||
// =========================================================
|
||||
|
||||
private void loadGroup(String filename) {
|
||||
FileHandle file = Gdx.files.internal(DATA_PATH + filename);
|
||||
|
||||
if (!file.exists()) {
|
||||
Gdx.app.error("GameAssetManager", "JSON not found: " + DATA_PATH + filename);
|
||||
return;
|
||||
}
|
||||
|
||||
json.setIgnoreUnknownFields(true);
|
||||
AssetGroupData group = json.fromJson(AssetGroupData.class, file);
|
||||
|
||||
// Single background texture
|
||||
if (group.background != null) {
|
||||
loadTexture(group.background);
|
||||
menuData = load("menu.json", MenuAssets.Data.class);
|
||||
menu = new MenuAssets();
|
||||
menu.queue(manager, menuData);
|
||||
}
|
||||
|
||||
// Individual paths
|
||||
if (group.single != null) {
|
||||
for (String path : group.single) {
|
||||
loadTexture(path);
|
||||
}
|
||||
}
|
||||
/** Queue all in-game assets for async loading. Call update() each frame until done. */
|
||||
public void loadGameAssets() {
|
||||
json.setIgnoreUnknownFields(true);
|
||||
|
||||
// Numbered frame ranges
|
||||
if (group.ranges != null) {
|
||||
for (FrameRangeData range : group.ranges) {
|
||||
for (int i = range.start; i <= range.end; i++) {
|
||||
loadTexture(range.base + i + "." + range.ext);
|
||||
}
|
||||
}
|
||||
}
|
||||
monitorData = load("monitor.json", MonitorAssets.Data.class);
|
||||
officeData = load("office.json", OfficeAssets.Data.class);
|
||||
maskData = load("mask.json", MaskAssets.Data.class);
|
||||
cameraData = load("cameras.json", CameraAssets.Data.class);
|
||||
batteryData = load("battery.json", BatteryAssets.Data.class);
|
||||
numbersData = load("numbers.json", NumbersAssets.Data.class);
|
||||
customNightData = load("custom_night.json", CustomNightAssets.Data.class);
|
||||
jumpscareData = load("jumpscares.json", JumpscareAssets.Data.class);
|
||||
cutsceneData = load("cutscenes.json", CutsceneAssets.Data.class);
|
||||
minigameData = load("minigames.json", MinigameAssets.Data.class);
|
||||
|
||||
// Camera locations (frames + label)
|
||||
if (group.locations != null) {
|
||||
for (CameraLocationData loc : group.locations) {
|
||||
String base = (loc.basePath != null)
|
||||
? loc.basePath
|
||||
: CAM_LOC_PATH + loc.name + "/";
|
||||
for (int i = 0; i < loc.frameCount; i++) {
|
||||
loadTexture(base + i + ".png");
|
||||
}
|
||||
loadTexture(base + "label.png");
|
||||
}
|
||||
}
|
||||
Gdx.app.log("DEBUG monitor", json.toJson(monitorData));
|
||||
Gdx.app.log("DEBUG office", json.toJson(officeData));
|
||||
Gdx.app.log("DEBUG mask", json.toJson(maskData));
|
||||
Gdx.app.log("DEBUG cameras", json.toJson(cameraData));
|
||||
Gdx.app.log("DEBUG battery", json.toJson(batteryData));
|
||||
Gdx.app.log("DEBUG numbers", json.toJson(numbersData));
|
||||
Gdx.app.log("DEBUG customNight", json.toJson(customNightData));
|
||||
Gdx.app.log("DEBUG jumpscares", json.toJson(jumpscareData));
|
||||
Gdx.app.log("DEBUG cutscenes", json.toJson(cutsceneData));
|
||||
Gdx.app.log("DEBUG minigames", json.toJson(minigameData));
|
||||
|
||||
// Sounds
|
||||
if (group.sounds != null) {
|
||||
for (SoundData s : group.sounds) {
|
||||
if (!manager.isLoaded(s.path)) {
|
||||
manager.load(s.path, Sound.class);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Music
|
||||
if (group.music != null) {
|
||||
for (MusicData m : group.music) {
|
||||
if (!manager.isLoaded(m.path)) {
|
||||
manager.load(m.path, Music.class);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/** Loads a texture only if not already queued/loaded (avoids duplicates). */
|
||||
private void loadTexture(String path) {
|
||||
if (!manager.isLoaded(path) && !manager.containsAsset(path)) {
|
||||
manager.load(path, Texture.class);
|
||||
}
|
||||
monitor = new MonitorAssets(); monitor.queue(manager, monitorData);
|
||||
office = new OfficeAssets(); office.queue(manager, officeData);
|
||||
mask = new MaskAssets(); mask.queue(manager, maskData);
|
||||
cameras = new CameraAssets(); cameras.queue(manager, cameraData);
|
||||
battery = new BatteryAssets(); battery.queue(manager, batteryData);
|
||||
numbers = new NumbersAssets(); numbers.queue(manager, numbersData);
|
||||
customNight = new CustomNightAssets(); customNight.queue(manager, customNightData);
|
||||
jumpscares = new JumpscareAssets(); jumpscares.queue(manager, jumpscareData);
|
||||
cutscenes = new CutsceneAssets(); cutscenes.queue(manager, cutsceneData);
|
||||
minigames = new MinigameAssets(); minigames.queue(manager, minigameData);
|
||||
}
|
||||
|
||||
// =========================================================
|
||||
// GETTERS
|
||||
// GAME LOOP — call in render()
|
||||
// =========================================================
|
||||
|
||||
public Texture getTexture(String path) {
|
||||
return manager.get(path, Texture.class);
|
||||
}
|
||||
|
||||
public Sound getSound(String path) {
|
||||
return manager.get(path, Sound.class);
|
||||
}
|
||||
|
||||
public Music getMusic(String path) {
|
||||
return manager.get(path, Music.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns numbered frames from start to end inclusive.
|
||||
* Example: getFrames("sprites/monitor/", 1, 11)
|
||||
* Advances async loading. Returns true when everything is done.
|
||||
* On completion, fetches all typed references automatically.
|
||||
*/
|
||||
public Texture[] getFrames(String basePath, int start, int end) {
|
||||
Texture[] frames = new Texture[end - start + 1];
|
||||
for (int i = start; i <= end; i++) {
|
||||
frames[i - start] = manager.get(basePath + i + ".png", Texture.class);
|
||||
}
|
||||
return frames;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns frames for a camera location (0 to frameCount-1).
|
||||
* Example: getCameraFrames("ShowStage", 7)
|
||||
*/
|
||||
public Texture[] getCameraFrames(String locationName, int frameCount) {
|
||||
return getFrames(CAM_LOC_PATH + locationName + "/", 0, frameCount - 1);
|
||||
}
|
||||
|
||||
public Texture getCameraLabel(String locationName) {
|
||||
return manager.get(CAM_LOC_PATH + locationName + "/label.png", Texture.class);
|
||||
public boolean update() {
|
||||
if (!manager.update()) return false;
|
||||
fetchAll();
|
||||
return true;
|
||||
}
|
||||
|
||||
// =========================================================
|
||||
// STATE & LIFECYCLE
|
||||
// FETCH — runs once after AssetManager finishes
|
||||
// =========================================================
|
||||
|
||||
/** Call this in your render loop during loading. Returns true when done. */
|
||||
public boolean update() { return manager.update(); }
|
||||
private boolean fetched = false;
|
||||
|
||||
/** Blocks until everything is loaded. Use only for quick loads. */
|
||||
public void finishLoading() { manager.finishLoading(); }
|
||||
private void fetchAll() {
|
||||
if (fetched) return;
|
||||
fetched = true;
|
||||
|
||||
if (menuData != null) menu.fetch(manager, menuData);
|
||||
if (monitorData != null) monitor.fetch(manager, monitorData);
|
||||
if (officeData != null) office.fetch(manager, officeData);
|
||||
if (maskData != null) mask.fetch(manager, maskData);
|
||||
if (cameraData != null) cameras.fetch(manager, cameraData);
|
||||
if (batteryData != null) battery.fetch(manager, batteryData);
|
||||
if (numbersData != null) numbers.fetch(manager, numbersData);
|
||||
if (customNightData != null) customNight.fetch(manager, customNightData);
|
||||
if (jumpscareData != null) jumpscares.fetch(manager, jumpscareData);
|
||||
if (cutsceneData != null) cutscenes.fetch(manager, cutsceneData);
|
||||
if (minigameData != null) minigames.fetch(manager, minigameData);
|
||||
}
|
||||
|
||||
// =========================================================
|
||||
// HELPERS
|
||||
// =========================================================
|
||||
|
||||
private <T> T load(String filename, Class<T> type) {
|
||||
FileHandle file = Gdx.files.internal(DATA + filename);
|
||||
if (!file.exists()) {
|
||||
Gdx.app.error("GameAssetManager", "JSON not found: " + DATA + filename);
|
||||
return null;
|
||||
}
|
||||
return json.fromJson(type, file);
|
||||
}
|
||||
|
||||
// =========================================================
|
||||
// LIFECYCLE
|
||||
// =========================================================
|
||||
|
||||
public float getProgress() { return manager.getProgress(); }
|
||||
|
||||
public void finishLoading(){ manager.finishLoading(); fetchAll(); }
|
||||
public void dispose() { manager.dispose(); }
|
||||
}
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
package io.github.eldek0.asset.group;
|
||||
|
||||
import com.badlogic.gdx.assets.AssetManager;
|
||||
|
||||
/**
|
||||
* Common contract for all typed asset groups.
|
||||
* <p>
|
||||
* Lifecycle:
|
||||
* <pre>
|
||||
* bundle.queue(manager, data); // enqueue paths into AssetManager
|
||||
* while (!manager.update()) {} // async loading in render loop
|
||||
* bundle.fetch(manager, data); // grab Texture/Sound refs once loaded
|
||||
* ...
|
||||
* bundle.dispose(manager); // unload from AssetManager when done
|
||||
* </pre>
|
||||
*
|
||||
* @param <D> The JSON data class that describes what to load.
|
||||
*/
|
||||
public interface AssetBundle<D> {
|
||||
|
||||
/**
|
||||
* Enqueues all assets described by {@code data} into the AssetManager.
|
||||
* Call this before starting the loading loop.
|
||||
*/
|
||||
void queue(AssetManager manager, D data);
|
||||
|
||||
/**
|
||||
* Fetches all loaded assets from the AssetManager into typed fields.
|
||||
* Call this only after {@code manager.update()} returns true (or finishLoading()).
|
||||
*/
|
||||
void fetch(AssetManager manager, D data);
|
||||
|
||||
/**
|
||||
* Unloads all assets owned by this bundle from the AssetManager.
|
||||
* Call this when the screen/state that owns this bundle is disposed.
|
||||
*/
|
||||
void dispose(AssetManager manager, D data);
|
||||
|
||||
/**
|
||||
* Returns true if every asset in this bundle has been loaded by the AssetManager.
|
||||
* Useful for fine-grained loading checks.
|
||||
*/
|
||||
boolean isLoaded(AssetManager manager, D data);
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
package io.github.eldek0.asset.group;
|
||||
|
||||
import com.badlogic.gdx.assets.AssetManager;
|
||||
import com.badlogic.gdx.graphics.Texture;
|
||||
|
||||
public class BatteryAssets implements AssetBundle<BatteryAssets.Data> {
|
||||
|
||||
public static class Data {
|
||||
public String flashlightLabel;
|
||||
public FrameRange stages;
|
||||
|
||||
public static class FrameRange {
|
||||
public String base;
|
||||
public int start, end;
|
||||
}
|
||||
}
|
||||
|
||||
public Texture flashlightLabel;
|
||||
public Texture[] stages;
|
||||
|
||||
@Override
|
||||
public void queue(AssetManager manager, Data data) {
|
||||
manager.load(data.flashlightLabel, Texture.class);
|
||||
for (int i = data.stages.start; i <= data.stages.end; i++)
|
||||
manager.load(data.stages.base + i + ".png", Texture.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fetch(AssetManager manager, Data data) {
|
||||
flashlightLabel = manager.get(data.flashlightLabel, Texture.class);
|
||||
stages = fetchRange(manager, data.stages);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispose(AssetManager manager, Data data) {
|
||||
manager.unload(data.flashlightLabel);
|
||||
for (int i = data.stages.start; i <= data.stages.end; i++)
|
||||
manager.unload(data.stages.base + i + ".png");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isLoaded(AssetManager manager, Data data) {
|
||||
if (!manager.isLoaded(data.flashlightLabel)) return false;
|
||||
for (int i = data.stages.start; i <= data.stages.end; i++)
|
||||
if (!manager.isLoaded(data.stages.base + i + ".png")) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
private Texture[] fetchRange(AssetManager m, Data.FrameRange r) {
|
||||
Texture[] arr = new Texture[r.end - r.start + 1];
|
||||
for (int i = r.start; i <= r.end; i++)
|
||||
arr[i - r.start] = m.get(r.base + i + ".png", Texture.class);
|
||||
return arr;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,189 @@
|
||||
package io.github.eldek0.asset.group;
|
||||
|
||||
import com.badlogic.gdx.assets.AssetManager;
|
||||
import com.badlogic.gdx.graphics.Texture;
|
||||
import com.badlogic.gdx.utils.Array;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class CameraAssets implements AssetBundle<CameraAssets.Data> {
|
||||
|
||||
public static class Data {
|
||||
public Utils utils;
|
||||
public Labels labels;
|
||||
public Ranges ranges;
|
||||
public Array<Location> locations;
|
||||
|
||||
public static class Utils {
|
||||
public String map, borderline, recordSprite, signalInterrupted;
|
||||
}
|
||||
public static class Labels {
|
||||
public String roomButtonUnselected, roomButtonSelected;
|
||||
public String clicknhold;
|
||||
public String musicBoxButtonOff, musicBoxButtonOn, musicBoxLabel;
|
||||
public FrameRange roomLabels;
|
||||
}
|
||||
public static class Ranges {
|
||||
public FrameRange mangle, staticA, staticB, staticStripes, musicBoxTimer;
|
||||
}
|
||||
public static class Location {
|
||||
public String name, base;
|
||||
public int frameCount;
|
||||
}
|
||||
public static class FrameRange {
|
||||
public String base;
|
||||
public int start, end;
|
||||
}
|
||||
}
|
||||
|
||||
public Texture map, borderline, recordSprite, signalInterrupted;
|
||||
public Texture roomButtonUnselected, roomButtonSelected;
|
||||
public Texture clicknhold;
|
||||
public Texture musicBoxButtonOff, musicBoxButtonOn, musicBoxLabel;
|
||||
public Texture[] roomLabels, mangle, staticA, staticB, staticStripes, musicBoxTimer;
|
||||
|
||||
public Map<String, Texture[]> locationFrames = new LinkedHashMap<>();
|
||||
public Map<String, Texture> locationLabels = new LinkedHashMap<>();
|
||||
|
||||
@Override
|
||||
public void queue(AssetManager manager, Data d) {
|
||||
manager.load(d.utils.map, Texture.class);
|
||||
manager.load(d.utils.borderline, Texture.class);
|
||||
manager.load(d.utils.recordSprite, Texture.class);
|
||||
manager.load(d.utils.signalInterrupted, Texture.class);
|
||||
|
||||
manager.load(d.labels.roomButtonUnselected, Texture.class);
|
||||
manager.load(d.labels.roomButtonSelected, Texture.class);
|
||||
manager.load(d.labels.clicknhold, Texture.class);
|
||||
manager.load(d.labels.musicBoxButtonOff, Texture.class);
|
||||
manager.load(d.labels.musicBoxButtonOn, Texture.class);
|
||||
manager.load(d.labels.musicBoxLabel, Texture.class);
|
||||
queueRange(manager, d.labels.roomLabels);
|
||||
|
||||
queueRange(manager, d.ranges.mangle);
|
||||
queueRange(manager, d.ranges.staticA);
|
||||
queueRange(manager, d.ranges.staticB);
|
||||
queueRange(manager, d.ranges.staticStripes);
|
||||
queueRange(manager, d.ranges.musicBoxTimer);
|
||||
|
||||
for (Data.Location loc : d.locations) {
|
||||
for (int i = 0; i < loc.frameCount; i++)
|
||||
manager.load(loc.base + i + ".png", Texture.class);
|
||||
manager.load(loc.base + "label.png", Texture.class);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fetch(AssetManager manager, Data d) {
|
||||
map = manager.get(d.utils.map, Texture.class);
|
||||
borderline = manager.get(d.utils.borderline, Texture.class);
|
||||
recordSprite = manager.get(d.utils.recordSprite, Texture.class);
|
||||
signalInterrupted = manager.get(d.utils.signalInterrupted, Texture.class);
|
||||
|
||||
roomButtonUnselected = manager.get(d.labels.roomButtonUnselected, Texture.class);
|
||||
roomButtonSelected = manager.get(d.labels.roomButtonSelected, Texture.class);
|
||||
clicknhold = manager.get(d.labels.clicknhold, Texture.class);
|
||||
musicBoxButtonOff = manager.get(d.labels.musicBoxButtonOff, Texture.class);
|
||||
musicBoxButtonOn = manager.get(d.labels.musicBoxButtonOn, Texture.class);
|
||||
musicBoxLabel = manager.get(d.labels.musicBoxLabel, Texture.class);
|
||||
roomLabels = fetchRange(manager, d.labels.roomLabels);
|
||||
|
||||
mangle = fetchRange(manager, d.ranges.mangle);
|
||||
staticA = fetchRange(manager, d.ranges.staticA);
|
||||
staticB = fetchRange(manager, d.ranges.staticB);
|
||||
staticStripes = fetchRange(manager, d.ranges.staticStripes);
|
||||
musicBoxTimer = fetchRange(manager, d.ranges.musicBoxTimer);
|
||||
|
||||
for (Data.Location loc : d.locations) {
|
||||
Texture[] frames = new Texture[loc.frameCount];
|
||||
for (int i = 0; i < loc.frameCount; i++)
|
||||
frames[i] = manager.get(loc.base + i + ".png", Texture.class);
|
||||
locationFrames.put(loc.name, frames);
|
||||
locationLabels.put(loc.name, manager.get(loc.base + "label.png", Texture.class));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispose(AssetManager manager, Data d) {
|
||||
manager.unload(d.utils.map);
|
||||
manager.unload(d.utils.borderline);
|
||||
manager.unload(d.utils.recordSprite);
|
||||
manager.unload(d.utils.signalInterrupted);
|
||||
|
||||
manager.unload(d.labels.roomButtonUnselected);
|
||||
manager.unload(d.labels.roomButtonSelected);
|
||||
manager.unload(d.labels.clicknhold);
|
||||
manager.unload(d.labels.musicBoxButtonOff);
|
||||
manager.unload(d.labels.musicBoxButtonOn);
|
||||
manager.unload(d.labels.musicBoxLabel);
|
||||
disposeRange(manager, d.labels.roomLabels);
|
||||
|
||||
disposeRange(manager, d.ranges.mangle);
|
||||
disposeRange(manager, d.ranges.staticA);
|
||||
disposeRange(manager, d.ranges.staticB);
|
||||
disposeRange(manager, d.ranges.staticStripes);
|
||||
disposeRange(manager, d.ranges.musicBoxTimer);
|
||||
|
||||
for (Data.Location loc : d.locations) {
|
||||
for (int i = 0; i < loc.frameCount; i++)
|
||||
manager.unload(loc.base + i + ".png");
|
||||
manager.unload(loc.base + "label.png");
|
||||
}
|
||||
locationFrames.clear();
|
||||
locationLabels.clear();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isLoaded(AssetManager manager, Data d) {
|
||||
if (!manager.isLoaded(d.utils.map)) return false;
|
||||
if (!manager.isLoaded(d.utils.borderline)) return false;
|
||||
if (!manager.isLoaded(d.utils.recordSprite)) return false;
|
||||
if (!manager.isLoaded(d.utils.signalInterrupted)) return false;
|
||||
|
||||
if (!manager.isLoaded(d.labels.roomButtonUnselected)) return false;
|
||||
if (!manager.isLoaded(d.labels.roomButtonSelected)) return false;
|
||||
if (!manager.isLoaded(d.labels.clicknhold)) return false;
|
||||
if (!manager.isLoaded(d.labels.musicBoxButtonOff)) return false;
|
||||
if (!manager.isLoaded(d.labels.musicBoxButtonOn)) return false;
|
||||
if (!manager.isLoaded(d.labels.musicBoxLabel)) return false;
|
||||
if (!isRangeLoaded(manager, d.labels.roomLabels)) return false;
|
||||
|
||||
if (!isRangeLoaded(manager, d.ranges.mangle)) return false;
|
||||
if (!isRangeLoaded(manager, d.ranges.staticA)) return false;
|
||||
if (!isRangeLoaded(manager, d.ranges.staticB)) return false;
|
||||
if (!isRangeLoaded(manager, d.ranges.staticStripes)) return false;
|
||||
if (!isRangeLoaded(manager, d.ranges.musicBoxTimer)) return false;
|
||||
|
||||
for (Data.Location loc : d.locations) {
|
||||
for (int i = 0; i < loc.frameCount; i++)
|
||||
if (!manager.isLoaded(loc.base + i + ".png")) return false;
|
||||
if (!manager.isLoaded(loc.base + "label.png")) return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public Texture[] getLocationFrames(String name) { return locationFrames.get(name); }
|
||||
public Texture getLocationLabel(String name) { return locationLabels.get(name); }
|
||||
|
||||
private void queueRange(AssetManager m, Data.FrameRange r) {
|
||||
for (int i = r.start; i <= r.end; i++) m.load(r.base + i + ".png", Texture.class);
|
||||
}
|
||||
|
||||
private Texture[] fetchRange(AssetManager m, Data.FrameRange r) {
|
||||
Texture[] arr = new Texture[r.end - r.start + 1];
|
||||
for (int i = r.start; i <= r.end; i++)
|
||||
arr[i - r.start] = m.get(r.base + i + ".png", Texture.class);
|
||||
return arr;
|
||||
}
|
||||
|
||||
private void disposeRange(AssetManager m, Data.FrameRange r) {
|
||||
for (int i = r.start; i <= r.end; i++) m.unload(r.base + i + ".png");
|
||||
}
|
||||
|
||||
private boolean isRangeLoaded(AssetManager m, Data.FrameRange r) {
|
||||
for (int i = r.start; i <= r.end; i++)
|
||||
if (!m.isLoaded(r.base + i + ".png")) return false;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,106 @@
|
||||
package io.github.eldek0.asset.group;
|
||||
|
||||
import com.badlogic.gdx.assets.AssetManager;
|
||||
import com.badlogic.gdx.graphics.Texture;
|
||||
|
||||
public class CustomNightAssets implements AssetBundle<CustomNightAssets.Data> {
|
||||
|
||||
public static class Data {
|
||||
public Labels labels;
|
||||
public FrameRange icons, names, modes, rewards;
|
||||
|
||||
public static class Labels {
|
||||
public String title, arrowRight, arrowLeft, readyButton;
|
||||
public String arrowRight2, arrowLeft2, levelInfo;
|
||||
}
|
||||
public static class FrameRange {
|
||||
public String base;
|
||||
public int start, end;
|
||||
}
|
||||
}
|
||||
|
||||
public Texture title, arrowRight, arrowLeft, readyButton;
|
||||
public Texture arrowRight2, arrowLeft2, levelInfo;
|
||||
public Texture[] icons, names, modes, rewards;
|
||||
|
||||
@Override
|
||||
public void queue(AssetManager manager, Data d) {
|
||||
manager.load(d.labels.title, Texture.class);
|
||||
manager.load(d.labels.arrowRight, Texture.class);
|
||||
manager.load(d.labels.arrowLeft, Texture.class);
|
||||
manager.load(d.labels.readyButton, Texture.class);
|
||||
manager.load(d.labels.arrowRight2, Texture.class);
|
||||
manager.load(d.labels.arrowLeft2, Texture.class);
|
||||
manager.load(d.labels.levelInfo, Texture.class);
|
||||
queueRange(manager, d.icons);
|
||||
queueRange(manager, d.names);
|
||||
queueRange(manager, d.modes);
|
||||
queueRange(manager, d.rewards);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fetch(AssetManager manager, Data d) {
|
||||
title = manager.get(d.labels.title, Texture.class);
|
||||
arrowRight = manager.get(d.labels.arrowRight, Texture.class);
|
||||
arrowLeft = manager.get(d.labels.arrowLeft, Texture.class);
|
||||
readyButton = manager.get(d.labels.readyButton, Texture.class);
|
||||
arrowRight2 = manager.get(d.labels.arrowRight2, Texture.class);
|
||||
arrowLeft2 = manager.get(d.labels.arrowLeft2, Texture.class);
|
||||
levelInfo = manager.get(d.labels.levelInfo, Texture.class);
|
||||
icons = fetchRange(manager, d.icons);
|
||||
names = fetchRange(manager, d.names);
|
||||
modes = fetchRange(manager, d.modes);
|
||||
rewards = fetchRange(manager, d.rewards);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispose(AssetManager manager, Data d) {
|
||||
manager.unload(d.labels.title);
|
||||
manager.unload(d.labels.arrowRight);
|
||||
manager.unload(d.labels.arrowLeft);
|
||||
manager.unload(d.labels.readyButton);
|
||||
manager.unload(d.labels.arrowRight2);
|
||||
manager.unload(d.labels.arrowLeft2);
|
||||
manager.unload(d.labels.levelInfo);
|
||||
disposeRange(manager, d.icons);
|
||||
disposeRange(manager, d.names);
|
||||
disposeRange(manager, d.modes);
|
||||
disposeRange(manager, d.rewards);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isLoaded(AssetManager manager, Data d) {
|
||||
return manager.isLoaded(d.labels.title)
|
||||
&& manager.isLoaded(d.labels.arrowRight)
|
||||
&& manager.isLoaded(d.labels.arrowLeft)
|
||||
&& manager.isLoaded(d.labels.readyButton)
|
||||
&& manager.isLoaded(d.labels.arrowRight2)
|
||||
&& manager.isLoaded(d.labels.arrowLeft2)
|
||||
&& manager.isLoaded(d.labels.levelInfo)
|
||||
&& isRangeLoaded(manager, d.icons)
|
||||
&& isRangeLoaded(manager, d.names)
|
||||
&& isRangeLoaded(manager, d.modes)
|
||||
&& isRangeLoaded(manager, d.rewards);
|
||||
}
|
||||
|
||||
private void queueRange(AssetManager m, Data.FrameRange r) {
|
||||
for (int i = r.start; i <= r.end; i++) m.load(r.base + i + ".png", Texture.class);
|
||||
}
|
||||
|
||||
private Texture[] fetchRange(AssetManager m, Data.FrameRange r) {
|
||||
Texture[] arr = new Texture[r.end - r.start + 1];
|
||||
for (int i = r.start; i <= r.end; i++)
|
||||
arr[i - r.start] = m.get(r.base + i + ".png", Texture.class);
|
||||
return arr;
|
||||
}
|
||||
|
||||
private void disposeRange(AssetManager m, Data.FrameRange r) {
|
||||
for (int i = r.start; i <= r.end; i++) m.unload(r.base + i + ".png");
|
||||
}
|
||||
|
||||
private boolean isRangeLoaded(AssetManager m, Data.FrameRange r) {
|
||||
for (int i = r.start; i <= r.end; i++)
|
||||
if (!m.isLoaded(r.base + i + ".png")) return false;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,93 @@
|
||||
package io.github.eldek0.asset.group;
|
||||
|
||||
import com.badlogic.gdx.assets.AssetManager;
|
||||
import com.badlogic.gdx.graphics.Texture;
|
||||
|
||||
public class CutsceneAssets implements AssetBundle<CutsceneAssets.Data> {
|
||||
|
||||
public static class Data {
|
||||
public String freddy, puppet, background, black, mask, errImg, itsMe;
|
||||
public FrameRange chica, bonnie;
|
||||
|
||||
public static class FrameRange {
|
||||
public String base;
|
||||
public int start, end;
|
||||
}
|
||||
}
|
||||
|
||||
public Texture freddy, puppet, background, black, mask, errImg, itsMe;
|
||||
public Texture[] chica, bonnie;
|
||||
|
||||
@Override
|
||||
public void queue(AssetManager manager, Data d) {
|
||||
manager.load(d.freddy, Texture.class);
|
||||
manager.load(d.puppet, Texture.class);
|
||||
manager.load(d.background, Texture.class);
|
||||
manager.load(d.black, Texture.class);
|
||||
manager.load(d.mask, Texture.class);
|
||||
manager.load(d.errImg, Texture.class);
|
||||
manager.load(d.itsMe, Texture.class);
|
||||
queueRange(manager, d.chica);
|
||||
queueRange(manager, d.bonnie);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fetch(AssetManager manager, Data d) {
|
||||
freddy = manager.get(d.freddy, Texture.class);
|
||||
puppet = manager.get(d.puppet, Texture.class);
|
||||
background = manager.get(d.background, Texture.class);
|
||||
black = manager.get(d.black, Texture.class);
|
||||
mask = manager.get(d.mask, Texture.class);
|
||||
errImg = manager.get(d.errImg, Texture.class);
|
||||
itsMe = manager.get(d.itsMe, Texture.class);
|
||||
chica = fetchRange(manager, d.chica);
|
||||
bonnie = fetchRange(manager, d.bonnie);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispose(AssetManager manager, Data d) {
|
||||
manager.unload(d.freddy);
|
||||
manager.unload(d.puppet);
|
||||
manager.unload(d.background);
|
||||
manager.unload(d.black);
|
||||
manager.unload(d.mask);
|
||||
manager.unload(d.errImg);
|
||||
manager.unload(d.itsMe);
|
||||
disposeRange(manager, d.chica);
|
||||
disposeRange(manager, d.bonnie);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isLoaded(AssetManager manager, Data d) {
|
||||
return manager.isLoaded(d.freddy)
|
||||
&& manager.isLoaded(d.puppet)
|
||||
&& manager.isLoaded(d.background)
|
||||
&& manager.isLoaded(d.black)
|
||||
&& manager.isLoaded(d.mask)
|
||||
&& manager.isLoaded(d.errImg)
|
||||
&& manager.isLoaded(d.itsMe)
|
||||
&& isRangeLoaded(manager, d.chica)
|
||||
&& isRangeLoaded(manager, d.bonnie);
|
||||
}
|
||||
|
||||
private void queueRange(AssetManager m, Data.FrameRange r) {
|
||||
for (int i = r.start; i <= r.end; i++) m.load(r.base + i + ".png", Texture.class);
|
||||
}
|
||||
|
||||
private Texture[] fetchRange(AssetManager m, Data.FrameRange r) {
|
||||
Texture[] arr = new Texture[r.end - r.start + 1];
|
||||
for (int i = r.start; i <= r.end; i++)
|
||||
arr[i - r.start] = m.get(r.base + i + ".png", Texture.class);
|
||||
return arr;
|
||||
}
|
||||
|
||||
private void disposeRange(AssetManager m, Data.FrameRange r) {
|
||||
for (int i = r.start; i <= r.end; i++) m.unload(r.base + i + ".png");
|
||||
}
|
||||
|
||||
private boolean isRangeLoaded(AssetManager m, Data.FrameRange r) {
|
||||
for (int i = r.start; i <= r.end; i++)
|
||||
if (!m.isLoaded(r.base + i + ".png")) return false;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,99 @@
|
||||
package io.github.eldek0.asset.group;
|
||||
|
||||
import com.badlogic.gdx.assets.AssetManager;
|
||||
import com.badlogic.gdx.graphics.Texture;
|
||||
|
||||
public class JumpscareAssets implements AssetBundle<JumpscareAssets.Data> {
|
||||
|
||||
public static class Data {
|
||||
public FrameRange puppet, toyBonnie, toyChica, toyFreddy;
|
||||
public FrameRange witheredFreddy, witheredBonnie, witheredChica;
|
||||
public FrameRange foxy, mangle, goldenFreddy;
|
||||
|
||||
public static class FrameRange {
|
||||
public String base;
|
||||
public int start, end;
|
||||
}
|
||||
}
|
||||
|
||||
public Texture[] puppet, toyBonnie, toyChica, toyFreddy;
|
||||
public Texture[] witheredFreddy, witheredBonnie, witheredChica;
|
||||
public Texture[] foxy, mangle, goldenFreddy;
|
||||
|
||||
@Override
|
||||
public void queue(AssetManager manager, Data d) {
|
||||
queueRange(manager, d.puppet);
|
||||
queueRange(manager, d.toyBonnie);
|
||||
queueRange(manager, d.toyChica);
|
||||
queueRange(manager, d.toyFreddy);
|
||||
queueRange(manager, d.witheredFreddy);
|
||||
queueRange(manager, d.witheredBonnie);
|
||||
queueRange(manager, d.witheredChica);
|
||||
queueRange(manager, d.foxy);
|
||||
queueRange(manager, d.mangle);
|
||||
queueRange(manager, d.goldenFreddy);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fetch(AssetManager manager, Data d) {
|
||||
puppet = fetchRange(manager, d.puppet);
|
||||
toyBonnie = fetchRange(manager, d.toyBonnie);
|
||||
toyChica = fetchRange(manager, d.toyChica);
|
||||
toyFreddy = fetchRange(manager, d.toyFreddy);
|
||||
witheredFreddy = fetchRange(manager, d.witheredFreddy);
|
||||
witheredBonnie = fetchRange(manager, d.witheredBonnie);
|
||||
witheredChica = fetchRange(manager, d.witheredChica);
|
||||
foxy = fetchRange(manager, d.foxy);
|
||||
mangle = fetchRange(manager, d.mangle);
|
||||
goldenFreddy = fetchRange(manager, d.goldenFreddy);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispose(AssetManager manager, Data d) {
|
||||
disposeRange(manager, d.puppet);
|
||||
disposeRange(manager, d.toyBonnie);
|
||||
disposeRange(manager, d.toyChica);
|
||||
disposeRange(manager, d.toyFreddy);
|
||||
disposeRange(manager, d.witheredFreddy);
|
||||
disposeRange(manager, d.witheredBonnie);
|
||||
disposeRange(manager, d.witheredChica);
|
||||
disposeRange(manager, d.foxy);
|
||||
disposeRange(manager, d.mangle);
|
||||
disposeRange(manager, d.goldenFreddy);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isLoaded(AssetManager manager, Data d) {
|
||||
return isRangeLoaded(manager, d.puppet)
|
||||
&& isRangeLoaded(manager, d.toyBonnie)
|
||||
&& isRangeLoaded(manager, d.toyChica)
|
||||
&& isRangeLoaded(manager, d.toyFreddy)
|
||||
&& isRangeLoaded(manager, d.witheredFreddy)
|
||||
&& isRangeLoaded(manager, d.witheredBonnie)
|
||||
&& isRangeLoaded(manager, d.witheredChica)
|
||||
&& isRangeLoaded(manager, d.foxy)
|
||||
&& isRangeLoaded(manager, d.mangle)
|
||||
&& isRangeLoaded(manager, d.goldenFreddy);
|
||||
}
|
||||
|
||||
private void queueRange(AssetManager m, Data.FrameRange r) {
|
||||
for (int i = r.start; i <= r.end; i++) m.load(r.base + i + ".png", Texture.class);
|
||||
}
|
||||
|
||||
private Texture[] fetchRange(AssetManager m, Data.FrameRange r) {
|
||||
Texture[] arr = new Texture[r.end - r.start + 1];
|
||||
for (int i = r.start; i <= r.end; i++)
|
||||
arr[i - r.start] = m.get(r.base + i + ".png", Texture.class);
|
||||
return arr;
|
||||
}
|
||||
|
||||
private void disposeRange(AssetManager m, Data.FrameRange r) {
|
||||
for (int i = r.start; i <= r.end; i++) m.unload(r.base + i + ".png");
|
||||
}
|
||||
|
||||
private boolean isRangeLoaded(AssetManager m, Data.FrameRange r) {
|
||||
for (int i = r.start; i <= r.end; i++)
|
||||
if (!m.isLoaded(r.base + i + ".png")) return false;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
package io.github.eldek0.asset.group;
|
||||
|
||||
import com.badlogic.gdx.assets.AssetManager;
|
||||
import com.badlogic.gdx.graphics.Texture;
|
||||
|
||||
public class MaskAssets implements AssetBundle<MaskAssets.Data> {
|
||||
|
||||
public static class Data {
|
||||
public String button;
|
||||
public FrameRange sprites;
|
||||
|
||||
public static class FrameRange {
|
||||
public String base;
|
||||
public int start, end;
|
||||
}
|
||||
}
|
||||
|
||||
public Texture button;
|
||||
public Texture[] sprites;
|
||||
|
||||
@Override
|
||||
public void queue(AssetManager manager, Data data) {
|
||||
manager.load(data.button, Texture.class);
|
||||
for (int i = data.sprites.start; i <= data.sprites.end; i++)
|
||||
manager.load(data.sprites.base + i + ".png", Texture.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fetch(AssetManager manager, Data data) {
|
||||
button = manager.get(data.button, Texture.class);
|
||||
sprites = fetchRange(manager, data.sprites);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispose(AssetManager manager, Data data) {
|
||||
manager.unload(data.button);
|
||||
for (int i = data.sprites.start; i <= data.sprites.end; i++)
|
||||
manager.unload(data.sprites.base + i + ".png");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isLoaded(AssetManager manager, Data data) {
|
||||
if (!manager.isLoaded(data.button)) return false;
|
||||
for (int i = data.sprites.start; i <= data.sprites.end; i++)
|
||||
if (!manager.isLoaded(data.sprites.base + i + ".png")) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
private Texture[] fetchRange(AssetManager m, Data.FrameRange r) {
|
||||
Texture[] arr = new Texture[r.end - r.start + 1];
|
||||
for (int i = r.start; i <= r.end; i++)
|
||||
arr[i - r.start] = m.get(r.base + i + ".png", Texture.class);
|
||||
return arr;
|
||||
}
|
||||
}
|
||||
214
core/src/main/java/io/github/eldek0/asset/group/MenuAssets.java
Normal file
214
core/src/main/java/io/github/eldek0/asset/group/MenuAssets.java
Normal file
@@ -0,0 +1,214 @@
|
||||
package io.github.eldek0.asset.group;
|
||||
|
||||
import com.badlogic.gdx.assets.AssetManager;
|
||||
import com.badlogic.gdx.graphics.Texture;
|
||||
|
||||
public class MenuAssets implements AssetBundle<MenuAssets.Data> {
|
||||
|
||||
public static class Data {
|
||||
public Logos logos;
|
||||
public Nights nights;
|
||||
public Paychecks paychecks;
|
||||
public Misc misc;
|
||||
public Ranges ranges;
|
||||
|
||||
public static class Logos {
|
||||
public String title, scottCredits, selScottCredits;
|
||||
public String optionSelected, newGame, continueGame, deleteData;
|
||||
public String version, nightLabel2, escToReturn;
|
||||
public String extras, animatronics, jumpscares, minigames;
|
||||
public String selSquare, realTimeButton, loadingIcon;
|
||||
}
|
||||
public static class Nights {
|
||||
public String nightSix, customNight, lostScreen, gameOver, realTimeNight;
|
||||
public FrameRange night12am;
|
||||
}
|
||||
public static class Paychecks {
|
||||
public String newspaper, nightFive, nightSix, nightSeven;
|
||||
}
|
||||
public static class Misc {
|
||||
public String star, blueStar;
|
||||
public FrameRange background;
|
||||
}
|
||||
public static class Ranges {
|
||||
public FrameRange confettiBlue, confettiGreen, confettiYellow, confettiPink;
|
||||
}
|
||||
public static class FrameRange {
|
||||
public String base;
|
||||
public int start, end;
|
||||
}
|
||||
}
|
||||
|
||||
public Texture title, scottCredits, selScottCredits;
|
||||
public Texture optionSelected, newGame, continueGame, deleteData;
|
||||
public Texture version, nightLabel2, escToReturn;
|
||||
public Texture extras, animatronics, jumpscares, minigames;
|
||||
public Texture selSquare, realTimeButton, loadingIcon;
|
||||
public Texture nightSixOption, customNightOption, lostScreen, gameOver, realTimeNight;
|
||||
public Texture[] night12am;
|
||||
public Texture newspaper, nightFivePaycheck, nightSixPaycheck, nightSevenPaycheck;
|
||||
public Texture star, blueStar;
|
||||
public Texture[] background;
|
||||
public Texture[] confettiBlue, confettiGreen, confettiYellow, confettiPink;
|
||||
|
||||
@Override
|
||||
public void queue(AssetManager manager, Data d) {
|
||||
Data.Logos l = d.logos;
|
||||
manager.load(l.title, Texture.class); manager.load(l.scottCredits, Texture.class);
|
||||
manager.load(l.selScottCredits, Texture.class); manager.load(l.optionSelected, Texture.class);
|
||||
manager.load(l.newGame, Texture.class); manager.load(l.continueGame, Texture.class);
|
||||
manager.load(l.deleteData, Texture.class); manager.load(l.version, Texture.class);
|
||||
manager.load(l.nightLabel2, Texture.class); manager.load(l.escToReturn, Texture.class);
|
||||
manager.load(l.extras, Texture.class); manager.load(l.animatronics, Texture.class);
|
||||
manager.load(l.jumpscares, Texture.class); manager.load(l.minigames, Texture.class);
|
||||
manager.load(l.selSquare, Texture.class); manager.load(l.realTimeButton, Texture.class);
|
||||
manager.load(l.loadingIcon, Texture.class);
|
||||
|
||||
Data.Nights n = d.nights;
|
||||
manager.load(n.nightSix, Texture.class); manager.load(n.customNight, Texture.class);
|
||||
manager.load(n.lostScreen, Texture.class); manager.load(n.gameOver, Texture.class);
|
||||
manager.load(n.realTimeNight, Texture.class);
|
||||
queueRange(manager, n.night12am);
|
||||
|
||||
Data.Paychecks p = d.paychecks;
|
||||
manager.load(p.newspaper, Texture.class); manager.load(p.nightFive, Texture.class);
|
||||
manager.load(p.nightSix, Texture.class); manager.load(p.nightSeven, Texture.class);
|
||||
|
||||
manager.load(d.misc.star, Texture.class); manager.load(d.misc.blueStar, Texture.class);
|
||||
queueRange(manager, d.misc.background);
|
||||
|
||||
queueRange(manager, d.ranges.confettiBlue);
|
||||
queueRange(manager, d.ranges.confettiGreen);
|
||||
queueRange(manager, d.ranges.confettiYellow);
|
||||
queueRange(manager, d.ranges.confettiPink);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fetch(AssetManager manager, Data d) {
|
||||
Data.Logos l = d.logos;
|
||||
title = manager.get(l.title, Texture.class);
|
||||
scottCredits = manager.get(l.scottCredits, Texture.class);
|
||||
selScottCredits = manager.get(l.selScottCredits, Texture.class);
|
||||
optionSelected = manager.get(l.optionSelected, Texture.class);
|
||||
newGame = manager.get(l.newGame, Texture.class);
|
||||
continueGame = manager.get(l.continueGame, Texture.class);
|
||||
deleteData = manager.get(l.deleteData, Texture.class);
|
||||
version = manager.get(l.version, Texture.class);
|
||||
nightLabel2 = manager.get(l.nightLabel2, Texture.class);
|
||||
escToReturn = manager.get(l.escToReturn, Texture.class);
|
||||
extras = manager.get(l.extras, Texture.class);
|
||||
animatronics = manager.get(l.animatronics, Texture.class);
|
||||
jumpscares = manager.get(l.jumpscares, Texture.class);
|
||||
minigames = manager.get(l.minigames, Texture.class);
|
||||
selSquare = manager.get(l.selSquare, Texture.class);
|
||||
realTimeButton = manager.get(l.realTimeButton, Texture.class);
|
||||
loadingIcon = manager.get(l.loadingIcon, Texture.class);
|
||||
|
||||
Data.Nights n = d.nights;
|
||||
nightSixOption = manager.get(n.nightSix, Texture.class);
|
||||
customNightOption = manager.get(n.customNight, Texture.class);
|
||||
lostScreen = manager.get(n.lostScreen, Texture.class);
|
||||
gameOver = manager.get(n.gameOver, Texture.class);
|
||||
realTimeNight = manager.get(n.realTimeNight, Texture.class);
|
||||
night12am = fetchRange(manager, n.night12am);
|
||||
|
||||
Data.Paychecks p = d.paychecks;
|
||||
newspaper = manager.get(p.newspaper, Texture.class);
|
||||
nightFivePaycheck = manager.get(p.nightFive, Texture.class);
|
||||
nightSixPaycheck = manager.get(p.nightSix, Texture.class);
|
||||
nightSevenPaycheck = manager.get(p.nightSeven, Texture.class);
|
||||
|
||||
star = manager.get(d.misc.star, Texture.class);
|
||||
blueStar = manager.get(d.misc.blueStar, Texture.class);
|
||||
background = fetchRange(manager, d.misc.background);
|
||||
|
||||
confettiBlue = fetchRange(manager, d.ranges.confettiBlue);
|
||||
confettiGreen = fetchRange(manager, d.ranges.confettiGreen);
|
||||
confettiYellow = fetchRange(manager, d.ranges.confettiYellow);
|
||||
confettiPink = fetchRange(manager, d.ranges.confettiPink);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispose(AssetManager manager, Data d) {
|
||||
Data.Logos l = d.logos;
|
||||
manager.unload(l.title); manager.unload(l.scottCredits);
|
||||
manager.unload(l.selScottCredits); manager.unload(l.optionSelected);
|
||||
manager.unload(l.newGame); manager.unload(l.continueGame);
|
||||
manager.unload(l.deleteData); manager.unload(l.version);
|
||||
manager.unload(l.nightLabel2); manager.unload(l.escToReturn);
|
||||
manager.unload(l.extras); manager.unload(l.animatronics);
|
||||
manager.unload(l.jumpscares); manager.unload(l.minigames);
|
||||
manager.unload(l.selSquare); manager.unload(l.realTimeButton);
|
||||
manager.unload(l.loadingIcon);
|
||||
|
||||
Data.Nights n = d.nights;
|
||||
manager.unload(n.nightSix); manager.unload(n.customNight);
|
||||
manager.unload(n.lostScreen); manager.unload(n.gameOver);
|
||||
manager.unload(n.realTimeNight);
|
||||
disposeRange(manager, n.night12am);
|
||||
|
||||
Data.Paychecks p = d.paychecks;
|
||||
manager.unload(p.newspaper); manager.unload(p.nightFive);
|
||||
manager.unload(p.nightSix); manager.unload(p.nightSeven);
|
||||
|
||||
manager.unload(d.misc.star); manager.unload(d.misc.blueStar);
|
||||
disposeRange(manager, d.misc.background);
|
||||
|
||||
disposeRange(manager, d.ranges.confettiBlue);
|
||||
disposeRange(manager, d.ranges.confettiGreen);
|
||||
disposeRange(manager, d.ranges.confettiYellow);
|
||||
disposeRange(manager, d.ranges.confettiPink);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isLoaded(AssetManager manager, Data d) {
|
||||
Data.Logos l = d.logos;
|
||||
if (!manager.isLoaded(l.title) || !manager.isLoaded(l.scottCredits) ) return false;
|
||||
if (!manager.isLoaded(l.selScottCredits)|| !manager.isLoaded(l.optionSelected) ) return false;
|
||||
if (!manager.isLoaded(l.newGame) || !manager.isLoaded(l.continueGame) ) return false;
|
||||
if (!manager.isLoaded(l.deleteData) || !manager.isLoaded(l.version) ) return false;
|
||||
if (!manager.isLoaded(l.nightLabel2) || !manager.isLoaded(l.escToReturn) ) return false;
|
||||
if (!manager.isLoaded(l.extras) || !manager.isLoaded(l.animatronics) ) return false;
|
||||
if (!manager.isLoaded(l.jumpscares) || !manager.isLoaded(l.minigames) ) return false;
|
||||
if (!manager.isLoaded(l.selSquare) || !manager.isLoaded(l.realTimeButton) ) return false;
|
||||
if (!manager.isLoaded(l.loadingIcon)) return false;
|
||||
|
||||
Data.Nights n = d.nights;
|
||||
if (!manager.isLoaded(n.nightSix) || !manager.isLoaded(n.customNight) ) return false;
|
||||
if (!manager.isLoaded(n.lostScreen) || !manager.isLoaded(n.gameOver) ) return false;
|
||||
if (!manager.isLoaded(n.realTimeNight) || !isRangeLoaded(manager, n.night12am)) return false;
|
||||
|
||||
Data.Paychecks p = d.paychecks;
|
||||
if (!manager.isLoaded(p.newspaper) || !manager.isLoaded(p.nightFive)) return false;
|
||||
if (!manager.isLoaded(p.nightSix) || !manager.isLoaded(p.nightSeven)) return false;
|
||||
|
||||
if (!manager.isLoaded(d.misc.star) || !manager.isLoaded(d.misc.blueStar)) return false;
|
||||
if (!isRangeLoaded(manager, d.misc.background)) return false;
|
||||
|
||||
return isRangeLoaded(manager, d.ranges.confettiBlue)
|
||||
&& isRangeLoaded(manager, d.ranges.confettiGreen)
|
||||
&& isRangeLoaded(manager, d.ranges.confettiYellow)
|
||||
&& isRangeLoaded(manager, d.ranges.confettiPink);
|
||||
}
|
||||
|
||||
private void queueRange(AssetManager m, Data.FrameRange r) {
|
||||
for (int i = r.start; i <= r.end; i++) m.load(r.base + i + ".png", Texture.class);
|
||||
}
|
||||
|
||||
private Texture[] fetchRange(AssetManager m, Data.FrameRange r) {
|
||||
Texture[] arr = new Texture[r.end - r.start + 1];
|
||||
for (int i = r.start; i <= r.end; i++)
|
||||
arr[i - r.start] = m.get(r.base + i + ".png", Texture.class);
|
||||
return arr;
|
||||
}
|
||||
|
||||
private void disposeRange(AssetManager m, Data.FrameRange r) {
|
||||
for (int i = r.start; i <= r.end; i++) m.unload(r.base + i + ".png");
|
||||
}
|
||||
|
||||
private boolean isRangeLoaded(AssetManager m, Data.FrameRange r) {
|
||||
for (int i = r.start; i <= r.end; i++)
|
||||
if (!m.isLoaded(r.base + i + ".png")) return false;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,247 @@
|
||||
package io.github.eldek0.asset.group;
|
||||
|
||||
import com.badlogic.gdx.assets.AssetManager;
|
||||
import com.badlogic.gdx.graphics.Texture;
|
||||
|
||||
public class MinigameAssets implements AssetBundle<MinigameAssets.Data> {
|
||||
|
||||
public static class Data {
|
||||
public GiveGifts giveGifts;
|
||||
public SaveThem saveThem;
|
||||
public FoxyGoGo foxyGoGo;
|
||||
public Tcttc tcttc;
|
||||
public FrameRange screenshots, rare, animatronics;
|
||||
|
||||
public static class GiveGifts {
|
||||
public String puppet, soul, gift, giveGifts, giveLife;
|
||||
public String chicaMask, fredMask, bonnieMask, foxyMask;
|
||||
}
|
||||
public static class SaveThem {
|
||||
public String table, desk, scenery, dust, floor1, floor2, wasd;
|
||||
public String suit1, suit2, suit3, suitGr1, suitGr2, sadSoul, blood, bigGift;
|
||||
public FrameRange freddyWalking, endoAnim;
|
||||
}
|
||||
public static class FoxyGoGo {
|
||||
public String courtain, sadChild, happyChild, arrow, purpleGuy;
|
||||
public String getReady, go, hurray;
|
||||
public FrameRange foxyAnim, confetti;
|
||||
}
|
||||
public static class Tcttc {
|
||||
public String deadChild, car, label;
|
||||
public FrameRange cakeFreddy, childCrying, child;
|
||||
}
|
||||
public static class FrameRange {
|
||||
public String base;
|
||||
public int start, end;
|
||||
}
|
||||
}
|
||||
|
||||
// Give Gifts Give Life
|
||||
public Texture puppet, soul, gift, giveGifts, giveLife;
|
||||
public Texture chicaMask, fredMask, bonnieMask, foxyMask;
|
||||
|
||||
// Save Them
|
||||
public Texture table, desk, scenery, dust, floor1, floor2, wasd;
|
||||
public Texture suit1, suit2, suit3, suitGr1, suitGr2, sadSoul, blood, bigGift;
|
||||
public Texture[] freddyWalking, endoAnim;
|
||||
|
||||
// Foxy Go Go Go
|
||||
public Texture courtain, sadChild, happyChild, arrow, purpleGuy;
|
||||
public Texture getReady, go, hurray;
|
||||
public Texture[] foxyAnim, confetti;
|
||||
|
||||
// Take Cake to the Children
|
||||
public Texture deadChild, car, label;
|
||||
public Texture[] cakeFreddy, childCrying, child;
|
||||
|
||||
// Misc
|
||||
public Texture[] screenshots, rare, animatronics;
|
||||
|
||||
@Override
|
||||
public void queue(AssetManager manager, Data d) {
|
||||
Data.GiveGifts g = d.giveGifts;
|
||||
manager.load(g.puppet, Texture.class); manager.load(g.soul, Texture.class);
|
||||
manager.load(g.gift, Texture.class); manager.load(g.giveGifts, Texture.class);
|
||||
manager.load(g.giveLife, Texture.class); manager.load(g.chicaMask, Texture.class);
|
||||
manager.load(g.fredMask, Texture.class); manager.load(g.bonnieMask, Texture.class);
|
||||
manager.load(g.foxyMask, Texture.class);
|
||||
|
||||
Data.SaveThem s = d.saveThem;
|
||||
manager.load(s.table, Texture.class); manager.load(s.desk, Texture.class);
|
||||
manager.load(s.scenery, Texture.class); manager.load(s.dust, Texture.class);
|
||||
manager.load(s.floor1, Texture.class); manager.load(s.floor2, Texture.class);
|
||||
manager.load(s.wasd, Texture.class); manager.load(s.suit1, Texture.class);
|
||||
manager.load(s.suit2, Texture.class); manager.load(s.suit3, Texture.class);
|
||||
manager.load(s.suitGr1, Texture.class); manager.load(s.suitGr2, Texture.class);
|
||||
manager.load(s.sadSoul, Texture.class); manager.load(s.blood, Texture.class);
|
||||
manager.load(s.bigGift, Texture.class);
|
||||
queueRange(manager, s.freddyWalking);
|
||||
queueRange(manager, s.endoAnim);
|
||||
|
||||
Data.FoxyGoGo f = d.foxyGoGo;
|
||||
manager.load(f.courtain, Texture.class); manager.load(f.sadChild, Texture.class);
|
||||
manager.load(f.happyChild, Texture.class); manager.load(f.arrow, Texture.class);
|
||||
manager.load(f.purpleGuy, Texture.class); manager.load(f.getReady, Texture.class);
|
||||
manager.load(f.go, Texture.class); manager.load(f.hurray, Texture.class);
|
||||
queueRange(manager, f.foxyAnim);
|
||||
queueRange(manager, f.confetti);
|
||||
|
||||
Data.Tcttc t = d.tcttc;
|
||||
manager.load(t.deadChild, Texture.class);
|
||||
manager.load(t.car, Texture.class);
|
||||
manager.load(t.label, Texture.class);
|
||||
queueRange(manager, t.cakeFreddy);
|
||||
queueRange(manager, t.childCrying);
|
||||
queueRange(manager, t.child);
|
||||
|
||||
queueRange(manager, d.screenshots);
|
||||
queueRange(manager, d.rare);
|
||||
queueRange(manager, d.animatronics);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fetch(AssetManager manager, Data d) {
|
||||
Data.GiveGifts g = d.giveGifts;
|
||||
puppet = manager.get(g.puppet, Texture.class);
|
||||
soul = manager.get(g.soul, Texture.class);
|
||||
gift = manager.get(g.gift, Texture.class);
|
||||
giveGifts = manager.get(g.giveGifts, Texture.class);
|
||||
giveLife = manager.get(g.giveLife, Texture.class);
|
||||
chicaMask = manager.get(g.chicaMask, Texture.class);
|
||||
fredMask = manager.get(g.fredMask, Texture.class);
|
||||
bonnieMask = manager.get(g.bonnieMask, Texture.class);
|
||||
foxyMask = manager.get(g.foxyMask, Texture.class);
|
||||
|
||||
Data.SaveThem s = d.saveThem;
|
||||
table = manager.get(s.table, Texture.class); desk = manager.get(s.desk, Texture.class);
|
||||
scenery = manager.get(s.scenery, Texture.class); dust = manager.get(s.dust, Texture.class);
|
||||
floor1 = manager.get(s.floor1, Texture.class); floor2 = manager.get(s.floor2, Texture.class);
|
||||
wasd = manager.get(s.wasd, Texture.class); suit1 = manager.get(s.suit1, Texture.class);
|
||||
suit2 = manager.get(s.suit2, Texture.class); suit3 = manager.get(s.suit3, Texture.class);
|
||||
suitGr1 = manager.get(s.suitGr1, Texture.class); suitGr2 = manager.get(s.suitGr2, Texture.class);
|
||||
sadSoul = manager.get(s.sadSoul, Texture.class); blood = manager.get(s.blood, Texture.class);
|
||||
bigGift = manager.get(s.bigGift, Texture.class);
|
||||
freddyWalking = fetchRange(manager, s.freddyWalking);
|
||||
endoAnim = fetchRange(manager, s.endoAnim);
|
||||
|
||||
Data.FoxyGoGo f = d.foxyGoGo;
|
||||
courtain = manager.get(f.courtain, Texture.class);
|
||||
sadChild = manager.get(f.sadChild, Texture.class);
|
||||
happyChild = manager.get(f.happyChild, Texture.class);
|
||||
arrow = manager.get(f.arrow, Texture.class);
|
||||
purpleGuy = manager.get(f.purpleGuy, Texture.class);
|
||||
getReady = manager.get(f.getReady, Texture.class);
|
||||
go = manager.get(f.go, Texture.class);
|
||||
hurray = manager.get(f.hurray, Texture.class);
|
||||
foxyAnim = fetchRange(manager, f.foxyAnim);
|
||||
confetti = fetchRange(manager, f.confetti);
|
||||
|
||||
Data.Tcttc t = d.tcttc;
|
||||
deadChild = manager.get(t.deadChild, Texture.class);
|
||||
car = manager.get(t.car, Texture.class);
|
||||
label = manager.get(t.label, Texture.class);
|
||||
cakeFreddy = fetchRange(manager, t.cakeFreddy);
|
||||
childCrying = fetchRange(manager, t.childCrying);
|
||||
child = fetchRange(manager, t.child);
|
||||
|
||||
screenshots = fetchRange(manager, d.screenshots);
|
||||
rare = fetchRange(manager, d.rare);
|
||||
animatronics = fetchRange(manager, d.animatronics);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispose(AssetManager manager, Data d) {
|
||||
Data.GiveGifts g = d.giveGifts;
|
||||
manager.unload(g.puppet); manager.unload(g.soul); manager.unload(g.gift);
|
||||
manager.unload(g.giveGifts); manager.unload(g.giveLife);
|
||||
manager.unload(g.chicaMask); manager.unload(g.fredMask);
|
||||
manager.unload(g.bonnieMask); manager.unload(g.foxyMask);
|
||||
|
||||
Data.SaveThem s = d.saveThem;
|
||||
manager.unload(s.table); manager.unload(s.desk); manager.unload(s.scenery);
|
||||
manager.unload(s.dust); manager.unload(s.floor1); manager.unload(s.floor2);
|
||||
manager.unload(s.wasd); manager.unload(s.suit1); manager.unload(s.suit2);
|
||||
manager.unload(s.suit3); manager.unload(s.suitGr1); manager.unload(s.suitGr2);
|
||||
manager.unload(s.sadSoul); manager.unload(s.blood); manager.unload(s.bigGift);
|
||||
disposeRange(manager, s.freddyWalking);
|
||||
disposeRange(manager, s.endoAnim);
|
||||
|
||||
Data.FoxyGoGo f = d.foxyGoGo;
|
||||
manager.unload(f.courtain); manager.unload(f.sadChild); manager.unload(f.happyChild);
|
||||
manager.unload(f.arrow); manager.unload(f.purpleGuy); manager.unload(f.getReady);
|
||||
manager.unload(f.go); manager.unload(f.hurray);
|
||||
disposeRange(manager, f.foxyAnim);
|
||||
disposeRange(manager, f.confetti);
|
||||
|
||||
Data.Tcttc t = d.tcttc;
|
||||
manager.unload(t.deadChild); manager.unload(t.car); manager.unload(t.label);
|
||||
disposeRange(manager, t.cakeFreddy);
|
||||
disposeRange(manager, t.childCrying);
|
||||
disposeRange(manager, t.child);
|
||||
|
||||
disposeRange(manager, d.screenshots);
|
||||
disposeRange(manager, d.rare);
|
||||
disposeRange(manager, d.animatronics);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isLoaded(AssetManager manager, Data d) {
|
||||
Data.GiveGifts g = d.giveGifts;
|
||||
if (!manager.isLoaded(g.puppet) || !manager.isLoaded(g.soul) ) return false;
|
||||
if (!manager.isLoaded(g.gift) || !manager.isLoaded(g.giveGifts) ) return false;
|
||||
if (!manager.isLoaded(g.giveLife)|| !manager.isLoaded(g.chicaMask)) return false;
|
||||
if (!manager.isLoaded(g.fredMask)||!manager.isLoaded(g.bonnieMask)) return false;
|
||||
if (!manager.isLoaded(g.foxyMask)) return false;
|
||||
|
||||
Data.SaveThem s = d.saveThem;
|
||||
if (!manager.isLoaded(s.table) || !manager.isLoaded(s.desk) ) return false;
|
||||
if (!manager.isLoaded(s.scenery)|| !manager.isLoaded(s.dust) ) return false;
|
||||
if (!manager.isLoaded(s.floor1) || !manager.isLoaded(s.floor2)) return false;
|
||||
if (!manager.isLoaded(s.wasd) || !manager.isLoaded(s.suit1) ) return false;
|
||||
if (!manager.isLoaded(s.suit2) || !manager.isLoaded(s.suit3) ) return false;
|
||||
if (!manager.isLoaded(s.suitGr1)|| !manager.isLoaded(s.suitGr2)) return false;
|
||||
if (!manager.isLoaded(s.sadSoul)|| !manager.isLoaded(s.blood) ) return false;
|
||||
if (!manager.isLoaded(s.bigGift)) return false;
|
||||
if (!isRangeLoaded(manager, s.freddyWalking)) return false;
|
||||
if (!isRangeLoaded(manager, s.endoAnim)) return false;
|
||||
|
||||
Data.FoxyGoGo f = d.foxyGoGo;
|
||||
if (!manager.isLoaded(f.courtain) || !manager.isLoaded(f.sadChild) ) return false;
|
||||
if (!manager.isLoaded(f.happyChild)|| !manager.isLoaded(f.arrow) ) return false;
|
||||
if (!manager.isLoaded(f.purpleGuy) || !manager.isLoaded(f.getReady) ) return false;
|
||||
if (!manager.isLoaded(f.go) || !manager.isLoaded(f.hurray) ) return false;
|
||||
if (!isRangeLoaded(manager, f.foxyAnim)) return false;
|
||||
if (!isRangeLoaded(manager, f.confetti)) return false;
|
||||
|
||||
Data.Tcttc t = d.tcttc;
|
||||
if (!manager.isLoaded(t.deadChild) || !manager.isLoaded(t.car) || !manager.isLoaded(t.label)) return false;
|
||||
if (!isRangeLoaded(manager, t.cakeFreddy)) return false;
|
||||
if (!isRangeLoaded(manager, t.childCrying)) return false;
|
||||
if (!isRangeLoaded(manager, t.child)) return false;
|
||||
|
||||
return isRangeLoaded(manager, d.screenshots)
|
||||
&& isRangeLoaded(manager, d.rare)
|
||||
&& isRangeLoaded(manager, d.animatronics);
|
||||
}
|
||||
|
||||
private void queueRange(AssetManager m, Data.FrameRange r) {
|
||||
for (int i = r.start; i <= r.end; i++) m.load(r.base + i + ".png", Texture.class);
|
||||
}
|
||||
|
||||
private Texture[] fetchRange(AssetManager m, Data.FrameRange r) {
|
||||
Texture[] arr = new Texture[r.end - r.start + 1];
|
||||
for (int i = r.start; i <= r.end; i++)
|
||||
arr[i - r.start] = m.get(r.base + i + ".png", Texture.class);
|
||||
return arr;
|
||||
}
|
||||
|
||||
private void disposeRange(AssetManager m, Data.FrameRange r) {
|
||||
for (int i = r.start; i <= r.end; i++) m.unload(r.base + i + ".png");
|
||||
}
|
||||
|
||||
private boolean isRangeLoaded(AssetManager m, Data.FrameRange r) {
|
||||
for (int i = r.start; i <= r.end; i++)
|
||||
if (!m.isLoaded(r.base + i + ".png")) return false;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
package io.github.eldek0.asset.group;
|
||||
|
||||
import com.badlogic.gdx.assets.AssetManager;
|
||||
import com.badlogic.gdx.graphics.Texture;
|
||||
|
||||
public class MonitorAssets implements AssetBundle<MonitorAssets.Data> {
|
||||
|
||||
// ---- JSON data class ----
|
||||
public static class Data {
|
||||
public String button;
|
||||
public FrameRange sprites;
|
||||
|
||||
public static class FrameRange {
|
||||
public String base;
|
||||
public int start, end;
|
||||
}
|
||||
}
|
||||
|
||||
// ---- Typed fields ----
|
||||
public Texture button;
|
||||
public Texture[] sprites;
|
||||
|
||||
// ---- AssetBundle ----
|
||||
|
||||
@Override
|
||||
public void queue(AssetManager manager, Data data) {
|
||||
manager.load(data.button, Texture.class);
|
||||
for (int i = data.sprites.start; i <= data.sprites.end; i++)
|
||||
manager.load(data.sprites.base + i + ".png", Texture.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fetch(AssetManager manager, Data data) {
|
||||
button = manager.get(data.button, Texture.class);
|
||||
sprites = fetchRange(manager, data.sprites);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispose(AssetManager manager, Data data) {
|
||||
manager.unload(data.button);
|
||||
for (int i = data.sprites.start; i <= data.sprites.end; i++)
|
||||
manager.unload(data.sprites.base + i + ".png");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isLoaded(AssetManager manager, Data data) {
|
||||
if (!manager.isLoaded(data.button)) return false;
|
||||
for (int i = data.sprites.start; i <= data.sprites.end; i++)
|
||||
if (!manager.isLoaded(data.sprites.base + i + ".png")) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
// ---- Helpers ----
|
||||
|
||||
private Texture[] fetchRange(AssetManager m, Data.FrameRange r) {
|
||||
Texture[] arr = new Texture[r.end - r.start + 1];
|
||||
for (int i = r.start; i <= r.end; i++)
|
||||
arr[i - r.start] = m.get(r.base + i + ".png", Texture.class);
|
||||
return arr;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,103 @@
|
||||
package io.github.eldek0.asset.group;
|
||||
|
||||
import com.badlogic.gdx.assets.AssetManager;
|
||||
import com.badlogic.gdx.graphics.Texture;
|
||||
|
||||
public class NumbersAssets implements AssetBundle<NumbersAssets.Data> {
|
||||
|
||||
public static class Data {
|
||||
public String dots, nightLabel, amLabel, bigAm;
|
||||
public FrameRange medium, small, big, medium2, small2;
|
||||
public FrameRange fiveAnimation, sixAnimation;
|
||||
|
||||
public static class FrameRange {
|
||||
public String base;
|
||||
public int start, end;
|
||||
}
|
||||
}
|
||||
|
||||
public Texture dots, nightLabel, amLabel, bigAm;
|
||||
public Texture[] medium, small, big, medium2, small2;
|
||||
public Texture[] fiveAnimation, sixAnimation;
|
||||
|
||||
@Override
|
||||
public void queue(AssetManager manager, Data d) {
|
||||
manager.load(d.dots, Texture.class);
|
||||
manager.load(d.nightLabel, Texture.class);
|
||||
manager.load(d.amLabel, Texture.class);
|
||||
manager.load(d.bigAm, Texture.class);
|
||||
queueRange(manager, d.medium);
|
||||
queueRange(manager, d.small);
|
||||
queueRange(manager, d.big);
|
||||
queueRange(manager, d.medium2);
|
||||
queueRange(manager, d.small2);
|
||||
queueRange(manager, d.fiveAnimation);
|
||||
queueRange(manager, d.sixAnimation);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fetch(AssetManager manager, Data d) {
|
||||
dots = manager.get(d.dots, Texture.class);
|
||||
nightLabel = manager.get(d.nightLabel, Texture.class);
|
||||
amLabel = manager.get(d.amLabel, Texture.class);
|
||||
bigAm = manager.get(d.bigAm, Texture.class);
|
||||
medium = fetchRange(manager, d.medium);
|
||||
small = fetchRange(manager, d.small);
|
||||
big = fetchRange(manager, d.big);
|
||||
medium2 = fetchRange(manager, d.medium2);
|
||||
small2 = fetchRange(manager, d.small2);
|
||||
fiveAnimation = fetchRange(manager, d.fiveAnimation);
|
||||
sixAnimation = fetchRange(manager, d.sixAnimation);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispose(AssetManager manager, Data d) {
|
||||
manager.unload(d.dots);
|
||||
manager.unload(d.nightLabel);
|
||||
manager.unload(d.amLabel);
|
||||
manager.unload(d.bigAm);
|
||||
disposeRange(manager, d.medium);
|
||||
disposeRange(manager, d.small);
|
||||
disposeRange(manager, d.big);
|
||||
disposeRange(manager, d.medium2);
|
||||
disposeRange(manager, d.small2);
|
||||
disposeRange(manager, d.fiveAnimation);
|
||||
disposeRange(manager, d.sixAnimation);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isLoaded(AssetManager manager, Data d) {
|
||||
return manager.isLoaded(d.dots)
|
||||
&& manager.isLoaded(d.nightLabel)
|
||||
&& manager.isLoaded(d.amLabel)
|
||||
&& manager.isLoaded(d.bigAm)
|
||||
&& isRangeLoaded(manager, d.medium)
|
||||
&& isRangeLoaded(manager, d.small)
|
||||
&& isRangeLoaded(manager, d.big)
|
||||
&& isRangeLoaded(manager, d.medium2)
|
||||
&& isRangeLoaded(manager, d.small2)
|
||||
&& isRangeLoaded(manager, d.fiveAnimation)
|
||||
&& isRangeLoaded(manager, d.sixAnimation);
|
||||
}
|
||||
|
||||
private void queueRange(AssetManager m, Data.FrameRange r) {
|
||||
for (int i = r.start; i <= r.end; i++) m.load(r.base + i + ".png", Texture.class);
|
||||
}
|
||||
|
||||
private Texture[] fetchRange(AssetManager m, Data.FrameRange r) {
|
||||
Texture[] arr = new Texture[r.end - r.start + 1];
|
||||
for (int i = r.start; i <= r.end; i++)
|
||||
arr[i - r.start] = m.get(r.base + i + ".png", Texture.class);
|
||||
return arr;
|
||||
}
|
||||
|
||||
private void disposeRange(AssetManager m, Data.FrameRange r) {
|
||||
for (int i = r.start; i <= r.end; i++) m.unload(r.base + i + ".png");
|
||||
}
|
||||
|
||||
private boolean isRangeLoaded(AssetManager m, Data.FrameRange r) {
|
||||
for (int i = r.start; i <= r.end; i++)
|
||||
if (!m.isLoaded(r.base + i + ".png")) return false;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,178 @@
|
||||
package io.github.eldek0.asset.group;
|
||||
|
||||
import com.badlogic.gdx.assets.AssetManager;
|
||||
import com.badlogic.gdx.graphics.Texture;
|
||||
|
||||
public class OfficeAssets implements AssetBundle<OfficeAssets.Data> {
|
||||
|
||||
// ---- JSON data class ----
|
||||
public static class Data {
|
||||
public String bg;
|
||||
public VentButtons ventButtons;
|
||||
public String telephoneMute;
|
||||
public String ctrlAdv;
|
||||
public EasterEggs easterEggs;
|
||||
public Ranges ranges;
|
||||
|
||||
public static class VentButtons {
|
||||
public String rightOff, rightOn, leftOff, leftOn;
|
||||
}
|
||||
public static class EasterEggs {
|
||||
public String balloonGirl, dwarf, plastic, bunny, goldenFreddy, mangle, balloonBoy;
|
||||
}
|
||||
public static class Ranges {
|
||||
public FrameRange inside, hallway, rightVents, leftVents, desk, warnBig, warnSmall;
|
||||
}
|
||||
public static class FrameRange {
|
||||
public String base;
|
||||
public int start, end;
|
||||
}
|
||||
}
|
||||
|
||||
// ---- Typed fields ----
|
||||
public Texture bg;
|
||||
public Texture rightVentButtonOff, rightVentButtonOn;
|
||||
public Texture leftVentButtonOff, leftVentButtonOn;
|
||||
public Texture telephoneMute, ctrlAdv;
|
||||
public Texture balloonGirl, dwarf, plastic, bunny, goldenFreddy, mangle, balloonBoy;
|
||||
public Texture[] inside, hallway, rightVents, leftVents, desk, warnBig, warnSmall;
|
||||
|
||||
// ---- AssetBundle ----
|
||||
|
||||
@Override
|
||||
public void queue(AssetManager manager, Data d) {
|
||||
manager.load(d.bg, Texture.class);
|
||||
manager.load(d.telephoneMute, Texture.class);
|
||||
manager.load(d.ctrlAdv, Texture.class);
|
||||
|
||||
manager.load(d.ventButtons.rightOff, Texture.class);
|
||||
manager.load(d.ventButtons.rightOn, Texture.class);
|
||||
manager.load(d.ventButtons.leftOff, Texture.class);
|
||||
manager.load(d.ventButtons.leftOn, Texture.class);
|
||||
|
||||
manager.load(d.easterEggs.balloonGirl, Texture.class);
|
||||
manager.load(d.easterEggs.dwarf, Texture.class);
|
||||
manager.load(d.easterEggs.plastic, Texture.class);
|
||||
manager.load(d.easterEggs.bunny, Texture.class);
|
||||
manager.load(d.easterEggs.goldenFreddy, Texture.class);
|
||||
manager.load(d.easterEggs.mangle, Texture.class);
|
||||
manager.load(d.easterEggs.balloonBoy, Texture.class);
|
||||
|
||||
queueRange(manager, d.ranges.inside);
|
||||
queueRange(manager, d.ranges.hallway);
|
||||
queueRange(manager, d.ranges.rightVents);
|
||||
queueRange(manager, d.ranges.leftVents);
|
||||
queueRange(manager, d.ranges.desk);
|
||||
queueRange(manager, d.ranges.warnBig);
|
||||
queueRange(manager, d.ranges.warnSmall);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fetch(AssetManager manager, Data d) {
|
||||
bg = manager.get(d.bg, Texture.class);
|
||||
telephoneMute = manager.get(d.telephoneMute, Texture.class);
|
||||
ctrlAdv = manager.get(d.ctrlAdv, Texture.class);
|
||||
|
||||
rightVentButtonOff = manager.get(d.ventButtons.rightOff, Texture.class);
|
||||
rightVentButtonOn = manager.get(d.ventButtons.rightOn, Texture.class);
|
||||
leftVentButtonOff = manager.get(d.ventButtons.leftOff, Texture.class);
|
||||
leftVentButtonOn = manager.get(d.ventButtons.leftOn, Texture.class);
|
||||
|
||||
balloonGirl = manager.get(d.easterEggs.balloonGirl, Texture.class);
|
||||
dwarf = manager.get(d.easterEggs.dwarf, Texture.class);
|
||||
plastic = manager.get(d.easterEggs.plastic, Texture.class);
|
||||
bunny = manager.get(d.easterEggs.bunny, Texture.class);
|
||||
goldenFreddy = manager.get(d.easterEggs.goldenFreddy, Texture.class);
|
||||
mangle = manager.get(d.easterEggs.mangle, Texture.class);
|
||||
balloonBoy = manager.get(d.easterEggs.balloonBoy, Texture.class);
|
||||
|
||||
inside = fetchRange(manager, d.ranges.inside);
|
||||
hallway = fetchRange(manager, d.ranges.hallway);
|
||||
rightVents = fetchRange(manager, d.ranges.rightVents);
|
||||
leftVents = fetchRange(manager, d.ranges.leftVents);
|
||||
desk = fetchRange(manager, d.ranges.desk);
|
||||
warnBig = fetchRange(manager, d.ranges.warnBig);
|
||||
warnSmall = fetchRange(manager, d.ranges.warnSmall);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispose(AssetManager manager, Data d) {
|
||||
manager.unload(d.bg);
|
||||
manager.unload(d.telephoneMute);
|
||||
manager.unload(d.ctrlAdv);
|
||||
|
||||
manager.unload(d.ventButtons.rightOff);
|
||||
manager.unload(d.ventButtons.rightOn);
|
||||
manager.unload(d.ventButtons.leftOff);
|
||||
manager.unload(d.ventButtons.leftOn);
|
||||
|
||||
manager.unload(d.easterEggs.balloonGirl);
|
||||
manager.unload(d.easterEggs.dwarf);
|
||||
manager.unload(d.easterEggs.plastic);
|
||||
manager.unload(d.easterEggs.bunny);
|
||||
manager.unload(d.easterEggs.goldenFreddy);
|
||||
manager.unload(d.easterEggs.mangle);
|
||||
manager.unload(d.easterEggs.balloonBoy);
|
||||
|
||||
disposeRange(manager, d.ranges.inside);
|
||||
disposeRange(manager, d.ranges.hallway);
|
||||
disposeRange(manager, d.ranges.rightVents);
|
||||
disposeRange(manager, d.ranges.leftVents);
|
||||
disposeRange(manager, d.ranges.desk);
|
||||
disposeRange(manager, d.ranges.warnBig);
|
||||
disposeRange(manager, d.ranges.warnSmall);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isLoaded(AssetManager manager, Data d) {
|
||||
if (!manager.isLoaded(d.bg)) return false;
|
||||
if (!manager.isLoaded(d.telephoneMute)) return false;
|
||||
if (!manager.isLoaded(d.ctrlAdv)) return false;
|
||||
|
||||
if (!manager.isLoaded(d.ventButtons.rightOff)) return false;
|
||||
if (!manager.isLoaded(d.ventButtons.rightOn)) return false;
|
||||
if (!manager.isLoaded(d.ventButtons.leftOff)) return false;
|
||||
if (!manager.isLoaded(d.ventButtons.leftOn)) return false;
|
||||
|
||||
if (!manager.isLoaded(d.easterEggs.balloonGirl)) return false;
|
||||
if (!manager.isLoaded(d.easterEggs.dwarf)) return false;
|
||||
if (!manager.isLoaded(d.easterEggs.plastic)) return false;
|
||||
if (!manager.isLoaded(d.easterEggs.bunny)) return false;
|
||||
if (!manager.isLoaded(d.easterEggs.goldenFreddy)) return false;
|
||||
if (!manager.isLoaded(d.easterEggs.mangle)) return false;
|
||||
if (!manager.isLoaded(d.easterEggs.balloonBoy)) return false;
|
||||
|
||||
return isRangeLoaded(manager, d.ranges.inside)
|
||||
&& isRangeLoaded(manager, d.ranges.hallway)
|
||||
&& isRangeLoaded(manager, d.ranges.rightVents)
|
||||
&& isRangeLoaded(manager, d.ranges.leftVents)
|
||||
&& isRangeLoaded(manager, d.ranges.desk)
|
||||
&& isRangeLoaded(manager, d.ranges.warnBig)
|
||||
&& isRangeLoaded(manager, d.ranges.warnSmall);
|
||||
}
|
||||
|
||||
// ---- Range helpers ----
|
||||
|
||||
private void queueRange(AssetManager m, Data.FrameRange r) {
|
||||
for (int i = r.start; i <= r.end; i++)
|
||||
m.load(r.base + i + ".png", Texture.class);
|
||||
}
|
||||
|
||||
private Texture[] fetchRange(AssetManager m, Data.FrameRange r) {
|
||||
Texture[] arr = new Texture[r.end - r.start + 1];
|
||||
for (int i = r.start; i <= r.end; i++)
|
||||
arr[i - r.start] = m.get(r.base + i + ".png", Texture.class);
|
||||
return arr;
|
||||
}
|
||||
|
||||
private void disposeRange(AssetManager m, Data.FrameRange r) {
|
||||
for (int i = r.start; i <= r.end; i++)
|
||||
m.unload(r.base + i + ".png");
|
||||
}
|
||||
|
||||
private boolean isRangeLoaded(AssetManager m, Data.FrameRange r) {
|
||||
for (int i = r.start; i <= r.end; i++)
|
||||
if (!m.isLoaded(r.base + i + ".png")) return false;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -54,7 +54,7 @@ public class Camera {
|
||||
}
|
||||
|
||||
private void initButtonScreenRects(){
|
||||
Texture btnUnsel = assets.getTexture(CAM_LABELS_PATH + "13.png");
|
||||
Texture btnUnsel = assets.cameras.roomButtonUnselected;
|
||||
|
||||
for (int i = 0; i < CAM_COUNT; i++) {
|
||||
float[] btnPos = BTN_POS[i];
|
||||
@@ -98,40 +98,42 @@ public class Camera {
|
||||
float xOff = camerasXPosition[idx];
|
||||
|
||||
if (!occupiedCamera[idx]) {
|
||||
Texture frame = getDefaultFrame(inCameraRoom);
|
||||
Texture frame = getFrame(inCameraRoom, 0);
|
||||
if (frame != null) {
|
||||
batch.draw(frame, xOff, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private Texture getDefaultFrame(int room) {
|
||||
return switch (room) {
|
||||
case 1 -> assets.getTexture(CAM_LOC_PATH + "PartyRoom1/0.png");
|
||||
case 2 -> assets.getTexture(CAM_LOC_PATH + "PartyRoom2/0.png");
|
||||
case 3 -> assets.getTexture(CAM_LOC_PATH + "PartyRoom3/0.png");
|
||||
case 4 -> assets.getTexture(CAM_LOC_PATH + "PartyRoom4/0.png");
|
||||
case 5 -> assets.getTexture(CAM_LOC_PATH + "LeftAirVent/0.png");
|
||||
case 6 -> assets.getTexture(CAM_LOC_PATH + "RightAirVent/0.png");
|
||||
case 7 -> assets.getTexture(CAM_LOC_PATH + "MainHall/0.png");
|
||||
case 8 -> assets.getTexture(CAM_LOC_PATH + "PartsnService/0.png");
|
||||
case 9 -> assets.getTexture(CAM_LOC_PATH + "ShowStage/0.png");
|
||||
case 10 -> assets.getTexture(CAM_LOC_PATH + "GameArea/2.png");
|
||||
case 11 -> assets.getTexture(CAM_LOC_PATH + "PrizeCorner/0.png");
|
||||
case 12 -> assets.getTexture(CAM_LOC_PATH + "KidsCove/0.png");
|
||||
private Texture getFrame(int room, int index) {
|
||||
Texture[] textures = switch (room) {
|
||||
case 1 -> assets.cameras.getLocationFrames("PartyRoom1");
|
||||
case 2 -> assets.cameras.getLocationFrames("PartyRoom2");
|
||||
case 3 -> assets.cameras.getLocationFrames("PartyRoom3");
|
||||
case 4 -> assets.cameras.getLocationFrames("PartyRoom4");
|
||||
case 5 -> assets.cameras.getLocationFrames("LeftAirVent");
|
||||
case 6 -> assets.cameras.getLocationFrames("RightAirVent");
|
||||
case 7 -> assets.cameras.getLocationFrames("MainHall");
|
||||
case 8 -> assets.cameras.getLocationFrames("PartsnService");
|
||||
case 9 -> assets.cameras.getLocationFrames("ShowStage");
|
||||
case 10 -> assets.cameras.getLocationFrames("GameArea");
|
||||
case 11 -> assets.cameras.getLocationFrames("PrizeCorner");
|
||||
case 12 -> assets.cameras.getLocationFrames("KidsCove");
|
||||
default -> null;
|
||||
};
|
||||
assert textures != null;
|
||||
return textures[index];
|
||||
}
|
||||
|
||||
public void renderUI(SpriteBatch batch) {
|
||||
if (!gameScene.hud.isInsideCamera()) {return;}
|
||||
|
||||
// Border overlay
|
||||
Texture border = assets.getTexture(CAM_UTILS_PATH + "Border.png");
|
||||
Texture border = assets.cameras.borderline;
|
||||
batch.draw(border, 0, 0);
|
||||
|
||||
// Map
|
||||
Texture map = assets.getTexture(CAM_UTILS_PATH + "Map.png");
|
||||
Texture map = assets.cameras.map;
|
||||
batch.draw(map, 550, App.SCREEN_HEIGHT - 310 - map.getHeight());
|
||||
|
||||
// Room label
|
||||
@@ -144,13 +146,13 @@ public class Camera {
|
||||
|
||||
// REC sprite
|
||||
if (recVisible) {
|
||||
Texture rec = assets.getTexture(CAM_UTILS_PATH + "1.png");
|
||||
Texture rec = assets.cameras.recordSprite;
|
||||
batch.draw(rec, 40, App.SCREEN_HEIGHT - 40 - rec.getHeight());
|
||||
}
|
||||
|
||||
// Signal interrupted banner
|
||||
if (occupiedCamera[inCameraRoom - 1]) {
|
||||
Texture sig = assets.getTexture(CAM_UTILS_PATH + "2.png");
|
||||
Texture sig = assets.cameras.signalInterrupted;
|
||||
float sx = Gdx.graphics.getWidth() / 2f - sig.getWidth() / 2f;
|
||||
batch.draw(sig, sx, App.SCREEN_HEIGHT - 80 - sig.getHeight());
|
||||
}
|
||||
@@ -164,8 +166,8 @@ public class Camera {
|
||||
}
|
||||
|
||||
private void drawCameraButtons(SpriteBatch batch) {
|
||||
Texture btnUnsel = assets.getTexture(CAM_LABELS_PATH + "13.png");
|
||||
Texture btnSel = assets.getTexture(CAM_LABELS_PATH + "14.png");
|
||||
Texture btnUnsel = assets.cameras.roomButtonUnselected;
|
||||
Texture btnSel = assets.cameras.roomButtonSelected;
|
||||
|
||||
for (int i = 0; i < CAM_COUNT; i++) {
|
||||
Texture btn = (i + 1 == inCameraRoom) ? btnSel : btnUnsel;
|
||||
@@ -176,25 +178,25 @@ public class Camera {
|
||||
float worldY = App.SCREEN_HEIGHT - pyY - btnUnsel.getHeight();
|
||||
batch.draw(btn, pyX, worldY);
|
||||
|
||||
Texture lbl = assets.getTexture(CAM_LABELS_PATH + (i + 1) + ".png");
|
||||
Texture lbl = assets.cameras.roomLabels[i];
|
||||
batch.draw(lbl, pyX + 5, worldY + 7);
|
||||
}
|
||||
}
|
||||
|
||||
private Texture getRoomLabel(int room) {
|
||||
return switch (room) {
|
||||
case 1 -> assets.getTexture(CAM_LOC_PATH + "PartyRoom1/label.png");
|
||||
case 2 -> assets.getTexture(CAM_LOC_PATH + "PartyRoom2/label.png");
|
||||
case 3 -> assets.getTexture(CAM_LOC_PATH + "PartyRoom3/label.png");
|
||||
case 4 -> assets.getTexture(CAM_LOC_PATH + "PartyRoom4/label.png");
|
||||
case 5 -> assets.getTexture(CAM_LOC_PATH + "LeftAirVent/label.png");
|
||||
case 6 -> assets.getTexture(CAM_LOC_PATH + "RightAirVent/label.png");
|
||||
case 7 -> assets.getTexture(CAM_LOC_PATH + "MainHall/label.png");
|
||||
case 8 -> assets.getTexture(CAM_LOC_PATH + "PartsnService/label.png");
|
||||
case 9 -> assets.getTexture(CAM_LOC_PATH + "ShowStage/label.png");
|
||||
case 10 -> assets.getTexture(CAM_LOC_PATH + "GameArea/label.png");
|
||||
case 11 -> assets.getTexture(CAM_LOC_PATH + "PrizeCorner/label.png");
|
||||
case 12 -> assets.getTexture(CAM_LOC_PATH + "KidsCove/label.png");
|
||||
case 1 -> assets.cameras.getLocationLabel("PartyRoom1/label.png");
|
||||
case 2 -> assets.cameras.getLocationLabel("PartyRoom2/label.png");
|
||||
case 3 -> assets.cameras.getLocationLabel("PartyRoom3/label.png");
|
||||
case 4 -> assets.cameras.getLocationLabel("PartyRoom4/label.png");
|
||||
case 5 -> assets.cameras.getLocationLabel("LeftAirVent/label.png");
|
||||
case 6 -> assets.cameras.getLocationLabel("RightAirVent/label.png");
|
||||
case 7 -> assets.cameras.getLocationLabel("MainHall/label.png");
|
||||
case 8 -> assets.cameras.getLocationLabel("PartsnService/label.png");
|
||||
case 9 -> assets.cameras.getLocationLabel("ShowStage/label.png");
|
||||
case 10 -> assets.cameras.getLocationLabel("GameArea/label.png");
|
||||
case 11 -> assets.cameras.getLocationLabel("PrizeCorner/label.png");
|
||||
case 12 -> assets.cameras.getLocationLabel("KidsCove/label.png");
|
||||
default -> null;
|
||||
};
|
||||
}
|
||||
@@ -202,7 +204,7 @@ public class Camera {
|
||||
private void updateCameraTimer(int index, float delta) {
|
||||
if (index < 6) return;
|
||||
|
||||
Texture sample = getDefaultFrame(index + 1);
|
||||
Texture sample = getFrame(index + 1, 0);
|
||||
if (sample == null) return;
|
||||
float maxOffset = -(sample.getWidth() - App.SCREEN_WIDTH);
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ public class Mask {
|
||||
public void render(SpriteBatch batch){
|
||||
inside = hud.isInsideMask();
|
||||
if (inside){
|
||||
batch.draw(Arrays.stream(App.assets.getFrames(GameAssetManager.MASK_PATH, 10, 10)).findFirst().get(),
|
||||
batch.draw(App.assets.mask.sprites[0],
|
||||
0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,19 +10,14 @@ import com.badlogic.gdx.math.Vector2;
|
||||
import io.github.eldek0.App;
|
||||
import io.github.eldek0.ui.HUD;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static io.github.eldek0.App.assets;
|
||||
import static io.github.eldek0.asset.GameAssetManager.*;
|
||||
|
||||
public class Office {
|
||||
private static final float SPEED = 600;
|
||||
public static final float MAX_POS_X = assets.getTexture(OFFICE_BG).getWidth() - App.SCREEN_WIDTH;
|
||||
public static final float MAX_POS_X = assets.office.bg.getWidth() - App.SCREEN_WIDTH;
|
||||
|
||||
private final HUD hud;
|
||||
private ShapeRenderer shapeRenderer;
|
||||
private final ShapeRenderer shapeRenderer;
|
||||
|
||||
private int movement = 0;
|
||||
private float positionX = 0;
|
||||
@@ -30,22 +25,10 @@ public class Office {
|
||||
private boolean leftLight = false;
|
||||
private boolean hallwayLight = false;
|
||||
|
||||
private List<Texture> rightVentFrames;
|
||||
private List<Texture> leftVentFrames;
|
||||
private List<Texture> hallwayFrames;
|
||||
|
||||
public Office(HUD hud) {
|
||||
this.hud = hud;
|
||||
this.shapeRenderer = new ShapeRenderer();
|
||||
|
||||
this.inputInitialization();
|
||||
|
||||
rightVentFrames = Arrays.stream(assets.getFrames(OFFICE_RVENTS_PATH, 0, 1))
|
||||
.collect(Collectors.toList());
|
||||
leftVentFrames = Arrays.stream(assets.getFrames(OFFICE_LVENTS_PATH, 0, 1))
|
||||
.collect(Collectors.toList());
|
||||
hallwayFrames = Arrays.stream(assets.getFrames(OFFICE_HALLWAY_PATH, 0, 1))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
private void handleMovement(int screenX, int screenY) {
|
||||
@@ -53,12 +36,13 @@ public class Office {
|
||||
|
||||
Vector2 worldPos = App.convertPosToWorldPos(new Vector2(screenX, screenY));
|
||||
float threshold = (float) App.SCREEN_WIDTH / 2 * 0.5f;
|
||||
|
||||
if (worldPos.x < threshold) movement = 1;
|
||||
else if (worldPos.x > App.SCREEN_WIDTH - threshold) movement = -1;
|
||||
else movement = 0;
|
||||
}
|
||||
|
||||
private void inputInitialization(){
|
||||
private void inputInitialization() {
|
||||
Gdx.input.setInputProcessor(new InputAdapter() {
|
||||
@Override
|
||||
public boolean mouseMoved(int screenX, int screenY) {
|
||||
@@ -102,14 +86,12 @@ public class Office {
|
||||
}
|
||||
|
||||
private Rectangle getRightBounds() {
|
||||
Texture t = assets.getTexture(RIGHT_VENT_BUTTON_OFF);
|
||||
float lightHeight = App.SCREEN_HEIGHT - 340 - t.getHeight();
|
||||
float lightHeight = App.SCREEN_HEIGHT - 340 - assets.office.rightVentButtonOff.getHeight();
|
||||
return new Rectangle(1440 + positionX, lightHeight, 80, 90);
|
||||
}
|
||||
|
||||
private Rectangle getLeftBounds() {
|
||||
Texture t = assets.getTexture(LEFT_VENT_BUTTON_OFF);
|
||||
float lightHeight = App.SCREEN_HEIGHT - 340 - t.getHeight();
|
||||
float lightHeight = App.SCREEN_HEIGHT - 340 - assets.office.leftVentButtonOff.getHeight();
|
||||
return new Rectangle(100 + positionX, lightHeight, 80, 90);
|
||||
}
|
||||
|
||||
@@ -118,20 +100,21 @@ public class Office {
|
||||
}
|
||||
|
||||
public void render(SpriteBatch batch) {
|
||||
this.renderBackground(batch);
|
||||
renderBackground(batch);
|
||||
|
||||
Texture lightTextureRight;
|
||||
if (rightLight){lightTextureRight = assets.getTexture(RIGHT_VENT_BUTTON_ON);}
|
||||
else {lightTextureRight = assets.getTexture(RIGHT_VENT_BUTTON_OFF);}
|
||||
Texture btnRight = rightLight ? assets.office.rightVentButtonOn : assets.office.rightVentButtonOff;
|
||||
Texture btnLeft = leftLight ? assets.office.leftVentButtonOn : assets.office.leftVentButtonOff;
|
||||
|
||||
Texture lightTextureLeft;
|
||||
if (leftLight){lightTextureLeft = assets.getTexture(LEFT_VENT_BUTTON_ON);}
|
||||
else {lightTextureLeft = assets.getTexture(LEFT_VENT_BUTTON_OFF);}
|
||||
float lightHeight = App.SCREEN_HEIGHT - 360 - btnRight.getHeight();
|
||||
batch.draw(btnRight, 1440 + positionX, lightHeight);
|
||||
batch.draw(btnLeft, 100 + positionX, lightHeight);
|
||||
}
|
||||
|
||||
float lightHeight = App.SCREEN_HEIGHT - 360 - lightTextureRight.getHeight();
|
||||
|
||||
batch.draw(lightTextureRight, 1440 + positionX, lightHeight);
|
||||
batch.draw(lightTextureLeft, 100 + positionX, lightHeight);
|
||||
private void renderBackground(SpriteBatch batch) {
|
||||
if (rightLight) batch.draw(assets.office.rightVents[0], positionX, 0);
|
||||
else if (leftLight) batch.draw(assets.office.leftVents[0], positionX, 0);
|
||||
else if (hallwayLight) batch.draw(assets.office.hallway[0], positionX, 0);
|
||||
else batch.draw(assets.office.bg, positionX, 0);
|
||||
}
|
||||
|
||||
public void renderHitboxes(ShapeRenderer shapeRenderer) {
|
||||
@@ -147,25 +130,6 @@ public class Office {
|
||||
shapeRenderer.rect(hallway.x, hallway.y, hallway.width, hallway.height);
|
||||
}
|
||||
|
||||
private void renderBackground(SpriteBatch batch) {
|
||||
if (rightLight) {
|
||||
batch.draw(rightVentFrames.get(0),
|
||||
positionX, 0);
|
||||
}
|
||||
else if (leftLight) {
|
||||
batch.draw(leftVentFrames.get(0),
|
||||
positionX, 0);
|
||||
}
|
||||
else if (hallwayLight) {
|
||||
batch.draw(hallwayFrames.get(0),
|
||||
positionX, 0);
|
||||
}
|
||||
else {
|
||||
batch.draw(assets.getTexture(OFFICE_BG), positionX, 0);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void update(float dt) {
|
||||
positionX += SPEED * movement * dt;
|
||||
if (-positionX < 0) positionX = 0;
|
||||
|
||||
@@ -8,10 +8,10 @@ import io.github.eldek0.asset.GameAssetManager;
|
||||
public class CameraButton extends Button {
|
||||
public CameraButton(float x, float y) {
|
||||
super(getButtonTexture(), x, y, new Rectangle(x + 10, 0, 480, getButtonTexture().getHeight() + y),
|
||||
App.assets.getFrames(GameAssetManager.MONITOR_PATH, 1, 10));
|
||||
App.assets.monitor.sprites);
|
||||
}
|
||||
|
||||
private static Texture getButtonTexture() {
|
||||
return App.assets.getTexture(GameAssetManager.MONITOR_BUTTON);
|
||||
return App.assets.monitor.button;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,10 +8,10 @@ import io.github.eldek0.asset.GameAssetManager;
|
||||
public class MaskButton extends Button {
|
||||
public MaskButton(float x, float y) {
|
||||
super(getButtonTexture(), x, y, new Rectangle(x + 10, 0, 480, getButtonTexture().getHeight() + y),
|
||||
App.assets.getFrames(GameAssetManager.MASK_PATH, 1, 9)); // 10th is not an animation
|
||||
App.assets.mask.sprites);
|
||||
}
|
||||
|
||||
private static Texture getButtonTexture() {
|
||||
return App.assets.getTexture(GameAssetManager.MASK_BUTTON);
|
||||
return App.assets.mask.button;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user