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.
141 lines
4.8 KiB
141 lines
4.8 KiB
using Microsoft.Extensions.Localization;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using BlazorApV1.Weather;
|
|
using BlazorApV1.Models;
|
|
using BlazorApV1.Pages;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using BlazorApV1.Services;
|
|
using System.Text.Json;
|
|
using Microsoft.JSInterop;
|
|
using Blazorise.DataGrid;
|
|
using Blazorise;
|
|
using Microsoft.AspNetCore.Components;
|
|
using System.Collections.ObjectModel;
|
|
using System.Collections.Specialized;
|
|
|
|
namespace BlazorApV1.Components
|
|
{
|
|
public partial class Inventory
|
|
{
|
|
[CascadingParameter]
|
|
public Inventory Director { get; set; }
|
|
|
|
[Parameter]
|
|
public Item Item { get; set; }
|
|
|
|
[Parameter]
|
|
public int Index { get; set; }
|
|
|
|
[Parameter]
|
|
public bool IsntDrop { get; set; }
|
|
|
|
|
|
internal void OnDragEnter()
|
|
{
|
|
if (IsntDrop)
|
|
{
|
|
return;
|
|
}
|
|
|
|
Director.Actions.Add(new InventoryAction { Action = "Drag Enter", Item = this.Item, Index = this.Index });
|
|
}
|
|
|
|
internal void OnDragLeave()
|
|
{
|
|
if (IsntDrop)
|
|
{
|
|
return;
|
|
}
|
|
|
|
Director.Actions.Add(new InventoryAction { Action = "Drag Leave", Item = this.Item, Index = this.Index });
|
|
}
|
|
internal void OnDrop()
|
|
{
|
|
|
|
if (IsntDrop == true || Director.CurrentDragItem == null)
|
|
{
|
|
return;
|
|
}
|
|
if (this.Item == null)
|
|
{
|
|
this.Item = ItemFactory.Create(Director.CurrentDragItem);
|
|
Director.RecipeItems[this.Index] = this.Item;
|
|
Director.Actions.Add(new InventoryAction { Action = "Drop", Item = this.Item, Index = this.Index });
|
|
if (Director.CurrentDragItemIndex != -1)
|
|
{
|
|
Director.CurrentDragItem = null;
|
|
Director.RecipeItems[Director.CurrentDragItemIndex] = null;
|
|
Director.Actions.Add(new InventoryAction { Action = "Moove", Item = this.Item, Index = this.Index });
|
|
}
|
|
|
|
}
|
|
else if (this.Item.Id == Director.CurrentDragItem.Id && Director.CurrentDragItemIndex != this.Index)
|
|
{
|
|
if (this.Item.StackSize > this.Item.Num)
|
|
{
|
|
ItemFactory.Add(this.Item, Director.CurrentDragItem);
|
|
Director.RecipeItems[this.Index] = this.Item;
|
|
Director.Actions.Add(new InventoryAction { Action = "Drop", Item = this.Item, Index = this.Index });
|
|
Director.Actions.Add(new InventoryAction { Action = "Moove", Item = this.Item, Index = this.Index });
|
|
}
|
|
|
|
}
|
|
else if (Director.CurrentDragItemIndex != -1)
|
|
{
|
|
Director.RecipeItems[Director.CurrentDragItemIndex] = this.Item;
|
|
this.Item = ItemFactory.Create(Director.CurrentDragItem);
|
|
Director.RecipeItems[this.Index] = this.Item;
|
|
|
|
Director.Actions.Add(new InventoryAction { Action = "Swap Position", Item = this.Item, Index = this.Index });
|
|
}
|
|
|
|
Director.RecipeItems[this.Index] = this.Item;
|
|
string fileName = "Stack.json";
|
|
string jsonString = JsonSerializer.Serialize(Director.RecipeItems);
|
|
File.WriteAllText(fileName, jsonString);
|
|
}
|
|
|
|
|
|
private void OnDragStart()
|
|
{
|
|
|
|
Director.CurrentDragItem = this.Item;
|
|
Director.CurrentDragItemIndex = this.Index;
|
|
Director.Actions.Add(new InventoryAction { Action = "Drag Start", Item = this.Item, Index = this.Index });
|
|
}
|
|
|
|
|
|
|
|
private void OnDragEnd()
|
|
{
|
|
if (Director.Actions.Last().Action == "Drag Leave" && Director.CurrentDragItemIndex != -1 && this.Item != null)
|
|
{
|
|
this.Item = null;
|
|
Director.Actions.Add(new InventoryAction { Action = "Delete", Item = this.Item, Index = this.Index });
|
|
|
|
Director.RecipeItems[this.Index] = null;
|
|
string fileName = "End.json";
|
|
string jsonString = JsonSerializer.Serialize(Director.RecipeItems);
|
|
File.WriteAllText(fileName, jsonString);
|
|
}
|
|
|
|
if (Director.Actions.Last().Action == "Moove" && Director.CurrentDragItemIndex != -1)
|
|
{
|
|
this.Item = null;
|
|
Director.RecipeItems[this.Index] = null;
|
|
string fileName = "Stack.json";
|
|
string jsonString = JsonSerializer.Serialize(Director.RecipeItems);
|
|
File.WriteAllText(fileName, jsonString);
|
|
}
|
|
|
|
if (Director.Actions.Last().Action == "Swap Position")
|
|
{
|
|
this.Item = Director.RecipeItems[this.Index];
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|