Elin Decompiled Documentation EA 23.219 Nightly Patch 2
Loading...
Searching...
No Matches
ActionMode.cs
Go to the documentation of this file.
1using System.Collections.Generic;
2using System.Linq;
3using UnityEngine;
4
5public class ActionMode : EClass
6{
7 public static ActionMode DefaultMode;
8
9 public static AM_Title Title = new AM_Title();
10
11 public static AM_Sim Sim;
12
13 public static AM_ViewZone View;
14
15 public static AM_Adv Adv;
16
17 public static AM_Region Region;
18
19 public static AM_ADV_Target AdvTarget;
20
21 public static AM_EloMap EloMap;
22
23 public static AM_Inspect Inspect;
24
25 public static AM_NoMap NoMap;
26
27 public static AM_MiniGame MiniGame;
28
29 public static AM_NewZone NewZone;
30
31 public static AM_Bird Bird;
32
33 public static AM_Mine Mine;
34
35 public static AM_Dig Dig;
36
37 public static AM_Harvest Harvest;
38
39 public static AM_Cut Cut;
40
42
43 public static AM_Picker Picker;
44
45 public static AM_Copy Copy;
46
47 public static AM_Blueprint Blueprint;
48
49 public static AM_Build Build;
50
52
53 public static AM_EditArea EditArea;
54
56
58
59 public static AM_Select Select;
60
62
63 public static AM_ViewMap ViewMap;
64
65 public static AM_Terrain Terrain;
66
67 public static AM_Populate Populate;
68
70
72
73 public static AM_Cinema Cinema;
74
75 public static AM_Paint Paint;
76
77 public static AM_FlagCell FlagCell;
78
80
82
83 public static bool ignoreSound;
84
85 private static float smoothX = 0f;
86
87 private static float smoothY = 0f;
88
89 private static float textTimer = 0f;
90
91 protected static Vector3 mpos;
92
93 public static float[] GameSpeeds = new float[4] { 0f, 1f, 2f, 5f };
94
95 public static List<TCSimpleText> simpleTexts = new List<TCSimpleText>();
96
97 public Layer layer;
98
99 public int brushRadius = 4;
100
101 private static float focusTimer;
102
103 public static float hotElementTimer;
104
105 public static AM_Adv AdvOrRegion
106 {
107 get
108 {
109 if (!EClass._zone.IsRegion)
110 {
111 return Adv;
112 }
113 return Region;
114 }
115 }
116
117 public static bool IsAdv => DefaultMode is AM_Adv;
118
119 public virtual float gameSpeed => 1f;
120
121 public bool IsActive => EClass.scene.actionMode == this;
122
124
126
128
129 public virtual bool ContinuousClick => false;
130
131 public virtual int hitW => 1;
132
133 public virtual int hitH => 1;
134
136
137 public bool Multisize
138 {
139 get
140 {
141 if (hitW == 1)
142 {
143 return hitW != 1;
144 }
145 return true;
146 }
147 }
148
149 public virtual string id => GetType().Name.Split('_')[1];
150
151 public virtual CursorInfo DefaultCursor => null;
152
153 public virtual string idHelpTopic => "4";
154
155 public virtual string idSound => null;
156
157 public virtual bool enableMouseInfo => false;
158
159 public virtual bool hideBalloon => false;
160
161 public virtual string textHintTitle => null;
162
163 public virtual bool AllowAutoClick => false;
164
165 public virtual bool ShowActionHint => true;
166
167 public virtual bool ShowMouseoverTarget => true;
168
170
171 public virtual bool CanSelectTile => false;
172
173 public virtual bool CanTargetOutsideBounds => true;
174
175 public virtual bool ShouldPauseGame => true;
176
177 public virtual bool FixFocus => false;
178
179 public virtual bool HideSubWidgets => true;
180
181 public virtual bool IsBuildMode => false;
182
183 public virtual bool ShowBuildWidgets => IsBuildMode;
184
186 {
187 get
188 {
189 if (!IsBuildMode)
190 {
191 return BuildMenu.Mode.None;
192 }
193 return BuildMenu.Mode.Hide;
194 }
195 }
196
197 public virtual bool ShouldHideBuildMenu
198 {
199 get
200 {
201 if (IsBuildMode)
202 {
203 return tileSelector.start != null;
204 }
205 return false;
206 }
207 }
208
209 public virtual bool CanTargetFog => false;
210
211 public virtual int CostMoney => 0;
212
213 public virtual bool AllowBuildModeShortcuts => IsBuildMode;
214
215 public virtual bool AllowMiddleClickFunc => false;
216
217 public virtual bool AllowHotbar => true;
218
219 public virtual bool AllowGeneralInput => true;
220
221 public virtual bool ShowMaskedThings => false;
222
223 public virtual int SelectorHeight => -1;
224
225 public virtual bool AllowWheelZoom => true;
226
227 public virtual float TargetZoom => 1f;
228
230
231 public virtual BaseGameScreen TargetGameScreen => null;
232
233 public virtual bool IsNoMap => false;
234
235 public virtual bool UseSubMenu => false;
236
237 public virtual bool UseSubMenuSlider => false;
238
239 public virtual bool SubMenuAsGroup => false;
240
241 public virtual int SubMenuModeIndex => 0;
242
243 public virtual bool ShowExtraHint => Lang.GetList("exhint_" + GetType().Name) != null;
244
246
247 public static void OnGameInstantiated()
248 {
249 LastBuildMode = null;
250 Sim = new AM_Sim();
251 View = new AM_ViewZone();
252 Adv = new AM_Adv();
253 AdvTarget = new AM_ADV_Target();
254 Region = new AM_Region();
255 NoMap = new AM_NoMap();
256 MiniGame = new AM_MiniGame();
257 EloMap = new AM_EloMap();
258 NewZone = new AM_NewZone();
259 Select = new AM_Select();
260 Inspect = new AM_Inspect();
261 Bird = new AM_Bird();
263 Mine = new AM_Mine();
264 Dig = new AM_Dig();
265 Harvest = new AM_Harvest();
266 Cut = new AM_Cut();
267 Copy = new AM_Copy();
268 Blueprint = new AM_Blueprint();
269 Build = new AM_Build();
270 Picker = new AM_Picker();
273 EditArea = new AM_EditArea();
277 ViewMap = new AM_ViewMap();
278 Terrain = new AM_Terrain();
279 Populate = new AM_Populate();
282 Cinema = new AM_Cinema();
283 FlagCell = new AM_FlagCell();
284 Paint = new AM_Paint();
285 }
286
287 public virtual int TopHeight(Point p)
288 {
289 return -1;
290 }
291
292 public virtual void SEExecuteSummary()
293 {
294 SE.Play("plan");
295 }
296
297 public virtual bool HighlightWall(Point p)
298 {
299 return false;
300 }
301
302 public virtual void OnClickSubMenu(int a)
303 {
304 }
305
306 public virtual string OnSetSubMenuButton(int a, UIButton b)
307 {
308 return null;
309 }
310
311 public virtual bool IsRoofEditMode(Card c = null)
312 {
313 return false;
314 }
315
316 public virtual bool IsFillMode()
317 {
318 return false;
319 }
320
321 public virtual int GetDefaultTile(Point p)
322 {
323 return 0;
324 }
325
326 public virtual void OnShowExtraHint(UINote n)
327 {
328 string[] list = Lang.GetList("exhint_" + GetType().Name);
329 if (list != null)
330 {
331 string[] array = list;
332 foreach (string text in array)
333 {
334 n.AddText("NoteText_extrahint", text, Color.white);
335 }
336 }
337 }
338
339 public void Activate(bool toggle = true, bool forceActivate = false)
340 {
341 if (TargetGameScreen != null)
342 {
344 }
345 if (EClass.scene.actionMode == this && !forceActivate)
346 {
347 if (toggle && EClass.scene.actionMode != DefaultMode)
348 {
350 }
351 return;
352 }
353 if (ignoreSound)
354 {
355 ignoreSound = false;
356 }
357 else
358 {
359 EClass.Sound.Play(idSound);
360 }
361 EInput.Consume(0);
362 ActionMode actionMode = EClass.scene.actionMode;
363 EClass.scene.actionMode = this;
364 if (actionMode != null)
365 {
366 if (actionMode.IsBuildMode && !(actionMode is AM_ViewMap))
367 {
368 LastBuildMode = actionMode;
369 }
370 actionMode.ClearSimpleTexts();
371 actionMode.OnDeactivate();
373 {
374 foreach (Card item in ((IEnumerable<Card>)EClass._map.things).Concat((IEnumerable<Card>)EClass._map.charas))
375 {
376 item.renderer.DespawnSimpleText();
377 }
378 }
379 _ = NoMap;
380 EClass.ui.RemoveLayers();
381 }
382 if (IsBuildMode)
383 {
386 }
387 else
388 {
390 }
391 if (!(this is AM_Adv))
392 {
393 EClass.ui.hud.transRight.SetActive(enable: false);
394 }
395 EClass.ui.hud.frame.SetActive(IsBuildMode && EClass.game.altUI);
396 if (hideBalloon)
397 {
398 EClass.ui.ShowBalloon(enable: false);
399 }
400 else
401 {
402 EClass.ui.ShowBalloon(!EClass.scene.hideBalloon);
403 }
404 OnActivate();
405 RefreshTexts();
406 ShowLayer();
407 EClass.ui.widgets.OnChangeActionMode();
408 EClass.ui.extraHint.OnChangeActionMode();
409 CursorSystem.leftIcon = null;
411 }
412
413 public virtual void OnActivate()
414 {
415 }
416
417 public void RefreshTexts()
418 {
420 {
421 return;
422 }
425 {
426 foreach (Spatial child in EClass._zone.children)
427 {
428 if (!child.destryoed)
429 {
430 Sprite sprite = null;
431 if (child.isRandomSite && !child.isConquered && child.visitCount > 0)
432 {
434 }
435 else if (child.isConquered)
436 {
438 }
439 else if (!child.IsPlayerFaction && child is Zone_Field && child.isDeathLocation)
440 {
441 sprite = EClass.core.refs.tcs.spriteDeath;
442 }
443 if ((bool)sprite)
444 {
445 TCSimpleText tCSimpleText = TCSimpleText.SpawnIcon(sprite);
446 simpleTexts.Add(tCSimpleText);
447 Cell cell = child.RegionPos.cell;
448 tCSimpleText.transform.position = cell.GetPoint().PositionTopdown() + EClass.setting.render.tc.simpleTextPos;
449 }
450 }
451 }
452 }
454 {
455 return;
456 }
457 foreach (Card item in ((IEnumerable<Card>)EClass._map.things).Concat((IEnumerable<Card>)EClass._map.charas))
458 {
459 string simpleText = GetSimpleText(item);
460 if (!simpleText.IsEmpty())
461 {
462 TCSimpleText tCSimpleText2 = TCSimpleText.Spawn();
463 Popper.SetText(tCSimpleText2.tm, simpleText);
464 simpleTexts.Add(tCSimpleText2);
465 tCSimpleText2.transform.position = item.pos.Position() + EClass.setting.render.tc.simpleTextPos;
466 }
467 }
468 if (!Application.isEditor)
469 {
470 return;
471 }
472 foreach (KeyValuePair<int, int> backerObj in EClass._map.backerObjs)
473 {
474 SourceBacker.Row row = EClass.sources.backers.map[backerObj.Value];
475 string text = "Backer:" + row.id + "/" + row.Name;
476 if (row.isStatic != 0)
477 {
478 text = "★" + text;
479 }
480 TCSimpleText tCSimpleText3 = TCSimpleText.Spawn();
481 Popper.SetText(tCSimpleText3.tm, text);
482 simpleTexts.Add(tCSimpleText3);
483 Cell cell2 = EClass._map.GetCell(backerObj.Key);
484 tCSimpleText3.transform.position = cell2.GetPoint().Position() + EClass.setting.render.tc.simpleTextPos;
485 }
486 foreach (Card card in EClass._map.Cards)
487 {
488 if (!card.isBackerContent)
489 {
490 continue;
491 }
492 SourceBacker.Row row2 = EClass.sources.backers.map.TryGetValue(card.c_idBacker);
493 if (row2 != null)
494 {
495 string text2 = "Backer:" + row2.id + "/" + row2.Name;
496 if (row2.isStatic != 0)
497 {
498 text2 = "★" + text2;
499 }
500 TCSimpleText tCSimpleText4 = TCSimpleText.Spawn();
501 Popper.SetText(tCSimpleText4.tm, text2);
502 simpleTexts.Add(tCSimpleText4);
503 tCSimpleText4.transform.position = card.renderer.position + EClass.setting.render.tc.simpleTextPos;
504 }
505 }
506 }
507
508 public virtual string GetSimpleText(Card c)
509 {
510 if (c.trait is TraitRoomPlate && c.Cell.room != null)
511 {
512 return "#" + c.Cell.room.data.group;
513 }
514 return null;
515 }
516
517 public void ClearSimpleTexts()
518 {
519 foreach (TCSimpleText simpleText in simpleTexts)
520 {
521 if (simpleText != null)
522 {
523 PoolManager.Despawn(simpleText);
524 }
525 }
526 simpleTexts.Clear();
527 }
528
529 public void Deactivate()
530 {
532 }
533
534 public virtual void OnDeactivate()
535 {
536 }
537
538 public virtual void OnCancel()
539 {
540 if (!IsBuildMode || EClass.core.config.input.rightClickExitBuildMode || Input.GetKey(KeyCode.Escape))
541 {
542 Deactivate();
543 }
544 }
545
546 public virtual void OnBeforeUpdate()
547 {
548 }
549
550 public virtual void OnAfterUpdate()
551 {
552 }
553
554 public virtual void OnUpdateCursor()
555 {
556 CursorSystem.leftIcon = null;
558 }
559
560 public void OnRotate()
561 {
563 }
564
565 public void SetCursorOnMap(CursorInfo cursor)
566 {
567 CursorSystem.SetCursor(EClass.ui.isPointerOverUI ? null : cursor);
568 }
569
570 public void UpdateInput()
571 {
572 mpos = Input.mousePosition;
573 if (!IsNoMap)
574 {
576 if ((bool)WidgetMouseover.Instance)
577 {
579 }
580 }
581 if (LayerAbility.hotElement != null)
582 {
586 {
588 {
590 SE.SelectHotitem();
591 }
592 else
593 {
594 ButtonGrid componentOf = InputModuleEX.GetComponentOf<ButtonGrid>();
595 if ((bool)componentOf && componentOf.invOwner != null && componentOf.invOwner.owner == EClass.pc && (componentOf.card == null || componentOf.card.trait is TraitAbility) && !(componentOf.invOwner is InvOwnerEquip))
596 {
597 if (componentOf.card != null)
598 {
599 componentOf.card.Destroy();
600 }
601 SE.Equip();
603 Thing thing = ThingGen.Create("ability");
604 int num = ((componentOf.invOwner is InvOwnerHotbar) ? 1 : 0);
605 componentOf.invOwner.Container.AddThing(thing, tryStack: false, componentOf.index, num);
606 thing.c_idAbility = hotElement.source.alias;
607 thing.invY = num;
608 thing.invX = componentOf.index;
609 WidgetCurrentTool.dirty = true;
610 }
611 else
612 {
613 SE.BeepSmall();
614 }
615 }
617 }
619 {
621 }
622 }
623 else
624 {
625 hotElementTimer = 0f;
626 }
628 if (EClass.ui.isPointerOverUI && (EInput.leftMouse.down || EInput.rightMouse.down || (EClass.core.config.ui.autoFocusWindow && !Input.GetMouseButton(0))))
629 {
630 LayerInventory componentOf2 = InputModuleEX.GetComponentOf<LayerInventory>();
631 if (componentOf2 != null)
632 {
633 LayerInventory layerInventory = LayerInventory.GetLayer(InputModuleEX.GetComponentOf<ButtonGrid>()?.card);
634 if ((bool)layerInventory)
635 {
636 LayerInventory.highlightInv = layerInventory.invs[0].owner;
637 }
638 if (focusTimer > 0.1f)
639 {
640 if (EClass.ui.layerFloat.layers.Contains(componentOf2) && !layerInventory)
641 {
642 componentOf2.transform.SetAsLastSibling();
643 }
644 LayerAbility componentOf3 = InputModuleEX.GetComponentOf<LayerAbility>();
645 if (componentOf3 != null && EClass.ui.layerFloat.layers.Contains(componentOf3))
646 {
647 componentOf3.transform.SetAsLastSibling();
648 }
649 focusTimer = 0f;
650 }
651 }
652 }
653 if ((EInput.isShiftDown && Input.GetMouseButton(0)) || (EInput.rightMouse.dragging2 && !Input.GetMouseButtonDown(1) && Input.GetMouseButton(1)))
654 {
655 bool rightMouse = !Input.GetMouseButtonDown(1) && Input.GetMouseButton(1);
656 ButtonGrid componentOf4 = InputModuleEX.GetComponentOf<ButtonGrid>();
657 if (componentOf4 != null && componentOf4.invOwner != null && componentOf4.card != null && componentOf4.invOwner.CanShiftClick(componentOf4, rightMouse) && EClass.ui.AllowInventoryInteractions)
658 {
659 componentOf4.invOwner.OnShiftClick(componentOf4, rightMouse);
660 }
661 }
663 {
664 LayerInventory componentOf5 = InputModuleEX.GetComponentOf<LayerInventory>();
665 if (componentOf5 != null && EClass.ui.layerFloat.layers.Contains(componentOf5) && EInput.rightMouse.down && !componentOf5.mainInv && !InputModuleEX.GetComponentOf<UIButton>() && !componentOf5.windows[0].saveData.noRightClickClose)
666 {
667 componentOf5.Close();
668 }
669 if (EClass.ui.contextMenu.isActive)
670 {
671 EClass.ui.contextMenu.currentMenu.Hide();
673 Layer.rightClicked = false;
674 }
675 if (DropdownGrid.IsActive && !EClass.ui.GetLayer<LayerInfo>())
676 {
679 Layer.rightClicked = false;
680 }
681 }
683 {
684 EInput.Consume();
685 }
687 bool flag = (EInput.mouse3.clicked && input.mouse3Click == CoreConfig.GameFunc.AllAction) || (EInput.mouse4.clicked && input.mouse4Click == CoreConfig.GameFunc.AllAction) || (EInput.mouse3.pressedLong && input.mouse3PressLong == CoreConfig.GameFunc.AllAction) || (EInput.mouse4.pressedLong && input.mouse4PressLong == CoreConfig.GameFunc.AllAction);
689 {
690 UIButton componentOf6 = InputModuleEX.GetComponentOf<UIButton>();
691 if ((bool)componentOf6 && componentOf6.CanMiddleClick() && (flag || EInput.middleMouse.clicked || EInput.middleMouse.pressedLong))
692 {
693 componentOf6.OnMiddleClick(flag);
694 }
695 }
696 if ((bool)EClass.ui.contextMenu.currentMenu)
697 {
698 UIContextMenu.timeSinceClosed = 0f;
699 }
700 else
701 {
702 UIContextMenu.timeSinceClosed += Time.deltaTime;
703 }
704 if (EClass.ui.currentDrag != null)
705 {
706 EClass.ui.OnDrag();
708 {
709 if (Input.GetMouseButton(0) && EInput.rightMouse.down)
710 {
711 EClass.ui.OnDragSpecial();
712 }
713 else
714 {
716 }
717 }
718 }
719 ButtonState middleMouse = EInput.middleMouse;
720 if (middleMouse.pressedLongAction != null)
721 {
722 if (middleMouse.pressedLong)
723 {
724 middleMouse.pressedLongAction();
725 middleMouse.pressedLongAction = null;
726 }
727 else if (!EInput.middleMouse.pressing)
728 {
729 middleMouse.pressedLongAction = null;
730 }
731 }
732 EClass.ui.UpdateInput();
733 if (EInput.action == EAction.Mute)
734 {
736 }
737 if (AllowGeneralInput && !EClass.ui.IsDragging)
738 {
739 if (Input.GetKeyDown(KeyCode.Tab) && !EClass.debug.debugInput && !EClass.ui.BlockInput && !IsBuildMode && !EInput.waitReleaseAnyKey)
740 {
741 if (!EClass.ui.IsInventoryOpen)
742 {
743 SE.PopInventory();
744 }
745 EClass.ui.ToggleInventory();
746 }
747 if (!EClass.ui.BlockInput && !IsBuildMode && !EInput.waitReleaseAnyKey)
748 {
749 switch (EInput.action)
750 {
751 case EAction.MenuChara:
752 EClass.ui.ToggleLayer<LayerChara>()?.SetChara(EClass.pc);
753 break;
754 case EAction.MenuJournal:
755 EClass.ui.ToggleLayer<LayerJournal>();
756 break;
757 case EAction.MenuAbility:
758 if (!EClass.debug.enable)
759 {
760 EClass.ui.ToggleAbility();
761 }
762 break;
763 case EAction.MenuInventory:
764 if (!EClass.ui.IsInventoryOpen)
765 {
766 SE.PopInventory();
767 }
768 EClass.ui.ToggleInventory();
769 break;
770 }
771 }
772 if (!FixFocus)
773 {
775 }
776 if (!EClass.ui.canvas.enabled && EInput.IsAnyKeyDown())
777 {
778 EClass.ui.ToggleCanvas();
779 EInput.Consume();
780 return;
781 }
782 }
783 if (EInput.action == EAction.Examine && !IsBuildMode)
784 {
785 ButtonGrid componentOf7 = InputModuleEX.GetComponentOf<ButtonGrid>();
786 Card card = null;
787 if ((bool)componentOf7 && componentOf7.card != null)
788 {
789 card = componentOf7.card;
790 }
791 if (card == null)
792 {
793 UIItem componentOf8 = InputModuleEX.GetComponentOf<UIItem>();
794 if ((bool)componentOf8 && componentOf8.refObj is Thing)
795 {
796 card = (Thing)componentOf8.refObj;
797 }
798 }
799 if (card == null)
800 {
801 LayerCraft layerCraft = EClass.ui.GetLayer<LayerCraft>();
802 if ((bool)layerCraft)
803 {
804 card = layerCraft.product;
805 }
806 }
807 if (card != null)
808 {
809 if ((bool)EClass.ui.GetLayer<LayerInfo>())
810 {
811 EClass.ui.RemoveLayer<LayerInfo>();
812 }
813 EClass.ui.AddLayer<LayerInfo>().Set(card, _examine: true);
814 }
815 }
817 {
819 }
820 if (EClass.ui.BlockActions)
821 {
822 return;
823 }
824 if (AllowBuildModeShortcuts && Input.GetKeyDown(KeyCode.Q) && Picker.CanActivate)
825 {
827 }
829 {
830 Point hitPoint = Scene.HitPoint;
831 bool flag2 = EInput.wheel > 0;
832 if (EClass.scene.mouseTarget.card != null)
833 {
835 if (card2.isThing && card2.IsInstalled)
836 {
837 SourceMaterial.Row currentMat = (card2.isDyed ? card2.DyeMat : card2.material);
838 List<SourceMaterial.Row> source = EClass.sources.materials.rows.Where((SourceMaterial.Row m) => m.thing == currentMat.thing).ToList();
840 {
841 source = EClass.sources.materials.rows;
842 }
843 SourceMaterial.Row row = (flag2 ? source.NextItem(currentMat) : source.PrevItem(currentMat));
844 if (row == null)
845 {
846 row = card2.DyeMat;
847 }
848 if (EInput.isAltDown)
849 {
850 row = lastEditorMat;
851 }
852 if (card2.isDyed)
853 {
854 card2.Dye(row);
855 }
856 else
857 {
858 card2.ChangeMaterial(row);
859 }
860 lastEditorMat = row;
861 Msg.Say(row.GetName() + "(" + row.alias + ")");
862 }
863 }
864 else if (hitPoint.HasObj)
865 {
866 SourceMaterial.Row matObj = hitPoint.cell.matObj;
867 List<SourceMaterial.Row> rows = EClass.sources.materials.rows;
868 SourceMaterial.Row row2 = (flag2 ? rows.NextItem(matObj) : rows.PrevItem(matObj));
869 if (EInput.isAltDown)
870 {
871 row2 = lastEditorMat;
872 }
873 hitPoint.cell.objMat = (byte)row2.id;
874 lastEditorMat = row2;
875 Msg.Say(row2.GetName());
876 }
877 EInput.Consume();
878 }
880 {
881 if (EInput.hotkey != -1)
882 {
883 WidgetCurrentTool.Instance.Select(EInput.hotkey, fromHotkey: true);
885 }
886 else if (!EClass.debug.enable && EInput.functionkey != -1)
887 {
889 if ((bool)hotbarExtra)
890 {
891 hotbarExtra.TryUse(EInput.functionkey);
892 }
893 }
894 }
896 if (EClass.debug.enable)
897 {
899 }
901 if (textTimer > 0.1f)
902 {
903 textTimer = 0f;
904 RefreshTexts();
905 }
907 {
909 {
910 DoFunc(input.b_middleClick);
911 }
913 {
916 }
918 {
919 DoFunc(input.b_mouse3Click);
920 }
921 else if (EInput.mouse3.pressedLong)
922 {
925 }
927 {
928 DoFunc(input.b_mouse4Click);
929 }
930 else if (EInput.mouse4.pressedLong)
931 {
934 }
935 }
936 }
937
938 public void InputMovement()
939 {
940 float num = 0f;
941 float num2 = 0f;
942 Vector2 axis = EInput.axis;
943 bool flag = !EClass.core.IsGameStarted;
945 {
946 if (Input.GetKey(KeyCode.LeftShift))
947 {
948 axis *= 3f;
949 }
951 {
952 Vector2 zero = Vector2.zero;
953 if (mpos.x < 16f)
954 {
955 zero.x -= 1f;
956 }
957 if (mpos.x > (float)(Screen.width - 16))
958 {
959 zero.x += 1f;
960 }
961 if (mpos.y < 8f)
962 {
963 zero.y -= 1f;
964 }
965 if (mpos.y > (float)(Screen.height - 8))
966 {
967 zero.y += 1f;
968 }
969 if (zero != Vector2.zero)
970 {
971 axis += zero * (EClass.core.config.camera.sensEdge * 2f);
972 }
973 }
974 EInput.hasAxisMoved = axis != Vector2.zero;
976 if (Adv.IsActive)
977 {
978 _ = Adv.zoomOut;
979 }
980 if (EInput.buttonScroll != null && EInput.buttonScroll.pressing && (flag || !EClass.ui.BlockActions))
981 {
982 num = EInput.dragAmount.x * (0.1f + EClass.core.config.camera.sensDrag);
983 num2 = EInput.dragAmount.y * (0.1f + EClass.core.config.camera.sensDrag);
985 {
986 num *= -1f;
987 }
989 {
990 num2 *= -1f;
991 }
993 {
994 EInput.hasAxisMoved = true;
995 }
996 }
998 {
999 EClass.screen.zoomPos = Vector3.zero;
1000 }
1001 if (EInput.wheel != 0 && !InputModuleEX.GetComponentOf<UIScrollView>())
1002 {
1004 }
1005 }
1006 float momentum = EClass.core.config.camera.momentum;
1007 if (momentum > 0f && EInput.axis == Vector2.zero)
1008 {
1009 smoothX = Mathf.Lerp(smoothX, num, Time.smoothDeltaTime * momentum);
1010 smoothY = Mathf.Lerp(smoothY, num2, Time.smoothDeltaTime * momentum);
1011 }
1012 else
1013 {
1014 smoothX = num;
1015 smoothY = num2;
1016 }
1017 EClass.screen.ScrollMouse(smoothX * 0.1f, smoothY * 0.1f);
1018 if (EInput.hasAxisMoved)
1019 {
1020 OnScroll();
1021 EClass.screen.ScrollAxis(axis);
1022 }
1023 }
1024
1025 public virtual void InputWheel(int wheel)
1026 {
1027 if (AllowWheelZoom)
1028 {
1030 }
1031 }
1032
1033 public virtual void OnUpdateInput()
1034 {
1035 }
1036
1038 {
1039 switch (func)
1040 {
1041 case CoreConfig.GameFuncBuild.ExitBuildMode:
1043 break;
1044 case CoreConfig.GameFuncBuild.ToggleFreepos:
1046 break;
1047 case CoreConfig.GameFuncBuild.ToggleRoof:
1049 break;
1050 case CoreConfig.GameFuncBuild.ToggleSlope:
1052 break;
1053 case CoreConfig.GameFuncBuild.Rotate:
1054 OnRotate();
1055 break;
1056 case CoreConfig.GameFuncBuild.ToggleWall:
1058 break;
1059 case CoreConfig.GameFuncBuild.TogglePicker:
1060 if (Picker.CanActivate)
1061 {
1062 Picker.Activate();
1063 }
1064 break;
1065 case CoreConfig.GameFuncBuild.SnapFreepos:
1067 break;
1068 case CoreConfig.GameFuncBuild.ToggleBuildLight:
1070 break;
1071 }
1073 }
1074
1076 {
1079 {
1080 return input.middleClick == func;
1081 }
1083 {
1084 return input.middlePressLong == func;
1085 }
1086 if (EInput.mouse3.clicked)
1087 {
1088 return input.mouse3Click == func;
1089 }
1091 {
1092 return input.mouse3PressLong == func;
1093 }
1094 if (EInput.mouse4.clicked)
1095 {
1096 return input.mouse4Click == func;
1097 }
1099 {
1100 return input.mouse4PressLong == func;
1101 }
1102 return false;
1103 }
1104
1105 public void DoFunc(CoreConfig.GameFunc func)
1106 {
1108 switch (func)
1109 {
1110 default:
1111 return;
1112 case CoreConfig.GameFunc.OpenAllyInv:
1113 if (!EClass.pc.HasNoGoal || (targetChara != null && !targetChara.IsPCFaction))
1114 {
1115 return;
1116 }
1118 {
1119 if (!EClass.ui.IsInventoryOpen)
1120 {
1121 SE.PopInventory();
1122 }
1123 EClass.ui.ToggleInventory();
1124 }
1125 else if (targetChara != null && EClass.pc.Dist(targetChara) <= 1)
1126 {
1127 LayerInventory.CreateContainer(targetChara);
1128 }
1129 break;
1130 case CoreConfig.GameFunc.EmptyHand:
1131 EInput.action = EAction.EmptyHand;
1132 return;
1133 case CoreConfig.GameFunc.Fire:
1134 if (EInput.keyFire.Update(forcePress: true))
1135 {
1136 EInput.action = EAction.Fire;
1137 return;
1138 }
1139 break;
1140 case CoreConfig.GameFunc.SwitchHotbar:
1142 break;
1143 case CoreConfig.GameFunc.PropertySearch:
1144 EClass.ui.widgets.Toggle("Search")?.SoundActivate();
1145 break;
1146 case CoreConfig.GameFunc.Talk:
1147 if (!EClass.pc.HasNoGoal || targetChara == null || targetChara.hostility <= Hostility.Enemy || targetChara.IsPC || EClass.pc.Dist(targetChara) > 2)
1148 {
1149 return;
1150 }
1151 ACT.Chat.Perform(EClass.pc, targetChara);
1152 break;
1153 case CoreConfig.GameFunc.AllAction:
1154 if (!EClass.ui.isPointerOverUI)
1155 {
1157 }
1158 return;
1159 case CoreConfig.GameFunc.ToggleBuild:
1161 {
1162 SE.Beep();
1163 Msg.Say("invalidAction");
1164 return;
1165 }
1166 BuildMenu.Toggle();
1167 break;
1168 case CoreConfig.GameFunc.ShowJournal:
1169 {
1170 LayerJournal layerJournal = EClass.ui.ToggleLayer<LayerJournal>();
1171 if ((bool)layerJournal)
1172 {
1173 layerJournal.windows[0].SetRect(EClass.core.refs.rects.center);
1174 layerJournal.Delay();
1175 }
1176 break;
1177 }
1178 case CoreConfig.GameFunc.ToggleLog:
1180 break;
1181 case CoreConfig.GameFunc.ShowInv:
1182 EClass.ui.ToggleInventory(delay: true);
1183 break;
1184 case CoreConfig.GameFunc.ShowChara:
1185 {
1186 LayerChara layerChara = EClass.ui.ToggleLayer<LayerChara>();
1187 if ((bool)layerChara)
1188 {
1189 layerChara.SetChara(EClass.pc);
1190 layerChara.windows[0].SetRect(EClass.core.refs.rects.center);
1191 layerChara.Delay();
1192 }
1193 break;
1194 }
1195 case CoreConfig.GameFunc.ShowAbility:
1196 EClass.ui.ToggleAbility(delay: true);
1197 break;
1198 case CoreConfig.GameFunc.ToggleNoRoof:
1199 EClass.game.config.noRoof = !EClass.game.config.noRoof;
1200 break;
1201 case CoreConfig.GameFunc.ToggleZoom:
1202 Adv.ToggleZoom();
1203 break;
1204 case CoreConfig.GameFunc.EmuShift:
1205 case CoreConfig.GameFunc.EmuAlt:
1206 return;
1207 }
1208 EInput.Consume();
1209 }
1210
1211 public virtual void OnScroll()
1212 {
1213 }
1214
1216 {
1217 Widget componentOf = InputModuleEX.GetComponentOf<Widget>();
1218 if ((bool)componentOf && componentOf.RightClickToClose)
1219 {
1220 componentOf.Close();
1221 }
1222 }
1223
1224 public bool TryShowWidgetMenu()
1225 {
1226 Widget componentOf = InputModuleEX.GetComponentOf<Widget>();
1227 if ((bool)componentOf && componentOf.CanShowContextMenu())
1228 {
1229 if (componentOf.RightClickToClose)
1230 {
1231 componentOf.Close();
1232 return true;
1233 }
1234 componentOf.ShowContextMenu();
1235 return true;
1236 }
1237 return false;
1238 }
1239
1240 public HitResult _HitTest(Point point, Point start)
1241 {
1243 {
1244 return HitResult.NoTarget;
1245 }
1246 if (!point.IsValid)
1247 {
1248 return HitResult.NoTarget;
1249 }
1250 if (!CanTargetFog && !point.cell.isSeen)
1251 {
1252 return HitResult.Default;
1253 }
1254 return HitTest(point, start);
1255 }
1256
1257 public virtual HitResult HitTest(Point point, Point start)
1258 {
1259 return HitResult.Default;
1260 }
1261
1262 public virtual void OnSelectStart(Point point)
1263 {
1264 }
1265
1266 public virtual void OnSelectEnd(bool cancel)
1267 {
1268 }
1269
1270 public virtual MeshPass GetGuidePass(Point point)
1271 {
1272 if ((!point.HasNonWallBlock && !point.HasBlockRecipe && point.IsSeen) || (point.sourceBlock.tileType.Invisible && !IsBuildMode))
1273 {
1275 }
1277 }
1278
1279 public virtual void OnRenderTile(Point point, HitResult result, int dir)
1280 {
1281 if (result != HitResult.NoTarget && point.IsValid && (point.IsSeen || CanTargetFog))
1282 {
1283 MeshPass guidePass = GetGuidePass(point);
1284 int num = (int)result;
1285 if (tileSelector.start != null && result == HitResult.Default)
1286 {
1287 num = 2;
1288 }
1289 Vector3 vector = point.Position();
1290 if (num == 0)
1291 {
1292 num = GetDefaultTile(point);
1293 }
1294 guidePass.Add(vector.x, vector.y, vector.z - 0.01f, num, 0.3f);
1295 if (!IsRoofEditMode() && point.HasWallOrFence && !point.cell.hasDoor && HighlightWall(point))
1296 {
1297 EClass.screen.guide.DrawWall(point, EClass.Colors.blockColors.Passive, useMarkerPass: true);
1298 }
1299 if (IsBuildMode && EClass.screen.tileSelector.start == null && point.Installed != null && Inspect.IsActive)
1300 {
1301 point.Installed.trait.OnRenderTile(point, result, dir);
1302 }
1303 }
1304 }
1305
1306 public void OnRenderTileFloor(Point point, HitResult result)
1307 {
1308 if (result != HitResult.NoTarget && point.IsValid && (point.IsSeen || CanTargetFog))
1309 {
1310 MeshPass guidePass = GetGuidePass(point);
1311 int num = (int)result;
1312 if (tileSelector.start != null && result == HitResult.Default)
1313 {
1314 num = 2;
1315 }
1316 Vector3 vector = point.Position(point.cell.height);
1317 if (num == 0)
1318 {
1319 num = GetDefaultTile(point);
1320 }
1321 guidePass.Add(vector.x, vector.y, vector.z - 0.01f, num, 0.3f);
1322 }
1323 }
1324
1325 public virtual bool CanProcessTiles()
1326 {
1327 if (Multisize && Summary.countValid != hitW * hitH)
1328 {
1329 return false;
1330 }
1331 return true;
1332 }
1333
1334 public virtual void OnBeforeProcessTiles()
1335 {
1336 }
1337
1338 public virtual void OnProcessTiles(Point point, int dir)
1339 {
1340 }
1341
1342 public virtual void OnAfterProcessTiles(Point start, Point end)
1343 {
1344 }
1345
1346 public virtual void OnFinishProcessTiles()
1347 {
1348 }
1349
1350 public virtual void OnRefreshSummary(Point point, HitResult result, HitSummary summary)
1351 {
1352 if (result == HitResult.Valid || result == HitResult.Warning)
1353 {
1354 summary.money += CostMoney;
1355 summary.countValid++;
1356 }
1357 }
1358
1359 public void ShowLayer()
1360 {
1361 layer = OnShowLayer();
1362 if (layer != null)
1363 {
1365 }
1366 else
1367 {
1369 }
1370 if ((bool)EClass.core.screen.tileSelector)
1371 {
1373 }
1374 EClass.ui.hud.hint.Refresh();
1375 }
1376
1377 public virtual Layer OnShowLayer()
1378 {
1379 return null;
1380 }
1381
1382 public void HideLayer()
1383 {
1384 EClass.ui.RemoveLayer(layer);
1386 EClass.ui.hud.hint.UpdateText();
1387 OnHideLayer();
1388 }
1389
1390 public virtual void OnHideLayer()
1391 {
1392 }
1393
1394 public virtual string GetHintText()
1395 {
1396 string text = textHintTitle.IsEmpty(Lang.Get(id)) + " - ";
1397 BaseTileSelector baseTileSelector = EClass.screen.tileSelector;
1398 ActionMode actionMode = EClass.scene.actionMode;
1399 if (!layer)
1400 {
1401 text = ((actionMode == Inspect && Inspect.target != null) ? "hintMoveTarget".lang() : ((selectType == BaseTileSelector.SelectType.Single) ? (text + "hintSelectSingle".lang()) : ((baseTileSelector.start != null) ? (text + "hintSelectEnd".lang()) : (text + "hintSelectStart".lang()))));
1402 }
1403 else
1404 {
1405 if (actionMode == Build)
1406 {
1407 text += "hintBuild".lang();
1408 }
1409 if (actionMode == CreateArea)
1410 {
1411 text += "hintCreateArea".lang();
1412 }
1413 }
1414 if (actionMode == Build && Build.recipe != null && baseTileSelector.start == null)
1415 {
1417 {
1418 text = text + " " + "hintRotate".lang();
1419 }
1420 if (Build.MaxAltitude > 0)
1421 {
1422 text = text + " " + "hintAltitude2".lang();
1423 }
1424 }
1425 return text;
1426 }
1427
1428 public virtual void RotateUnderMouse()
1429 {
1430 SE.Rotate();
1431 Point hitPoint = Scene.HitPoint;
1432 if (!hitPoint.IsValid)
1433 {
1434 return;
1435 }
1436 hitPoint.cell.RotateAll();
1437 if (EClass.debug.enable)
1438 {
1439 hitPoint.growth?.Grow(100);
1440 if (hitPoint.Installed?.trait is TraitSeed)
1441 {
1442 (hitPoint.Installed.trait as TraitSeed).TrySprout(force: true);
1443 }
1444 }
1445 }
1446
1447 public virtual ref string SetMouseInfo(ref string s)
1448 {
1449 return ref s;
1450 }
1451
1452 public void TogglePause()
1453 {
1454 if (IsAdv)
1455 {
1456 EClass.core.config.game.autopause = !EClass.core.config.game.autopause;
1458 {
1459 SE.Play("tick0");
1460 }
1461 else
1462 {
1463 SE.Play("tick1");
1464 }
1465 }
1466 else if (EClass.game.gameSpeedIndex != 0)
1467 {
1468 Pause(sound: true);
1469 }
1470 else
1471 {
1472 UnPause(sound: true);
1473 }
1474 }
1475
1476 public void Pause(bool sound = false)
1477 {
1478 ChangeGameSpeed(1, sound);
1479 }
1480
1481 public void UnPause(bool sound = false)
1482 {
1484 }
1485
1486 public void ChangeGameSpeed(int a, bool sound = false)
1487 {
1488 if (EClass.game.gameSpeedIndex != a)
1489 {
1490 if (sound)
1491 {
1492 SE.Play("tick" + a);
1493 }
1494 EClass.game.gameSpeedIndex = a;
1495 if (a != 0)
1496 {
1497 EClass.game.lastGameSpeedIndex = a;
1498 }
1500 }
1501 }
1502}
AreaHighlightMode
EAction
Definition: EAction.cs:2
HitResult
Definition: HitResult.cs:2
Hostility
Definition: Hostility.cs:2
Definition: ACT.cs:6
static ActChat Chat
Definition: ACT.cs:9
Definition: AM_Adv.cs:6
void ToggleZoom()
Definition: AM_Adv.cs:1060
bool zoomOut
Definition: AM_Adv.cs:103
void UpdatePlans()
Definition: AM_Adv.cs:400
void ShowAllAction()
Definition: AM_Adv.cs:1014
Recipe recipe
Definition: AM_Build.cs:10
int MaxAltitude
Definition: AM_Build.cs:63
Definition: AM_Cut.cs:2
Definition: AM_Dig.cs:2
bool CanActivate
Definition: AM_Picker.cs:33
Definition: AM_Sim.cs:2
override bool Perform()
Definition: ActChat.cs:9
static AM_Inspect Inspect
Definition: ActionMode.cs:23
virtual MeshPass GetGuidePass(Point point)
Definition: ActionMode.cs:1270
static AM_Copy Copy
Definition: ActionMode.cs:45
static bool ignoreSound
Definition: ActionMode.cs:83
virtual void OnCancel()
Definition: ActionMode.cs:538
virtual bool AllowBuildModeShortcuts
Definition: ActionMode.cs:213
static AM_Title Title
Definition: ActionMode.cs:9
virtual void InputWheel(int wheel)
Definition: ActionMode.cs:1025
static AM_RemoveDesignation RemoveDesignation
Definition: ActionMode.cs:61
static AM_Select Select
Definition: ActionMode.cs:59
static AM_Sim Sim
Definition: ActionMode.cs:11
virtual void OnBeforeProcessTiles()
Definition: ActionMode.cs:1334
static AM_Picker Picker
Definition: ActionMode.cs:43
static AM_Cut Cut
Definition: ActionMode.cs:39
void OnRotate()
Definition: ActionMode.cs:560
virtual bool IsRoofEditMode(Card c=null)
Definition: ActionMode.cs:311
virtual bool HighlightWall(Point p)
Definition: ActionMode.cs:297
static float hotElementTimer
Definition: ActionMode.cs:103
virtual int SubMenuModeIndex
Definition: ActionMode.cs:241
void ChangeGameSpeed(int a, bool sound=false)
Definition: ActionMode.cs:1486
virtual void OnBeforeUpdate()
Definition: ActionMode.cs:546
virtual bool AllowAutoClick
Definition: ActionMode.cs:163
virtual int hitW
Definition: ActionMode.cs:131
virtual int hitH
Definition: ActionMode.cs:133
virtual int SelectorHeight
Definition: ActionMode.cs:223
static float textTimer
Definition: ActionMode.cs:89
void OnRenderTileFloor(Point point, HitResult result)
Definition: ActionMode.cs:1306
virtual void OnRefreshSummary(Point point, HitResult result, HitSummary summary)
Definition: ActionMode.cs:1350
virtual BaseTileSelector.SelectType selectType
Definition: ActionMode.cs:125
virtual void OnUpdateInput()
Definition: ActionMode.cs:1033
static AM_Paint Paint
Definition: ActionMode.cs:75
bool TryShowWidgetMenu()
Definition: ActionMode.cs:1224
static AM_Harvest Harvest
Definition: ActionMode.cs:37
static float smoothY
Definition: ActionMode.cs:87
virtual void OnFinishProcessTiles()
Definition: ActionMode.cs:1346
virtual void OnScroll()
Definition: ActionMode.cs:1211
virtual void OnActivate()
Definition: ActionMode.cs:413
static AM_Region Region
Definition: ActionMode.cs:17
virtual void OnSelectEnd(bool cancel)
Definition: ActionMode.cs:1266
static float[] GameSpeeds
Definition: ActionMode.cs:93
static bool IsAdv
Definition: ActionMode.cs:117
virtual string textHintTitle
Definition: ActionMode.cs:161
void UnPause(bool sound=false)
Definition: ActionMode.cs:1481
static Vector3 mpos
Definition: ActionMode.cs:91
static AM_ADV_Target AdvTarget
Definition: ActionMode.cs:19
virtual bool AllowGeneralInput
Definition: ActionMode.cs:219
virtual bool ShowExtraHint
Definition: ActionMode.cs:243
virtual void OnDeactivate()
Definition: ActionMode.cs:534
virtual string idHelpTopic
Definition: ActionMode.cs:153
HitResult _HitTest(Point point, Point start)
Definition: ActionMode.cs:1240
Layer layer
Definition: ActionMode.cs:97
void DoFunc(CoreConfig.GameFunc func)
Definition: ActionMode.cs:1105
static AM_StateEditor StateEditor
Definition: ActionMode.cs:41
virtual bool AllowHotbar
Definition: ActionMode.cs:217
void TogglePause()
Definition: ActionMode.cs:1452
virtual float TargetZoom
Definition: ActionMode.cs:227
virtual bool ShouldPauseGame
Definition: ActionMode.cs:175
static AM_ViewMap ViewMap
Definition: ActionMode.cs:63
static AM_Build Build
Definition: ActionMode.cs:49
HitSummary Summary
Definition: ActionMode.cs:135
static AM_ExpandArea ExpandArea
Definition: ActionMode.cs:55
static ActionMode DefaultMode
Definition: ActionMode.cs:7
virtual bool ShowMouseoverTarget
Definition: ActionMode.cs:167
virtual AreaHighlightMode AreaHihlight
Definition: ActionMode.cs:169
virtual BaseGameScreen TargetGameScreen
Definition: ActionMode.cs:231
static AM_NewZone NewZone
Definition: ActionMode.cs:29
static float smoothX
Definition: ActionMode.cs:85
static AM_EditArea EditArea
Definition: ActionMode.cs:53
static AM_MiniGame MiniGame
Definition: ActionMode.cs:27
virtual void OnUpdateCursor()
Definition: ActionMode.cs:554
virtual bool UseSubMenu
Definition: ActionMode.cs:235
void UpdateInput()
Definition: ActionMode.cs:570
virtual bool ShowBuildWidgets
Definition: ActionMode.cs:183
void RefreshTexts()
Definition: ActionMode.cs:417
void Pause(bool sound=false)
Definition: ActionMode.cs:1476
virtual void OnSelectStart(Point point)
Definition: ActionMode.cs:1262
static AM_Populate Populate
Definition: ActionMode.cs:67
void Deactivate()
Definition: ActionMode.cs:529
void InputMovement()
Definition: ActionMode.cs:938
virtual bool AllowMiddleClickFunc
Definition: ActionMode.cs:215
void ShowLayer()
Definition: ActionMode.cs:1359
virtual void SEExecuteSummary()
Definition: ActionMode.cs:292
virtual Layer OnShowLayer()
Definition: ActionMode.cs:1377
virtual string OnSetSubMenuButton(int a, UIButton b)
Definition: ActionMode.cs:306
virtual void OnClickSubMenu(int a)
Definition: ActionMode.cs:302
virtual void OnAfterProcessTiles(Point start, Point end)
Definition: ActionMode.cs:1342
virtual bool CanSelectTile
Definition: ActionMode.cs:171
virtual bool hideBalloon
Definition: ActionMode.cs:159
void Activate(bool toggle=true, bool forceActivate=false)
Definition: ActionMode.cs:339
virtual BuildMenu.Mode buildMenuMode
Definition: ActionMode.cs:186
virtual bool FixFocus
Definition: ActionMode.cs:177
void SetCursorOnMap(CursorInfo cursor)
Definition: ActionMode.cs:565
virtual BaseTileMap.CardIconMode cardIconMode
Definition: ActionMode.cs:229
static AM_Blueprint Blueprint
Definition: ActionMode.cs:47
void HideLayer()
Definition: ActionMode.cs:1382
virtual bool AllowWheelZoom
Definition: ActionMode.cs:225
virtual bool ShowMaskedThings
Definition: ActionMode.cs:221
static List< TCSimpleText > simpleTexts
Definition: ActionMode.cs:95
bool IsActive
Definition: ActionMode.cs:121
virtual ref string SetMouseInfo(ref string s)
Definition: ActionMode.cs:1447
virtual bool ShowActionHint
Definition: ActionMode.cs:165
virtual bool CanProcessTiles()
Definition: ActionMode.cs:1325
void DoFunc(CoreConfig.GameFuncBuild func)
Definition: ActionMode.cs:1037
virtual bool ShouldHideBuildMenu
Definition: ActionMode.cs:198
static AM_FlagCell FlagCell
Definition: ActionMode.cs:77
virtual BaseTileSelector.BoxType boxType
Definition: ActionMode.cs:127
virtual bool CanTargetOutsideBounds
Definition: ActionMode.cs:173
virtual bool IsBuildMode
Definition: ActionMode.cs:181
virtual int GetDefaultTile(Point p)
Definition: ActionMode.cs:321
virtual bool HideSubWidgets
Definition: ActionMode.cs:179
static AM_Visibility Visibility
Definition: ActionMode.cs:71
virtual string GetSimpleText(Card c)
Definition: ActionMode.cs:508
static AM_Dig Dig
Definition: ActionMode.cs:35
static AM_Terrain Terrain
Definition: ActionMode.cs:65
virtual HitResult HitTest(Point point, Point start)
Definition: ActionMode.cs:1257
static SourceMaterial.Row lastEditorMat
Definition: ActionMode.cs:81
static AM_Deconstruct Deconstruct
Definition: ActionMode.cs:57
virtual bool UseSubMenuSlider
Definition: ActionMode.cs:237
virtual string GetHintText()
Definition: ActionMode.cs:1394
virtual bool IsNoMap
Definition: ActionMode.cs:233
virtual void OnAfterUpdate()
Definition: ActionMode.cs:550
virtual string idSound
Definition: ActionMode.cs:155
bool IsFuncPressed(CoreConfig.GameFunc func)
Definition: ActionMode.cs:1075
static AM_Cinema Cinema
Definition: ActionMode.cs:73
static AM_Adv AdvOrRegion
Definition: ActionMode.cs:106
BaseTileSelector tileSelector
Definition: ActionMode.cs:245
virtual CursorInfo DefaultCursor
Definition: ActionMode.cs:151
virtual void RotateUnderMouse()
Definition: ActionMode.cs:1428
static void OnGameInstantiated()
Definition: ActionMode.cs:247
static ActionMode LastBuildMode
Definition: ActionMode.cs:79
static AM_ViewZone View
Definition: ActionMode.cs:13
virtual float gameSpeed
Definition: ActionMode.cs:119
void TryRightClickCloseWidget()
Definition: ActionMode.cs:1215
static AM_EloMap EloMap
Definition: ActionMode.cs:21
static float focusTimer
Definition: ActionMode.cs:101
virtual bool SubMenuAsGroup
Definition: ActionMode.cs:239
static AM_NoMap NoMap
Definition: ActionMode.cs:25
virtual void OnHideLayer()
Definition: ActionMode.cs:1390
void ClearSimpleTexts()
Definition: ActionMode.cs:517
virtual bool ContinuousClick
Definition: ActionMode.cs:129
virtual BaseTileSelector.HitType hitType
Definition: ActionMode.cs:123
virtual bool CanTargetFog
Definition: ActionMode.cs:209
static AM_Bird Bird
Definition: ActionMode.cs:31
virtual int CostMoney
Definition: ActionMode.cs:211
virtual bool enableMouseInfo
Definition: ActionMode.cs:157
static AM_EditMarker EditMarker
Definition: ActionMode.cs:69
virtual void OnShowExtraHint(UINote n)
Definition: ActionMode.cs:326
static AM_CreateArea CreateArea
Definition: ActionMode.cs:51
static AM_Mine Mine
Definition: ActionMode.cs:33
virtual void OnRenderTile(Point point, HitResult result, int dir)
Definition: ActionMode.cs:1279
static AM_Adv Adv
Definition: ActionMode.cs:15
virtual bool IsFillMode()
Definition: ActionMode.cs:316
virtual int TopHeight(Point p)
Definition: ActionMode.cs:287
bool Multisize
Definition: ActionMode.cs:138
int brushRadius
Definition: ActionMode.cs:99
virtual void OnProcessTiles(Point point, int dir)
Definition: ActionMode.cs:1338
int group
Definition: AreaData.cs:18
AreaData data
Definition: BaseArea.cs:29
ScreenGuide guide
void ModTargetZoomIndex(int a)
void ScrollAxis(Vector3 axis, bool direct=false)
void ScrollMouse(float x, float y)
BaseTileSelector tileSelector
static void Deactivate()
Definition: BuildMenu.cs:173
static BuildMenu Instance
Definition: BuildMenu.cs:77
static void Toggle()
Definition: BuildMenu.cs:93
TerrainMenu terrainMenu
Definition: BuildMenu.cs:49
static void Activate()
Definition: BuildMenu.cs:117
SourceElement.Row source
Definition: ButtonAbility.cs:8
Card card
Definition: ButtonGrid.cs:24
InvOwner invOwner
Definition: ButtonGrid.cs:28
bool dragging2
Definition: ButtonState.cs:45
bool pressing
Definition: ButtonState.cs:35
bool clicked
Definition: ButtonState.cs:37
void Consume()
Definition: ButtonState.cs:184
bool pressedLong
Definition: ButtonState.cs:64
Action pressedLongAction
Definition: ButtonState.cs:61
static void SetNormalRarity(bool fixedMat=false)
Definition: Card.cs:11
virtual bool isThing
Definition: Card.cs:2069
SourceMaterial.Row DyeMat
Definition: Card.cs:1928
SourceMaterial.Row material
Definition: Card.cs:2039
Card ChangeMaterial(int idNew, bool ignoreFixedMaterial=false)
Definition: Card.cs:3022
Thing AddThing(string id, int lv=-1)
Definition: Card.cs:3085
Point pos
Definition: Card.cs:59
void Dye(string idMat)
Definition: Card.cs:5857
Trait trait
Definition: Card.cs:53
bool isDyed
Definition: Card.cs:458
void Destroy()
Definition: Card.cs:4981
bool IsInstalled
Definition: Card.cs:2369
int Dist(Card c)
Definition: Card.cs:7492
Cell Cell
Definition: Card.cs:2043
Definition: Cell.cs:7
Room room
Definition: Cell.cs:102
SourceMaterial.Row matObj
Definition: Cell.cs:1036
byte height
Definition: Cell.cs:72
bool isSeen
Definition: Cell.cs:282
Point GetPoint()
Definition: Cell.cs:1101
void RotateAll()
Definition: Cell.cs:1493
bool hasDoor
Definition: Cell.cs:258
Definition: Chara.cs:10
override bool IsPC
Definition: Chara.cs:610
override bool IsPCFaction
Definition: Chara.cs:669
bool HasNoGoal
Definition: Chara.cs:998
Hostility hostility
Definition: Chara.cs:289
BlockColors blockColors
GameFuncBuild b_mouse4PressLong
Definition: CoreConfig.cs:258
GameFuncBuild b_middlePressLong
Definition: CoreConfig.cs:250
GameFuncBuild b_mouse3Click
Definition: CoreConfig.cs:252
GameFuncBuild b_mouse3PressLong
Definition: CoreConfig.cs:254
GameFuncBuild b_middleClick
Definition: CoreConfig.cs:248
GameFuncBuild b_mouse4Click
Definition: CoreConfig.cs:256
new GameConfig game
Definition: CoreConfig.cs:605
CameraConfig camera
Definition: CoreConfig.cs:613
new UISetting ui
Definition: CoreConfig.cs:597
InputSetting input
Definition: CoreConfig.cs:611
DebugHotkey debugHotkeys
Definition: CoreDebug.cs:143
void UpdateInput()
Definition: CoreDebug.cs:858
bool enable
Definition: CoreDebug.cs:286
bool godBuild
Definition: CoreDebug.cs:304
bool ignoreBuildRule
Definition: CoreDebug.cs:185
RectData center
Definition: CoreRef.cs:166
Sprite spriteConquer
Definition: CoreRef.cs:248
Sprite spriteDeath
Definition: CoreRef.cs:250
Sprite spriteVisited
Definition: CoreRef.cs:246
TCs tcs
Definition: CoreRef.cs:353
Rects rects
Definition: CoreRef.cs:361
Definition: Core.cs:14
CoreRef refs
Definition: Core.cs:51
CoreDebug debug
Definition: Core.cs:31
BaseGameScreen screen
Definition: Core.cs:67
bool IsGameStarted
Definition: Core.cs:84
static float delta
Definition: Core.cs:17
CoreConfig config
Definition: Core.cs:70
static CursorInfo Select
Definition: CursorSystem.cs:58
static void SetCursor(CursorInfo info=null, int _priority=0)
static bool IsActive
Definition: DropdownGrid.cs:8
static DropdownGrid Instance
Definition: DropdownGrid.cs:10
void Deactivate()
Definition: EClass.cs:5
static Game game
Definition: EClass.cs:8
static Scene scene
Definition: EClass.cs:30
static ColorProfile Colors
Definition: EClass.cs:38
static Core core
Definition: EClass.cs:6
static Zone _zone
Definition: EClass.cs:20
static Map _map
Definition: EClass.cs:18
static SourceManager sources
Definition: EClass.cs:42
static BaseGameScreen screen
Definition: EClass.cs:32
static Player player
Definition: EClass.cs:12
static Chara pc
Definition: EClass.cs:14
static CoreDebug debug
Definition: EClass.cs:48
static SoundManager Sound
Definition: EClass.cs:46
static UI ui
Definition: EClass.cs:16
static GameSetting setting
Definition: EClass.cs:34
bool Update(bool forcePress=false)
Definition: EInput.cs:215
Definition: EInput.cs:8
static bool IsAnyKeyDown(bool includeAxis=true, bool _skipframe=true)
Definition: EInput.cs:619
static bool isCancel
Definition: EInput.cs:378
static int wheel
Definition: EInput.cs:289
static bool hasMouseMoved
Definition: EInput.cs:311
static ButtonState middleMouse
Definition: EInput.cs:353
static bool isCtrlDown
Definition: EInput.cs:263
static void Consume(int _skipFrame)
Definition: EInput.cs:656
static bool isAltDown
Definition: EInput.cs:265
static ButtonState mouse4
Definition: EInput.cs:357
static Vector2 axis
Definition: EInput.cs:331
static ButtonState buttonCtrl
Definition: EInput.cs:361
static ButtonState leftMouse
Definition: EInput.cs:349
static bool isShiftDown
Definition: EInput.cs:261
static ButtonState buttonScroll
Definition: EInput.cs:359
static ButtonState rightMouse
Definition: EInput.cs:351
static int functionkey
Definition: EInput.cs:285
static ButtonState mouse3
Definition: EInput.cs:355
static bool waitReleaseAnyKey
Definition: EInput.cs:317
static KeyboardPress keyFire
Definition: EInput.cs:249
static int hotkey
Definition: EInput.cs:283
static bool hasAxisMoved
Definition: EInput.cs:271
static EAction action
Definition: EInput.cs:259
Definition: EloMap.cs:8
RenderSetting render
Definition: GameSetting.cs:301
bool noRoof
Definition: Game.cs:27
bool altUI
Definition: Game.cs:264
int lastGameSpeedIndex
Definition: Game.cs:228
int gameSpeedIndex
Definition: Game.cs:226
Config config
Definition: Game.cs:215
void Grow(int mtp=1)
Definition: GrowSystem.cs:340
int countValid
Definition: HitSummary.cs:10
static TaskBuild taskBuild
Definition: HotItemHeld.cs:7
virtual void OnShiftClick(ButtonGrid b, bool rightMouse=false)
Definition: InvOwner.cs:939
Card Container
Definition: InvOwner.cs:535
virtual bool CanShiftClick(ButtonGrid b, bool rightMouse=false)
Definition: InvOwner.cs:976
Definition: Lang.cs:6
static string Get(string id)
Definition: Lang.cs:91
static string[] GetList(string id)
Definition: Lang.cs:114
static ButtonAbility hotElement
Definition: LayerAbility.cs:23
static void ClearHotElement()
LayerChara SetChara(Chara c)
Definition: LayerChara.cs:9
Thing product
Definition: LayerCraft.cs:20
static LayerDrama Instance
Definition: LayerDrama.cs:20
List< UIInventory > invs
static LayerInventory CreateContainer(Card owner)
static LayerInventory GetLayer(Card t)
static void Close(Thing t)
Definition: Layer.cs:9
List< Window > windows
Definition: Layer.cs:116
void Delay(float duration=0.05f)
Definition: Layer.cs:597
Cell GetCell(int index)
Definition: Map.cs:887
IEnumerable< Card > Cards
Definition: Map.cs:135
List< Thing > things
Definition: Map.cs:49
Dictionary< int, int > backerObjs
Definition: Map.cs:67
List< Chara > charas
Definition: Map.cs:81
void Add(Point point, float tile=0f, float color=0f)
Definition: MeshPass.cs:122
Definition: Msg.cs:5
static string Say(string idLang, string ref1, string ref2=null, string ref3=null, string ref4=null)
Definition: Msg.cs:58
void SetCurrentHotItem(HotItem item)
Definition: Player.cs:2248
void Update(Point _pos)
Definition: PointTarget.cs:52
Chara TargetChara
Definition: PointTarget.cs:41
Definition: Point.cs:9
Thing Installed
Definition: Point.cs:315
bool IsSeen
Definition: Point.cs:330
SourceBlock.Row sourceBlock
Definition: Point.cs:63
ref Vector3 Position(int height)
Definition: Point.cs:536
ref Vector3 PositionTopdown()
Definition: Point.cs:557
bool HasWallOrFence
Definition: Point.cs:155
bool IsInBoundsPlus
Definition: Point.cs:116
bool HasBlockRecipe
Definition: Point.cs:205
bool Equals(int _x, int _z)
Definition: Point.cs:944
bool IsValid
Definition: Point.cs:88
bool HasObj
Definition: Point.cs:137
Cell cell
Definition: Point.cs:51
GrowSystem growth
Definition: Point.cs:77
bool HasNonWallBlock
Definition: Point.cs:182
static void Despawn(Component c)
Definition: PoolManager.cs:128
Definition: Popper.cs:6
Popper SetText(string s, Color c=default(Color))
Definition: Popper.cs:28
virtual bool CanRotate
Definition: Recipe.cs:300
Definition: Region.cs:7
Definition: Scene.cs:8
void ToggleShowRoof()
Definition: Scene.cs:881
void ToggleShowWall()
Definition: Scene.cs:915
void ToggleMuteBGM()
Definition: Scene.cs:975
void ToggleLight()
Definition: Scene.cs:887
static Point HitPoint
Definition: Scene.cs:21
bool hideBalloon
Definition: Scene.cs:147
void ToggleSlope()
Definition: Scene.cs:927
ActionMode actionMode
Definition: Scene.cs:79
void UpdateCursor()
Definition: Scene.cs:751
void ToggleFreePos()
Definition: Scene.cs:904
void ToggleSnapFreePos()
Definition: Scene.cs:893
PointTarget mouseTarget
Definition: Scene.cs:135
void DrawWall(Point point, int color, bool useMarkerPass=false, float offsetZ=0f)
Definition: ScreenGuide.cs:42
MeshPass passGuideBlock
Definition: ScreenGuide.cs:5
MeshPass passGuideFloor
Definition: ScreenGuide.cs:7
SourceMaterial materials
SourceBacker backers
bool isRandomSite
Definition: Spatial.cs:334
bool isDeathLocation
Definition: Spatial.cs:418
bool IsPlayerFaction
Definition: Spatial.cs:443
virtual bool IsRegion
Definition: Spatial.cs:503
bool destryoed
Definition: Spatial.cs:45
bool isConquered
Definition: Spatial.cs:382
virtual Point RegionPos
Definition: Spatial.cs:548
int visitCount
Definition: Spatial.cs:154
List< Spatial > children
Definition: Spatial.cs:37
static TCSimpleText SpawnIcon(Sprite sprite=null)
Definition: TCSimpleText.cs:16
static TCSimpleText Spawn()
Definition: TCSimpleText.cs:11
TextMesh tm
Definition: TCSimpleText.cs:5
void Show(ActionMode _am)
Definition: TerrainMenu.cs:11
static Thing Create(string id, int idMat=-1, int lv=-1)
Definition: ThingGen.cs:53
Definition: Thing.cs:8
virtual void OnRenderTile(Point point, HitResult result, int dir)
Definition: Trait.cs:702
virtual bool CanMiddleClick()
Definition: UIButton.cs:212
virtual void OnMiddleClick(bool forceClick)
Definition: UIButton.cs:217
Definition: UIItem.cs:5
object refObj
Definition: UIItem.cs:30
Definition: UINote.cs:6
UIItem AddText(string text, FontColor color=FontColor.DontChange)
Definition: UINote.cs:113
static WidgetCurrentTool Instance
void Select(int index, bool fromHotkey=false)
static void RefreshHighlights()
static WidgetHotbar HotbarExtra
Definition: WidgetHotbar.cs:40
void TryUse(int index)
static void ToggleLog()
static WidgetMouseover Instance
Definition: Widget.cs:7
virtual bool RightClickToClose
Definition: Widget.cs:208
void ShowContextMenu()
Definition: Widget.cs:601
void Close()
Definition: Widget.cs:319
virtual bool CanShowContextMenu()
Definition: Widget.cs:596
bool CanEnterBuildModeAnywhere
Definition: Zone.cs:453