Partie inventaire qui marche

master
Thomas Chazot 2 years ago
parent be00c4bcb0
commit 18f5385ab4

@ -37,6 +37,13 @@
</div> </div>
<div class="col-6"> <div class="col-6">
@foreach (var item in Items)
{
<InventoryItem Item="item" NoDrop="true" />
}
</div>
<!--
<div>Available items:</div> <div>Available items:</div>
<div> <div>
@ -68,6 +75,7 @@
</div> </div>
-->
</div> </div>
</div> </div>
</CascadingValue> </CascadingValue>

@ -28,11 +28,8 @@ namespace BlazorApp.Components
public InventoryComp() public InventoryComp()
{ {
this.InventoryItems = new List<Item> { }; this.InventoryItems = new List<Item>(new Item[18]);
for (int i = 0; i < 18; i++)
{
this.InventoryItems.Append(null);
}
} }
private async Task OnReadData(DataGridReadDataEventArgs<Item> e) private async Task OnReadData(DataGridReadDataEventArgs<Item> e)
@ -54,5 +51,10 @@ namespace BlazorApp.Components
Items = await DataService.SortedList(); Items = await DataService.SortedList();
} }
public void refresh()
{
StateHasChanged();
}
} }
} }

@ -4,7 +4,8 @@
@ondragstart="@OnDragStart" @ondragstart="@OnDragStart"
@ondrop="@OnDrop" @ondrop="@OnDrop"
@ondragenter="@OnDragEnter" @ondragenter="@OnDragEnter"
@ondragleave="@OnDragLeave"> @ondragleave="@OnDragLeave"
@ondragend="@OnDragEnd" >
@if (Item != null) @if (Item != null)
{ {

@ -44,15 +44,50 @@ namespace BlazorApp.Components
return; return;
} }
Parent.InventoryItems[Parent.CurrentDragIndex] = this.Item; if (Parent.CurrentDragItem != null)
{
Item tmp = this.Item;
this.Item = Parent.CurrentDragItem; this.Item = Parent.CurrentDragItem;
Parent.InventoryItems[this.Index] = this.Item; Parent.InventoryItems[this.Index] = this.Item;
Parent.CurrentDragItem = tmp;
Parent.CurrentDragIndex = this.Index;
}
} }
private void OnDragStart() private void OnDragStart()
{ {
Parent.CurrentDragIndex = this.Index;
Parent.CurrentDragItem = this.Item; Parent.CurrentDragItem = this.Item;
if (this.Item != null)
{
if (!NoDrop)
{
Parent.CurrentDragIndex = this.Index;
this.Item = null;
Parent.InventoryItems[Index] = null;
}
else
{
Parent.CurrentDragIndex = -1;
}
}
}
internal void OnDragEnd()
{
if (NoDrop || Parent.CurrentDragItem==null)
{
return;
}
if (Parent.CurrentDragIndex != -1 && Parent.CurrentDragIndex!=this.Index)
{
Parent.InventoryItems[this.Index] = this.Item;
this.Item = Parent.CurrentDragItem;
}
Parent.CurrentDragIndex = -1;
Parent.CurrentDragItem = null;
} }
} }
} }

Loading…
Cancel
Save