anodyne/AIR/intra/hsrc/com/FRESteamWorksTest.hx

115 lines
4.0 KiB
Haxe

package;
import com.amanitadesign.steam.FRESteamWorks;
import com.amanitadesign.steam.SteamConstants;
import com.amanitadesign.steam.SteamEvent;
import flash.display.SimpleButton;
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.text.TextField;
import flash.utils.ByteArray<Dynamic>;
class FRESteamWorksTest extends Sprite
{
public var Steamworks:FRESteamWorks=new FRESteamWorks();
public var tf:TextField;
public function new()
{
tf=new TextField();
tf.width=stage.stageWidth;
tf.height=stage.stageHeight;
addChild(tf);
tf.addEventListener(MouseEvent.MOUSE_DOWN, onClick);
Steamworks.addEventListener(SteamEvent.STEAM_RESPONSE, onSteamResponse);
if(Steamworks.init()){
log("STEAMWORKS API is available\n");
//comment.. current stats and achievement ids are from steam example app which is provided with their SDK
log("isAchievement('ACH_WIN_ONE_GAME')=="+Steamworks.isAchievement("ACH_WIN_ONE_GAME"));
log("isAchievement('ACH_TRAVEL_FAR_SINGLE')=="+Steamworks.isAchievement("ACH_TRAVEL_FAR_SINGLE"));
log("setStatFloat('FeetTraveled')=="+Steamworks.setStatFloat('FeetTraveled', 21.3));
log("setStatInt('NumGames', 2)=="+Steamworks.setStatInt('NumGames', 2));
Steamworks.storeStats();
log("getStatInt('NumGames')=="+Steamworks.getStatInt('NumGames'));
log("getStatFloat('FeetTraveled')=="+Steamworks.getStatFloat('FeetTraveled'));
log("setCloudEnabledForApp(false)=="+Steamworks.setCloudEnabledForApp(false));
log("setCloudEnabledForApp(true)=="+Steamworks.setCloudEnabledForApp(true));
log("isCloudEnabledForApp()=="+Steamworks.isCloudEnabledForApp());
log("getFileCount()=="+Steamworks.getFileCount());
log("fileExists('test.txt')=="+Steamworks.fileExists('test.txt'));
//comment.. writing to app with id 480 is somehow not working, but works with our real appId
log("writeFileToCloud('test.txt','hello steam')=="+writeFileToCloud('test.txt','hello steam'));
log("readFileFromCloud('test.txt')=="+readFileFromCloud('test.txt'));
//-----------
//Steamworks.requestStats();
Steamworks.resetAllStats(true);
}else {
tf.appendText("STEAMWORKS API is NOT available\n");
}
}
private function log(value:String):Void{
tf.appendText(value+"\n");
tf.scrollV=tf.maxScrollV;
}
public function writeFileToCloud(fileName:String, data:String):Bool {
var dataOut:ByteArray<Dynamic>=new ByteArray();
dataOut.writeUTFBytes(data);
return Steamworks.fileWrite(fileName, dataOut);
}
public function readFileFromCloud(fileName:String):String {
var dataIn:ByteArray<Dynamic>=new ByteArray();
var result:String;
dataIn.position=0;
dataIn.length=Steamworks.getFileSize(fileName);
if(dataIn.length>0 && Steamworks.fileRead(fileName,dataIn)){
result=dataIn.readUTFBytes(dataIn.length);
}
return result;
}
public function onClick(e:MouseEvent):Void{
log("--click--");
if(Steamworks.isReady){
if(!Steamworks.isAchievement("ACH_WIN_ONE_GAME")){
log("setAchievement('ACH_WIN_ONE_GAME')=="+Steamworks.setAchievement("ACH_WIN_ONE_GAME"));
} else {
log("clearAchievement('ACH_WIN_ONE_GAME')=="+Steamworks.clearAchievement("ACH_WIN_ONE_GAME"));
}
if(Steamworks.fileExists('test.txt')){
log("readFileFromCloud('test.txt')=="+readFileFromCloud('test.txt'));
log("Steamworks.fileDelete('test.txt')=="+Steamworks.fileDelete('test.txt'));
} else {
log("writeFileToCloud('test.txt','click')=="+writeFileToCloud('test.txt','click'));
}
//Steamworks.storeStats();
} else {
log("not able to set achievement\n");
}
}
public function onSteamResponse(e:SteamEvent):Void{
switch(e.req_type){
case SteamConstants.RESPONSE_OnUserStatsStored:
log("RESPONSE_OnUserStatsStored:"+e.response);
break;
case SteamConstants.RESPONSE_OnUserStatsReceived:
log("RESPONSE_OnUserStatsReceived:"+e.response);
break;
case SteamConstants.RESPONSE_OnAchievementStored:
log("RESPONSE_OnAchievementStored:"+e.response);
break;
default:
log("STEAMresponse type:"+e.req_type+" response:"+e.response);
}
}
}