v1.2.0: fixed scroll panes working incorrectly with offset windows
This commit is contained in:
parent
8b4b3686cd
commit
15e4ff15e6
|
@ -100,6 +100,8 @@ public class ScrollOfMetamorphosis extends ExoticScroll {
|
|||
|
||||
public static WndMetamorphChoose INSTANCE;
|
||||
|
||||
TalentsPane pane;
|
||||
|
||||
public WndMetamorphChoose(){
|
||||
super();
|
||||
|
||||
|
@ -130,12 +132,12 @@ public class ScrollOfMetamorphosis extends ExoticScroll {
|
|||
}
|
||||
}
|
||||
|
||||
TalentsPane p = new TalentsPane(TalentButton.Mode.METAMORPH_CHOOSE, talents);
|
||||
add(p);
|
||||
p.setPos(0, top);
|
||||
p.setSize(120, p.content().height());
|
||||
resize((int)p.width(), (int)p.bottom());
|
||||
p.setPos(0, top);
|
||||
pane = new TalentsPane(TalentButton.Mode.METAMORPH_CHOOSE, talents);
|
||||
add(pane);
|
||||
pane.setPos(0, top);
|
||||
pane.setSize(120, pane.content().height());
|
||||
resize((int)pane.width(), (int)pane.bottom());
|
||||
pane.setPos(0, top);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -154,6 +156,12 @@ public class ScrollOfMetamorphosis extends ExoticScroll {
|
|||
curItem.collect();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void offset(int xOffset, int yOffset) {
|
||||
super.offset(xOffset, yOffset);
|
||||
pane.setPos(pane.left(), pane.top()); //triggers layout
|
||||
}
|
||||
}
|
||||
|
||||
public static class WndMetamorphReplace extends Window {
|
||||
|
|
|
@ -117,12 +117,13 @@ public class TalentButton extends Button {
|
|||
protected void onClick() {
|
||||
super.onClick();
|
||||
|
||||
Window toAdd;
|
||||
if (mode == Mode.UPGRADE
|
||||
&& Dungeon.hero != null
|
||||
&& Dungeon.hero.isAlive()
|
||||
&& Dungeon.hero.talentPointsAvailable(tier) > 0
|
||||
&& Dungeon.hero.pointsInTalent(talent) < talent.maxPoints()){
|
||||
ShatteredPixelDungeon.scene().addToFront(new WndInfoTalent(talent, pointsInTalent, new WndInfoTalent.TalentButtonCallback() {
|
||||
toAdd = new WndInfoTalent(talent, pointsInTalent, new WndInfoTalent.TalentButtonCallback() {
|
||||
|
||||
@Override
|
||||
public String prompt() {
|
||||
|
@ -133,9 +134,9 @@ public class TalentButton extends Button {
|
|||
public void call() {
|
||||
upgradeTalent();
|
||||
}
|
||||
}));
|
||||
});
|
||||
} else if (mode == Mode.METAMORPH_CHOOSE && Dungeon.hero != null && Dungeon.hero.isAlive()) {
|
||||
ShatteredPixelDungeon.scene().addToFront(new WndInfoTalent(talent, pointsInTalent, new WndInfoTalent.TalentButtonCallback() {
|
||||
toAdd = new WndInfoTalent(talent, pointsInTalent, new WndInfoTalent.TalentButtonCallback() {
|
||||
|
||||
@Override
|
||||
public String prompt() {
|
||||
|
@ -149,9 +150,9 @@ public class TalentButton extends Button {
|
|||
}
|
||||
GameScene.show(new ScrollOfMetamorphosis.WndMetamorphReplace(talent, tier));
|
||||
}
|
||||
}));
|
||||
});
|
||||
} else if (mode == Mode.METAMORPH_REPLACE && Dungeon.hero != null && Dungeon.hero.isAlive()) {
|
||||
ShatteredPixelDungeon.scene().addToFront(new WndInfoTalent(talent, pointsInTalent, new WndInfoTalent.TalentButtonCallback() {
|
||||
toAdd = new WndInfoTalent(talent, pointsInTalent, new WndInfoTalent.TalentButtonCallback() {
|
||||
|
||||
@Override
|
||||
public String prompt() {
|
||||
|
@ -204,9 +205,15 @@ public class TalentButton extends Button {
|
|||
}
|
||||
|
||||
}
|
||||
}));
|
||||
});
|
||||
} else {
|
||||
ShatteredPixelDungeon.scene().addToFront(new WndInfoTalent(talent, pointsInTalent, null));
|
||||
toAdd = new WndInfoTalent(talent, pointsInTalent, null);
|
||||
}
|
||||
|
||||
if (ShatteredPixelDungeon.scene() instanceof GameScene){
|
||||
GameScene.show(toAdd);
|
||||
} else {
|
||||
ShatteredPixelDungeon.scene().addToFront(toAdd);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -131,6 +131,7 @@ public class Window extends Group implements Signal.Listener<KeyEvent> {
|
|||
shadow.boxRect( camera.x / camera.zoom, camera.y / camera.zoom, chrome.width(), chrome.height );
|
||||
}
|
||||
|
||||
//windows with scroll panes will likely need to override this and refresh them when offset changes
|
||||
public void offset( int xOffset, int yOffset ){
|
||||
camera.x -= this.xOffset * camera.zoom;
|
||||
this.xOffset = xOffset;
|
||||
|
|
|
@ -112,6 +112,13 @@ public class WndHero extends WndTabbed {
|
|||
select( lastIdx );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void offset(int xOffset, int yOffset) {
|
||||
super.offset(xOffset, yOffset);
|
||||
talents.layout();
|
||||
buffs.layout();
|
||||
}
|
||||
|
||||
private class StatsTab extends Group {
|
||||
|
||||
private static final int GAP = 6;
|
||||
|
@ -136,7 +143,11 @@ public class WndHero extends WndTabbed {
|
|||
@Override
|
||||
protected void onClick() {
|
||||
super.onClick();
|
||||
ShatteredPixelDungeon.scene().addToFront(new WndHeroInfo(hero.heroClass));
|
||||
if (ShatteredPixelDungeon.scene() instanceof GameScene){
|
||||
GameScene.show(new WndHeroInfo(hero.heroClass));
|
||||
} else {
|
||||
ShatteredPixelDungeon.scene().addToFront(new WndHeroInfo(hero.heroClass));
|
||||
}
|
||||
}
|
||||
};
|
||||
infoButton.setRect(title.right(), 0, 16, 16);
|
||||
|
|
|
@ -134,7 +134,16 @@ public class WndJournal extends WndTabbed {
|
|||
|
||||
select(last_index);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void offset(int xOffset, int yOffset) {
|
||||
super.offset(xOffset, yOffset);
|
||||
guideTab.layout();
|
||||
alchemyTab.layout();
|
||||
catalogTab.layout();
|
||||
notesTab.layout();
|
||||
}
|
||||
|
||||
private static class ListItem extends Component {
|
||||
|
||||
protected RenderedTextBlock label;
|
||||
|
|
|
@ -156,6 +156,12 @@ public class WndKeyBindings extends Window {
|
|||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void offset(int xOffset, int yOffset) {
|
||||
super.offset(xOffset, yOffset);
|
||||
bindingsList.setPos(bindingsList.left(), bindingsList.top()); //calls layout
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBackPressed() {
|
||||
//do nothing, avoids accidental back presses which would lose progress.
|
||||
|
|
|
@ -30,6 +30,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.Item;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.items.armor.Armor;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.items.weapon.Weapon;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.FetidRatSprite;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.GnollTricksterSprite;
|
||||
|
@ -143,7 +144,7 @@ public class WndSadGhost extends Window {
|
|||
}
|
||||
@Override
|
||||
protected void onClick() {
|
||||
ShatteredPixelDungeon.scene().addToFront(new RewardWindow(item));
|
||||
GameScene.show(new RewardWindow(item));
|
||||
}
|
||||
};
|
||||
add(slot);
|
||||
|
|
|
@ -31,6 +31,7 @@ import com.shatteredpixel.shatteredpixeldungeon.items.quest.CorpseDust;
|
|||
import com.shatteredpixel.shatteredpixeldungeon.items.quest.Embers;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.messages.Messages;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.plants.Rotberry;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.GameScene;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.scenes.PixelScene;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.sprites.ItemSprite;
|
||||
import com.shatteredpixel.shatteredpixeldungeon.ui.ItemSlot;
|
||||
|
@ -137,7 +138,7 @@ public class WndWandmaker extends Window {
|
|||
@Override
|
||||
protected void onClick() {
|
||||
if (Dungeon.hero.belongings.contains(questItem)) {
|
||||
ShatteredPixelDungeon.scene().addToFront(new RewardWindow(item));
|
||||
GameScene.show(new RewardWindow(item));
|
||||
} else {
|
||||
hide();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user