diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a3a079c --- /dev/null +++ b/.gitignore @@ -0,0 +1,198 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +build/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]ib/Dependency Builds/ + +# Visual Studo 2015 cache/options directory +.vs/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUNIT +*.VisualState.xml +TestResult.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +*_i.c +*_p.c +*_i.h +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf +*.cachefile + +# Visual Studio profiler +*.psess +*.vsp +*.vspx + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# JustCode is a .NET coding addin-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +*.ncrunch* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# TODO: Comment the next line if you want to checkin your web deploy settings +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# NuGet Packages +*.nupkg +# The packages folder can be ignored because of Package Restore +**/packages/* +# except build/, which is used as an MSBuild target. +!**/packages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/packages/repositories.config + +# Windows Azure Build Output +csx/ +*.build.csdef + +# Windows Store app package directory +AppPackages/ + +# Others +*.[Cc]ache +ClientBin/ +[Ss]tyle[Cc]op.* +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.pfx +*.publishsettings +node_modules/ +bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +*.mdf +*.ldf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings + +# Microsoft Fakes +FakesAssemblies/ + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..304789d --- /dev/null +++ b/.travis.yml @@ -0,0 +1,16 @@ +language: csharp +solution: ./PokemonGoDesktop.Unity.sln + +install: + - nuget install NUnit.Runners -Version 3.0.1 -OutputDirectory tests/testrunner + - nuget restore PokemonGoDesktop.Unity.sln + +before_script: + - chmod +x ./tests/RunTests.sh + - chmod +x ./Build.sh + +script: + - ./Build.sh + - cd "$TRAVIS_BUILD_DIR/tests" + - ./RunTests.sh + - cd "$TRAVIS_BUILD_DIR" \ No newline at end of file diff --git a/Build.sh b/Build.sh new file mode 100644 index 0000000..2335952 --- /dev/null +++ b/Build.sh @@ -0,0 +1 @@ +xbuild ./PokemonGoDesktop.Unity.sln /p:DebugSymbols=False \ No newline at end of file diff --git a/PokemonGoDesktop.Unity.sln b/PokemonGoDesktop.Unity.sln new file mode 100644 index 0000000..6be4ebd --- /dev/null +++ b/PokemonGoDesktop.Unity.sln @@ -0,0 +1,10 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25029.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Global + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/README.md b/README.md index 8c22f19..369f32d 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,44 @@ -# PokemonGoDesktop.Unity -Implementation of the PokemonGoDesktop.API for Unity3D. +# PokemonGODesktop.API + +PokemonGODesktop.API is a collection of **net35** libraries and APIs that can be used to implement a fully functional desktop version of Pokemon Go. It's built on top of reverse engineered work from the community, based on the protobuf defintions ranging from python projects to .Net projects. PokemonGODesktop.API channels the entire community's work into a push for a standalone version of the game. + +## Project Overview + +[Proto Definitions](https://github.com/HelloKitty/PokemonGoDesktop.API/tree/master/src/PokemonGoDesktop.API.Proto): Contains the .proto definitions for serializable types and request/response message types. Additionally it contains the code generated Google.Protobuf classes that are actually compilable. + +[Proto Compiler](https://github.com/HelloKitty/PokemonGoDesktop.API/tree/master/src/PokemonGoDesktop.API.Proto.Compiler): Contains the source for the simple directory recursive argument builder that are needed to compile the .proto definitions with Protoc. Also invokes Protoc with those arguments generating the code in the **Gen** directory of the Proto project. Additionally, this compiler generates marker interfaces on some proto classes to help enforce some compiler protection for things. + +[Proto Services](https://github.com/HelloKitty/PokemonGoDesktop.API/tree/master/src/PokemonGoDesktop.API.Proto.Services): Contains extensions for various important proto generated classes for Pokemon Go. Also implementing some services for creating or reading from commonly used proto classes in Pokemon Go. + +[Client Services](https://github.com/HelloKitty/PokemonGoDesktop.API/tree/master/src/PokemonGoDesktop.API.Client.Services): Contains interfaces, contracts and types important to building a Pokemon Go client. Including only the bare minimum. Contains nothing related to game logic. + +## Attributions + +Proto Definitions: https://github.com/AeonLucid/POGOProtos + +Auth and Bot Logic: https://github.com/FeroxRev/Pokemon-Go-Rocket-API + +## Setup + +To use this project you'll first need a couple of things: + - Visual Studio 2015 + +## Builds + +Available on a Nuget Feed: https://www.myget.org/F/hellokitty/api/v2 [![hellokitty MyGet Build Status](https://www.myget.org/BuildSource/Badge/hellokitty?identifier=a8048ae0-adcd-4997-8862-c3f5fc6adf34)](https://www.myget.org/feed/Packages/hellokitty) + +##Tests + +#### Linux/Mono - Unit Tests +||Debug x86|Debug x64|Release x86|Release x64| +|:--:|:--:|:--:|:--:|:--:|:--:| +|**master**| N/A | N/A | N/A | [![Build Status](https://travis-ci.org/HelloKitty/PokemonGoDesktop.API.svg?branch=master)](https://travis-ci.org/HelloKitty/PokemonGoDesktop.API) | +|**dev**| N/A | N/A | N/A | [![Build Status](https://travis-ci.org/HelloKitty/PokemonGoDesktop.API.svg?branch=dev)](https://travis-ci.org/HelloKitty/PokemonGoDesktop.API)| + +#### Windows - Unit Tests + +(Done locally) + +##Licensing + +This project is licensed under the GPL.