feat: quick and dirty inventory
This commit is contained in:
parent
3c562ca69a
commit
ea2337ee00
|
@ -19,6 +19,7 @@ export default function Ui({disconnected}) {
|
||||||
const client = useContext(ClientContext);
|
const client = useContext(ClientContext);
|
||||||
const [mainEntity, setMainEntity] = useMainEntity();
|
const [mainEntity, setMainEntity] = useMainEntity();
|
||||||
const [showDisconnected, setShowDisconnected] = useState(false);
|
const [showDisconnected, setShowDisconnected] = useState(false);
|
||||||
|
const [hotbarSlots, setHotbarSlots] = useState(Array(10).fill(0).map(() => {}));
|
||||||
const [activeSlot, setActiveSlot] = useState(0);
|
const [activeSlot, setActiveSlot] = useState(0);
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
let handle;
|
let handle;
|
||||||
|
@ -141,12 +142,23 @@ export default function Ui({disconnected}) {
|
||||||
setMainEntity(localMainEntity = id);
|
setMainEntity(localMainEntity = id);
|
||||||
}
|
}
|
||||||
if (localMainEntity === id) {
|
if (localMainEntity === id) {
|
||||||
|
if (payload.ecs[id].Inventory) {
|
||||||
|
const newHotbarSlots = [...hotbarSlots];
|
||||||
|
payload.ecs[id].Inventory.slots
|
||||||
|
.forEach(({qty, slotIndex, source}) => {
|
||||||
|
newHotbarSlots[slotIndex] = {
|
||||||
|
image: source + '/icon.png',
|
||||||
|
qty,
|
||||||
|
};
|
||||||
|
});
|
||||||
|
setHotbarSlots(newHotbarSlots);
|
||||||
|
}
|
||||||
if (payload.ecs[id].Wielder && 'activeSlot' in payload.ecs[id].Wielder) {
|
if (payload.ecs[id].Wielder && 'activeSlot' in payload.ecs[id].Wielder) {
|
||||||
setActiveSlot(payload.ecs[id].Wielder.activeSlot);
|
setActiveSlot(payload.ecs[id].Wielder.activeSlot);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, [mainEntity, setMainEntity]);
|
}, [hotbarSlots, mainEntity, setMainEntity]);
|
||||||
return (
|
return (
|
||||||
<div className={styles.ui}>
|
<div className={styles.ui}>
|
||||||
<style>
|
<style>
|
||||||
|
@ -166,7 +178,7 @@ export default function Ui({disconnected}) {
|
||||||
payload: {type: 'changeSlot', value: i + 1},
|
payload: {type: 'changeSlot', value: i + 1},
|
||||||
});
|
});
|
||||||
}}
|
}}
|
||||||
slots={Array(10).fill(0).map(() => {})}
|
slots={hotbarSlots}
|
||||||
/>
|
/>
|
||||||
{showDisconnected && (
|
{showDisconnected && (
|
||||||
<Disconnected />
|
<Disconnected />
|
||||||
|
|
BIN
public/assets/potion/icon.png
Normal file
BIN
public/assets/potion/icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.2 KiB |
|
@ -1,3 +1,7 @@
|
||||||
wielder.Health.health += 10
|
wielder.Health.health += 10
|
||||||
wielder.Inventory.slots[0].qty -= 1
|
wielder.Inventory.slots = [
|
||||||
console.log('hi', wielder.Health.health, wielder.Inventory.slots[0]);
|
{
|
||||||
|
...wielder.Inventory.slots[0],
|
||||||
|
qty: wielder.Inventory.slots[0].qty - 1,
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
Loading…
Reference in New Issue
Block a user