parent
c67ab0cd4a
commit
c13a624520
Binary file not shown.
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 519 B After Width: | Height: | Size: 2.1 KiB |
Binary file not shown.
@ -0,0 +1,62 @@ |
||||
package mightypork.rogue.screens.game; |
||||
|
||||
|
||||
import java.util.Collection; |
||||
|
||||
import mightypork.gamecore.gui.AlignX; |
||||
import mightypork.gamecore.gui.components.BaseComponent; |
||||
import mightypork.gamecore.gui.components.painters.TextPainter; |
||||
import mightypork.gamecore.resources.fonts.FontRenderer; |
||||
import mightypork.gamecore.util.math.color.Color; |
||||
import mightypork.gamecore.util.math.color.pal.RGB; |
||||
import mightypork.gamecore.util.math.constraints.num.Num; |
||||
import mightypork.gamecore.util.math.constraints.num.mutable.NumVar; |
||||
import mightypork.gamecore.util.math.constraints.rect.Rect; |
||||
import mightypork.rogue.Res; |
||||
import mightypork.rogue.world.WorldConsole; |
||||
import mightypork.rogue.world.WorldConsole.Entry; |
||||
import mightypork.rogue.world.WorldProvider; |
||||
|
||||
|
||||
public class WorldConsoleRenderer extends BaseComponent { |
||||
|
||||
private final Num rowHeight; |
||||
private final FontRenderer fr; |
||||
|
||||
|
||||
public WorldConsoleRenderer(Num rowHeight) { |
||||
this.rowHeight = rowHeight; |
||||
this.fr = new FontRenderer(Res.getFont("tiny")); |
||||
} |
||||
|
||||
|
||||
@Override |
||||
protected void renderComponent() |
||||
{ |
||||
double rh = rowHeight.value(); |
||||
|
||||
Rect lowRow = bottomEdge().growUp(rowHeight); |
||||
|
||||
Collection<Entry> entries = WorldProvider.get().getWorld().getConsole().getEntries(); |
||||
int cnt = 0; |
||||
|
||||
NumVar alph = Num.makeVar(); |
||||
|
||||
Color.pushAlpha(alph); |
||||
|
||||
for (WorldConsole.Entry entry : entries) { |
||||
|
||||
alph.setTo(entry.getAlpha()); |
||||
|
||||
Rect rrr = lowRow.moveY(-rh * cnt); |
||||
|
||||
fr.draw(entry.getMessage(), rrr.move(rh / 12, rh / 12), AlignX.LEFT, RGB.BLACK_60); |
||||
fr.draw(entry.getMessage(), rrr, AlignX.LEFT, RGB.WHITE); |
||||
|
||||
cnt++; |
||||
} |
||||
|
||||
Color.popAlpha(); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,103 @@ |
||||
package mightypork.rogue.world; |
||||
|
||||
|
||||
import java.util.*; |
||||
|
||||
import mightypork.gamecore.eventbus.events.Updateable; |
||||
import mightypork.gamecore.util.math.Easing; |
||||
import mightypork.gamecore.util.math.constraints.num.mutable.NumAnimated; |
||||
|
||||
|
||||
public class WorldConsole implements Updateable { |
||||
|
||||
private static final double DURATION = 5; |
||||
|
||||
public class Entry implements Updateable { |
||||
|
||||
private final String text; |
||||
private final NumAnimated fadeout; |
||||
private boolean fading = false; |
||||
private double elapsed = 0; |
||||
|
||||
|
||||
private Entry(String text) { |
||||
this.text = text; |
||||
this.fadeout = new NumAnimated(1, Easing.LINEAR); |
||||
this.fadeout.setDefaultDuration(0.5); |
||||
} |
||||
|
||||
|
||||
@Override |
||||
public void update(double delta) |
||||
{ |
||||
elapsed += delta; |
||||
|
||||
if (fading) { |
||||
fadeout.update(delta); |
||||
return; |
||||
} |
||||
|
||||
if (elapsed > DURATION) { |
||||
fading = true; |
||||
fadeout.fadeOut(); |
||||
} |
||||
} |
||||
|
||||
|
||||
private boolean canRemove() |
||||
{ |
||||
return fading && fadeout.isFinished(); |
||||
} |
||||
|
||||
|
||||
public double getAlpha() |
||||
{ |
||||
return !fading ? 1 : fadeout.value(); |
||||
} |
||||
|
||||
|
||||
public String getMessage() |
||||
{ |
||||
return text; |
||||
} |
||||
|
||||
|
||||
public double getAge() |
||||
{ |
||||
return elapsed; |
||||
} |
||||
} |
||||
|
||||
private final Deque<Entry> entries = new LinkedList<>(); |
||||
|
||||
|
||||
@Override |
||||
public void update(double delta) |
||||
{ |
||||
for (Iterator<Entry> iter = entries.iterator(); iter.hasNext();) { |
||||
Entry e = iter.next(); |
||||
|
||||
e.update(delta); |
||||
|
||||
if (e.canRemove()) { |
||||
iter.remove(); |
||||
} |
||||
} |
||||
} |
||||
|
||||
|
||||
public void addMessage(String message) |
||||
{ |
||||
entries.addFirst(new Entry(message)); |
||||
} |
||||
|
||||
|
||||
public Collection<Entry> getEntries() |
||||
{ |
||||
return entries; |
||||
} |
||||
|
||||
public void clear() { |
||||
entries.clear(); |
||||
} |
||||
} |
@ -1,4 +1,4 @@ |
||||
package mightypork.rogue.world.entity.render; |
||||
package mightypork.rogue.world.entity; |
||||
|
||||
|
||||
import mightypork.rogue.world.level.render.MapRenderContext; |
@ -0,0 +1,38 @@ |
||||
package mightypork.rogue.world.item.items.food; |
||||
|
||||
|
||||
import mightypork.rogue.Res; |
||||
import mightypork.rogue.world.item.ItemModel; |
||||
import mightypork.rogue.world.item.ItemRenderer; |
||||
import mightypork.rogue.world.item.items.ItemBaseFood; |
||||
import mightypork.rogue.world.item.render.QuadItemRenderer; |
||||
|
||||
|
||||
public class ItemCheese extends ItemBaseFood { |
||||
|
||||
public ItemCheese(ItemModel model) |
||||
{ |
||||
super(model); |
||||
} |
||||
|
||||
|
||||
@Override |
||||
protected ItemRenderer makeRenderer() |
||||
{ |
||||
return new QuadItemRenderer(this, Res.txq("item.cheese")); |
||||
} |
||||
|
||||
|
||||
@Override |
||||
public int getFoodPoints() |
||||
{ |
||||
return 2; |
||||
} |
||||
|
||||
|
||||
@Override |
||||
public String getVisualName() |
||||
{ |
||||
return "Cheese"; |
||||
} |
||||
} |
@ -0,0 +1,38 @@ |
||||
package mightypork.rogue.world.item.items.food; |
||||
|
||||
|
||||
import mightypork.rogue.Res; |
||||
import mightypork.rogue.world.item.ItemModel; |
||||
import mightypork.rogue.world.item.ItemRenderer; |
||||
import mightypork.rogue.world.item.items.ItemBaseFood; |
||||
import mightypork.rogue.world.item.render.QuadItemRenderer; |
||||
|
||||
|
||||
public class ItemSandwich extends ItemBaseFood { |
||||
|
||||
public ItemSandwich(ItemModel model) |
||||
{ |
||||
super(model); |
||||
} |
||||
|
||||
|
||||
@Override |
||||
protected ItemRenderer makeRenderer() |
||||
{ |
||||
return new QuadItemRenderer(this, Res.txq("item.sandwich")); |
||||
} |
||||
|
||||
|
||||
@Override |
||||
public int getFoodPoints() |
||||
{ |
||||
return 6; |
||||
} |
||||
|
||||
|
||||
@Override |
||||
public String getVisualName() |
||||
{ |
||||
return "Sandwich"; |
||||
} |
||||
} |
@ -0,0 +1,39 @@ |
||||
package mightypork.rogue.world.item.items.weapons; |
||||
|
||||
import mightypork.rogue.Res; |
||||
import mightypork.rogue.world.item.ItemModel; |
||||
import mightypork.rogue.world.item.ItemRenderer; |
||||
import mightypork.rogue.world.item.items.ItemBaseWeapon; |
||||
import mightypork.rogue.world.item.render.QuadItemRenderer; |
||||
|
||||
|
||||
public class ItemBone extends ItemBaseWeapon { |
||||
|
||||
public ItemBone(ItemModel model) { |
||||
super(model); |
||||
} |
||||
|
||||
@Override |
||||
protected ItemRenderer makeRenderer() |
||||
{ |
||||
return new QuadItemRenderer(this, Res.txq("item.bone")); |
||||
} |
||||
|
||||
@Override |
||||
public int getAttackPoints() |
||||
{ |
||||
return 1; |
||||
} |
||||
|
||||
@Override |
||||
public int getMaxUses() |
||||
{ |
||||
return 15; |
||||
} |
||||
|
||||
@Override |
||||
public String getVisualName() |
||||
{ |
||||
return "Bone"; |
||||
} |
||||
} |
@ -0,0 +1,39 @@ |
||||
package mightypork.rogue.world.item.items.weapons; |
||||
|
||||
import mightypork.rogue.Res; |
||||
import mightypork.rogue.world.item.ItemModel; |
||||
import mightypork.rogue.world.item.ItemRenderer; |
||||
import mightypork.rogue.world.item.items.ItemBaseWeapon; |
||||
import mightypork.rogue.world.item.render.QuadItemRenderer; |
||||
|
||||
|
||||
public class ItemClub extends ItemBaseWeapon { |
||||
|
||||
public ItemClub(ItemModel model) { |
||||
super(model); |
||||
} |
||||
|
||||
@Override |
||||
protected ItemRenderer makeRenderer() |
||||
{ |
||||
return new QuadItemRenderer(this, Res.txq("item.club")); |
||||
} |
||||
|
||||
@Override |
||||
public int getAttackPoints() |
||||
{ |
||||
return 3; |
||||
} |
||||
|
||||
@Override |
||||
public int getMaxUses() |
||||
{ |
||||
return 25; |
||||
} |
||||
|
||||
@Override |
||||
public String getVisualName() |
||||
{ |
||||
return "Wooden Club"; |
||||
} |
||||
} |
@ -0,0 +1,39 @@ |
||||
package mightypork.rogue.world.item.items.weapons; |
||||
|
||||
import mightypork.rogue.Res; |
||||
import mightypork.rogue.world.item.ItemModel; |
||||
import mightypork.rogue.world.item.ItemRenderer; |
||||
import mightypork.rogue.world.item.items.ItemBaseWeapon; |
||||
import mightypork.rogue.world.item.render.QuadItemRenderer; |
||||
|
||||
|
||||
public class ItemHammer extends ItemBaseWeapon { |
||||
|
||||
public ItemHammer(ItemModel model) { |
||||
super(model); |
||||
} |
||||
|
||||
@Override |
||||
protected ItemRenderer makeRenderer() |
||||
{ |
||||
return new QuadItemRenderer(this, Res.txq("item.hammer")); |
||||
} |
||||
|
||||
@Override |
||||
public int getAttackPoints() |
||||
{ |
||||
return 4; |
||||
} |
||||
|
||||
@Override |
||||
public int getMaxUses() |
||||
{ |
||||
return 50; |
||||
} |
||||
|
||||
@Override |
||||
public String getVisualName() |
||||
{ |
||||
return "Hammer"; |
||||
} |
||||
} |
@ -0,0 +1,39 @@ |
||||
package mightypork.rogue.world.item.items.weapons; |
||||
|
||||
import mightypork.rogue.Res; |
||||
import mightypork.rogue.world.item.ItemModel; |
||||
import mightypork.rogue.world.item.ItemRenderer; |
||||
import mightypork.rogue.world.item.items.ItemBaseWeapon; |
||||
import mightypork.rogue.world.item.render.QuadItemRenderer; |
||||
|
||||
|
||||
public class ItemStone extends ItemBaseWeapon { |
||||
|
||||
public ItemStone(ItemModel model) { |
||||
super(model); |
||||
} |
||||
|
||||
@Override |
||||
protected ItemRenderer makeRenderer() |
||||
{ |
||||
return new QuadItemRenderer(this, Res.txq("item.stone")); |
||||
} |
||||
|
||||
@Override |
||||
public int getAttackPoints() |
||||
{ |
||||
return 2; |
||||
} |
||||
|
||||
@Override |
||||
public int getMaxUses() |
||||
{ |
||||
return 20; |
||||
} |
||||
|
||||
@Override |
||||
public String getVisualName() |
||||
{ |
||||
return "Rock"; |
||||
} |
||||
} |
@ -0,0 +1,39 @@ |
||||
package mightypork.rogue.world.item.items.weapons; |
||||
|
||||
import mightypork.rogue.Res; |
||||
import mightypork.rogue.world.item.ItemModel; |
||||
import mightypork.rogue.world.item.ItemRenderer; |
||||
import mightypork.rogue.world.item.items.ItemBaseWeapon; |
||||
import mightypork.rogue.world.item.render.QuadItemRenderer; |
||||
|
||||
|
||||
public class ItemSword extends ItemBaseWeapon { |
||||
|
||||
public ItemSword(ItemModel model) { |
||||
super(model); |
||||
} |
||||
|
||||
@Override |
||||
protected ItemRenderer makeRenderer() |
||||
{ |
||||
return new QuadItemRenderer(this, Res.txq("item.sword")); |
||||
} |
||||
|
||||
@Override |
||||
public int getAttackPoints() |
||||
{ |
||||
return 6; |
||||
} |
||||
|
||||
@Override |
||||
public int getMaxUses() |
||||
{ |
||||
return 100; |
||||
} |
||||
|
||||
@Override |
||||
public String getVisualName() |
||||
{ |
||||
return "Wooden Club"; |
||||
} |
||||
} |
Loading…
Reference in new issue