mirror of
https://github.com/IvarK/AntimatterDimensionsSourceCode.git
synced 2024-09-20 19:11:46 +00:00
Install Node/Steam Functionality
Messy carried over code (to be cleaned up once functionality finalized)
This commit is contained in:
parent
fd08b75bed
commit
f2604361be
BIN
javascripts/core/.DS_Store
vendored
Normal file
BIN
javascripts/core/.DS_Store
vendored
Normal file
Binary file not shown.
BIN
public/.DS_Store
vendored
Normal file
BIN
public/.DS_Store
vendored
Normal file
Binary file not shown.
130
public/Steam/steam.js
Normal file
130
public/Steam/steam.js
Normal file
|
@ -0,0 +1,130 @@
|
|||
"use strict";
|
||||
|
||||
|
||||
const SteamFunctions = {
|
||||
purchaseChecker: [],
|
||||
purchasesInitiated: true,
|
||||
macUser: false,
|
||||
SteamInitialize() {
|
||||
this.forceRefresh();
|
||||
this.BackfillAchievements();
|
||||
this.EventHandlers();
|
||||
if (window.navigator.platform === "MacIntel") {
|
||||
SteamFunctions.macUser = true;
|
||||
}
|
||||
},
|
||||
// Canvas workaround to enable overlay
|
||||
forceRefresh() {
|
||||
const canvas = document.getElementById("forceRefreshCanvas");
|
||||
const ctx = canvas.getContext("2d");
|
||||
ctx.clearRect(0, 0, canvas.width, canvas.height);
|
||||
window.requestAnimationFrame(SteamFunctions.forceRefresh);
|
||||
},
|
||||
UIZoom() {
|
||||
if (nodeOn && ui.view.newUI) {
|
||||
const setSize = 1020;
|
||||
const SizeDiff = window.outerHeight / setSize;
|
||||
require("electron").webFrame.setZoomFactor(SizeDiff);
|
||||
} else if (nodeOn && !ui.view.newUI) {
|
||||
const setSize = 825;
|
||||
const SizeDiff = window.outerHeight / setSize;
|
||||
require("electron").webFrame.setZoomFactor(SizeDiff);
|
||||
}
|
||||
},
|
||||
EventHandlers() {
|
||||
Steam.on("micro-txn-authorization-response", (data, ordered, orderstate) => {
|
||||
if (orderstate === true) {
|
||||
SteamFunctions.PurchaseValidation();
|
||||
}
|
||||
});
|
||||
},
|
||||
GiveAchievement(AchieveID) {
|
||||
if (Steam && steamOn) {
|
||||
if (Steam.activateAchievement) {
|
||||
Steam.activateAchievement(`Achievement${AchieveID}`,
|
||||
() => console.log(`Successfully Achieved Achievement${AchieveID}`),
|
||||
err => console.log(`Achievement Error: ${err}`)
|
||||
);
|
||||
}
|
||||
}
|
||||
},
|
||||
BackfillAchievements() {
|
||||
if (Steam && steamOn) {
|
||||
if (Steam.activateAchievement) {
|
||||
for (const ach in Achievements.all) {
|
||||
if (Achievements.all[ach].isUnlocked) {
|
||||
Steam.activateAchievement(`Achievement${Achievements.all[ach].id}`,
|
||||
() => console.log(`Successfully Achieved Achievement${Achievements.all[ach].id}`),
|
||||
err => console.log(`Achievement Error: ${err}`)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
PurchaseIAP(STD, kreds) {
|
||||
if (!steamOn) return;
|
||||
const TheItem = { ItemId: `${STD}STD`, Quantity: 1, Annotation: "Purchased via in-game store" };
|
||||
PlayFab.settings.titleId = "59813";
|
||||
const loginRequest = {
|
||||
Items: [TheItem]
|
||||
};
|
||||
PlayFab.ClientApi.StartPurchase(loginRequest, (result, error) => {
|
||||
console.log(result, error);
|
||||
if (result !== null) {
|
||||
const TheOrder = result.data.OrderId;
|
||||
const PurchaseRequest = {
|
||||
OrderId: TheOrder,
|
||||
Currency: "RM",
|
||||
ProviderName: "Steam"
|
||||
};
|
||||
PlayFab.ClientApi.PayForPurchase(PurchaseRequest, (purchaseResult, purchaseError) => {
|
||||
if (purchaseResult !== null) {
|
||||
const txnID = purchaseResult.data.ProviderData;
|
||||
SteamFunctions.purchaseChecker.push(purchaseResult.data.OrderId);
|
||||
if (window.navigator.platform === "MacIntel") {
|
||||
shell.openExternal("https://store.steampowered.com/checkout/approvetxn/" + txnID + "/?returnurl=steam");
|
||||
}
|
||||
} else if (purchaseError !== null) {
|
||||
console.log(purchaseError);
|
||||
}
|
||||
});
|
||||
} else if (error !== null) {
|
||||
console.log(error);
|
||||
}
|
||||
});
|
||||
},
|
||||
ConfirmSteamPurchase(OrderIdentifier) {
|
||||
console.log(OrderIdentifier);
|
||||
PlayFab.ClientApi.ConfirmPurchase({ OrderId: OrderIdentifier }, (result, error) => {
|
||||
if (result !== null) {
|
||||
console.log(result);
|
||||
const PurchaseName = result.data.Items[0].ItemId;
|
||||
const PurchaseInstance = result.data.Items[0].ItemInstanceId;
|
||||
PlayFab.ClientApi.ConsumeItem({ ItemInstanceId: PurchaseInstance, ConsumeCount: 1 },
|
||||
(consumeResult, consumeError) => {
|
||||
if (consumeResult !== null) {
|
||||
console.log(consumeResult);
|
||||
const stdsBought = Number(PurchaseName.replace("STD", ""));
|
||||
player.IAP.totalSTD += stdsBought;
|
||||
GameUI.notify.info(`${stdsBought} STDs Obtained!`);
|
||||
SteamFunctions.purchaseChecker = SteamFunctions.purchaseChecker.filter(item => item !== OrderIdentifier);
|
||||
} else if (consumeError !== null) {
|
||||
console.log(consumeError);
|
||||
}
|
||||
});
|
||||
} else if (error !== null) {
|
||||
console.log(error);
|
||||
}
|
||||
});
|
||||
},
|
||||
PurchaseValidation() {
|
||||
if (SteamFunctions.purchaseChecker.length > 0) {
|
||||
SteamFunctions.purchaseChecker.forEach(
|
||||
anOrder => SteamFunctions.ConfirmSteamPurchase(anOrder)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
};
|
|
@ -47,6 +47,33 @@
|
|||
<div id="performance-stats" class="c-performance-stats" style="display: none;"></div>
|
||||
|
||||
<script type="text/javascript" src="PlayFab/PlayFabClientApi.js"></script>
|
||||
<script type="text/javascript" src="Steam/steam.js"></script>
|
||||
<canvas id="forceRefreshCanvas" style="position: fixed; right: 0px; bottom: 0px; width: 100vw; height: 100%; opacity: 0.01; pointer-events: none; z-index: -20;"></canvas>
|
||||
<script>
|
||||
/*--Post GameLoad Steam Initialization--*/
|
||||
var nodeOn = window.require!==undefined ? true : false
|
||||
if(nodeOn){
|
||||
var JQ = require('jquery');
|
||||
var Steam = require('greenworks')
|
||||
if (Steam) {
|
||||
if (Steam.initAPI()) {
|
||||
console.log("Steam is Functional!")
|
||||
steamOn = true
|
||||
} else {
|
||||
console.log("Steam API not activated. Are you sure you opened the game in Steam?")
|
||||
}
|
||||
}
|
||||
JQ(window).resize(function(){
|
||||
SteamFunctions.UIZoom()
|
||||
});
|
||||
if(Steam){
|
||||
if(Steam.initAPI()){
|
||||
SteamFunctions.SteamInitialize()
|
||||
}else{
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
<script>
|
||||
// We use an IE only document variable to check here to force it to show the browser warning.
|
||||
|
|
Loading…
Reference in New Issue
Block a user