Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package game.states;
- import game.core.InGameState;
- import game.gui.niftyinput.CustomSlickInputSystem;
- import game.gui.screens.ShowQuestObjectiveStateStartScreen;
- import java.util.Vector;
- import org.newdawn.slick.GameContainer;
- import org.newdawn.slick.Graphics;
- import org.newdawn.slick.Input;
- import org.newdawn.slick.SlickException;
- import org.newdawn.slick.state.StateBasedGame;
- import org.newdawn.slick.state.transition.FadeInTransition;
- import org.newdawn.slick.state.transition.FadeOutTransition;
- import de.lessvoid.nifty.Nifty;
- import de.lessvoid.nifty.builder.ElementBuilder;
- import de.lessvoid.nifty.builder.PanelBuilder;
- import de.lessvoid.nifty.builder.TextBuilder;
- import de.lessvoid.nifty.controls.ScrollPanel;
- import de.lessvoid.nifty.controls.ScrollPanel.AutoScroll;
- import de.lessvoid.nifty.controls.scrollpanel.builder.ScrollPanelBuilder;
- import de.lessvoid.nifty.elements.Element;
- import de.lessvoid.nifty.screen.Screen;
- import de.lessvoid.nifty.slick2d.NiftyOverlayBasicGameState;
- import de.lessvoid.nifty.slick2d.loaders.SlickAddLoaderLocation;
- import de.lessvoid.nifty.slick2d.loaders.SlickRenderFontLoaders;
- import de.lessvoid.nifty.slick2d.render.font.loader.DefaultSlickRenderFontLoader;
- /**
- * @author Michel Montenegro
- */
- public class ShowQuestObjectiveState extends NiftyOverlayBasicGameState{
- public static final int ID = 3;
- public ShowQuestObjectiveState() {
- }
- @Override
- public int getID() {
- return ID;
- }
- @Override
- protected void enterState(GameContainer container, StateBasedGame sbGame)
- throws SlickException {
- }
- @Override
- protected void initGameAndGUI(GameContainer container, StateBasedGame sbGame)
- throws SlickException {
- initNifty(container, sbGame, new CustomSlickInputSystem());
- }
- @Override
- protected void leaveState(GameContainer arg0, StateBasedGame arg1)
- throws SlickException {
- }
- private static Element createMapItemPopup(Nifty nifty, Screen screen, Element parent)
- {
- Element scrollPanel = createScrollPanel( nifty, screen, parent );
- Element scrollContainer = scrollPanel.findElementByName( "#nifty-scrollpanel-child-root" );
- Vector<ElementBuilder> list = new Vector<ElementBuilder>();
- list.add( createHeader("------" ) );
- list.add( createHeader( "Actions" ) );
- list.add( createHeader( "--------" ) );
- createVerticalPanel( nifty, screen, scrollContainer, list );
- scrollContainer.layoutElements();
- parent.getNiftyControl(ScrollPanel.class).setUp( 0, 20, 0, 20*10, AutoScroll.OFF ); // basically 20px for clicking on the scrollbar buttons and 200px when you press below or above the scrollhandle (and when the scrollbar someday supports the page up/down keys...)
- return parent;
- }
- private static Element createScrollPanel( Nifty nifty, Screen screen, Element parent )
- {
- ScrollPanelBuilder scrollBuilder = new ScrollPanelBuilder( "scrollpanel" );
- scrollBuilder.width( "100%" );
- scrollBuilder.height( "100%" );
- scrollBuilder.set( "vertical", "true" );
- scrollBuilder.set( "horizontal", "false" );
- return scrollBuilder.build( nifty, screen, parent );
- }
- private static TextBuilder createHeader( String text )
- {
- TextBuilder textBuilder = new TextBuilder();
- textBuilder.width( 500 + "px" );
- textBuilder.height( 20 + "px" );
- textBuilder.font( "resources/fonts/console.fnt" );
- textBuilder.textHAlignLeft();
- textBuilder.text(text);
- return textBuilder;
- }
- private static Element createVerticalPanel( Nifty nifty, Screen screen, Element parent, Vector<ElementBuilder> list )
- {
- PanelBuilder panelBuilder = new PanelBuilder();
- panelBuilder.x( "0px" );
- panelBuilder.y( "0px" );
- panelBuilder.width( 20 + "px" );
- panelBuilder.height( 20 * list.size() + "px" );
- panelBuilder.alignLeft();
- panelBuilder.valignTop();
- panelBuilder.set( "childLayout", "vertical" );
- panelBuilder.style("nifty-panel");
- Element panel = panelBuilder.build( nifty, screen, parent );
- for( int i = 0; i < list.size(); i++ ){
- list.get( i ).build( nifty, screen, panel);
- }
- return panel;
- }
- @Override
- protected void prepareNifty(Nifty nifty, StateBasedGame sbGame) {
- ShowQuestObjectiveStateStartScreen.getInstance().createScreen(nifty);
- SlickRenderFontLoaders.getInstance().addLoader(new DefaultSlickRenderFontLoader(), SlickAddLoaderLocation.first);
- Element sp = getNifty().getCurrentScreen().findElementByName("scrollPanel");
- createMapItemPopup(getNifty(),getNifty().getCurrentScreen(), sp);
- }
- @Override
- protected void renderGame(GameContainer container, StateBasedGame sbg,
- Graphics graphics) throws SlickException {
- }
- @Override
- protected void updateGame(GameContainer container, StateBasedGame sbGame,
- int delta) throws SlickException {
- if (container.getInput().isKeyPressed(Input.KEY_ESCAPE)) {
- sbGame.enterState(InGameState.ID, new FadeOutTransition(), new FadeInTransition());
- }
- }
- @Override
- public void mousePressed(int button, int x, int y) {
- super.mousePressed(button, x, y);
- }
- @Override
- public void mouseReleased(int button, int x, int y) {
- super.mouseReleased(button, x, y);
- }
- @Override
- public void mouseMoved(int oldx, int oldy, int newx, int newy) {
- super.mouseMoved(oldx, oldy, newx, newy);
- }
- @Override
- public void keyPressed(final int key, final char c) {
- }
- @Override
- public void keyReleased(final int key, final char c) {
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement