Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
DragItemCard.cs
Go to the documentation of this file.
1using System.Collections.Generic;
2
3public class DragItemCard : DragItem
4{
5 public class DragInfo
6 {
8
10
11 public int invX;
12
13 public int invY;
14
15 public Thing thing;
16
17 public List<Thing> grid => container.things.grid;
18
20
22
23 public BaseList list => button.GetComponentInParent<BaseList>();
24
26
28 {
29 button = b;
30 if (!b || b.invOwner == null)
31 {
32 return;
33 }
34 if (b.card != null)
35 {
36 thing = b.card.Thing;
37 invX = thing.invX;
38 invY = thing.invY;
40 {
41 equippedSlot = invOwner.owner.Chara.body.slots[thing.c_equippedSlot - 1];
42 }
43 }
44 else
45 {
46 invX = b.index;
48 }
49 }
50 }
51
53
54 public DragInfo from;
55
56 public DragInfo to;
57
58 public override UIButton Button => button;
59
60 public DragItemCard(ButtonGrid _button, bool setDragImage = true)
61 {
62 button = _button;
63 from = new DragInfo(button);
64 if (setDragImage)
65 {
66 EClass.ui.hud.SetDragImage(button.icon, null, button.mainText);
67 }
68 }
69
70 public override void OnStartDrag()
71 {
74 {
75 LayerDragGrid.Instance.CurrentButton.Attach("guide", rightAttach: false);
76 }
77 }
78
79 public override void OnEndDrag()
80 {
81 WidgetEquip.dragEquip = null;
83 if ((bool)LayerDragGrid.Instance)
84 {
86 }
87 }
88
89 public override bool OnDragSpecial()
90 {
91 DragInfo dragInfo = new DragInfo(InputModuleEX.GetComponentOf<ButtonGrid>());
92 if (dragInfo != null && (bool)dragInfo.button && dragInfo.button.interactable && !(dragInfo.invOwner is InvOwnerHotbar) && dragInfo.invOwner.owner == from.invOwner.owner && dragInfo.invOwner.owner.IsPC && from.thing.Num > 1 && (dragInfo.thing == null || dragInfo.thing.CanStackTo(from.thing)))
93 {
94 bool num = dragInfo.thing != null;
95 Thing thing = from.thing.Split(1);
96 SE.Play(thing.material.GetSoundDrop(thing.sourceCard));
97 if (num)
98 {
99 dragInfo.thing.ModNum(1);
100 }
101 else
102 {
103 dragInfo.invOwner.Container.AddThing(thing, tryStack: false);
104 thing.invX = dragInfo.invX;
105 thing.invY = dragInfo.invY;
106 }
107 return true;
108 }
109 return false;
110 }
111
112 public override bool OnDrag(bool execute, bool cancel = false)
113 {
114 DragInfo dragInfo = new DragInfo(InputModuleEX.GetComponentOf<ButtonGrid>());
115 bool num = from.invOwner.OnDrag(from, dragInfo, execute, cancel);
116 if (num && EClass.core.config.game.doubleClickToHold && EClass.ui.dragDuration < 0.35f && dragInfo.button == from.button && from.thing != null)
117 {
118 dragInfo.button.invOwner.TryHold(from.thing);
119 }
120 return num;
121 }
122}
ContainerType
Definition: ContainerType.cs:2
Card card
Definition: ButtonGrid.cs:24
InvOwner invOwner
Definition: ButtonGrid.cs:28
Transform Attach(string id, bool rightAttach=true)
Definition: ButtonGrid.cs:63
void Dettach(string id)
Definition: ButtonGrid.cs:78
Definition: Card.cs:11
virtual Chara Chara
Definition: Card.cs:1946
Thing Split(int a)
Definition: Card.cs:3231
SourceMaterial.Row material
Definition: Card.cs:1927
int invY
Definition: Card.cs:1831
Thing AddThing(string id, int lv=-1)
Definition: Card.cs:2901
Trait trait
Definition: Card.cs:49
ThingContainer things
Definition: Card.cs:34
virtual bool IsPC
Definition: Card.cs:2019
virtual Thing Thing
Definition: Card.cs:1934
Card GetRootCard()
Definition: Card.cs:3173
int invX
Definition: Card.cs:1819
int Num
Definition: Card.cs:154
void ModNum(int a, bool notify=true)
Definition: Card.cs:3262
List< BodySlot > slots
Definition: CharaBody.cs:8
CharaBody body
Definition: Chara.cs:91
new GameConfig game
Definition: CoreConfig.cs:596
CoreConfig config
Definition: Core.cs:70
List< Thing > grid
Definition: DragItemCard.cs:17
DragInfo(ButtonGrid b)
Definition: DragItemCard.cs:27
override UIButton Button
Definition: DragItemCard.cs:58
DragItemCard(ButtonGrid _button, bool setDragImage=true)
Definition: DragItemCard.cs:60
override void OnStartDrag()
Definition: DragItemCard.cs:70
ButtonGrid button
Definition: DragItemCard.cs:52
DragInfo from
Definition: DragItemCard.cs:54
DragInfo to
Definition: DragItemCard.cs:56
override void OnEndDrag()
Definition: DragItemCard.cs:79
override bool OnDrag(bool execute, bool cancel=false)
override bool OnDragSpecial()
Definition: DragItemCard.cs:89
Definition: EClass.cs:5
static Core core
Definition: EClass.cs:6
static UI ui
Definition: EClass.cs:16
virtual int destInvY
Definition: InvOwner.cs:594
Card owner
Definition: InvOwner.cs:538
Card Container
Definition: InvOwner.cs:540
virtual bool OnDrag(DragItemCard.DragInfo from, DragItemCard.DragInfo to, bool execute, bool cancel=false)
Definition: InvOwner.cs:1175
void OnStartDrag(DragItemCard.DragInfo from)
Definition: InvOwner.cs:1151
bool TryHold(Thing t)
Definition: InvOwner.cs:1481
virtual bool ShouldShowGuide(Thing t)
Definition: InvOwner.cs:686
ButtonGrid CurrentButton
InvOwnerDraglet owner
static LayerDragGrid Instance
List< Thing > grid
Definition: Thing.cs:8
bool isEquipped
Definition: Thing.cs:17
override CardRow sourceCard
Definition: Thing.cs:47
override bool CanStackTo(Thing to)
Definition: Thing.cs:1542
virtual ContainerType ContainerType
Definition: Trait.cs:239
Image icon
Definition: UIButton.cs:110
UIText mainText
Definition: UIButton.cs:102
static void Redraw()
Definition: WidgetEquip.cs:69