11 public static AM_Adv AdvOrRegion
15 if (!
EClass._zone.IsRegion)
25 public static bool IsAdv
29 return ActionMode.DefaultMode is
AM_Adv;
34 public static void OnGameInstantiated()
36 ActionMode.LastBuildMode =
null;
37 ActionMode.Sim =
new AM_Sim();
39 ActionMode.Adv =
new AM_Adv();
48 ActionMode.Bird =
new AM_Bird();
50 ActionMode.Mine =
new AM_Mine();
51 ActionMode.Dig =
new AM_Dig();
53 ActionMode.Cut =
new AM_Cut();
54 ActionMode.Copy =
new AM_Copy();
76 public virtual float gameSpeed
90 return EClass.scene.actionMode ==
this;
96 public virtual BaseTileSelector.HitType hitType
106 public virtual BaseTileSelector.SelectType selectType
116 public virtual BaseTileSelector.BoxType boxType
126 public virtual bool ContinuousClick
136 public virtual int hitW
146 public virtual int hitH
160 return this.tileSelector.summary;
166 public bool Multisize
170 return this.hitW != 1 || this.hitW != 1;
176 public virtual string id
180 return base.GetType().Name.Split(
'_', StringSplitOptions.None)[1];
186 public virtual CursorInfo DefaultCursor
196 public virtual string idHelpTopic
206 public virtual string idSound
216 public virtual bool enableMouseInfo
226 public virtual bool hideBalloon
236 public virtual string textHintTitle
246 public virtual bool AllowAutoClick
256 public virtual bool ShowActionHint
266 public virtual bool ShowMouseoverTarget
276 public virtual AreaHighlightMode AreaHihlight
280 return AreaHighlightMode.None;
286 public virtual bool CanSelectTile
296 public virtual bool CanTargetOutsideBounds
306 public virtual bool ShouldPauseGame
316 public virtual bool FixFocus
326 public virtual bool HideSubWidgets
336 public virtual bool IsBuildMode
346 public virtual bool ShowBuildWidgets
350 return this.IsBuildMode;
356 public virtual BuildMenu.Mode buildMenuMode
360 if (!this.IsBuildMode)
370 public virtual bool ShouldHideBuildMenu
374 return this.IsBuildMode && this.tileSelector.start !=
null;
380 public virtual bool CanTargetFog
390 public virtual int CostMoney
400 public virtual bool AllowBuildModeShortcuts
404 return this.IsBuildMode;
410 public virtual bool AllowMiddleClickFunc
420 public virtual bool AllowHotbar
430 public virtual bool AllowGeneralInput
440 public virtual bool ShowMaskedThings
450 public virtual int SelectorHeight
460 public virtual bool AllowWheelZoom
469 public virtual int TopHeight(
Point p)
476 public virtual float TargetZoom
486 public virtual BaseTileMap.CardIconMode cardIconMode
506 public virtual bool IsNoMap
515 public virtual void SEExecuteSummary()
522 public virtual bool UseSubMenu
532 public virtual bool UseSubMenuSlider
542 public virtual bool SubMenuAsGroup
551 public virtual bool HighlightWall(
Point p)
558 public virtual int SubMenuModeIndex
567 public virtual void OnClickSubMenu(
int a)
572 public virtual string OnSetSubMenuButton(
int a, UIButton b)
578 public virtual bool IsRoofEditMode(
Card c =
null)
584 public virtual bool IsFillMode()
590 public virtual int GetDefaultTile(
Point p)
597 public virtual bool ShowExtraHint
601 return Lang.GetList(
"exhint_" + base.GetType().Name) !=
null;
606 public virtual void OnShowExtraHint(UINote n)
608 string[] list = Lang.GetList(
"exhint_" + base.GetType().Name);
613 foreach (
string text
in list)
615 n.AddText(
"NoteText_extrahint", text, Color.white);
625 return EClass.screen.tileSelector;
630 public void Activate(
bool toggle =
true,
bool forceActivate =
false)
632 if (this.TargetGameScreen !=
null)
634 this.TargetGameScreen.Activate();
636 if (
EClass.scene.actionMode ==
this && !forceActivate)
646 ActionMode.ignoreSound =
false;
650 EClass.Sound.Play(this.idSound);
654 EClass.scene.actionMode =
this;
655 if (actionMode !=
null)
657 if (actionMode.IsBuildMode && !(actionMode is
AM_ViewMap))
659 ActionMode.LastBuildMode = actionMode;
661 actionMode.ClearSimpleTexts();
662 actionMode.OnDeactivate();
663 if (
EClass.core.IsGameStarted)
667 card.renderer.DespawnSimpleText();
671 EClass.ui.RemoveLayers(
false);
673 if (this.IsBuildMode)
676 BuildMenu.Instance.terrainMenu.Show(
this);
684 EClass.ui.hud.transRight.SetActive(
false);
686 EClass.ui.hud.frame.SetActive(this.IsBuildMode &&
EClass.game.altUI);
687 if (this.hideBalloon)
689 EClass.ui.ShowBalloon(
false);
698 EClass.ui.widgets.OnChangeActionMode();
699 EClass.ui.extraHint.OnChangeActionMode();
700 CursorSystem.leftIcon =
null;
701 EClass.scene.UpdateCursor();
705 public virtual void OnActivate()
710 public unsafe
void RefreshTexts()
712 if (!
EClass.core.IsGameStarted)
716 this.ClearSimpleTexts();
717 if (
EClass._zone.IsRegion)
721 if (!spatial.destryoed)
723 Sprite sprite =
null;
724 if (spatial.isRandomSite && !spatial.isConquered && spatial.visitCount > 0)
726 sprite =
EClass.core.refs.tcs.spriteVisited;
728 else if (spatial.isConquered)
730 sprite =
EClass.core.refs.tcs.spriteConquer;
736 Cell cell = spatial.RegionPos.cell;
737 tcsimpleText.transform.position = *cell.GetPoint().PositionTopdown() +
EClass.setting.render.tc.simpleTextPos;
742 if (!this.IsBuildMode || !this.ShowMaskedThings)
748 string simpleText = this.GetSimpleText(card);
749 if (!simpleText.IsEmpty())
752 Popper.SetText(tcsimpleText2.tm, simpleText);
754 tcsimpleText2.transform.position = *card.pos.Position() +
EClass.setting.render.tc.simpleTextPos;
757 if (Application.isEditor)
759 foreach (KeyValuePair<int, int> keyValuePair
in EClass._map.backerObjs)
762 string text =
"Backer:" + row.id.ToString() +
"/" + row.Name;
763 if (row.isStatic != 0)
768 Popper.SetText(tcsimpleText3.tm, text);
770 Cell cell2 =
EClass._map.GetCell(keyValuePair.Key);
771 tcsimpleText3.transform.position = *cell2.GetPoint().Position() +
EClass.setting.render.tc.simpleTextPos;
775 if (card2.isBackerContent)
780 string text2 =
"Backer:" + row2.id.ToString() +
"/" + row2.Name;
781 if (row2.isStatic != 0)
783 text2 =
"★" + text2;
786 Popper.SetText(tcsimpleText4.tm, text2);
788 tcsimpleText4.transform.position = card2.renderer.position +
EClass.setting.render.tc.simpleTextPos;
796 public virtual string GetSimpleText(
Card c)
800 return "#" + c.Cell.room.data.group.ToString();
806 public void ClearSimpleTexts()
810 if (tcsimpleText !=
null)
812 PoolManager.Despawn(tcsimpleText);
819 public void Deactivate()
825 public virtual void OnDeactivate()
830 public virtual void OnCancel()
832 if (this.IsBuildMode && !
EClass.core.config.input.rightClickExitBuildMode && !Input.GetKey(KeyCode.Escape))
840 public virtual void OnBeforeUpdate()
845 public virtual void OnAfterUpdate()
850 public virtual void OnUpdateCursor()
852 CursorSystem.leftIcon =
null;
853 CursorSystem.SetCursor(
null, 0);
857 public void OnRotate()
859 this.RotateUnderMouse();
863 public void SetCursorOnMap(CursorInfo cursor)
865 CursorSystem.SetCursor(
EClass.ui.isPointerOverUI ?
null : cursor, 0);
869 public void UpdateInput()
871 ActionMode.mpos = Input.mousePosition;
882 ActionMode.hotElementTimer += Core.delta;
884 if (EInput.leftMouse.down)
886 if (
EClass.core.config.game.doubleClickToHold &&
ActionMode.hotElementTimer < 0.35f)
894 if (componentOf && componentOf.invOwner !=
null && componentOf.invOwner.owner ==
EClass.pc && (componentOf.card ==
null || componentOf.card.trait is
TraitAbility) && !(componentOf.invOwner is
InvOwnerEquip))
896 if (componentOf.card !=
null)
898 componentOf.card.Destroy();
904 componentOf.invOwner.Container.AddThing(thing,
false, componentOf.index, num);
905 thing.c_idAbility = hotElement.source.alias;
907 thing.invX = componentOf.index;
908 WidgetCurrentTool.dirty =
true;
917 if (EInput.rightMouse.down)
924 ActionMode.hotElementTimer = 0f;
926 ActionMode.focusTimer += Core.delta;
927 if (
EClass.ui.isPointerOverUI && (EInput.leftMouse.down || EInput.rightMouse.down || (
EClass.core.config.ui.autoFocusWindow && !Input.GetMouseButton(0) &&
ActionMode.focusTimer > 0.2f)))
930 if (componentOf2 !=
null &&
EClass.ui.layerFloat.layers.Contains(componentOf2))
932 if (EInput.rightMouse.down)
934 if (!componentOf2.mainInv && !InputModuleEX.GetComponentOf<UIButton>() && !componentOf2.windows[0].saveData.noRightClickClose)
936 componentOf2.Close();
941 componentOf2.transform.SetAsLastSibling();
945 if (componentOf3 !=
null &&
EClass.ui.layerFloat.layers.Contains(componentOf3))
947 componentOf3.transform.SetAsLastSibling();
949 ActionMode.focusTimer = 0f;
951 if ((EInput.isShiftDown && Input.GetMouseButton(0)) || (EInput.rightMouse.dragging2 && !Input.GetMouseButtonDown(1) && Input.GetMouseButton(1)))
953 bool rightMouse = !Input.GetMouseButtonDown(1) && Input.GetMouseButton(1);
955 if (componentOf4 !=
null && componentOf4.invOwner !=
null && componentOf4.card !=
null && componentOf4.invOwner.CanShiftClick(componentOf4, rightMouse) &&
EClass.ui.AllowInventoryInteractions)
957 componentOf4.invOwner.OnShiftClick(componentOf4, rightMouse);
960 if (EInput.rightMouse.down)
962 if (
EClass.ui.contextMenu.isActive)
964 EClass.ui.contextMenu.currentMenu.Hide();
965 EInput.rightMouse.Consume();
966 Layer.rightClicked =
false;
971 EInput.rightMouse.Consume();
972 Layer.rightClicked =
false;
975 if (EInput.middleMouse.down &&
this.TryShowWidgetMenu())
977 EInput.Consume(
false, 1);
979 if (EInput.middleMouse.down || EInput.middleMouse.clicked || EInput.middleMouse.pressedLong)
981 UIButton componentOf5 = InputModuleEX.GetComponentOf<UIButton>();
982 if (componentOf5 && componentOf5.CanMiddleClick() && (EInput.middleMouse.clicked || EInput.middleMouse.pressedLong))
984 componentOf5.OnMiddleClick();
987 if (
EClass.ui.contextMenu.currentMenu)
989 UIContextMenu.timeSinceClosed = 0f;
993 UIContextMenu.timeSinceClosed += Time.deltaTime;
995 if (
EClass.ui.currentDrag !=
null)
998 if (EInput.leftMouse.down || EInput.rightMouse.down)
1000 EClass.ui.EndDrag(EInput.rightMouse.down);
1003 ButtonState middleMouse = EInput.middleMouse;
1004 if (middleMouse.pressedLongAction !=
null)
1006 if (middleMouse.pressedLong)
1008 middleMouse.pressedLongAction();
1009 middleMouse.pressedLongAction =
null;
1011 else if (!EInput.middleMouse.pressing)
1013 middleMouse.pressedLongAction =
null;
1017 if (this.AllowGeneralInput && !
EClass.ui.IsDragging)
1019 if (Input.GetKeyDown(KeyCode.Tab) && !
EClass.debug.debugInput && !
EClass.ui.BlockInput && !EInput.waitReleaseAnyKey)
1021 if (!
EClass.ui.IsInventoryOpen)
1025 EClass.ui.ToggleInventory(
false);
1027 if (!
EClass.ui.BlockInput && !
this.IsBuildMode && !EInput.waitReleaseAnyKey)
1029 switch (EInput.action)
1031 case EAction.MenuInventory:
1032 EClass.ui.ToggleInventory(
false);
1034 case EAction.MenuChara:
1037 if (layerChara !=
null)
1039 layerChara.SetChara(
EClass.pc);
1043 case EAction.MenuJournal:
1046 case EAction.MenuAbility:
1047 if (!
EClass.debug.enable)
1049 EClass.ui.ToggleAbility(
false);
1056 this.InputMovement();
1058 if (!
EClass.ui.canvas.enabled && EInput.IsAnyKeyDown(
true))
1060 EClass.ui.canvas.enabled =
true;
1061 EInput.Consume(
false, 1);
1065 if (EInput.action == EAction.Examine && !
this.IsBuildMode)
1069 if (componentOf6 && componentOf6.card !=
null)
1071 card = componentOf6.card;
1075 UIItem componentOf7 = InputModuleEX.GetComponentOf<UIItem>();
1076 if (componentOf7 && componentOf7.refObj is
Thing)
1078 card = (
Thing)componentOf7.refObj;
1086 card = layerCraft.product;
1102 if (
EClass.ui.BlockActions)
1106 if (this.AllowBuildModeShortcuts && Input.GetKeyDown(KeyCode.Q) &&
ActionMode.Picker.CanActivate)
1110 if (
EClass.debug.godBuild && EInput.isCtrlDown && EInput.wheel != 0 &&
Scene.HitPoint.IsValid &&
HotItemHeld.taskBuild ==
null)
1113 bool flag = EInput.wheel > 0;
1114 if (
EClass.scene.mouseTarget.card !=
null)
1117 if (card2.isThing && card2.IsInstalled)
1121 where m.thing == currentMat.thing
1122 select m).ToList<SourceMaterial.Row>();
1123 if (EInput.isShiftDown)
1125 source =
EClass.sources.materials.rows;
1127 SourceMaterial.Row row = flag ? source.NextItem(currentMat) : source.PrevItem(currentMat);
1128 if (EInput.isAltDown)
1138 card2.ChangeMaterial(row);
1140 ActionMode.lastEditorMat = row;
1141 Msg.Say(row.GetName() +
"(" + row.alias +
")");
1144 else if (hitPoint.HasObj)
1149 if (EInput.isAltDown)
1153 hitPoint.cell.objMat = (byte)row2.id;
1154 ActionMode.lastEditorMat = row2;
1155 Msg.Say(row2.GetName());
1157 EInput.Consume(
false, 1);
1159 if (this.AllowHotbar && !this.IsBuildMode &&
EClass.debug.debugHotkeys ==
CoreDebug.DebugHotkey.None)
1161 if (EInput.hotkey != -1)
1166 else if (!
EClass.debug.enable && EInput.functionkey != -1)
1171 hotbarExtra.TryUse(EInput.functionkey);
1175 this.OnUpdateInput();
1178 EClass.core.debug.UpdateInput();
1180 ActionMode.textTimer += Core.delta;
1183 ActionMode.textTimer = 0f;
1184 this.RefreshTexts();
1186 if (this.IsBuildMode)
1189 if (EInput.middleMouse.clicked)
1191 this.DoFunc(input.b_middleClick);
1193 else if (EInput.middleMouse.pressedLong)
1195 this.DoFunc(input.b_middlePressLong);
1196 EInput.middleMouse.Consume();
1198 if (EInput.mouse3.clicked)
1200 this.DoFunc(input.b_mouse3Click);
1202 else if (EInput.mouse3.pressedLong)
1204 this.DoFunc(input.b_mouse3PressLong);
1205 EInput.mouse3.Consume();
1207 if (EInput.mouse4.clicked)
1209 this.DoFunc(input.b_mouse4Click);
1212 if (EInput.mouse4.pressedLong)
1214 this.DoFunc(input.b_mouse4PressLong);
1215 EInput.mouse4.Consume();
1221 public void InputMovement()
1225 Vector2 vector = EInput.axis;
1226 bool flag = !
EClass.core.IsGameStarted;
1227 if ((!this.FixFocus && !EInput.rightMouse.pressing) ||
EClass.scene.actionMode.IsBuildMode)
1229 if (Input.GetKey(KeyCode.LeftShift))
1233 if (
EClass.core.config.camera.edgeScroll)
1235 Vector2 zero = Vector2.zero;
1240 if (
ActionMode.mpos.x > (
float)(Screen.width - 16))
1248 if (
ActionMode.mpos.y > (
float)(Screen.height - 8))
1252 if (zero != Vector2.zero)
1254 vector += zero * (EClass.core.config.camera.sensEdge * 2f);
1257 EInput.hasAxisMoved = (vector != Vector2.zero);
1258 ButtonState buttonScroll = EInput.buttonScroll;
1263 if (EInput.buttonScroll !=
null && EInput.buttonScroll.pressing && (flag || !
EClass.ui.BlockActions))
1265 num = EInput.dragAmount.x * (0.1f +
EClass.core.config.camera.sensDrag);
1266 num2 = EInput.dragAmount.y * (0.1f +
EClass.core.config.camera.sensDrag);
1267 if (!
EClass.core.config.camera.invertX)
1271 if (!
EClass.core.config.camera.invertY)
1275 if (EInput.hasMouseMoved)
1277 EInput.hasAxisMoved =
true;
1280 if (EInput.hasAxisMoved)
1282 EClass.screen.zoomPos = Vector3.zero;
1284 if (EInput.wheel != 0 && !InputModuleEX.GetComponentOf<UIScrollView>())
1286 this.InputWheel(EInput.wheel);
1289 float momentum =
EClass.core.config.camera.momentum;
1290 if (momentum > 0f && EInput.axis == Vector2.zero)
1292 ActionMode.smoothX = Mathf.Lerp(
ActionMode.smoothX, num, Time.smoothDeltaTime * momentum);
1293 ActionMode.smoothY = Mathf.Lerp(
ActionMode.smoothY, num2, Time.smoothDeltaTime * momentum);
1297 ActionMode.smoothX = num;
1298 ActionMode.smoothY = num2;
1301 if (EInput.hasAxisMoved)
1304 EClass.screen.ScrollAxis(vector,
false);
1309 public virtual void InputWheel(
int wheel)
1311 if (this.AllowWheelZoom)
1313 EClass.screen.ModTargetZoomIndex(-wheel);
1318 public virtual void OnUpdateInput()
1323 public void DoFunc(
CoreConfig.GameFuncBuild func)
1328 ActionMode.DefaultMode.Activate(
true,
false);
1334 EClass.scene.ToggleFreePos();
1337 EClass.scene.ToggleSnapFreePos();
1340 EClass.scene.ToggleShowRoof();
1343 EClass.scene.ToggleSlope();
1346 EClass.scene.ToggleShowWall();
1354 case CoreConfig.GameFuncBuild.ToggleBuildLight:
1355 EClass.scene.ToggleLight();
1364 Chara targetChara =
EClass.scene.mouseTarget.TargetChara;
1371 EClass.ui.ToggleInventory(
true);
1378 layerChara.SetChara(
EClass.pc);
1379 layerChara.windows[0].SetRect(
EClass.core.refs.rects.center,
false);
1380 layerChara.Delay(0.05f);
1385 EClass.ui.ToggleAbility(
true);
1388 if (!
EClass._zone.CanEnterBuildModeAnywhere)
1391 Msg.Say(
"invalidAction");
1401 layerJournal.windows[0].SetRect(
EClass.core.refs.rects.center,
false);
1402 layerJournal.Delay(0.05f);
1410 if (!
EClass.ui.isPointerOverUI)
1416 EClass.game.config.noRoof = !
EClass.game.config.noRoof;
1419 if (!
EClass.pc.HasNoGoal || (targetChara !=
null && !targetChara.IsPCFaction))
1423 if (
EClass.scene.mouseTarget.pos.Equals(
EClass.pc.pos))
1425 if (!
EClass.ui.IsInventoryOpen)
1429 EClass.ui.ToggleInventory(
false);
1431 else if (targetChara !=
null &&
EClass.pc.Dist(targetChara) <= 1)
1437 if (!
EClass.pc.HasNoGoal || targetChara ==
null || targetChara.hostility <= Hostility.Enemy || targetChara.IsPC ||
EClass.pc.Dist(targetChara) > 2)
1441 ACT.Chat.Perform(
EClass.pc, targetChara,
null);
1444 EInput.action = EAction.EmptyHand;
1447 if (EInput.keyFire.Update(
true))
1449 EInput.action = EAction.Fire;
1456 EInput.Consume(
false, 1);
1460 public virtual void OnScroll()
1465 public void TryRightClickCloseWidget()
1467 Widget componentOf = InputModuleEX.GetComponentOf<
Widget>();
1468 if (componentOf && componentOf.RightClickToClose)
1470 componentOf.Close();
1475 public bool TryShowWidgetMenu()
1477 Widget componentOf = InputModuleEX.GetComponentOf<
Widget>();
1478 if (!componentOf || !componentOf.CanShowContextMenu())
1482 if (componentOf.RightClickToClose)
1484 componentOf.Close();
1487 componentOf.ShowContextMenu();
1492 public HitResult _HitTest(
Point point,
Point start)
1494 if (!
EClass.debug.ignoreBuildRule && !
this.CanTargetOutsideBounds && (!point.IsValid || !point.IsInBoundsPlus))
1496 return HitResult.NoTarget;
1500 return HitResult.NoTarget;
1502 if (!this.CanTargetFog && !point.cell.isSeen)
1504 return HitResult.Default;
1506 return this.HitTest(point, start);
1510 public virtual HitResult HitTest(
Point point,
Point start)
1512 return HitResult.Default;
1516 public virtual void OnSelectStart(
Point point)
1521 public virtual void OnSelectEnd(
bool cancel)
1528 if ((!point.HasNonWallBlock && !point.HasBlockRecipe && point.IsSeen) || (point.sourceBlock.tileType.Invisible && !
this.IsBuildMode))
1530 return EClass.screen.guide.passGuideFloor;
1532 return EClass.screen.guide.passGuideBlock;
1536 public unsafe
virtual void OnRenderTile(
Point point, HitResult result,
int dir)
1538 if (result == HitResult.NoTarget || !point.IsValid || (!point.IsSeen && !
this.CanTargetFog))
1542 MeshPass guidePass = this.GetGuidePass(point);
1543 int num = (int)result;
1544 if (this.tileSelector.start !=
null && result == HitResult.Default)
1548 Vector3 vector = *point.Position();
1551 num = this.GetDefaultTile(point);
1553 guidePass.Add(vector.x, vector.y, vector.z - 0.01f, (
float)num, 0.3f);
1554 if (!this.IsRoofEditMode(
null) && point.HasWallOrFence && !point.cell.hasDoor &&
this.HighlightWall(point))
1556 EClass.screen.guide.DrawWall(point,
EClass.Colors.blockColors.Passive,
true, 0f);
1558 if (this.IsBuildMode &&
EClass.screen.tileSelector.start ==
null && point.Installed !=
null &&
ActionMode.Inspect.IsActive)
1560 point.Installed.trait.OnRenderTile(point, result, dir);
1565 public unsafe
void OnRenderTileFloor(
Point point, HitResult result)
1567 if (result == HitResult.NoTarget || !point.IsValid || (!point.IsSeen && !
this.CanTargetFog))
1571 MeshPass guidePass = this.GetGuidePass(point);
1572 int num = (int)result;
1573 if (this.tileSelector.start !=
null && result == HitResult.Default)
1577 Vector3 vector = *point.Position((
int)point.cell.height);
1580 num = this.GetDefaultTile(point);
1582 guidePass.Add(vector.x, vector.y, vector.z - 0.01f, (
float)num, 0.3f);
1586 public virtual bool CanProcessTiles()
1588 return !this.Multisize || this.Summary.countValid == this.hitW * this.hitH;
1592 public virtual void OnBeforeProcessTiles()
1597 public virtual void OnProcessTiles(
Point point,
int dir)
1602 public virtual void OnAfterProcessTiles(
Point start,
Point end)
1607 public virtual void OnFinishProcessTiles()
1612 public virtual void OnRefreshSummary(
Point point, HitResult result,
HitSummary summary)
1614 if (result == HitResult.Valid || result == HitResult.Warning)
1616 summary.money += this.CostMoney;
1617 summary.countValid++;
1622 public void ShowLayer()
1624 this.layer = this.OnShowLayer();
1625 if (this.layer !=
null)
1627 CursorSystem.SetCursor(
null, 0);
1631 CursorSystem.SetCursor(this.DefaultCursor, 0);
1633 if (
EClass.core.screen.tileSelector)
1635 EClass.core.screen.tileSelector.OnChangeActionMode();
1637 EClass.ui.hud.hint.Refresh();
1641 public virtual Layer OnShowLayer()
1647 public void HideLayer()
1649 EClass.ui.RemoveLayer(this.layer);
1650 CursorSystem.SetCursor(CursorSystem.Select, 0);
1651 EClass.ui.hud.hint.UpdateText();
1656 public virtual void OnHideLayer()
1661 public virtual string GetHintText()
1663 string text = this.textHintTitle.IsEmpty(Lang.Get(
this.id)) +
" - ";
1670 text +=
"hintBuild".lang();
1674 text +=
"hintCreateArea".lang();
1679 text =
"hintMoveTarget".lang();
1683 text +=
"hintSelectSingle".lang();
1685 else if (tileSelector.start ==
null)
1687 text +=
"hintSelectStart".lang();
1691 text +=
"hintSelectEnd".lang();
1693 if (actionMode ==
ActionMode.Build &&
ActionMode.Build.recipe !=
null && tileSelector.start ==
null)
1697 text = text +
" " +
"hintRotate".lang();
1701 text = text +
" " +
"hintAltitude2".lang();
1708 public virtual void RotateUnderMouse()
1712 if (!hitPoint.IsValid)
1716 hitPoint.cell.RotateAll();
1724 Thing installed = hitPoint.Installed;
1725 if (((installed !=
null) ? installed.trait :
null) is
TraitSeed)
1727 (hitPoint.Installed.trait as
TraitSeed).TrySprout(
true,
false,
null);
1734 public virtual ref
string SetMouseInfo(ref
string s)
1740 public void TogglePause()
1744 EClass.core.config.game.autopause = !
EClass.core.config.game.autopause;
1745 if (
EClass.core.config.game.autopause)
1755 if (
EClass.game.gameSpeedIndex != 0)
1766 public void Pause(
bool sound =
false)
1768 this.ChangeGameSpeed(1, sound);
1772 public void UnPause(
bool sound =
false)
1774 this.ChangeGameSpeed(
EClass.game.lastGameSpeedIndex, sound);
1778 public void ChangeGameSpeed(
int a,
bool sound =
false)
1780 if (
EClass.game.gameSpeedIndex == a)
1786 SE.Play(
"tick" + a.ToString());
1788 EClass.game.gameSpeedIndex = a;
1791 EClass.game.lastGameSpeedIndex = a;
1803 public static AM_Sim Sim;
1809 public static AM_Adv Adv;
1839 public static AM_Dig Dig;
1845 public static AM_Cut Cut;
1911 public static bool ignoreSound;
1914 private static float smoothX = 0f;
1917 private static float smoothY = 0f;
1920 private static float textTimer = 0f;
1923 protected static Vector3 mpos;
1926 public static float[] GameSpeeds =
new float[]
1935 public static List<TCSimpleText> simpleTexts =
new List<TCSimpleText>();
1941 public int brushRadius = 4;
1944 private static float focusTimer;
1947 private static float hotElementTimer;