Rogue: Savage Rats, a retro-themed dungeon crawler
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
rogue-savage-rats/src/mightypork/rogue/world/item/Item.java

57 lines
924 B

package mightypork.rogue.world.item;
import java.io.IOException;
10 years ago
import mightypork.gamecore.util.annot.DefaultImpl;
import mightypork.gamecore.util.ion.IonInput;
10 years ago
import mightypork.gamecore.util.ion.IonObjBlob;
import mightypork.gamecore.util.ion.IonOutput;
10 years ago
import mightypork.gamecore.util.math.constraints.rect.Rect;
10 years ago
public abstract class Item implements IonObjBlob {
10 years ago
private final ItemModel model;
private ItemRenderer renderer;
public Item(ItemModel model)
{
10 years ago
this.model = model;
}
10 years ago
public final void render(Rect rect)
{
10 years ago
if (renderer == null) {
renderer = makeRenderer();
}
renderer.render(rect);
}
10 years ago
protected abstract ItemRenderer makeRenderer();
@Override
10 years ago
@DefaultImpl
public void save(IonOutput out) throws IOException
{
}
@Override
10 years ago
@DefaultImpl
public void load(IonInput in) throws IOException
{
}
10 years ago
public final ItemModel getModel()
{
10 years ago
return model;
}
}