package sample.game.builder;
import java.util.ArrayList;
import library.core.model.CoreAnimation;
import library.core.model.CoreModel;
import library.core.object.CoreObjectFactory;
import library.core.system.CoreImageData;
import library.core.view.CoreView;
import sample.game.controller.TitleController;
import sample.game.controller.TitleController.Level;
import sample.game.main.UserGameTitle;
import sample.game.model.title.HowToPlayButton;
import sample.game.model.title.LevelButton;
import sample.game.model.title.SoundButton;
import sample.game.model.title.TitleAnimationModel;
public class TitleUserBuilder {
private CoreObjectFactory objectFactory;
private ArrayList<LevelButton> levelButtons;
public TitleUserBuilder(CoreObjectFactory coreObjectFactory){
this.objectFactory=coreObjectFactory;
this.levelButtons=new ArrayList<LevelButton>();
}
public TitleController build(UserGameTitle palent){
TitleController controller=new TitleController(palent);
/*CoreModel back=new CoreModel(new CoreImageData("image/title/title.jpg"),
640, 369, 1280, 720);*/
CoreModel back=new CoreModel(new CoreImageData("image/back/title.png"),
640, 369, 1280, 720);
objectFactory.create(back, new CoreView(back, 0));
controller.setBackScreen(back);
back=new CoreModel(new CoreImageData("image/back/title.png"),
-640, 369, 1280, 720);
objectFactory.create(back, new CoreView(back, 0));
controller.setBackScreen2(back);
//ロゴの表示
CoreModel logo=new CoreModel(new CoreImageData("image/title/titlelogo.png"),
640, 96, 1024, 144);
objectFactory.create(logo, new CoreView(logo, 0));
controller.setLogo(logo);
//音ボタンの表示
ArrayList<CoreImageData> soundImages=new ArrayList<CoreImageData>();
soundImages.add(new CoreImageData("image/title/user/ui/mute_on.png"));
soundImages.add(new CoreImageData("image/title/user/ui/mute_off.png"));
SoundButton soundButton=new SoundButton(soundImages, 1153, 230, 96, 96);
objectFactory.create(soundButton, new CoreView(soundButton, 1));
controller.setSoundButton(soundButton);
//遊び方ボタン
HowToPlayButton howToPlayButton=new HowToPlayButton(controller,
new CoreImageData("image/title/user/ui/howtoplay.png"),1006 , 230, 96, 96);
objectFactory.create(howToPlayButton, new CoreView(howToPlayButton, 1));
controller.setHowToPlayButton(howToPlayButton);
//レベル選択ボタン
LevelButton button=new LevelButton(Level.easy,controller,new CoreImageData("image/title/user/ui/easy.png"),
250, 630, 352, 96);
levelButtons.add(button);
objectFactory.create(button, new CoreView(button, 1));
button=new LevelButton(Level.normal,controller,new CoreImageData("image/title/user/ui/normal.png"),
640, 630, 352, 96);
levelButtons.add(button);
objectFactory.create(button, new CoreView(button, 1));
button=new LevelButton(Level.hard,controller,new CoreImageData("image/title/user/ui/hard.png"),
1030, 630, 352, 96);
levelButtons.add(button);
objectFactory.create(button, new CoreView(button, 1));
controller.setLevelButtons(levelButtons);
//タイトルのキャラ
//ミナミ
ArrayList<CoreImageData> animDatas=new ArrayList<CoreImageData>();
animDatas.add(new CoreImageData("image/title/user/anim/minamiTitle.png",0,0,324,324));
animDatas.add(new CoreImageData("image/title/user/anim/minamiTitle.png",1,0,324,324));
animDatas.add(new CoreImageData("image/title/user/anim/minamiTitle.png",2,0,324,324));
ArrayList<Integer> animIndexs=new ArrayList<Integer>();
animIndexs.add(1);
animIndexs.add(0);
animIndexs.add(1);
animIndexs.add(2);
ArrayList<CoreAnimation> anims=new ArrayList<CoreAnimation>();
//ループ絵の設定
anims.add(new CoreAnimation("easyLoop", animDatas,animIndexs,0.3f, true));
animDatas=new ArrayList<CoreImageData>();
animDatas.add(new CoreImageData("image/title/user/minami_title4.png"));
animIndexs=new ArrayList<Integer>();
animIndexs.add(0);
//停止絵の設定
anims.add(new CoreAnimation("easyEnd", animDatas, animIndexs, 1f, false));
TitleAnimationModel animationModel=new TitleAnimationModel(anims, 0, 250, 384, 324, 324);
objectFactory.create(animationModel, new CoreView(animationModel, 1));
controller.setEasyCharaAnim(animationModel);
//なんぼう
animDatas=new ArrayList<CoreImageData>();
animDatas.add(new CoreImageData("image/title/user/anim/nanbouTitle.png",0,0,324,324));
animDatas.add(new CoreImageData("image/title/user/anim/nanbouTitle.png",1,0,324,324));
animDatas.add(new CoreImageData("image/title/user/anim/nanbouTitle.png",2,0,324,324));
animIndexs=new ArrayList<Integer>();
animIndexs.add(1);
animIndexs.add(0);
animIndexs.add(1);
animIndexs.add(2);
anims=new ArrayList<CoreAnimation>();
//ループ絵の設定
anims.add(new CoreAnimation("normalLoop", animDatas,animIndexs,0.3f, true));
animDatas=new ArrayList<CoreImageData>();
animDatas.add(new CoreImageData("image/title/user/nanbou_title4.png"));
animIndexs=new ArrayList<Integer>();
animIndexs.add(0);
//停止絵の設定
anims.add(new CoreAnimation("normalEnd", animDatas, animIndexs, 1f, false));
animationModel=new TitleAnimationModel(anims, 0, 640, 384, 324, 324);
objectFactory.create(animationModel, new CoreView(animationModel, 1));
controller.setNormalCharaAnim(animationModel);
//へび
animDatas=new ArrayList<CoreImageData>();
animDatas.add(new CoreImageData("image/title/user/anim/snakeTitle.png",0,0,324,324));
animDatas.add(new CoreImageData("image/title/user/anim/snakeTitle.png",1,0,324,324));
animIndexs=new ArrayList<Integer>();
animIndexs.add(0);
animIndexs.add(1);
anims=new ArrayList<CoreAnimation>();
//ループ絵の設定
anims.add(new CoreAnimation("hardLoop", animDatas,animIndexs,0.3f, true));
animDatas=new ArrayList<CoreImageData>();
animDatas.add(new CoreImageData("image/title/user/snake_title3.png"));
animIndexs=new ArrayList<Integer>();
animIndexs.add(0);
//停止絵の設定
anims.add(new CoreAnimation("hardEnd", animDatas, animIndexs, 1f, false));
animationModel=new TitleAnimationModel(anims, 0, 1030, 384, 324, 324);
objectFactory.create(animationModel, new CoreView(animationModel, 1));
controller.setHardCharaAnim(animationModel);
//フェイド用のマスク
CoreModel fadeMask=new CoreModel(new CoreImageData("image/game/screen/fadeMask.png"),
640, 360, 1280, 720);
fadeMask.setShowView(false);
fadeMask.setAlpha(0);
objectFactory.create(fadeMask, new CoreView(fadeMask, 20));
controller.setFadeMask(fadeMask);
controller.checkInitProduction();
return controller;
}
}