public static IntVec3 RandomSpawnCellForPawnNear(IntVec3 root, Map map, int firstTryWithRadius = 4)
        {
            MapExtension mapE = MapExtensionUtility.GetExtensionToMap(map);

            if (GenGridShips.Standable(root, map, mapE) && root.GetFirstPawn(map) is null)
            {
                return(root);
            }
            IntVec3 result;
            int     num = firstTryWithRadius;

            for (int i = 0; i < 3; i++)
            {
                if (CellFinderExtended.TryFindRandomReachableCellNear(root, map, (float)num, TraverseParms.For(TraverseMode.NoPassClosedDoors, Danger.Deadly, false), (IntVec3 c)
                                                                      => GenGridShips.Standable(c, map, mapE) && (root.Fogged(map) || !c.Fogged(map)) && c.GetFirstPawn(map) is null, out result, null, 999999))
                {
                    return(result);
                }
                num *= 2;
            }
            num = firstTryWithRadius + 1;

            while (!CellFinderExtended.TryRandomClosewalkCellNear(root, map, num, out result, null))
            {
                if (num > map.Size.x / 2 && num > map.Size.z / 2)
                {
                    return(root);
                }
                num *= 2;
            }
            return(result);
        }
Example #2
0
        public void MergeProperties_ShoudMergeTarget()
        {
            var source = new { testProp = 1, testField = "_" };
            var target = new { testProp = 200, testField = "test" };

            MapExtension.Merge(source, target);
            Assert.IsTrue(source.Equals(target));
        }
Example #3
0
        public static void Register()
        {
            //MapExtension.Create<User, UserViewModel>();
            //MapExtension.Create<User, UserDetailsViewModel>(); --> No need

            MapExtension.Create <UserViewModel, User>()
            .Ignore(u => u.CreatedDate)
            .Ignore(u => u.CreatedUser)
            .Ignore(u => u.IsActive)
            .Ignore(u => u.UpdatedDate)
            .Ignore(u => u.UpdatedUser);
        }
Example #4
0
        private static IntVec3 FindCenterWaterCell(Map map, bool landing = false)
        {
            TraverseParms       tp        = TraverseParms.For(TraverseMode.NoPassClosedDoors, Danger.Deadly, false);
            MapExtension        mapE      = MapExtensionUtility.GetExtensionToMap(map);
            Predicate <IntVec3> validator = (IntVec3 x) => GenGridShips.Standable(x, map, mapE) && !x.Fogged(map) && mapE.getShipReachability.CanReachMapEdge(x, tp);
            IntVec3             result;

            if (RCellFinder.TryFindRandomCellNearTheCenterOfTheMapWith(null /*input validator here*/, map, out result))
            {
                return(result); //RECHECK
            }
            Log.Warning("Could not find any valid center cell.", false);
            return(CellFinder.RandomCell(map));
        }
Example #5
0
        private readonly double EPSILON = Double.Epsilon;   // for comparing floating point numbers

        public PinPopupPage(Fault fault, MapExtension map)
        {
            InitializeComponent();

            FaultContext = fault;
            MapContext   = map;
            ListOfPins   = map.ListOfPins;

            ViewModel = new PinPopupVM(fault);

            BindingContext = ViewModel; // BindingContext allows us to bind to objects from our ViewModel and display them on the UI
                                        // The real benefit of this is real-time updating and displaying data without having to do any extra code

            // temporary until Rg.Plugins finishes the tap issue
            // CloseBtn.Clicked += CloseBtn_Clicked;

            CloseWhenBackgroundIsClicked = true;
        }
Example #6
0
        protected override void OnElementChanged(ElementChangedEventArgs <Map> e)
        {
            if (_map != null)
            {
                // unsubscribe

                _map.MapLongClick -= googleMap_MapLongClick;
            }

            base.OnElementChanged(e);

            if (Control != null)
            {
                // get the maps

                _formsMap = (MapExtension)e.NewElement;
                ((MapView)Control).GetMapAsync(this);
            }
        }
Example #7
0
        public static void EnterSpawn(Caravan caravan, Map map, Func <Pawn, IntVec3> spawnCellGetter, CaravanDropInventoryMode caravanDropInventoryMode = CaravanDropInventoryMode.DoNotDrop, bool draftColonists = true)
        {
            List <Pawn>  pawns    = new List <Pawn>(caravan.PawnsListForReading).Where(x => ShipHarmony.IsShip(x)).ToList();
            MapExtension mapE     = MapExtensionUtility.GetExtensionToMap(map);
            Rot4         spawnDir = GetEdgeToSpawnBoatOn(caravan, map);

            for (int i = 0; i < pawns.Count; i++)
            {
                IntVec3 loc = CellFinderExtended.MiddleEdgeCell(spawnDir, map, pawns[i], (IntVec3 c) => GenGridShips.Standable(c, map, mapE) && !c.Fogged(map)); //Change back to spawnCellGetter later

                pawns[i].GetComp <CompShips>().Angle = 0;
                Pawn ship = GenSpawn.Spawn(pawns[i], loc, map, spawnDir.Opposite, WipeMode.Vanish, false) as Pawn;
                ship.drafter.Drafted = draftColonists ? true : false;
            }
            caravan.RemoveAllPawns();
            if (caravan.Spawned)
            {
                Find.WorldObjects.Remove(caravan);
            }
        }
Example #8
0
 public DataAccessManager()
 {
     _sqlGenerator = new SqlGenerator();
     _mapExtension = new MapExtension(typeof(AutoEntityMapper <>), _sqlGenerator);
 }