Elin Decompiled Documentation EA 23.102 Nightly
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 && !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 EClass.ui.ToggleInventory();
765 break;
766 }
767 }
768 if (!FixFocus)
769 {
771 }
772 if (!EClass.ui.canvas.enabled && EInput.IsAnyKeyDown())
773 {
774 EClass.ui.ToggleCanvas();
775 EInput.Consume();
776 return;
777 }
778 }
779 if (EInput.action == EAction.Examine && !IsBuildMode)
780 {
781 ButtonGrid componentOf7 = InputModuleEX.GetComponentOf<ButtonGrid>();
782 Card card = null;
783 if ((bool)componentOf7 && componentOf7.card != null)
784 {
785 card = componentOf7.card;
786 }
787 if (card == null)
788 {
789 UIItem componentOf8 = InputModuleEX.GetComponentOf<UIItem>();
790 if ((bool)componentOf8 && componentOf8.refObj is Thing)
791 {
792 card = (Thing)componentOf8.refObj;
793 }
794 }
795 if (card == null)
796 {
797 LayerCraft layerCraft = EClass.ui.GetLayer<LayerCraft>();
798 if ((bool)layerCraft)
799 {
800 card = layerCraft.product;
801 }
802 }
803 if (card != null)
804 {
805 if ((bool)EClass.ui.GetLayer<LayerInfo>())
806 {
807 EClass.ui.RemoveLayer<LayerInfo>();
808 }
809 EClass.ui.AddLayer<LayerInfo>().Set(card, _examine: true);
810 }
811 }
813 {
815 }
816 if (EClass.ui.BlockActions)
817 {
818 return;
819 }
820 if (AllowBuildModeShortcuts && Input.GetKeyDown(KeyCode.Q) && Picker.CanActivate)
821 {
823 }
825 {
826 Point hitPoint = Scene.HitPoint;
827 bool flag2 = EInput.wheel > 0;
828 if (EClass.scene.mouseTarget.card != null)
829 {
831 if (card2.isThing && card2.IsInstalled)
832 {
833 SourceMaterial.Row currentMat = (card2.isDyed ? card2.DyeMat : card2.material);
834 List<SourceMaterial.Row> source = EClass.sources.materials.rows.Where((SourceMaterial.Row m) => m.thing == currentMat.thing).ToList();
836 {
837 source = EClass.sources.materials.rows;
838 }
839 SourceMaterial.Row row = (flag2 ? source.NextItem(currentMat) : source.PrevItem(currentMat));
840 if (row == null)
841 {
842 row = card2.DyeMat;
843 }
844 if (EInput.isAltDown)
845 {
846 row = lastEditorMat;
847 }
848 if (card2.isDyed)
849 {
850 card2.Dye(row);
851 }
852 else
853 {
854 card2.ChangeMaterial(row);
855 }
856 lastEditorMat = row;
857 Msg.Say(row.GetName() + "(" + row.alias + ")");
858 }
859 }
860 else if (hitPoint.HasObj)
861 {
862 SourceMaterial.Row matObj = hitPoint.cell.matObj;
863 List<SourceMaterial.Row> rows = EClass.sources.materials.rows;
864 SourceMaterial.Row row2 = (flag2 ? rows.NextItem(matObj) : rows.PrevItem(matObj));
865 if (EInput.isAltDown)
866 {
867 row2 = lastEditorMat;
868 }
869 hitPoint.cell.objMat = (byte)row2.id;
870 lastEditorMat = row2;
871 Msg.Say(row2.GetName());
872 }
873 EInput.Consume();
874 }
876 {
877 if (EInput.hotkey != -1)
878 {
879 WidgetCurrentTool.Instance.Select(EInput.hotkey, fromHotkey: true);
881 }
882 else if (!EClass.debug.enable && EInput.functionkey != -1)
883 {
885 if ((bool)hotbarExtra)
886 {
887 hotbarExtra.TryUse(EInput.functionkey);
888 }
889 }
890 }
892 if (EClass.debug.enable)
893 {
895 }
897 if (textTimer > 0.1f)
898 {
899 textTimer = 0f;
900 RefreshTexts();
901 }
903 {
905 {
906 DoFunc(input.b_middleClick);
907 }
909 {
912 }
914 {
915 DoFunc(input.b_mouse3Click);
916 }
917 else if (EInput.mouse3.pressedLong)
918 {
921 }
923 {
924 DoFunc(input.b_mouse4Click);
925 }
926 else if (EInput.mouse4.pressedLong)
927 {
930 }
931 }
932 }
933
934 public void InputMovement()
935 {
936 float num = 0f;
937 float num2 = 0f;
938 Vector2 axis = EInput.axis;
939 bool flag = !EClass.core.IsGameStarted;
941 {
942 if (Input.GetKey(KeyCode.LeftShift))
943 {
944 axis *= 3f;
945 }
947 {
948 Vector2 zero = Vector2.zero;
949 if (mpos.x < 16f)
950 {
951 zero.x -= 1f;
952 }
953 if (mpos.x > (float)(Screen.width - 16))
954 {
955 zero.x += 1f;
956 }
957 if (mpos.y < 8f)
958 {
959 zero.y -= 1f;
960 }
961 if (mpos.y > (float)(Screen.height - 8))
962 {
963 zero.y += 1f;
964 }
965 if (zero != Vector2.zero)
966 {
967 axis += zero * (EClass.core.config.camera.sensEdge * 2f);
968 }
969 }
970 EInput.hasAxisMoved = axis != Vector2.zero;
972 if (Adv.IsActive)
973 {
974 _ = Adv.zoomOut;
975 }
976 if (EInput.buttonScroll != null && EInput.buttonScroll.pressing && (flag || !EClass.ui.BlockActions))
977 {
978 num = EInput.dragAmount.x * (0.1f + EClass.core.config.camera.sensDrag);
979 num2 = EInput.dragAmount.y * (0.1f + EClass.core.config.camera.sensDrag);
981 {
982 num *= -1f;
983 }
985 {
986 num2 *= -1f;
987 }
989 {
990 EInput.hasAxisMoved = true;
991 }
992 }
994 {
995 EClass.screen.zoomPos = Vector3.zero;
996 }
997 if (EInput.wheel != 0 && !InputModuleEX.GetComponentOf<UIScrollView>())
998 {
1000 }
1001 }
1002 float momentum = EClass.core.config.camera.momentum;
1003 if (momentum > 0f && EInput.axis == Vector2.zero)
1004 {
1005 smoothX = Mathf.Lerp(smoothX, num, Time.smoothDeltaTime * momentum);
1006 smoothY = Mathf.Lerp(smoothY, num2, Time.smoothDeltaTime * momentum);
1007 }
1008 else
1009 {
1010 smoothX = num;
1011 smoothY = num2;
1012 }
1013 EClass.screen.ScrollMouse(smoothX * 0.1f, smoothY * 0.1f);
1014 if (EInput.hasAxisMoved)
1015 {
1016 OnScroll();
1017 EClass.screen.ScrollAxis(axis);
1018 }
1019 }
1020
1021 public virtual void InputWheel(int wheel)
1022 {
1023 if (AllowWheelZoom)
1024 {
1026 }
1027 }
1028
1029 public virtual void OnUpdateInput()
1030 {
1031 }
1032
1034 {
1035 switch (func)
1036 {
1037 case CoreConfig.GameFuncBuild.ExitBuildMode:
1039 break;
1040 case CoreConfig.GameFuncBuild.ToggleFreepos:
1042 break;
1043 case CoreConfig.GameFuncBuild.ToggleRoof:
1045 break;
1046 case CoreConfig.GameFuncBuild.ToggleSlope:
1048 break;
1049 case CoreConfig.GameFuncBuild.Rotate:
1050 OnRotate();
1051 break;
1052 case CoreConfig.GameFuncBuild.ToggleWall:
1054 break;
1055 case CoreConfig.GameFuncBuild.TogglePicker:
1056 if (Picker.CanActivate)
1057 {
1058 Picker.Activate();
1059 }
1060 break;
1061 case CoreConfig.GameFuncBuild.SnapFreepos:
1063 break;
1064 case CoreConfig.GameFuncBuild.ToggleBuildLight:
1066 break;
1067 }
1069 }
1070
1072 {
1075 {
1076 return input.middleClick == func;
1077 }
1079 {
1080 return input.middlePressLong == func;
1081 }
1082 if (EInput.mouse3.clicked)
1083 {
1084 return input.mouse3Click == func;
1085 }
1087 {
1088 return input.mouse3PressLong == func;
1089 }
1090 if (EInput.mouse4.clicked)
1091 {
1092 return input.mouse4Click == func;
1093 }
1095 {
1096 return input.mouse4PressLong == func;
1097 }
1098 return false;
1099 }
1100
1101 public void DoFunc(CoreConfig.GameFunc func)
1102 {
1104 switch (func)
1105 {
1106 default:
1107 return;
1108 case CoreConfig.GameFunc.OpenAllyInv:
1109 if (!EClass.pc.HasNoGoal || (targetChara != null && !targetChara.IsPCFaction))
1110 {
1111 return;
1112 }
1114 {
1115 if (!EClass.ui.IsInventoryOpen)
1116 {
1117 SE.PopInventory();
1118 }
1119 EClass.ui.ToggleInventory();
1120 }
1121 else if (targetChara != null && EClass.pc.Dist(targetChara) <= 1)
1122 {
1123 LayerInventory.CreateContainer(targetChara);
1124 }
1125 break;
1126 case CoreConfig.GameFunc.EmptyHand:
1127 EInput.action = EAction.EmptyHand;
1128 return;
1129 case CoreConfig.GameFunc.Fire:
1130 if (EInput.keyFire.Update(forcePress: true))
1131 {
1132 EInput.action = EAction.Fire;
1133 return;
1134 }
1135 break;
1136 case CoreConfig.GameFunc.SwitchHotbar:
1138 break;
1139 case CoreConfig.GameFunc.PropertySearch:
1140 EClass.ui.widgets.Toggle("Search")?.SoundActivate();
1141 break;
1142 case CoreConfig.GameFunc.Talk:
1143 if (!EClass.pc.HasNoGoal || targetChara == null || targetChara.hostility <= Hostility.Enemy || targetChara.IsPC || EClass.pc.Dist(targetChara) > 2)
1144 {
1145 return;
1146 }
1147 ACT.Chat.Perform(EClass.pc, targetChara);
1148 break;
1149 case CoreConfig.GameFunc.AllAction:
1150 if (!EClass.ui.isPointerOverUI)
1151 {
1153 }
1154 return;
1155 case CoreConfig.GameFunc.ToggleBuild:
1157 {
1158 SE.Beep();
1159 Msg.Say("invalidAction");
1160 return;
1161 }
1162 BuildMenu.Toggle();
1163 break;
1164 case CoreConfig.GameFunc.ShowJournal:
1165 {
1166 LayerJournal layerJournal = EClass.ui.ToggleLayer<LayerJournal>();
1167 if ((bool)layerJournal)
1168 {
1169 layerJournal.windows[0].SetRect(EClass.core.refs.rects.center);
1170 layerJournal.Delay();
1171 }
1172 break;
1173 }
1174 case CoreConfig.GameFunc.ShowInv:
1175 EClass.ui.ToggleInventory(delay: true);
1176 break;
1177 case CoreConfig.GameFunc.ShowChara:
1178 {
1179 LayerChara layerChara = EClass.ui.ToggleLayer<LayerChara>();
1180 if ((bool)layerChara)
1181 {
1182 layerChara.SetChara(EClass.pc);
1183 layerChara.windows[0].SetRect(EClass.core.refs.rects.center);
1184 layerChara.Delay();
1185 }
1186 break;
1187 }
1188 case CoreConfig.GameFunc.ShowAbility:
1189 EClass.ui.ToggleAbility(delay: true);
1190 break;
1191 case CoreConfig.GameFunc.ToggleNoRoof:
1192 EClass.game.config.noRoof = !EClass.game.config.noRoof;
1193 break;
1194 case CoreConfig.GameFunc.ToggleZoom:
1195 Adv.ToggleZoom();
1196 break;
1197 case CoreConfig.GameFunc.EmuShift:
1198 case CoreConfig.GameFunc.EmuAlt:
1199 return;
1200 }
1201 EInput.Consume();
1202 }
1203
1204 public virtual void OnScroll()
1205 {
1206 }
1207
1209 {
1210 Widget componentOf = InputModuleEX.GetComponentOf<Widget>();
1211 if ((bool)componentOf && componentOf.RightClickToClose)
1212 {
1213 componentOf.Close();
1214 }
1215 }
1216
1217 public bool TryShowWidgetMenu()
1218 {
1219 Widget componentOf = InputModuleEX.GetComponentOf<Widget>();
1220 if ((bool)componentOf && componentOf.CanShowContextMenu())
1221 {
1222 if (componentOf.RightClickToClose)
1223 {
1224 componentOf.Close();
1225 return true;
1226 }
1227 componentOf.ShowContextMenu();
1228 return true;
1229 }
1230 return false;
1231 }
1232
1233 public HitResult _HitTest(Point point, Point start)
1234 {
1236 {
1237 return HitResult.NoTarget;
1238 }
1239 if (!point.IsValid)
1240 {
1241 return HitResult.NoTarget;
1242 }
1243 if (!CanTargetFog && !point.cell.isSeen)
1244 {
1245 return HitResult.Default;
1246 }
1247 return HitTest(point, start);
1248 }
1249
1250 public virtual HitResult HitTest(Point point, Point start)
1251 {
1252 return HitResult.Default;
1253 }
1254
1255 public virtual void OnSelectStart(Point point)
1256 {
1257 }
1258
1259 public virtual void OnSelectEnd(bool cancel)
1260 {
1261 }
1262
1263 public virtual MeshPass GetGuidePass(Point point)
1264 {
1265 if ((!point.HasNonWallBlock && !point.HasBlockRecipe && point.IsSeen) || (point.sourceBlock.tileType.Invisible && !IsBuildMode))
1266 {
1268 }
1270 }
1271
1272 public virtual void OnRenderTile(Point point, HitResult result, int dir)
1273 {
1274 if (result != HitResult.NoTarget && point.IsValid && (point.IsSeen || CanTargetFog))
1275 {
1276 MeshPass guidePass = GetGuidePass(point);
1277 int num = (int)result;
1278 if (tileSelector.start != null && result == HitResult.Default)
1279 {
1280 num = 2;
1281 }
1282 Vector3 vector = point.Position();
1283 if (num == 0)
1284 {
1285 num = GetDefaultTile(point);
1286 }
1287 guidePass.Add(vector.x, vector.y, vector.z - 0.01f, num, 0.3f);
1288 if (!IsRoofEditMode() && point.HasWallOrFence && !point.cell.hasDoor && HighlightWall(point))
1289 {
1290 EClass.screen.guide.DrawWall(point, EClass.Colors.blockColors.Passive, useMarkerPass: true);
1291 }
1292 if (IsBuildMode && EClass.screen.tileSelector.start == null && point.Installed != null && Inspect.IsActive)
1293 {
1294 point.Installed.trait.OnRenderTile(point, result, dir);
1295 }
1296 }
1297 }
1298
1299 public void OnRenderTileFloor(Point point, HitResult result)
1300 {
1301 if (result != HitResult.NoTarget && point.IsValid && (point.IsSeen || CanTargetFog))
1302 {
1303 MeshPass guidePass = GetGuidePass(point);
1304 int num = (int)result;
1305 if (tileSelector.start != null && result == HitResult.Default)
1306 {
1307 num = 2;
1308 }
1309 Vector3 vector = point.Position(point.cell.height);
1310 if (num == 0)
1311 {
1312 num = GetDefaultTile(point);
1313 }
1314 guidePass.Add(vector.x, vector.y, vector.z - 0.01f, num, 0.3f);
1315 }
1316 }
1317
1318 public virtual bool CanProcessTiles()
1319 {
1320 if (Multisize && Summary.countValid != hitW * hitH)
1321 {
1322 return false;
1323 }
1324 return true;
1325 }
1326
1327 public virtual void OnBeforeProcessTiles()
1328 {
1329 }
1330
1331 public virtual void OnProcessTiles(Point point, int dir)
1332 {
1333 }
1334
1335 public virtual void OnAfterProcessTiles(Point start, Point end)
1336 {
1337 }
1338
1339 public virtual void OnFinishProcessTiles()
1340 {
1341 }
1342
1343 public virtual void OnRefreshSummary(Point point, HitResult result, HitSummary summary)
1344 {
1345 if (result == HitResult.Valid || result == HitResult.Warning)
1346 {
1347 summary.money += CostMoney;
1348 summary.countValid++;
1349 }
1350 }
1351
1352 public void ShowLayer()
1353 {
1354 layer = OnShowLayer();
1355 if (layer != null)
1356 {
1358 }
1359 else
1360 {
1362 }
1363 if ((bool)EClass.core.screen.tileSelector)
1364 {
1366 }
1367 EClass.ui.hud.hint.Refresh();
1368 }
1369
1370 public virtual Layer OnShowLayer()
1371 {
1372 return null;
1373 }
1374
1375 public void HideLayer()
1376 {
1377 EClass.ui.RemoveLayer(layer);
1379 EClass.ui.hud.hint.UpdateText();
1380 OnHideLayer();
1381 }
1382
1383 public virtual void OnHideLayer()
1384 {
1385 }
1386
1387 public virtual string GetHintText()
1388 {
1389 string text = textHintTitle.IsEmpty(Lang.Get(id)) + " - ";
1390 BaseTileSelector baseTileSelector = EClass.screen.tileSelector;
1391 ActionMode actionMode = EClass.scene.actionMode;
1392 if (!layer)
1393 {
1394 text = ((actionMode == Inspect && Inspect.target != null) ? "hintMoveTarget".lang() : ((selectType == BaseTileSelector.SelectType.Single) ? (text + "hintSelectSingle".lang()) : ((baseTileSelector.start != null) ? (text + "hintSelectEnd".lang()) : (text + "hintSelectStart".lang()))));
1395 }
1396 else
1397 {
1398 if (actionMode == Build)
1399 {
1400 text += "hintBuild".lang();
1401 }
1402 if (actionMode == CreateArea)
1403 {
1404 text += "hintCreateArea".lang();
1405 }
1406 }
1407 if (actionMode == Build && Build.recipe != null && baseTileSelector.start == null)
1408 {
1410 {
1411 text = text + " " + "hintRotate".lang();
1412 }
1413 if (Build.MaxAltitude > 0)
1414 {
1415 text = text + " " + "hintAltitude2".lang();
1416 }
1417 }
1418 return text;
1419 }
1420
1421 public virtual void RotateUnderMouse()
1422 {
1423 SE.Rotate();
1424 Point hitPoint = Scene.HitPoint;
1425 if (!hitPoint.IsValid)
1426 {
1427 return;
1428 }
1429 hitPoint.cell.RotateAll();
1430 if (EClass.debug.enable)
1431 {
1432 hitPoint.growth?.Grow(100);
1433 if (hitPoint.Installed?.trait is TraitSeed)
1434 {
1435 (hitPoint.Installed.trait as TraitSeed).TrySprout(force: true);
1436 }
1437 }
1438 }
1439
1440 public virtual ref string SetMouseInfo(ref string s)
1441 {
1442 return ref s;
1443 }
1444
1445 public void TogglePause()
1446 {
1447 if (IsAdv)
1448 {
1449 EClass.core.config.game.autopause = !EClass.core.config.game.autopause;
1451 {
1452 SE.Play("tick0");
1453 }
1454 else
1455 {
1456 SE.Play("tick1");
1457 }
1458 }
1459 else if (EClass.game.gameSpeedIndex != 0)
1460 {
1461 Pause(sound: true);
1462 }
1463 else
1464 {
1465 UnPause(sound: true);
1466 }
1467 }
1468
1469 public void Pause(bool sound = false)
1470 {
1471 ChangeGameSpeed(1, sound);
1472 }
1473
1474 public void UnPause(bool sound = false)
1475 {
1477 }
1478
1479 public void ChangeGameSpeed(int a, bool sound = false)
1480 {
1481 if (EClass.game.gameSpeedIndex != a)
1482 {
1483 if (sound)
1484 {
1485 SE.Play("tick" + a);
1486 }
1487 EClass.game.gameSpeedIndex = a;
1488 if (a != 0)
1489 {
1490 EClass.game.lastGameSpeedIndex = a;
1491 }
1493 }
1494 }
1495}
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:410
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:1263
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:1021
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:1327
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:1479
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:1299
virtual void OnRefreshSummary(Point point, HitResult result, HitSummary summary)
Definition: ActionMode.cs:1343
virtual BaseTileSelector.SelectType selectType
Definition: ActionMode.cs:125
virtual void OnUpdateInput()
Definition: ActionMode.cs:1029
static AM_Paint Paint
Definition: ActionMode.cs:75
bool TryShowWidgetMenu()
Definition: ActionMode.cs:1217
static AM_Harvest Harvest
Definition: ActionMode.cs:37
static float smoothY
Definition: ActionMode.cs:87
virtual void OnFinishProcessTiles()
Definition: ActionMode.cs:1339
virtual void OnScroll()
Definition: ActionMode.cs:1204
virtual void OnActivate()
Definition: ActionMode.cs:413
static AM_Region Region
Definition: ActionMode.cs:17
virtual void OnSelectEnd(bool cancel)
Definition: ActionMode.cs:1259
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:1474
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:1233
Layer layer
Definition: ActionMode.cs:97
void DoFunc(CoreConfig.GameFunc func)
Definition: ActionMode.cs:1101
static AM_StateEditor StateEditor
Definition: ActionMode.cs:41
virtual bool AllowHotbar
Definition: ActionMode.cs:217
void TogglePause()
Definition: ActionMode.cs:1445
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:1469
virtual void OnSelectStart(Point point)
Definition: ActionMode.cs:1255
static AM_Populate Populate
Definition: ActionMode.cs:67
void Deactivate()
Definition: ActionMode.cs:529
void InputMovement()
Definition: ActionMode.cs:934
virtual bool AllowMiddleClickFunc
Definition: ActionMode.cs:215
void ShowLayer()
Definition: ActionMode.cs:1352
virtual void SEExecuteSummary()
Definition: ActionMode.cs:292
virtual Layer OnShowLayer()
Definition: ActionMode.cs:1370
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:1335
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:1375
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:1440
virtual bool ShowActionHint
Definition: ActionMode.cs:165
virtual bool CanProcessTiles()
Definition: ActionMode.cs:1318
void DoFunc(CoreConfig.GameFuncBuild func)
Definition: ActionMode.cs:1033
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:1250
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:1387
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:1071
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:1421
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:1208
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:1383
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:1272
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:1331
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:1957
SourceMaterial.Row DyeMat
Definition: Card.cs:1816
SourceMaterial.Row material
Definition: Card.cs:1927
Card ChangeMaterial(int idNew, bool ignoreFixedMaterial=false)
Definition: Card.cs:2838
Thing AddThing(string id, int lv=-1)
Definition: Card.cs:2901
Point pos
Definition: Card.cs:55
void Dye(string idMat)
Definition: Card.cs:5267
Trait trait
Definition: Card.cs:49
bool isDyed
Definition: Card.cs:430
void Destroy()
Definition: Card.cs:4538
bool IsInstalled
Definition: Card.cs:2241
int Dist(Card c)
Definition: Card.cs:6777
Cell Cell
Definition: Card.cs:1931
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:1489
bool hasDoor
Definition: Cell.cs:258
Definition: Chara.cs:10
override bool IsPC
Definition: Chara.cs:597
override bool IsPCFaction
Definition: Chara.cs:656
bool HasNoGoal
Definition: Chara.cs:821
Hostility hostility
Definition: Chara.cs:276
BlockColors blockColors
GameFuncBuild b_mouse4PressLong
Definition: CoreConfig.cs:257
GameFuncBuild b_middlePressLong
Definition: CoreConfig.cs:249
GameFuncBuild b_mouse3Click
Definition: CoreConfig.cs:251
GameFuncBuild b_mouse3PressLong
Definition: CoreConfig.cs:253
GameFuncBuild b_middleClick
Definition: CoreConfig.cs:247
GameFuncBuild b_mouse4Click
Definition: CoreConfig.cs:255
new GameConfig game
Definition: CoreConfig.cs:596
CameraConfig camera
Definition: CoreConfig.cs:604
new UISetting ui
Definition: CoreConfig.cs:588
InputSetting input
Definition: CoreConfig.cs:602
DebugHotkey debugHotkeys
Definition: CoreDebug.cs:142
void UpdateInput()
Definition: CoreDebug.cs:840
bool enable
Definition: CoreDebug.cs:285
bool godBuild
Definition: CoreDebug.cs:303
bool ignoreBuildRule
Definition: CoreDebug.cs:184
RectData center
Definition: CoreRef.cs:162
Sprite spriteConquer
Definition: CoreRef.cs:244
Sprite spriteDeath
Definition: CoreRef.cs:246
Sprite spriteVisited
Definition: CoreRef.cs:242
TCs tcs
Definition: CoreRef.cs:337
Rects rects
Definition: CoreRef.cs:345
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:261
int lastGameSpeedIndex
Definition: Game.cs:225
int gameSpeedIndex
Definition: Game.cs:223
Config config
Definition: Game.cs:215
void Grow(int mtp=1)
Definition: GrowSystem.cs:321
int countValid
Definition: HitSummary.cs:10
static TaskBuild taskBuild
Definition: HotItemHeld.cs:7
virtual void OnShiftClick(ButtonGrid b, bool rightMouse=false)
Definition: InvOwner.cs:944
Card Container
Definition: InvOwner.cs:540
virtual bool CanShiftClick(ButtonGrid b, bool rightMouse=false)
Definition: InvOwner.cs:981
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:881
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:2046
void Update(Point _pos)
Definition: PointTarget.cs:52
Chara TargetChara
Definition: PointTarget.cs:41
Definition: Point.cs:9
Thing Installed
Definition: Point.cs:303
bool IsSeen
Definition: Point.cs:318
SourceBlock.Row sourceBlock
Definition: Point.cs:63
ref Vector3 Position(int height)
Definition: Point.cs:524
ref Vector3 PositionTopdown()
Definition: Point.cs:545
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:924
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:282
Definition: Region.cs:7
Definition: Scene.cs:8
void ToggleShowRoof()
Definition: Scene.cs:869
void ToggleShowWall()
Definition: Scene.cs:903
void ToggleMuteBGM()
Definition: Scene.cs:963
void ToggleLight()
Definition: Scene.cs:875
static Point HitPoint
Definition: Scene.cs:21
bool hideBalloon
Definition: Scene.cs:141
void ToggleSlope()
Definition: Scene.cs:915
ActionMode actionMode
Definition: Scene.cs:77
void UpdateCursor()
Definition: Scene.cs:739
void ToggleFreePos()
Definition: Scene.cs:892
void ToggleSnapFreePos()
Definition: Scene.cs:881
PointTarget mouseTarget
Definition: Scene.cs:129
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:501
bool destryoed
Definition: Spatial.cs:45
bool isConquered
Definition: Spatial.cs:382
virtual Point RegionPos
Definition: Spatial.cs:546
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:655
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 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:449