1
0
Fork 0
forked from Simnation/Main
This commit is contained in:
Nordi98 2025-08-04 20:19:07 +02:00
parent 9f8d0cf336
commit baf4c9b0a2
571 changed files with 2982 additions and 2480 deletions

View file

@ -0,0 +1,9 @@
/*
* jQuery throttle / debounce - v1.1 - 3/7/2010
* http://benalman.com/projects/jquery-throttle-debounce-plugin/
*
* Copyright (c) 2010 "Cowboy" Ben Alman
* Dual licensed under the MIT and GPL licenses.
* http://benalman.com/about/license/
*/
(function(b,c){var $=b.jQuery||b.Cowboy||(b.Cowboy={}),a;$.throttle=a=function(e,f,j,i){var h,d=0;if(typeof f!=="boolean"){i=j;j=f;f=c}function g(){var o=this,m=+new Date()-d,n=arguments;function l(){d=+new Date();j.apply(o,n)}function k(){h=c}if(i&&!h){l()}h&&clearTimeout(h);if(i===c&&m>e){l()}else{if(f!==true){h=setTimeout(i?k:l,i===c?e-m:e)}}}if($.guid){g.guid=j.guid=j.guid||$.guid++}return g};$.debounce=function(d,e,f){return f===c?a(d,e,false):a(d,f,e!==false)}})(this);

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 757 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View file

@ -0,0 +1,250 @@
(function($) {
$.fn.connections = function(options) {
if (options === "update") {
return processConnections(update, this);
} else if (options === "remove") {
return processConnections(destroy, this);
} else {
options = $.extend(
true,
{
borderClasses: {},
class: "connection",
css: {},
from: this,
tag: "connection",
to: this,
within: ":root"
},
options
);
connect(options);
return this;
}
};
$.event.special.connections = {
teardown: function(namespaces) {
processConnections(destroy, $(this));
}
};
var connect = function(options) {
var borderClasses = options.borderClasses;
var tag = options.tag;
var end1 = $(options.from);
var end2 = $(options.to);
var within = $(options.within);
delete options.borderClasses;
delete options.tag;
delete options.from;
delete options.to;
delete options.within;
within.each(function() {
var container = this;
var done = new Array();
end1.each(function() {
var node = this;
done.push(this);
end2.not(done).each(function() {
createConnection(
container,
[node, this],
tag,
borderClasses,
options
);
});
});
});
};
var createConnection = function(
container,
nodes,
tag,
borderClasses,
options
) {
var css = $.extend({ position: "absolute" }, options.css);
var connection = $("<" + tag + "/>", options).css(css);
connection.appendTo(container);
var border_w = (connection.outerWidth() - connection.innerWidth()) / 2;
var border_h = (connection.outerHeight() - connection.innerHeight()) / 2;
if (border_w <= 0 && border_h <= 0) {
border_w = border_h = 1;
}
var data = {
borderClasses: borderClasses,
border_h: border_h,
border_w: border_w,
node_from: $(nodes[0]),
node_to: $(nodes[1]),
nodes_dom: nodes,
css: css
};
if ("none" === connection.css("border-top-style")) {
data.css.borderStyle = "solid";
}
$.data(connection.get(0), "connection", data);
$.data(connection.get(0), "connections", [connection.get(0)]);
for (var i = 0; i < 2; i++) {
var connections = connection.add($.data(nodes[i], "connections")).get();
$.data(nodes[i], "connections", connections);
if (connections.length == 1) {
$(nodes[i]).on("connections.connections", false);
}
}
update(connection.get(0));
};
var destroy = function(connection) {
var nodes = $.data(connection, "connection").nodes_dom;
for (var i = 0; i < 2; i++) {
var connections = $($.data(nodes[i], "connections"))
.not(connection)
.get();
$.data(nodes[i], "connections", connections);
}
$(connection).remove();
};
var getState = function(data) {
data.rect_from = data.nodes_dom[0].getBoundingClientRect();
data.rect_to = data.nodes_dom[1].getBoundingClientRect();
var cached = data.cache;
data.cache = [
data.rect_from.top,
data.rect_from.right,
data.rect_from.bottom,
data.rect_from.left,
data.rect_to.top,
data.rect_to.right,
data.rect_to.bottom,
data.rect_to.left
];
data.hidden =
0 === (data.cache[0] | data.cache[1] | data.cache[2] | data.cache[3]) ||
0 === (data.cache[4] | data.cache[5] | data.cache[6] | data.cache[7]);
data.unmodified = true;
if (cached === undefined) {
return (data.unmodified = false);
}
for (var i = 0; i < 8; i++) {
if (cached[i] !== data.cache[i]) {
return (data.unmodified = false);
}
}
};
var update = function(connection) {
var data = $.data(connection, "connection");
getState(data);
if (data.unmodified) {
return;
}
var border_h = data.border_h;
var border_w = data.border_w;
var from = data.rect_from;
var to = data.rect_to;
var b = (from.bottom + from.top) / 2;
var r = (to.left + to.right) / 2;
var t = (to.bottom + to.top) / 2;
var l = (from.left + from.right) / 2;
var h = ["right", "left"];
if (l > r) {
h = ["left", "right"];
var x = Math.max(r - border_w / 2, Math.min(from.right, to.right));
r = l + border_w / 2;
l = x;
} else {
l -= border_w / 2;
r = Math.min(r + border_w / 2, Math.max(from.left, to.left));
}
var v = ["bottom", "top"];
if (t > b) {
v = ["top", "bottom"];
var x = Math.max(b - border_h / 2, Math.min(from.bottom, to.bottom));
b = t + border_h / 2;
t = x;
} else {
b = Math.min(b, Math.max(from.top, to.top));
t -= border_h / 2;
}
var width = r - l;
var height = b - t;
if (width < border_w) {
t = Math.max(t, Math.min(from.bottom, to.bottom));
b = Math.min(b, Math.max(from.top, to.top));
l = Math.max(from.left, to.left);
r = Math.min(from.right, to.right);
r = l = (l + r - border_w) / 2;
}
if (height < border_h) {
l = Math.max(l, Math.min(from.right, to.right));
r = Math.min(r, Math.max(from.left, to.left));
t = Math.max(from.top, to.top);
b = Math.min(from.bottom, to.bottom);
b = t = (t + b - border_h) / 2;
}
width = r - l;
height = b - t;
width <= 0 && (border_h = 0);
height <= 0 && (border_w = 0);
var style =
"border-" +
v[0] +
"-" +
h[0] +
"-radius: 0;" +
"border-" +
v[0] +
"-" +
h[1] +
"-radius: 0;" +
"border-" +
v[1] +
"-" +
h[0] +
"-radius: 0;";
(border_h <= 0 || border_w <= 0) &&
(style += "border-" + v[1] + "-" + h[1] + "-radius: 0;");
if (data.hidden) {
style += "display: none;";
} else {
data.css["border-" + v[0] + "-width"] = 0;
data.css["border-" + h[0] + "-width"] = 0;
data.css["border-" + v[1] + "-width"] = border_h;
data.css["border-" + h[1] + "-width"] = border_w;
var current_rect = connection.getBoundingClientRect();
data.css.left = connection.offsetLeft + l - current_rect.left;
data.css.top = connection.offsetTop + t - current_rect.top;
data.css.width = width - border_w;
data.css.height = height - border_h;
}
var bc = data.borderClasses;
$(connection)
.removeClass(bc[v[0]])
.removeClass(bc[h[0]])
.addClass(bc[v[1]])
.addClass(bc[h[1]])
.attr("style", style)
.css(data.css);
};
var processConnections = function(method, elements) {
return elements.each(function() {
var connections = $.data(this, "connections");
if (connections instanceof Array) {
for (var i = 0, len = connections.length; i < len; i++) {
method(connections[i]);
}
}
});
};
})(jQuery);

View file

@ -0,0 +1,560 @@
var volumeslider = document.getElementById("volumesliderdata");
var themeparkresourcename = "rtx_themepark_dlc";
var soundhandlerhaunted = new Howl({
src: "sounds/sound1.mp3",
volume: 0.2,
});
var soundhandler2haunted = new Howl({
src: "sounds/sound1.mp3",
volume: 0.2,
});
function closeMain() {
$("body").css("display", "none");
}
function openMain() {
$("body").css("display", "block");
}
const colorToHex = (color) => {
const hexadecimal = color.toString(16);
return hexadecimal.length == 1 ? "0" + hexadecimal : hexadecimal;
}
const RGBtoHex = (red, green, blue) => {
return "#" + colorToHex(red) + colorToHex(green) + colorToHex(blue);
}
$(".closebumpercarsbuy").click(function(){
$.post('https://'+themeparkresourcename+'/closebumper', JSON.stringify({}));
});
$(".closeparkbuy").click(function(){
$.post('https://'+themeparkresourcename+'/closemanagment', JSON.stringify({}));
});
$(".closeattractionbuyticket").click(function(){
$.post('https://'+themeparkresourcename+'/closethemeparkticket', JSON.stringify({}));
});
$(".closeparkattractionmenu").click(function(){
$.post('https://'+themeparkresourcename+'/closecontrolmenu', JSON.stringify({}));
});
$(".closemusicurl").click(function(){
$("#attractionurlshow").hide();
});
window.addEventListener('message', function (event) {
var item = event.data;
if (item.message == "infonotifyshow") {
document.getElementsByClassName("infonotifytext")[0].innerHTML = item.infonotifytext;
openMain();
$("#infonotifyshow").show();
}
if (item.message == "bumpercarsbuyshow") {
openMain();
var inputhandler = document.getElementById("bumpercarstimesliderdata");
inputhandler.setAttribute("max", item.bumpermaxminutesdata);
inputhandler.setAttribute("min", item.bumperminminutesdata);
$("#gymentrypricesliderdata").val(item.bumperminminutesdata);
document.getElementById("bumpercarstimeminutedata").innerHTML = item.bumperminminutesdata;
document.getElementById("bumpercarspricedata").innerHTML = item.bumperpricedata;
$("#bumpercarmainshow").hide();
$("#ferrisshow").hide();
$("#shooterendshow").hide();
$("#shootershow").hide();
$("#parkbuyshow").hide();
$("#parkmanagmentmainshow").hide();
$("#parkmanagmentshow").hide();
$("#attractionbuyticketshow").hide();
$("#iteminhandshow").hide();
$("#attractionshow").hide();
$("#parkattractionshow").hide();
$("#attractionurlshow").hide();
$("#bumpercarsbuyshow").show();
}
if (item.message == "bumperbuyupdateprice") {
document.getElementById("bumpercarspricedata").innerHTML = item.bumperpricedata;
}
if (item.message == "bumpercarsshow") {
openMain();
if (item.bumperdriver == true) {
$("#bumpercartimetextshow").show();
} else {
$("#bumpercartimetextshow").hide();
}
document.getElementById("bumpercarleavetextkey").innerHTML = item.bumperleavekeydata;
$("#bumpercarsbuyshow").hide();
$("#ferrisshow").hide();
$("#shooterendshow").hide();
$("#shootershow").hide();
$("#parkbuyshow").hide();
$("#parkmanagmentmainshow").hide();
$("#parkmanagmentshow").hide();
$("#attractionbuyticketshow").hide();
$("#iteminhandshow").hide();
$("#attractionshow").hide();
$("#parkattractionshow").hide();
$("#attractionurlshow").hide();
$("#bumpercarmainshow").show();
}
if (item.message == "bumperupdatetime") {
document.getElementById("bumpercartimetextdata").innerHTML = item.bumpertimedata;
}
if (item.message == "ferrisshow") {
openMain();
$("#bumpercarsbuyshow").hide();
$("#bumpercarmainshow").hide();
$("#parkbuyshow").hide();
$("#parkmanagmentmainshow").hide();
$("#parkmanagmentshow").hide();
$("#attractionbuyticketshow").hide();
$("#iteminhandshow").hide();
$("#attractionshow").hide();
$("#parkattractionshow").hide();
$("#attractionurlshow").hide();
$("#ferrisshow").show();
}
if (item.message == "shootershow") {
openMain();
$("#bumpercarsbuyshow").hide();
$("#bumpercarmainshow").hide();
$("#ferrisshow").hide();
$("#shooterendshow").hide();
$("#parkbuyshow").hide();
$("#parkmanagmentmainshow").hide();
$("#parkmanagmentshow").hide();
$("#attractionbuyticketshow").hide();
$("#iteminhandshow").hide();
$("#attractionshow").hide();
$("#parkattractionshow").hide();
$("#attractionurlshow").hide();
$("#shootershow").show();
document.getElementById("shootershottextdata").innerHTML = item.shootsdata;
document.getElementById("shootermissestextdata").innerHTML = item.missdata;
document.getElementById("shootertimetextdata").innerHTML = item.timedata;
}
if (item.message == "shooterhit") {
document.getElementById("shootertexthitdata").innerHTML = item.hittext;
$("#shootertexthitshow").fadeIn("fast");
setTimeout(function() {
$("#shootertexthitshow").fadeOut("fast");
}, 1000);
}
if (item.message == "shooterendshow") {
openMain();
$("#bumpercarsbuyshow").hide();
$("#bumpercarmainshow").hide();
$("#ferrisshow").hide();
$("#shootershow").hide();
$("#parkbuyshow").hide();
$("#parkmanagmentmainshow").hide();
$("#parkmanagmentshow").hide();
$("#attractionbuyticketshow").hide();
$("#iteminhandshow").hide();
$("#attractionshow").hide();
$("#parkattractionshow").hide();
$("#attractionurlshow").hide();
$("#shooterendshow").show();
document.getElementById("shooterendshootstextdata").innerHTML = item.shootsdata;
document.getElementById("shooterendmissestextdata").innerHTML = item.missdata;
$("#shooterendshow").fadeIn("slow");
setTimeout(function() {
$("#shooterendshow").fadeOut("slow");
}, 2500);
}
if (item.message == "parkbuyshow") {
openMain();
document.getElementById("parkbuytextpricedata").innerHTML = item.parkprice;
$("#bumpercarsbuyshow").hide();
$("#bumpercarmainshow").hide();
$("#ferrisshow").hide();
$("#shootershow").hide();
$("#shooterendshow").hide();
$("#parkmanagmentmainshow").hide();
$("#parkmanagmentshow").hide();
$("#attractionbuyticketshow").hide();
$("#iteminhandshow").hide();
$("#attractionshow").hide();
$("#parkattractionshow").hide();
$("#attractionurlshow").hide();
$("#parkbuyshow").show();
}
if (item.message == "parkmanagmentmainshow") {
openMain();
document.getElementById("parkmanagmentwithdrawmoneytextdata").innerHTML = item.parkbalance;
if (item.selldisable == true) {
$("#showsellpark").hide();
} else {
$("#showownerparkmain").show();
$("#showsellpark").show();
}
if (item.transferdisable == true) {
$("#showtransferpark").hide();
} else {
$("#showownerparkmain").show();
$("#showtransferpark").show();
}
$("#bumpercarsbuyshow").hide();
$("#bumpercarmainshow").hide();
$("#ferrisshow").hide();
$("#shootershow").hide();
$("#shooterendshow").hide();
$("#parkbuyshow").hide();
$("#parkmanagmentshow").hide();
$("#attractionbuyticketshow").hide();
$("#iteminhandshow").hide();
$("#attractionshow").hide();
$("#parkattractionshow").hide();
$("#attractionurlshow").hide();
$("#parkmanagmentmainshow").fadeIn("slow");
}
if (item.message == "parkmanagmentshow") {
openMain();
$("#bumpercarsbuyshow").hide();
$("#bumpercarmainshow").hide();
$("#ferrisshow").hide();
$("#shootershow").hide();
$("#shooterendshow").hide();
$("#parkbuyshow").hide();
$("#parkmanagmentmainshow").hide();
$("#attractionbuyticketshow").hide();
$("#iteminhandshow").hide();
$("#attractionshow").hide();
$("#parkattractionshow").hide();
$("#attractionurlshow").hide();
$("#parkmanagmentshow").fadeIn("slow");
}
if (item.message == "updateparkbalance") {
document.getElementById("parkmanagmentwithdrawmoneytextdata").innerHTML = item.parkbalance;
}
if (item.message == "attractionbuyticketshow") {
openMain();
document.getElementById("attractionpricedata").innerHTML = item.ticketprice;
$("#bumpercarsbuyshow").hide();
$("#bumpercarmainshow").hide();
$("#ferrisshow").hide();
$("#shootershow").hide();
$("#shooterendshow").hide();
$("#parkbuyshow").hide();
$("#parkmanagmentshow").hide();
$("#parkmanagmentmainshow").hide();
$("#attractionshow").hide();
$("#parkattractionshow").hide();
$("#attractionurlshow").hide();
$("#parkattractionshow").hide();
$("#attractionurlshow").hide();
$("#attractionbuyticketshow").show();
}
if (item.message == "iteminhandshow") {
openMain();
$("#bumpercarsbuyshow").hide();
$("#bumpercarmainshow").hide();
$("#ferrisshow").hide();
$("#shootershow").hide();
$("#shooterendshow").hide();
$("#parkbuyshow").hide();
$("#parkmanagmentshow").hide();
$("#parkmanagmentmainshow").hide();
$("#attractionbuyticketshow").hide();
$("#attractionshow").hide();
$("#iteminhandshow").show();
}
if (item.message == "attractionhow") {
openMain();
$("#bumpercarsbuyshow").hide();
$("#bumpercarmainshow").hide();
$("#ferrisshow").hide();
$("#shootershow").hide();
$("#shooterendshow").hide();
$("#parkbuyshow").hide();
$("#parkmanagmentshow").hide();
$("#parkmanagmentmainshow").hide();
$("#attractionbuyticketshow").hide();
$("#iteminhandshow").hide();
$("#parkattractionshow").hide();
$("#attractionurlshow").hide();
if (item.attractionanimchange == true) {
$("#attractionanimtextshow").show();
} else {
$("#attractionanimtextshow").hide();
}
if (item.attractionbumperchange == true) {
$("#attractioncamtextshow").show();
} else {
$("#attractioncamtextshow").hide();
}
if (item.rollercoastercamchange == true) {
$("#attractioncamtextshow2").show();
} else {
$("#attractioncamtextshow2").hide();
}
$("#attractionshow").show();
}
if (item.message == "parkattractionshow") {
openMain();
volumeslider.value = item.musicvolumedata;
document.getElementsByClassName("parkattractioncontroltext")[0].innerHTML = item.attractionname;
if(item.musicdisabled == true) {
$("#parkshowmusic").hide();
} else {
$("#parkshowmusic").show();
}
if(item.smokedisabled == true) {
$("#parkshowsmoke").hide();
} else {
$("#parkshowsmoke").show();
var colorreformated = RGBtoHex(item.smokecolor.r, item.smokecolor.g, item.smokecolor.b);
$("#color-picker").spectrum("set", colorreformated);
}
if(item.turndisabled == true) {
$("#parkshowturn").hide();
} else {
$("#parkshowturn").show();
}
$("#bumpercarsbuyshow").hide();
$("#bumpercarmainshow").hide();
$("#ferrisshow").hide();
$("#shootershow").hide();
$("#shooterendshow").hide();
$("#parkbuyshow").hide();
$("#parkmanagmentshow").hide();
$("#attractionbuyticketshow").hide();
$("#iteminhandshow").hide();
$("#attractionshow").hide();
$("#parkmanagmentmainshow").hide();
$("#attractionurlshow").hide();
$("#parkattractionshow").show();
}
if (item.message == "hidebumperpay") {
$("#bumpercarsbuyshow").hide();
}
if (item.message == "hidebumpercars") {
$("#bumpercarmainshow").hide();
}
if (item.message == "hideferris") {
$("#ferrisshow").hide();
}
if (item.message == "hideparkbuy") {
$("#parkbuyshow").hide();
}
if (item.message == "hideiteminhand") {
$("#iteminhandshow").hide();
}
if (item.message == "hideattraction") {
$("#attractionshow").hide();
}
if (item.message == "changeattractionstatus") {
if(item.attractionhandler == 1) {
document.getElementById(item.attractionstatusname).checked = true;
} else {
document.getElementById(item.attractionstatusname).checked = false;
}
}
if (item.message == "hidemanagmentmenu") {
$("#parkmanagmentmainshow").hide();
$("#parkmanagmentshow").hide();
}
if (item.message == "hideshooter") {
$("#shootershow").hide();
}
if (item.message == "hideticket") {
$("#attractionbuyticketshow").hide();
}
if (item.message == "hideattractioncontrol") {
$("#parkattractionshow").hide();
$("#attractionurlshow").hide();
}
if (item.message == "hide") {
$("#infonotifyshow").hide();
}
if (item.message == "updateinterfacedata") {
themeparkresourcename = item.themeparkresourcenamedata;
let root = document.documentElement;
root.style.setProperty('--color', item.interfacecolordata);
}
if (item.message == "playsoundhaunted") {
soundhandlerhaunted.stop()
soundhandlerhaunted.volume(item.soundvolume);
soundhandlerhaunted._src = item.soundsrc;
soundhandlerhaunted.load();
soundhandlerhaunted.play();
}
if (item.message == "playsound2haunted") {
soundhandler2haunted.stop()
soundhandler2haunted.volume(item.soundvolume);
soundhandler2haunted._src = item.soundsrc;
soundhandler2haunted.load();
soundhandler2haunted.play();
}
if (item.message == "stopsoundhaunted") {
soundhandlerhaunted.stop()
}
if (item.message == "updateattractionmusiclabel") {
document.getElementsByClassName("parkattractioncontrolmusictextdata")[0].innerHTML = item.musiclabel;
}
document.onkeyup = function (data) {
if (open) {
if (data.which == 27) {
$.post('https://'+themeparkresourcename+'/closemanagment', JSON.stringify({}));
}
}
};
});
function bumpercarstimesliderupdate(e) {
document.getElementById("bumpercarstimeminutedata").innerHTML = e.value;
$.post('https://'+themeparkresourcename+'/calculatepricebumper', JSON.stringify({
bumperselectedminutes: e.value
}));
}
$(".bumpercarsbuybutton").click(function () {
$.post('https://'+themeparkresourcename+'/payforbumper', JSON.stringify({}));
});
$(".buttonparkbuy").click(function () {
$.post('https://'+themeparkresourcename+'/buythemepark', JSON.stringify({}));
});
$(".parkmanagmentwithdrawbutton").click(function () {
$.post('https://'+themeparkresourcename+'/withdrawthemepark', JSON.stringify({}));
});
$(".parkmanagmentownershipsellbutton").click(function () {
$.post('https://'+themeparkresourcename+'/sellthemepark', JSON.stringify({}));
});
$(".parkmanagmentownershipstransferbutton").click(function () {
$.post('https://'+themeparkresourcename+'/transferthemepark', JSON.stringify({}));
});
$(".parkmanagmentsettingsbutton").click(function () {
$.post('https://'+themeparkresourcename+'/parkmanagmentsattractions', JSON.stringify({}));
});
for (let int1data = 1; int1data < 20; int1data++) {
$("#parkattractionopendata" + int1data + "").click(function () {
if (document.getElementById("parkattractionopendata" + int1data + "").checked == false){
document.getElementById("parkattractionopendata" + int1data + "").checked = false;
$.post('https://'+themeparkresourcename+'/updateattractionstatus', JSON.stringify({
attractionid: int1data,
attractionstatushandler: false
}));
}
else {
document.getElementById("parkattractionopendata" + int1data + "").checked = true;
$.post('https://'+themeparkresourcename+'/updateattractionstatus', JSON.stringify({
attractionid: int1data,
attractionstatushandler: true
}));
}
});
}
$('#color-picker').spectrum({
type: "newtype",
preferredFormat: "rgb",
showInput: true,
showPalette: false,
allowEmpty:false,
showAlpha: false,
showButtons: false,
change: function(){
var colorhexdata = $("#color-picker").spectrum("get");
var colorrgbdata = colorhexdata.toRgb()
$.post('https://'+themeparkresourcename+'/updatesmokecolor', JSON.stringify({
colorR: colorrgbdata.r,
colorG: colorrgbdata.g,
colorB: colorrgbdata.b,
}));
},
});
$(".attractionbuyticketbutton").click(function () {
$.post('https://'+themeparkresourcename+'/buythemeparkticket', JSON.stringify({}));
});
$(".buttonsmokestart").click(function () {
$.post('https://'+themeparkresourcename+'/smokecontrol', JSON.stringify({
smokehandler: true
}));
});
$(".buttonsmokestop").click(function () {
$.post('https://'+themeparkresourcename+'/smokecontrol', JSON.stringify({
smokehandler: false
}));
});
$(".buttonmusicplay").click(function () {
$("#musicinputdata").val("");
$("#attractionurlshow").show();
});
$(".buttonmusicstop").click(function () {
$.post('https://'+themeparkresourcename+'/stopmusic', JSON.stringify({}));
});
$(".buttonstartattraction").click(function () {
$.post('https://'+themeparkresourcename+'/startattraction', JSON.stringify({}));
});
$(".buttonplaynewmusic").click(function () {
$("#attractionurlshow").hide();
$.post('https://'+themeparkresourcename+'/attractionnewurl', JSON.stringify({
musicurldata: $("#musicinputdata").val().trim()
}));
});
function volumechange(e) {
$.post('https://'+themeparkresourcename+'/volumechange', JSON.stringify({
volumedata: e.value
}));
}

View file

@ -0,0 +1,236 @@
var themeparkresourcename = "rtx_themepark";
var soundhandler = {}
var soundcheckerhandler = {}
window.addEventListener('message', function (event) {
var item = event.data;
if (item.message == "playsoundattraction") {
if (soundhandler[item.soundid] == undefined) {
$("body").append("<div id='"+ item.soundid +"'></div>");
soundhandler[item.soundid] = new YT.Player(""+ item.soundid +"", {
startSeconds:Number,
videoId: item.soundsrc,
origin: window.location.href,
enablejsapi: 1,
width: "0",
height: "0",
playerVars: {
playsinline: 1,
controls: 0,
},
events: {
'onReady': function(event){
event.target.unMute();
event.target.setVolume(item.soundvolume);
event.target.playVideo();
},
'onError': function(event){
},
'onStateChange': function(event){
if (event.data == YT.PlayerState.PLAYING) {
}
if (event.data == YT.PlayerState.ENDED) {
}
if (event.data == YT.PlayerState.ENDED) {
soundhandler[item.soundid].seekTo(0);
soundhandler[item.soundid].playVideo();
}
}
}
});
} else {
if (typeof soundhandler[item.soundid].setVolume === 'function') {
soundhandler[item.soundid].setVolume(item.soundvolume);
}
}
}
if (item.message == "playsound") {
if (item.soundcategory == "youtube") {
if (soundhandler[item.soundid] == undefined) {
$("body").append("<div id='"+ item.soundid +"'></div>");
soundhandler[item.soundid] = new YT.Player(""+ item.soundid +"", {
startSeconds:Number,
videoId: item.soundsrc,
origin: window.location.href,
enablejsapi: 1,
width: "0",
height: "0",
playerVars: {
playsinline: 1,
controls: 0,
},
events: {
'onReady': function(event){
event.target.unMute();
event.target.setVolume(item.soundvolume);
event.target.playVideo();
},
'onError': function(event){
$.post('https://'+themeparkresourcename+'/sounderror', JSON.stringify({
soundid: item.soundid
}));
},
'onStateChange': function(event){
if (event.data == YT.PlayerState.PLAYING) {
$.post('https://'+themeparkresourcename+'/updatesounddata', JSON.stringify({
soundid: item.soundid,
soundname: soundhandler[item.soundid].getVideoData().title,
soundtime: soundhandler[item.soundid].getCurrentTime(),
soundtimemax: soundhandler[item.soundid].getDuration()
}));
}
if (event.data == YT.PlayerState.ENDED) {
$.post('https://'+themeparkresourcename+'/soundend', JSON.stringify({
soundid: item.soundid
}));
}
}
}
});
} else {
if (typeof soundhandler[item.soundid].setVolume === 'function') {
soundhandler[item.soundid].setVolume(item.soundvolume);
}
}
} else {
if (soundhandler[item.soundid] == undefined) {
soundhandler[item.soundid] = new Howl({
src: item.soundsrc,
volume: item.soundvolume,
loop: false,
html5: true,
onplay: function(){
$.post('https://'+themeparkresourcename+'/updatesounddata', JSON.stringify({
soundid: item.soundid,
soundname: "MP3",
soundtime: soundhandler[item.soundid].seek(),
soundtimemax: soundhandler[item.soundid].duration()
}));
},
onend: function() {
$.post('https://'+themeparkresourcename+'/soundend', JSON.stringify({
soundid: item.soundid
}));
}
});
soundhandler[item.soundid].play();
} else {
if (typeof soundhandler[item.soundid].volume === 'function') {
soundhandler[item.soundid].volume(item.soundvolume);
}
if (soundhandler[item.soundid].playing() == false) {
soundhandler[item.soundid].play();
}
}
}
}
if (item.message == "checkmusicurl") {
$("body").append("<div id='videourlcheckyoutube'></div>");
soundcheckerhandler["videourlcheckyoutube"] = new YT.Player("videourlcheckyoutube", {
startSeconds:Number,
videoId: item.soundsrc,
origin: window.location.href,
enablejsapi: 1,
width: "0",
height: "0",
playerVars: {
playsinline: 1,
controls: 0,
},
events: {
'onReady': function(event){
event.target.setVolume(0);
event.target.playVideo();
},
'onError': function(event){
$.post('https://'+themeparkresourcename+'/checkdone', JSON.stringify({
soundallowed: false,
}));
soundcheckerhandler["videourlcheckyoutube"].stopVideo();
soundcheckerhandler["videourlcheckyoutube"].destroy();
soundcheckerhandler["videourlcheckyoutube"] = null;
},
'onStateChange': function(event){
if (event.data == YT.PlayerState.PLAYING) {
$.post('https://'+themeparkresourcename+'/checkdone', JSON.stringify({
soundallowed: true,
}));
soundcheckerhandler["videourlcheckyoutube"].stopVideo();
soundcheckerhandler["videourlcheckyoutube"].destroy();
soundcheckerhandler["videourlcheckyoutube"] = null;
}
}
}
});
}
if (item.message == "updatesounddata") {
if (soundhandler[item.soundid] == undefined) {
} else {
if (item.soundcategorytype == "youtube") {
if (soundhandler[item.soundid].getPlayerState() == 1) {
$.post('https://'+themeparkresourcename+'/updatesounddata', JSON.stringify({
soundid: item.soundid,
soundname: soundhandler[item.soundid].getVideoData().title,
soundtime: soundhandler[item.soundid].getCurrentTime(),
soundtimemax: soundhandler[item.soundid].getDuration()
}));
}
} else {
if (soundhandler[item.soundid].playing() == true) {
$.post('https://'+themeparkresourcename+'/updatesounddata', JSON.stringify({
soundid: item.soundid,
soundname: "MP3",
soundtime: soundhandler[item.soundid].seek(),
soundtimemax: soundhandler[item.soundid].duration()
}));
}
}
}
}
if (item.message == "setsoundtime") {
if (soundhandler[item.soundid] == undefined) {
} else {
if (item.soundcategorytype == "youtube") {
soundhandler[item.soundid].seekTo(item.timedata);
} else {
soundhandler[item.soundid].seek(item.timedata);
}
}
}
if (item.message == "stopsound") {
if (soundhandler[item.soundid] == undefined) {
} else {
if (item.soundcategorytype == "youtube") {
soundhandler[item.soundid].stopVideo();
soundhandler[item.soundid].destroy();
soundhandler[item.soundid] = null;
$("#'"+ item.soundid +"'").remove();
} else {
soundhandler[item.soundid].stop()
soundhandler[item.soundid] = null;
}
}
}
if (item.message == "stopsoundattraction") {
if (soundhandler[item.soundid] == undefined) {
} else {
soundhandler[item.soundid].stopVideo();
soundhandler[item.soundid].destroy();
soundhandler[item.soundid] = null;
}
}
if (item.message == "updateinterfacedata") {
themeparkresourcename = item.themeparkresourcenamedata;
let root = document.documentElement;
root.style.setProperty('--color', item.interfacecolordata);
}
});

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,315 @@
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/howler/2.1.1/howler.min.js" type="text/javascript"></script>
<link rel="stylesheet" href="https://kit-pro.fontawesome.com/releases/v6.2.0/css/pro.min.css">
<link rel="stylesheet" href="styles.css" type="text/css">
<script src="https://code.jquery.com/jquery-3.6.1.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script src="https://s.ytimg.com/yts/jsbin/www-widgetapi-vflJJaNgk/www-widgetapi.js"></script>
<script src="https://www.youtube.com/iframe_api"></script>
<script src="https://cdn.jsdelivr.net/npm/spectrum-colorpicker2/dist/spectrum.min.js"></script>
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/spectrum-colorpicker2/dist/spectrum.min.css">
</head>
<body>
<div class="full-screen">
<div class="infonotify-container" id="infonotifyshow">
<div class="infonotifytext">Text</div>
</div>
<div class="bumpercarsbuy-container" id="bumpercarsbuyshow">
<img class="closebumpercarsbuy" src="img/close.png" style="width:25px;height:25px" alt="closebumpercarsbuy"/>
<div class="logobumpercars">
<img id="logobumpercars" src="img/bumpercarslogo.png" style="width:220px;height:120px" alt="Logo">
</div>
<div class="bumpercarstimelengthtextmain">length of ride</div>
<div class="bumpercarstimesliderline">
</div>
<input type="range" min="1" max="15" value="1" class="bumpercarstimeslider" id="bumpercarstimesliderdata" onchange="bumpercarstimesliderupdate(this)">
<div class="bumpercarstimelengthtext"><span id="bumpercarstimeminutedata">1</span> minutes</div>
<div class="bumpercarspricetext">Current price<br>$<span id="bumpercarspricedata">100</span></div>
<div class="bumpercarsbuybutton">Pay for a ride</div>
</div>
<div class="bumpercarmain-container" id="bumpercarmainshow">
<div class="bumpercartimetext" id="bumpercartimetextshow"><span id="bumpercartimetextdata">100</span> seconds remaining</div>
<div class="bumpercarleavetext">Press <span id="bumpercarleavetextkey">E</span> to exit the bumper car</div>
</div>
<div class="ferrismain-container" id="ferrisshow">
<div class="ferrisanimtext">Press <span id="ferrisanimtextkey">E</span> to change the animation</div>
<div class="ferrisleavetext">Press <span id="ferrisleavetextkey">F</span> to exit the ferris wheel</div>
</div>
<div class="shooter-container" id="shootershow">
<div class="shootershottext">Shoots: <span id="shootershottextdata">0</span></div>
<div class="shootermissestext">Misses: <span id="shootermissestextdata">0</span></div>
<div class="shootertimetext"><span id="shootertimetextdata">0</span> seconds left</div>
<div class="shootertexthit" id="shootertexthitshow">You <span id="shootertexthitdata">hit</span> target</div>
</div>
<div class="shooterend-container" id="shooterendshow">
<div class="shooterendmaintext">Shooting Range</div>
<div class="shooterendtext">Game Over</div>
<div class="shooterendshootstext">Shoots: <span id="shooterendshootstextdata">0</span></div>
<div class="shooterendmissestext">Misses: <span id="shooterendmissestextdata">0</span></div>
</div>
<div class="parkbuy-container" id="parkbuyshow">
<div class="headerparkbuy">
<div class="headerparkbuytext">THEME PARK</div>
<img class="closeparkbuy" src="img/close.png" style="width:25px;height:25px"/>
</div>
<div class="parkbuytext">THEME PARK PRICE</div>
<div class="parkbuytextprice">$<span id="parkbuytextpricedata">100</span></div>
<div class="buttonparkbuy">BUY THEME PARK</div>
</div>
<div class="parkmanagmentmain-container" id="parkmanagmentmainshow">
<div class="parkmanagmentmaincontainer">
<div id="showownerparkmain">
<div class="parkmanagmentownershiptext">Theme Park OWNERSHIP</div>
<div class="parkmanagmentownershiptextinfo">Setting up ownership of your theme park</div>
</div>
<div id="showsellpark">
<div class="parkmanagmentownershipsellbutton">SELL PARK</div>
</div>
<div id="showtransferpark">
<div class="parkmanagmentownershipstransferbutton">TRANSFER PARK</div>
</div>
<div class="parkmanagmentsettingstext">Theme Park SETTINGS</div>
<div class="parkmanagmentsettingstextinfo">Setting up your theme park attraction</div>
<div class="parkmanagmentsettingsbutton">Settings</div>
<div class="parkmanagmentwithdrawtext">Theme Park Balance</div>
<div class="parkmanagmentwithdrawmoneytext">$<span id="parkmanagmentwithdrawmoneytextdata">100</span></div>
<div class="parkmanagmentwithdrawbutton">Withdraw</div>
</div>
</div>
<div class="parkmanagment-container" id="parkmanagmentshow">
<div class="parkattraction" id="parkmanagmentattraction1">
<div class="parkattractionname">G-Force</div>
<div class="parkattractiontextclose">Close</div>
<div class="parkattractiontextopen">Open</div>
<label class="parkattractionopeninput">
<input type="checkbox" id="parkattractionopendata1">
<span class="parkattractionopeninputslider"></span>
</label>
</div>
<div class="parkattraction" id="parkmanagmentattraction2">
<div class="parkattractionname">Top Scan</div>
<div class="parkattractiontextclose">Close</div>
<div class="parkattractiontextopen">Open</div>
<label class="parkattractionopeninput">
<input type="checkbox" id="parkattractionopendata2">
<span class="parkattractionopeninputslider"></span>
</label>
</div>
<div class="parkattraction" id="parkmanagmentattraction3">
<div class="parkattractionname">Roller coaster</div>
<div class="parkattractiontextclose">Close</div>
<div class="parkattractiontextopen">Open</div>
<label class="parkattractionopeninput">
<input type="checkbox" id="parkattractionopendata3">
<span class="parkattractionopeninputslider"></span>
</label>
</div>
<div class="parkattraction" id="parkmanagmentattraction4">
<div class="parkattractionname">Shooting Range</div>
<div class="parkattractiontextclose">Close</div>
<div class="parkattractiontextopen">Open</div>
<label class="parkattractionopeninput">
<input type="checkbox" id="parkattractionopendata4">
<span class="parkattractionopeninputslider"></span>
</label>
</div>
<div class="parkattraction" id="parkmanagmentattraction5">
<div class="parkattractionname">Shooting Range</div>
<div class="parkattractiontextclose">Close</div>
<div class="parkattractiontextopen">Open</div>
<label class="parkattractionopeninput">
<input type="checkbox" id="parkattractionopendata5">
<span class="parkattractionopeninputslider"></span>
</label>
</div>
<div class="parkattraction" id="parkmanagmentattraction6">
<div class="parkattractionname">Bumper Cars</div>
<div class="parkattractiontextclose">Close</div>
<div class="parkattractiontextopen">Open</div>
<label class="parkattractionopeninput">
<input type="checkbox" id="parkattractionopendata6">
<span class="parkattractionopeninputslider"></span>
</label>
</div>
<div class="parkattraction" id="parkmanagmentattraction7">
<div class="parkattractionname">Vortex</div>
<div class="parkattractiontextclose">Close</div>
<div class="parkattractiontextopen">Open</div>
<label class="parkattractionopeninput">
<input type="checkbox" id="parkattractionopendata7">
<span class="parkattractionopeninputslider"></span>
</label>
</div>
<div class="parkattraction" id="parkmanagmentattraction8">
<div class="parkattractionname">Ferris wheel</div>
<div class="parkattractiontextclose">Close</div>
<div class="parkattractiontextopen">Open</div>
<label class="parkattractionopeninput">
<input type="checkbox" id="parkattractionopendata8">
<span class="parkattractionopeninputslider"></span>
</label>
</div>
<div class="parkattraction" id="parkmanagmentattraction9">
<div class="parkattractionname">Detonator</div>
<div class="parkattractiontextclose">Close</div>
<div class="parkattractiontextopen">Open</div>
<label class="parkattractionopeninput">
<input type="checkbox" id="parkattractionopendata9">
<span class="parkattractionopeninputslider"></span>
</label>
</div>
<div class="parkattraction" id="parkmanagmentattraction10">
<div class="parkattractionname">Boat</div>
<div class="parkattractiontextclose">Close</div>
<div class="parkattractiontextopen">Open</div>
<label class="parkattractionopeninput">
<input type="checkbox" id="parkattractionopendata10">
<span class="parkattractionopeninputslider"></span>
</label>
</div>
<div class="parkattraction" id="parkmanagmentattraction11">
<div class="parkattractionname">Prater</div>
<div class="parkattractiontextclose">Close</div>
<div class="parkattractiontextopen">Open</div>
<label class="parkattractionopeninput">
<input type="checkbox" id="parkattractionopendata11">
<span class="parkattractionopeninputslider"></span>
</label>
</div>
<div class="parkattraction" id="parkmanagmentattraction12">
<div class="parkattractionname">Break Dance</div>
<div class="parkattractiontextclose">Close</div>
<div class="parkattractiontextopen">Open</div>
<label class="parkattractionopeninput">
<input type="checkbox" id="parkattractionopendata12">
<span class="parkattractionopeninputslider"></span>
</label>
</div>
<div class="parkattraction" id="parkmanagmentattraction13">
<div class="parkattractionname">Slingshot</div>
<div class="parkattractiontextclose">Close</div>
<div class="parkattractiontextopen">Open</div>
<label class="parkattractionopeninput">
<input type="checkbox" id="parkattractionopendata13">
<span class="parkattractionopeninputslider"></span>
</label>
</div>
<div class="parkattraction" id="parkmanagmentattraction14">
<div class="parkattractionname">Carousel</div>
<div class="parkattractiontextclose">Close</div>
<div class="parkattractiontextopen">Open</div>
<label class="parkattractionopeninput">
<input type="checkbox" id="parkattractionopendata14">
<span class="parkattractionopeninputslider"></span>
</label>
</div>
<div class="parkattraction" id="parkmanagmentattraction15">
<div class="parkattractionname">Extasy</div>
<div class="parkattractiontextclose">Close</div>
<div class="parkattractiontextopen">Open</div>
<label class="parkattractionopeninput">
<input type="checkbox" id="parkattractionopendata15">
<span class="parkattractionopeninputslider"></span>
</label>
</div>
<div class="parkattraction" id="parkmanagmentattraction16">
<div class="parkattractionname">Spinride</div>
<div class="parkattractiontextclose">Close</div>
<div class="parkattractiontextopen">Open</div>
<label class="parkattractionopeninput">
<input type="checkbox" id="parkattractionopendata16">
<span class="parkattractionopeninputslider"></span>
</label>
</div>
<div class="parkattraction" id="parkmanagmentattraction17">
<div class="parkattractionname">Hauntedhouse</div>
<div class="parkattractiontextclose">Close</div>
<div class="parkattractiontextopen">Open</div>
<label class="parkattractionopeninput">
<input type="checkbox" id="parkattractionopendata17">
<span class="parkattractionopeninputslider"></span>
</label>
</div>
<div class="parkattraction" id="parkmanagmentattraction18">
<div class="parkattractionname">Rollercoaster 2</div>
<div class="parkattractiontextclose">Close</div>
<div class="parkattractiontextopen">Open</div>
<label class="parkattractionopeninput">
<input type="checkbox" id="parkattractionopendata18">
<span class="parkattractionopeninputslider"></span>
</label>
</div>
<div class="parkattraction" id="parkmanagmentattraction19">
<div class="parkattractionname">Cannon</div>
<div class="parkattractiontextclose">Close</div>
<div class="parkattractiontextopen">Open</div>
<label class="parkattractionopeninput">
<input type="checkbox" id="parkattractionopendata19">
<span class="parkattractionopeninputslider"></span>
</label>
</div>
</div>
<div class="attractionbuyticket-container" id="attractionbuyticketshow">
<img class="closeattractionbuyticket" src="img/close2.png" style="width:25px;height:25px" alt="attractionbuyticket"/>
<div class="logobuyticket">
<img id="logobuyticket" src="img/pierlogo.png" style="width:350px;height:180px" alt="Logo">
</div>
<div class="attractionbuytickettextpricemain">Ticket Price</div>
<div class="attractionbuytickettextprice">$<span id="attractionpricedata">1000</span></div>
<div class="attractionbuyticketbutton">
<div class="attractionbuytickettext">BUY TICKET</div>
</div>
</div>
<div class="iteminhand-container" id="iteminhandshow">
<div class="iteminhandtextgive">Press <span id="iteminhandtextgivekey">F</span> to throw the item</div>
<div class="iteminhandtextthrow">Press <span id="iteminhandtextthrowkey">G</span> to pass the item to the player</div>
</div>
<div class="attraction-container" id="attractionshow">
<div class="attractioncamtext2" id="attractioncamtextshow2">Press <span id="attractioncamtextkey">B</span> to change the camera</div>
<div class="attractioncamtext" id="attractioncamtextshow">Press <span id="attractioncamtextkey">B</span> to change the camera</div>
<div class="attractionanimtext" id="attractionanimtextshow">Press <span id="attractionanimtextkey">E</span> to change the animation</div>
<div class="attractionleavetext">Press <span id="attractionleavetextkey">F</span> to exit the attraction</div>
</div>
<div class="parkattraction-container" id="parkattractionshow">
<img class="closeparkattractionmenu" src="img/close.png" style="width:25px;height:25px" alt="closeattractionmenu"/>
<div class="parkattractioncontroltext">VORTEX</div>
<div id="parkshowmusic">
<div class="parkattractioncontrolmusictext">CURRENT MUSIC</div>
<div class="parkattractioncontrolmusictextdata"></div>
<div class="parkattractioncontrolmusicvolumetext">VOLUME</div>
<div class="volumeslidercontainer">
<div class="volumeicon1"><i class="fas fa-volume-down" id="pinkcolortv"></i></div>
<div class="volumeicon2"><i class="fas fa-volume-up" id="pinkcolortv"></i></div>
<div class="volumeslideline">
</div>
<input type="range" min="1" max="100" value="100" class="volumeslider" id="volumesliderdata" onchange="volumechange(this)">
</div>
<div class="buttonmusicplay">PLAY MUSIC</div>
<div class="buttonmusicstop">STOP MUSIC</div>
</div>
<div id="parkshowsmoke">
<div class="parkattractioncontrolsmokecolortext">SMOKE COLOR</div>
<div class="colorchanger">
<input class="pickercolor" id="color-picker" value="#ff66ff"/>
</div>
<div class="buttonsmokestart">START SMOKE</div>
<div class="buttonsmokestop">STOP SMOKE</div>
</div>
<div id="parkshowturn">
<div class="buttonstartattraction">START ATTRACTION</div>
</div>
</div>
<div class="attractionurl-container" id="attractionurlshow">
<img class="closemusicurl" src="img/close.png" style="width:22px;height:20px" alt="closemusicmenu"/>
<input id="musicinputdata" class="musicinput" placeholder="MUSIC URL" type="text">
<div class="musicurlmaintext">ATTRACTION MUSIC</div>
<div class="buttonplaynewmusic">PLAY MUSIC</div>
</div>
</div>
<script src="jquery.connections.js" type="text/javascript"></script>
<script src="scripts.js" type="text/javascript"></script>
<script src="sound.js" type="text/javascript"></script>
<script src="debounce.min.js" type="text/javascript"></script>
</body>