SetText() публичный Метод

public SetText ( JSON json ) : void
json JSON
Результат void
Пример #1
0
	public static void	JoinWorld( int worldId, string playerClass ) {
		if( worldId < 0 ) {
			throw new ArgumentException( string.Format("WorldId( {0} ) is invalid", worldId) );
		}
		
		HTTP.JSON playerT = new HTTP.JSON( "{ \"player\": {\"type\": \"" + playerClass + "\"}}" );
		//WWW www = WWWX.Post( string.Format("{0}/worlds/{1}/players.json", urlServer, worldId), playerT, authenticatedGodModeParameters );
		
		HTTP.Request request = new HTTP.Request( "Post", string.Format("{0}/worlds/{1}/players.json", urlServer, worldId) );
		request.SetText( playerT );
		request.AddParameters( authenticatedGodModeParameters );
		request.Send();
		while( !request.isDone ) {
		}
		Debug.Log(request.response.Text);
		
		request = new HTTP.Request( "Get", urlGetUserPlayers() );
		request.AddParameters( authenticatedGodModeParameters );
		request.Send();
		while( !request.isDone ) {
		}
	}
Пример #2
0
	/// <summary>
	/// Execute the harvest
	/// </summary>
	public IEnumerator DoIt()
	{
		// submit harvest to API point
		progress = 0f; doItError = "";
		HTTP.Request request = GetDoItWWW();
		
		
		//Debug.Log(request.bytes);
		
		request.Send();
		while (!request.isDone) {
			//progress = Mathf.Min(www.uploadProgress+www.progress, 0.99f);
			yield return 0;
		}

		// deserialize the product values
		Harvest.Products products;
		
		Debug.Log( request.response.status );
		
		try {
			products = JSONDecoder.Decode<Harvest.Products>( request.response.Text );
		}
		catch (JsonException e) {
			Debug.LogError(e.ToString()+"\n"+request.response.Text);
			//doItError = www.error;
			progress = 1f;
			yield break;
		}
		// TODO: since server api does not presently modify cover type, modify it with god mode here
		if (this.cutType == CutType.Clearcut) {
			PlayerAction.ResourceTileModification modification = new PlayerAction.ResourceTileModification();
			modification.resource_tile = new ClearcutModifiedFields();
			string json = JsonMapper.ToJson(modification);
			foreach (int id in this.ids) {
				request = new HTTP.Request( "Get", WebRequests.GetURLToResourceTile(id) );
				request.AddParameters( WebRequests.authenticatedParameters );
				request.Send();
				
				while( !request.isDone ) {
					yield return 0;
				}
				
				//if (!string.IsNullOrEmpty(www.error)) {
				//	progress = 1f; doItError = www.error;
				//	yield break;
				//}
				ResourceTile tile;
				try {
					tile = JSONDecoder.Decode<IndividualResourceTile>(request.response.Text).resource_tile;
					switch (tile.baseCoverType) {
//					case BaseCoverType.Barren:
//					case BaseCoverType.CultivatedCrops:
					case BaseCoverType.Developed:
					case BaseCoverType.Excluded:
//					case BaseCoverType.Forest:
//					case BaseCoverType.Herbaceous:
					case BaseCoverType.Unknown:
					case BaseCoverType.Water:
//					case BaseCoverType.Wetland:
						continue;
					}
				}
				catch (JsonException e) {
					Debug.LogError(e.ToString()+"\n"+request.response.Text);
				}
				request = new HTTP.Request( "Put", WebRequests.GetURLToResourceTile(id) );
				request.SetText( json );
				request.AddParameters( WebRequests.authenticatedGodModeParameters );
				request.Send();
				
				while( !request.isDone ) {
					yield return 0;
				}
				
				//if (!string.IsNullOrEmpty(www.error)) {
				//	progress = 1f; doItError = www.error;
				//	yield break;letmein
				//}
			}
		}
		// add products to harvest history
		if (m_history == null) {
			m_history = new List<Products>();
		}
		m_history.Add(products);
		// set progress to done
		progress = 1f; doItError = "";
		// broadcast message that harvest was executed
		MessengerAM.Send(new MessageHarvestExecuted(this, products));
		
		// TODO: Collapse these two messages into one
		Messenger<Products>.Broadcast("HarvestProducts",products);
	}
Пример #3
0
	/// <summary>
	/// Forces a put of resource tile modifications using god mode.
	/// </summary>
	/// <remarks>
	/// This is a temporary solution for implementing actions with no server API point, and can eventually be removed.
	/// </remarks>
	/// <param name='selection'>
	/// The selection.
	/// </param>
	protected virtual IEnumerator Put(ResourceTileSelection selection)
	{
		HTTP.Request request;
		m_actionProgress = 0f;
		string json = GetActionJson();
		Debug.Log(json);
		List<ResourceTile> tiles = new List<ResourceTile>();
		float div = 1f/selection.Count();
		for (int i=0; i<selection.Count(); ++i) {
			int id = selection[i];
			request = new HTTP.Request( "Put", WebRequests.GetURLToResourceTile(id) );
			request.SetText( json );
			request.AddParameters( WebRequests.authenticatedGodModeParameters );
			request.Send();
			
			while (!request.isDone) {
				//m_actionProgress = (i+www.uploadProgress)*div;
				yield return 0;
			}
			if( request.ProducedError ) {
				m_actionProgress = 1f;
				yield break;
			}
			try {
				tiles.Add(JSONDecoder.Decode<IndividualResourceTile>(request.response.Text).resource_tile);
			}
			catch (JsonException) {
				Debug.LogError(request.response.Text);
			}
		}
//		ConcludeActionOnResourceTiles(tiles.ToArray());
		//Update the world
		IEnumerator e = WebRequests.RefreshWorldData(new WebCoroutine());
		yield return e.Current;
		while(e.MoveNext()) yield return e.Current;
	}
Пример #4
0
	/// <summary>
	/// Gets a WWW object do perform the harvest, configured for the associated api point on the server.
	/// </summary>
	/// <returns>
	/// The do it WWW.
	/// </returns>
	public HTTP.Request GetDoItWWW()
	{
		string apiPoint = "";
		Dictionary<string, string> parameters = WebRequests.authenticatedParameters;
		switch (this.cutType) {
		case CutType.Clearcut:
			apiPoint = "clearcut";
			break;
		case CutType.DiameterLimitCut:
			apiPoint = "diameter_limit_cut";
			parameters.Add(this.diameterLimitCutDirection==DiameterLimitCutDirection.Greater?"above":"below", this.diameterLimit.ToString());
			break;
		case CutType.QRatioCut:
			apiPoint = "partial_selection_cut";
			parameters.Add("qratio", this.qRatio.ToString());
			parameters.Add("target_basal_area", this.basalArea.ToString());
			break;
		}
		string url = string.Format(
			"{0}/worlds/{1}/resource_tiles/{2}.json",
			WebRequests.urlServer, UserData.worldNumber, apiPoint
		);
		HTTP.Request request = new HTTP.Request( "Post", url );
		request.AddParameters( parameters );
		
		HTTP.JSON json = new HTTP.JSON();
		json.Data = JsonMapper.ToJson( new ResourceTileSelection(this.ids) );
		request.SetText(json);   ///.ToJson() );
		//Debug.Log(new ResourceTileSelection(this.ids).ToJson());
		
		return request;
	}