/*
 * +================================================================================+
 *      __  ___  ______________  __  __  ______________   ____
 *     / / / / |/ /  _/_  __/\ \/ / / / / /_  __/  _/ /  / __/
 *    / /_/ /    // /  / /    \  / / /_/ / / / _/ // /___\ \
 *    \____/_/|_/___/ /_/     /_/  \____/ /_/ /___/____/___/
 *
 * +================================================================================+
 *
 *    "THE BEER-WARE LICENSE"
 *    -----------------------
 *
 *    As long as you retain this notice you can do whatever you want with this
 *    stuff. However it is expressly forbidden to sell or commercially distribute
 *    Unity Utils or parts of it apart from your games.
 *    If you meet any of the authors some day, and you think this stuff is
 *    worth it, you can buy them a beer in return.
 *
 *    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 *    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 *    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 *    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 *    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 *    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 *    THE SOFTWARE.
 *
 * +================================================================================+
 *
 *    Authors:
 *    Michael Müller (mik@mikmueller.ch)
 *
 */

/// <summary>
/// ITargetPlatform. Interface for all the TargetPlatforms. Defines the needed variabels and methods.
/// </summary>
public interface ITargetPlatform
{

	string PlatformName { get; } 				// automatically implemented
	float AxisHorizontal { get; } 				// automatically implemented
	float AxisVertical { get; } 				// automatically implemented

	float SecondaryAxisHorizontal { get; } 		// automatically implemented
	float SecondaryAxisVertical { get; } 		// automatically implemented
	bool CameraReset { get; }

	bool Jump { get; } 							// automatically implemented
	bool JumpDown { get; } 						// automatically implemented
	UnityEngine.Texture2D JumpImage { get; }

	bool Attack { get; } 						// automatically implemented
	bool AttackDown { get; } 					// automatically implemented
	UnityEngine.Texture2D AttackImage { get; }


	bool Interaction { get; } 					// automatically implemented
	bool InteractionDown { get; } 				// automatically implemented
	UnityEngine.Texture2D InteractionImage { get; }


	bool Fart { get; } 							// automatically implemented
	bool FartDown { get; } 						// automatically implemented
	UnityEngine.Texture2D FartImage { get; }


	bool NextPlayer { get; } 					// automatically implemented
	UnityEngine.Texture2D NextPlayerImage { get; }

	bool PreviousPlayer { get; } 				// automatically implemented
	UnityEngine.Texture2D PreviousPlayerImage { get; }


	bool Start { get; } 						// automatically implemented
	bool Back { get; } 							// automatically implemented



	void onStart();
	void onUpdate();
	void onDeviceChange();
	bool isIdle();
	bool hasAxisInput(float deadZone);

	void updateCameraSensitivity();
	void updateAxis();
	
}