protected static bool Prefix(ref Tool __instance, Farmer who) { if (!Utility.ShouldCharge(__instance)) { return(true); // run original logic } who.Halt(); __instance.Update(who.FacingDirection, 0, who); switch (who.FacingDirection) { case 0: who.FarmerSprite.setCurrentFrame(176); __instance.Update(0, 0, who); break; case 1: who.FarmerSprite.setCurrentFrame(168); __instance.Update(1, 0, who); break; case 2: who.FarmerSprite.setCurrentFrame(160); __instance.Update(2, 0, who); break; case 3: who.FarmerSprite.setCurrentFrame(184); __instance.Update(3, 0, who); break; } return(false); // don't run original logic }
void Update() { bool is_default_tool_set = m_active_tool == m_default_tool; if (is_default_tool_set) { foreach (var tool in m_tools) { if (Input.GetKey(tool.GetKeyCode()) && tool.TryStartUsing()) { SetActiveTool(tool); break; } } } else if (m_active_tool != null) { if (!Input.GetKey(m_active_tool.GetKeyCode())) { SetActiveTool(m_default_tool); } } if (m_active_tool != null) { m_active_tool.Update(Time.deltaTime); } #if UNITY_EDITOR if (Input.GetKeyDown(KeyCode.T)) { if (CameraRayCast(out var hit)) { float teleport_vertical_offset = 1f; GetComponent <IL3DN.IL3DN_SimpleFPSController>().Teleport(hit.point + new Vector3(0, teleport_vertical_offset, 0)); } } #endif if (Input.GetKeyDown(KeyCode.Escape)) { if (Application.isEditor) { } else { var camera = Game.Instance.GetCamera(); MainMenu.Instance.m_pause_screen.SetTransforms(transform.localPosition, transform.localRotation, camera.transform.localPosition, camera.transform.localRotation); Game.Instance.DestroyAvatar(); MainMenu.Instance.gameObject.SetActive(true); MainMenu.Instance.GetComponent <CanvasGroup>().alpha = 1f; MainMenu.Instance.TransitionScreens(null, MainMenu.Instance.m_pause_screen.gameObject); } } }
public override void Update(GameTime gameTime) { base.Update(gameTime); _objectDragger.Update(gameTime); // If this were more advanced, I might consider a chain of command design pattern? if (!_objectDragger.Dragging) { _currentTool.Update(gameTime); } }
private void Update() { _currentTool.Update(this); }
/// <summary> /// updates the player and all of its children. /// </summary> /// <param name="time"></param> internal override void Update(GameTime time) { tool.Update(time); base.Update(time); }
public override void _Process(float delta) { _currentTool.Update(this); }
public override void Update() { oneOverScale = 1f / CameraScale; #region MouseControl OldMousePos = MousePos; MousePos.X = Game1.game.ms.X - Game1.HalfWidth; MousePos.Y = Game1.game.ms.Y - Game1.HalfHeight; MousePos *= oneOverScale; MousePos += cameraCenter; bool clampM = true; Vector2 cTo = Vector2.Zero; if (verticalMenu.ClampVertex) { #region VertexClamp float dist = ClampDistance * oneOverScale; dist *= dist; float toDist = ClampDistance; for (int i = 0; i < shapes.Count; i++) { for (int c = 0; c < shapes[i].lines.Length; c++) { Line l = shapes[i].lines[c]; float d = Vector2.DistanceSquared(l.from, MousePos); if (d < toDist) { cTo = l.from; toDist = d; clampM = false; } d = Vector2.DistanceSquared(l.to, MousePos); if (d < toDist) { cTo = l.to; toDist = d; clampM = false; } } } for (int c = 0; c < bounds.lines.Length; c++) { Line l = bounds.lines[c]; float d = Vector2.DistanceSquared(l.from, MousePos); if (d < toDist) { cTo = l.from; toDist = d; clampM = false; } d = Vector2.DistanceSquared(l.to, MousePos); if (d < toDist) { cTo = l.to; toDist = d; clampM = false; } } #endregion } if (clampM) { if (verticalMenu.ClampMouse) { int hg = gridSizeSeparator / 2; int val = (int)MousePos.X; val += MousePos.X < 0 ? -hg : hg; MousePos.X = (val) / gridSizeSeparator * gridSizeSeparator; val = (int)MousePos.Y; val += MousePos.Y < 0 ? -hg : hg; MousePos.Y = (val) / gridSizeSeparator * gridSizeSeparator; } } else { MousePos = cTo; } #endregion menu.Update(); #region ClickRegister if (Game1.game.MouseLeftClicked()) { Vector2 mp = new Vector2(Game1.game.ms.X, Game1.game.ms.Y); if (mp.Y > menuOffset.Translation.Y) { mp.Y -= menuOffset.Translation.Y; menu.OnClick(mp); } else if (mp.X > verticalMenuOffset.Translation.X) { mp.X -= verticalMenuOffset.Translation.X; verticalMenu.OnClick(mp); } else if (currentTool != null) { currentTool.OnClick(MousePos); } } #endregion if (currentTool != null) { if (Game1.game.KeyJustClicked(Keys.Escape)) { SetTool(null); } else { currentTool.Update(); } } #region CamControls if (Game1.game.ms.MiddleButton == ButtonState.Pressed) { int delt = Game1.game.ms.X - Game1.game.oldms.X; cameraCenter.X -= delt * (1f / CameraScale); delt = Game1.game.ms.Y - Game1.game.oldms.Y; cameraCenter.Y -= delt * (1f / CameraScale); RecalcCameraMatrix(); int mx = Game1.game.ms.X; if (mx <= 0) { mx += Game1.ScreenWidth; } else if (mx >= Game1.ScreenWidth - 1) { mx -= Game1.ScreenWidth; } int my = Game1.game.ms.Y; if (my <= 0) { my += Game1.ScreenHeight; } else if (my >= Game1.ScreenHeight - 1) { my -= Game1.ScreenHeight; } if (mx != Game1.game.ms.X || my != Game1.game.ms.Y) { Mouse.SetPosition(mx, my); Game1.game.ms = Mouse.GetState(); } } if (Game1.game.KeyJustClicked(Keys.Home)) { CenterCamera(); } if (Game1.game.ms.ScrollWheelValue != Game1.game.oldms.ScrollWheelValue) { CameraScale += (Game1.game.ms.ScrollWheelValue - Game1.game.oldms.ScrollWheelValue) / 600f; } #endregion }