Example #1
0
 public void Run(object sender, EventArgs e)
 {
     Areas.Load(MainWindow.MapInfo.CurrBiome);
     if (!Characters.Player.isalive)
     {
         Events.CombatDeath.Load();
     }
 }
Example #2
0
        public static bool Load(string filename)
        {
            // load in data from file
            try
            {
                FieldInfo[] fields = typeof(SaveData).GetFields(BindingFlags.Static | BindingFlags.Public);
                object[,] a;
                Stream        f         = File.Open(filename, FileMode.Open);
                SoapFormatter formatter = new SoapFormatter();
                a = formatter.Deserialize(f) as object[, ];
                f.Close();
                if (a.GetLength(0) != fields.Length)
                {
                    return(false);
                }
                int i = 0;
                foreach (FieldInfo field in fields)
                {
                    if (field.Name == (a[i, 0] as string))
                    {
                        field.SetValue(null, a[i, 1]);
                    }
                    i++;
                }
                ;

                // set data to relevent things
                SleepLoc.pos = new Vec()
                {
                    sleepposx, sleepposy
                };

                SleepLoc.chunkpos = new Vec()
                {
                    sleepchunkx, sleepchunky
                };

                MainWindow.Time.time = time;
                MainWindow.Sun.Draw();

                SleepLoc.Load();

                var temp = Characters.Player.CBTDesc;

                Characters.Player = player;

                Characters.Player.CBTDesc = temp;

                MainWindow.MapInfo.Update();

                TransformGroup group = new TransformGroup();
                group.Children.Add(new TranslateTransform(-MainWindow.MapInfo.position[0], -MainWindow.MapInfo.position[1]));
                MainWindow.App.map.RenderTransform = group;

                Areas.Load(MainWindow.MapInfo.CurrBiome);

                Console.WriteLine("Load successfull...");

                return(true);
            }
            catch
            {
                Console.WriteLine("Load failed...");

                return(false);
            }
        }
Example #3
0
        // interactive stuffs
        private void MapMouseDrag(object sender, MouseEventArgs e)
        {
            if (MapInfo.DoDrag && MapInfo.CanDrag)
            {
                bool doupdate = false;

                Vec deltamouse = MapInfo.OldMousePos - new Vec()
                {
                    e.GetPosition(map).X, e.GetPosition(map).Y
                };

                Areas.TotalDistance += deltamouse.Mag;
                Time.delta           = (deltamouse.Mag * MapInfo.MoveRate);
                Time.time           += (uint)Time.delta;

                MapInfo.position = MapInfo.position + deltamouse;

                if (MapInfo.position[0] < -100)
                {
                    MapInfo.position[0] += 200;
                    MapInfo.chunkpos[0] -= 1;
                    doupdate             = true;
                }
                if (MapInfo.position[0] > 100)
                {
                    MapInfo.position[0] -= 200;
                    MapInfo.chunkpos[0] += 1;
                    doupdate             = true;
                }
                if (MapInfo.position[1] < -100)
                {
                    MapInfo.position[1] += 200;
                    MapInfo.chunkpos[1] -= 1;
                    doupdate             = true;
                }
                if (MapInfo.position[1] > 100)
                {
                    MapInfo.position[1] -= 200;
                    MapInfo.chunkpos[1] += 1;
                    doupdate             = true;
                }
                if (doupdate)
                {
                    MapInfo.DoDrag = false;
                    MapInfo.Update();
                }

                MapInfo.MoveUpdate();
                Areas.Load(MapInfo.CurrBiome);

                TransformGroup group = new TransformGroup();
                group.Children.Add(new TranslateTransform(-MapInfo.position[0], -MapInfo.position[1]));
                map.RenderTransform = group;

                Characters.Update();

                Sun.Draw();

                double shortest_dist = double.MaxValue;

                for (int i = -1; i <= 1; i++)
                {
                    for (int j = -1; j <= 1; j++)
                    {
                        try
                        {
                            foreach (Bases.Base checking in Bases.BaseList[(int)MapInfo.chunkpos[0] + i, (int)MapInfo.chunkpos[1] + j])
                            {
                                Vec temp = MapInfo.position + new Vec()
                                {
                                    100, 100
                                } -(checking.pos + new Vec()
                                {
                                    200 * i, 200 * j
                                });
                                double dist = temp * temp;

                                if (dist <= shortest_dist)
                                {
                                    shortest_dist     = dist;
                                    Bases.NearestBase = checking;
                                }
                            }
                        }
                        catch { }
                    }
                }

                Bases.Base temp_base = Bases.SelectedBase;

                if (Bases.NearestBase.distance_to <= 50)
                {
                    Bases.SelectedBase = Bases.NearestBase;
                }
                else
                {
                    Bases.SelectedBase = null;
                }

                if (temp_base != Bases.SelectedBase)
                {
                    MapInfo.Update();
                }
            }
        }