void Start() { var mapGenerator = GetComponent <MapGenerator>(); blockRenderer = GetComponent <BlockRenderer>(); stats = GetComponent <PlayerStatistics>(); spawnSerializer = GetComponent <SpawnSerializer>(); canvasController = GetComponent <GameCanvasController>(); sounds = GetComponent <SoundController>(); map = mapGenerator.Generate(90, 90); Func <Spawn, VectorI2> GetStart = (s) => { int rndId = UnityEngine.Random.Range(0, s.spawnPoints.Count); SpawnPoint sp = s.spawnPoints[rndId]; var vec = new VectorI2((int)sp.playerSpawn.x, (int)sp.playerSpawn.y); map[vec.X, vec.Y] = Constants.Objects.Floor; var vecRadio = new VectorI2((int)sp.radioSpawn.x, (int)sp.radioSpawn.y); map[vecRadio.X, vecRadio.Y] = Constants.Objects.Radio; return(vec); }; playerPos = GetStart(spawnSerializer.GetSpawn()); blockRenderer.Initialize(SquareIsValid, map, playerPos.X, playerPos.Y); StartCoroutine(ReduceOxygen()); StartCoroutine(RunDownRadio()); }
public bool Add(VectorI2 point) { if (surface.IsValidPoint(point)) { return(points.Add(point)); } return(false); }
/// <summary> /// Initializes a new instance of the <see cref="MouseEventArgs" /> struct. /// </summary> /// <param name="x"> The x coordinate. </param> /// <param name="y"> The y coordinate. </param> /// <param name="buttons"> The buttons. </param> /// <param name="clicks"> The clicks. </param> /// <param name="wheelDelta"> The wheel delta. </param> public MouseEventArgs(int x, int y, MouseButtons buttons, int clicks, int wheelDelta) { Position = VectorI2.Zero; X = x; Y = y; Buttons = buttons; Clicks = clicks; WheelDelta = wheelDelta; }
static public bool IsSolid(this Texture2D item, VectorI2 point, float threshold = 1e-3f) { if (item.GetSolidness(point) >= threshold) { return(true); } return(false); }
private bool MoveIsValid(Func <VectorI2, VectorI2> func) { VectorI2 temp = func(playerPos); if (SquareIsValid(temp.X, temp.Y)) { return(map[temp.X, temp.Y] == Constants.Objects.Floor || (map[temp.X, temp.Y] == Constants.Objects.Battery && stats.Batteries < Constants.Energy.MaxCarryBattery)); } return(false); }
static public bool IsValidPoint <T>(this Surface <T> item, VectorI2 to_check) { if (to_check.x >= 0 && to_check.x < item.GetWidth()) { if (to_check.y >= 0 && to_check.y < item.GetHeight()) { return(true); } } return(false); }
private void PerformMove(Func <VectorI2, VectorI2> desiredPosition) { if (paused) { return; } if (MoveIsValid(desiredPosition)) { playerPos = desiredPosition(playerPos); if (map[playerPos.X, playerPos.Y] == Constants.Objects.Battery) { stats.Batteries++; map[playerPos.X, playerPos.Y] = Constants.Objects.Floor; sounds.PickUpBattery(); blockRenderer.SpawnBattery(playerPos.X, playerPos.Y); } blockRenderer.SetCurrentPosition(playerPos.X, playerPos.Y); stats.Steps++; } else { var desiredPos = desiredPosition(playerPos); var blockId = map[desiredPos.X, desiredPos.Y]; Action <int, int> interact = null; if (interactions.TryGetValue(blockId, out interact)) { interact(desiredPos.X, desiredPos.Y); } blockRenderer.UpdateMap(); } }
/// <summary> /// Initializes a new instance of the <see cref="Arc2" /> struct. /// </summary> /// <param name="center"> The center. </param> /// <param name="radius"> The radius. </param> /// <param name="start"> /// (Optional) /// The start angle in radians. /// </param> /// <param name="end"> /// (Optional) /// The end angle in radians. /// </param> public Arc2(VectorI2 center, float radius, float start = 0, float end = MathUtil.TwoPi) : this(center.X, center.Y, radius, start, end) { }
/// <summary> /// Initializes a new instance of the <see cref="Circle2" /> struct. /// </summary> /// <param name="center"> The center. </param> /// <param name="radius"> The radius. </param> public Circle2(VectorI2 center, float radius) : this(center.X, center.Y, radius) { }
static public Rect GetOverflownGridChunk(this Rect item, VectorI2 coords, Vector2 cell_size) { return(item.GetOverflownGridChunk(coords.x, coords.y, cell_size)); }
protected override void FreezeInternal() { frozen_value = value; }
public bool Remove(VectorI2 point) { return(points.Remove(point)); }
public VectorI3(VectorI2 vector) { this.x = vector.x; this.y = vector.y; z = 0; }
static public Vector2Int GetVector2Int(this VectorI2 item) { return(new Vector2Int(item.x, item.y)); }
protected override void UpdateInternal() { value = stick.GetRawValue(); menu_value.UpdateValue(value); }
static public Rect GetGridChunk(this Rect item, VectorI2 coords, int number_columns, int number_rows) { return(item.GetGridChunk(coords.x, coords.y, number_columns, number_rows)); }
static public float GetSolidness(this Texture2D item, VectorI2 point) { return(item.GetSolidnessAt(point.x, point.y)); }