void Demo() { monocle.Telegraph telegraph = new monocle.Telegraph(); List <ShipData> testShips; telegraph.GetAllShips(Area.OldWorld, out testShips); return; List <monocle.IslandData> islandData = new List <monocle.IslandData>(); if (!telegraph.GetIslandsByName("Shortisland", out islandData)) { return; } monocle.IslandData island = islandData.First(); List <monocle.BuildingData> buildings = new List <monocle.BuildingData>(); if (!telegraph.GetIslandBuildings(islandData.First().id, out buildings)) { return; } foreach (var building in buildings) { if (building.buidlingType == monocle.Building.SmallTradingPost) { for (ulong i = 0; i < 2048; ++i) { ulong compAddress = 0; telegraph.GetBuildingComponentAddress(islandData.First().id, building.id, i, out compAddress); if (compAddress != 0) { string sAddress = compAddress.ToString("X"); string sI = i.ToString(); Console.WriteLine(string.Format("{0} {1}", sI, sAddress)); } } } monocle.ProductionNode productionNode; if (!telegraph.GetBuildingProduction(island.id, building.id, out productionNode)) { continue; } } List <monocle.ConsumptionNode> consumption = new List <monocle.ConsumptionNode>(); if (!telegraph.GetIslandConsumption(island.id, out consumption)) { return; } List <monocle.ShipData> ships = new List <monocle.ShipData>(); if (!telegraph.GetAllShips(monocle.Area.OldWorld, out ships)) { return; } ships = (from s in ships where s.shipType == monocle.ShipType.Clipper select s).ToList(); monocle.ShipMoveData moveData; if (!telegraph.GetShipMoveData(ships.First().shipId, out moveData)) { return; } monocle.Coordinate target = moveData.position; target.x = target.x + 100; List <ulong> ids = (from s in ships select s.shipId).ToList(); if (!telegraph.AddWaypoint(ids, target)) { return; } List <monocle.ShipCargoSlot> cargo = new List <monocle.ShipCargoSlot>(); if (!telegraph.GetShipCargo(ids.First(), out cargo)) { return; } if (!telegraph.ShipDumpCargo(ids.First(), 1)) { return; } ulong address = 0; telegraph.GetShipComponentAddress(ids.First(), 253, out address); }
bool BuildingExperiment(monocle.Telegraph telegraph) { List <monocle.IslandData> islands = null; if (!telegraph.GetIslandsByName("musli", out islands)) { return(false); } if (islands == null || islands.Count != 1) { return(false); } monocle.IslandData island = islands.First(); List <monocle.BuildingData> buildings = null; Stopwatch sw = new Stopwatch(); sw.Start(); if (!telegraph.GetIslandBuildings(island.id, out buildings)) { return(false); } sw.Stop(); Console.WriteLine("Elapsed={0}", sw.Elapsed.TotalMilliseconds); if (buildings == null) { return(false); } var silo = (buildings.Where((x) => x.buidlingType == monocle.Building.FarmerResidence)).ToList().First(); var farmersHouses = (buildings.Where((x) => x.buidlingType == monocle.Building.FarmerResidence)).ToList(); var workersHouses = (buildings.Where((x) => x.buidlingType == monocle.Building.WorkerResidence)).ToList(); var artisansHouses = (buildings.Where((x) => x.buidlingType == monocle.Building.ArtisanResidence)).ToList(); for (ulong i = 0; i < 2048; ++i) { ulong address = 0; if (!telegraph.GetBuildingComponentAddress(island.id, silo.id, i, out address)) { continue; } if (address == 0) { continue; } string idString = i.ToString(); string addressString = address.ToString("X"); Console.WriteLine(string.Format("{0} {1}", idString, addressString)); } monocle.ProductionNode productionNode; telegraph.GetBuildingProduction(island.id, silo.id, out productionNode); return(true); }