Enable collecting items from map to equipment

This commit is contained in:
2022-08-25 13:59:22 +02:00
parent 8946297bd9
commit e366f85de1
11 changed files with 142 additions and 57 deletions

View File

@@ -2,11 +2,35 @@ package com.bartlomiejpluta.demo.gui;
import com.bartlomiejpluta.base.api.context.Context;
import com.bartlomiejpluta.base.api.gui.GUI;
import com.bartlomiejpluta.base.api.gui.Ref;
import com.bartlomiejpluta.base.api.gui.WindowManager;
import com.bartlomiejpluta.base.api.screen.Screen;
import com.bartlomiejpluta.base.lib.gui.VGridOptionChoice;
import com.bartlomiejpluta.demo.entity.Player;
import com.bartlomiejpluta.demo.runner.DemoRunner;
public class EquipmentWindow extends DecoratedWindow {
private final DemoRunner runner;
private final Player player;
@Ref("eq")
private VGridOptionChoice eqGrid;
public EquipmentWindow(Context context, GUI gui) {
super(context, gui);
this.runner = (DemoRunner) context.getGameRunner();
this.player = runner.getPlayer();
}
@Override
public void onOpen(WindowManager manager) {
super.onOpen(manager);
var i = 0;
for(var child : eqGrid.getChildren()) {
var slot = (ItemIconView) child;
slot.setIcon(player.getEquipmentItem(i++));
}
}
}

View File

@@ -79,12 +79,8 @@ public class HUD extends BorderLayout {
logVisibilityDuration = 0;
}
if (player.getWeapon() != null && player.getWeapon() != currentWeapon) {
weapon.setIcon(player.getWeapon().getIcon());
this.currentWeapon = player.getWeapon();
} else if (player.getWeapon() == null) {
this.currentWeapon = null;
}
this.currentWeapon = player.getWeapon();
}
@Override

View File

@@ -0,0 +1,43 @@
package com.bartlomiejpluta.demo.gui;
import com.bartlomiejpluta.base.api.context.Context;
import com.bartlomiejpluta.base.api.gui.Color;
import com.bartlomiejpluta.base.api.gui.GUI;
import com.bartlomiejpluta.base.api.screen.Screen;
import com.bartlomiejpluta.base.lib.gui.IconView;
public class ItemIconView extends IconView {
private final Color normal;
private final Color hover;
public ItemIconView(Context context, GUI gui) {
super(context, gui);
this.normal = gui.createColor();
this.hover = gui.createColor();
normal.setRGBA(0x444444FF);
hover.setRGBA(0x888888FF);
super.setScale(2f);
}
@Override
protected float getContentWidth() {
return 68f;
}
@Override
protected float getContentHeight() {
return 68f;
}
@Override
public void draw(Screen screen, GUI gui) {
gui.beginPath();
gui.drawRectangle(x, y, getWidth(), getHeight());
gui.setFillColor(focused ? hover : normal);
gui.fill();
gui.closePath();
super.draw(screen, gui);
}
}