Update #37 - Touch support without userscript, many other feats

This commit is contained in:
lax1dude
2024-09-21 20:17:42 -07:00
parent 173727c8c4
commit ec1ab8ece3
683 changed files with 62074 additions and 8996 deletions

View File

@ -3,24 +3,26 @@
~~~~~~~~~~~~~~~~~~~~~~~
lax1dude:
- Creator of Eaglercraft
- Ported the Minecraft 1.8 src to TeaVM
- Wrote HW accelerated OpenGL 1.3 emulator
- Wrote the default shader pack
- Made the integrated PBR resource pack
- Added touch and mobile device support
- Wrote all desktop emulation code
- Wrote EaglercraftXBungee
- Wrote EaglercraftXVelocity
- Wrote WebRTC relay server
- Wrote voice chat server
- Wrote the patch and build system
ayunami2000:
- Many bug fixes
- WebRTC LAN worlds
- WebRTC voice chat
- Worked on touch support
- Made velocity plugin work
- Added resource packs
- Added screen recording
@ -410,7 +412,7 @@
Project Author: The Legion of the Bouncy Castle
Project URL: https://www.bouncycastle.org/java.html
Used For: MD5, SHA-1, SHA-256 implementations
Used For: MD5, SHA-1, SHA-256, and AES implementations
* Copyright (c) 2000-2021 The Legion of the Bouncy Castle Inc. (https://www.bouncycastle.org)
*
@ -668,23 +670,23 @@
Project Author: ymnk, JCraft Inc.
Project URL: http://www.jcraft.com/jorbis/
Used For: Audio in desktop runtime
Used For: Audio in desktop runtime and browsers that don't support OGG
* JOrbis
* Copyright (C) 2000 ymnk, JCraft,Inc.
*
*
* Written by: 2000 ymnk<ymnk@jcraft.com>
*
* Many thanks to
* Monty <monty@xiph.org> and
* The XIPHOPHORUS Company http://www.xiph.org/ .
* JOrbis has been based on their awesome works, Vorbis codec.
*
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public License
* as published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
@ -696,6 +698,44 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Project Name: NanoHTTPD
Project Author: NanoHTTPD
Project URL: http://nanohttpd.org/
Used For: HTTP server in the desktop runtime
* Copyright (c) 2012-2013 by Paul S. Hawke,
* 2001,2005-2013 by Jarno Elonen,
* 2010 by Konstantinos Togias All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
*
* Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* Neither the name of the NanoHttpd organization nor the names of its
* contributors may be used to endorse or promote products derived from this
* software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Project Name: sqlite-jdbc
Project Author: Taro L. Saito (xerial)
Project URL: https://github.com/xerial/sqlite-jdbc

Binary file not shown.

View File

@ -0,0 +1,88 @@
<style type="text/css" style="display:none !important;">{% embed eval `boot_menu_style.css` %}</style>
<div class="_eaglercraftX_boot_menu {% global `root_class_gen` %}">
<div class="_eaglercraftX_boot_menu_inner">
<div class="_eaglercraftX_boot_menu_header">
<p class="_eaglercraftX_boot_menu_header_title">EaglercraftX 1.8 Boot Manager</p>
</div>
<div class="_eaglercraftX_boot_menu_content">
<div class="_eaglercraftX_boot_menu_content_inner">
<div class="_eaglercraftX_boot_menu_content_view_selection" style="display:none;">
<div class="_eaglercraftX_boot_menu_content_selection"></div>
</div>
<div class="_eaglercraftX_boot_menu_content_view_editor" style="display:none;">
<div class="_eaglercraftX_boot_menu_launch_conf">
<div class="_eaglercraftX_boot_menu_launch_conf_inner">
<div class="_eaglercraftX_boot_menu_launch_conf_item_wide" style="padding: 20px;">
<p>Profile Name: <input type="text" class="_eaglercraftX_boot_menu_launch_conf_val_profile_name"></p>
</div>
<div class="_eaglercraftX_boot_menu_launch_conf_item_wide">
<div class="_eaglercraftX_boot_menu_launch_conf_item _eaglercraftX_boot_menu_launch_conf_data_format">
<p>Data Format: <span class="_eaglercraftX_boot_menu_launch_conf_val_data_format">Standard Offline</span></p>
</div>
<div class="_eaglercraftX_boot_menu_launch_conf_item _eaglercraftX_boot_menu_launch_conf_launch_type">
<p>Launch Type:
<select class="_eaglercraftX_boot_menu_launch_conf_val_launch_type">
<option class="_eaglercraftX_boot_menu_launch_conf_val_launch_type_opt" value="EAGLERX_SIGNED_V1">EaglercraftX Signed Client</option>
<option class="_eaglercraftX_boot_menu_launch_conf_val_launch_type_opt" value="EAGLERX_V1">EaglercraftX Standard Offline</option>
<option class="_eaglercraftX_boot_menu_launch_conf_val_launch_type_opt" value="EAGLER_1_5_V2">Eaglercraft 1.5 (post-22w34a)</option>
<option class="_eaglercraftX_boot_menu_launch_conf_val_launch_type_opt" value="EAGLER_1_5_V1">Eaglercraft 1.5 (pre-22w34a)</option>
<option class="_eaglercraftX_boot_menu_launch_conf_val_launch_type_opt" value="EAGLER_BETA_V1">Eaglercraft Beta 1.3</option>
<option class="_eaglercraftX_boot_menu_launch_conf_val_launch_type_opt" value="PEYTON_V1">PeytonPlayz585 Indev</option>
<option class="_eaglercraftX_boot_menu_launch_conf_val_launch_type_opt" value="PEYTON_V2">PeytonPlayz585 Alpha/Beta</option>
<option class="_eaglercraftX_boot_menu_launch_conf_val_launch_type_opt" value="STANDARD_OFFLINE_V1">Standard Offline</option>
<option class="_eaglercraftX_boot_menu_launch_conf_val_launch_type_opt" value="IFRAME_SANDBOX_V1">IFrame HTML File</option>
</select>
</p>
</div>
<div class="_eaglercraftX_boot_menu_launch_conf_item _eaglercraftX_boot_menu_launch_conf_join_server" style="display:none;">
<p>Join Server: <input type="text" class="_eaglercraftX_boot_menu_launch_conf_val_join_server"></p>
</div>
<div class="_eaglercraftX_boot_menu_launch_conf_item _eaglercraftX_boot_menu_launch_conf_opts_name" style="display:none;">
<p>Opt Variable Name: <input type="text" class="_eaglercraftX_boot_menu_launch_conf_val_opts_name"></p>
</div>
<div class="_eaglercraftX_boot_menu_launch_conf_item _eaglercraftX_boot_menu_launch_conf_assetsURI" style="display:none;">
<p>Assets URI Opt: <input type="text" class="_eaglercraftX_boot_menu_launch_conf_val_assetsURI"></p>
</div>
<div class="_eaglercraftX_boot_menu_launch_conf_item _eaglercraftX_boot_menu_launch_conf_container" style="display:none;">
<p>Container ID Opt: <input type="text" class="_eaglercraftX_boot_menu_launch_conf_val_container"></p>
</div>
<div class="_eaglercraftX_boot_menu_launch_conf_item _eaglercraftX_boot_menu_launch_conf_main_func" style="display:none;">
<p>Main function: <input type="text" class="_eaglercraftX_boot_menu_launch_conf_val_main_func"></p>
</div>
<div class="_eaglercraftX_boot_menu_launch_conf_item _eaglercraftX_boot_menu_launch_conf_clear_cookies">
<p>Clear Cookies Before Launch: <input type="checkbox" class="_eaglercraftX_boot_menu_launch_conf_val_clear_cookies"></p>
</div>
</div>
</div>
</div>
<textarea class="_eaglercraftX_boot_menu_launch_opt_editor" spellcheck="false"></textarea>
</div>
<div class="_eaglercraftX_boot_menu_popup" style="display:none;">
<div class="_eaglercraftX_boot_menu_popup_inner">
<div class="_eaglercraftX_boot_menu_popup_view_confirm" style="display:none;">
<p class="_eaglercraftX_boot_menu_popup_confirm_title"></p>
<p class="_eaglercraftX_boot_menu_popup_confirm_opts"></p>
</div>
<div class="_eaglercraftX_boot_menu_popup_view_selection" style="display:none;">
<p class="_eaglercraftX_boot_menu_popup_selection_title"></p>
<div class="_eaglercraftX_boot_menu_popup_selection"></div>
</div>
<div class="_eaglercraftX_boot_menu_popup_view_input" style="display:none;">
<p class="_eaglercraftX_boot_menu_popup_input_title"></p>
<p class="_eaglercraftX_boot_menu_popup_input_val_container"><input class="_eaglercraftX_boot_menu_popup_input_val" type="text"></p>
<p class="_eaglercraftX_boot_menu_popup_input_opts"><span class="_eaglercraftX_boot_menu_popup_input_opt _eaglercraftX_boot_menu_popup_input_opt_cancel">&nbsp;&lt;&nbsp;Cancel&nbsp;&gt;&nbsp;</span> &emsp; <span class="_eaglercraftX_boot_menu_popup_input_opt _eaglercraftX_boot_menu_popup_input_opt_done _eaglercraftX_boot_menu_popup_input_opt_selected">&nbsp;&lt;&nbsp;Done&nbsp;&gt;&nbsp;</span></p>
</div>
</div>
</div>
</div>
</div>
<div class="_eaglercraftX_boot_menu_footer">
<p class="_eaglercraftX_boot_menu_footer_text _eaglercraftX_boot_menu_footer_text_boot_select" style="display:none;">Use the &uarr; and &darr; keys to select which entry is highlighted.<br>Press enter to boot the selected client, `e' to edit eaglercraft opts before booting, or ESC to exit and boot normally.</p>
<p class="_eaglercraftX_boot_menu_footer_text _eaglercraftX_boot_menu_footer_text_boot_select_count" style="display:none;">Use the &uarr; and &darr; keys to select which entry is highlighted.<br>Press enter to boot the selected client, `e' to edit eaglercraft opts before booting.<br>The first option will be executed in <span class="_eaglercraftX_boot_menu_footer_text_boot_countdown">0</span> seconds. Press any key to cancel.</p>
<p class="_eaglercraftX_boot_menu_footer_text _eaglercraftX_boot_menu_footer_text_menu_select" style="display:none;">Use the &uarr; and &darr; keys to select which entry is highlighted.<br>Press enter to select, or ESC return to the previous screen.</p>
<p class="_eaglercraftX_boot_menu_footer_text _eaglercraftX_boot_menu_footer_text_opts_editor" style="display:none;">Press CTRL+SHIFT to open editor menu.<br>Press CTRL+ENTER to boot, or ESC return to the previous menu.</p>
<p class="_eaglercraftX_boot_menu_footer_text _eaglercraftX_boot_menu_footer_text_opts_editor_alt" style="display:none;">Press CTRL+SHIFT to open editor menu.<br>Press CTRL+ENTER to save, or ESC return to the previous menu.</p>
<p class="_eaglercraftX_boot_menu_footer_text _eaglercraftX_boot_menu_footer_text_boot_order" style="display:none;">Use the &uarr; and &darr; keys to select which entry is highlighted.<br>Press CTRL+&uarr; and CTRL+&darr; to adjust item order, or ESC to cancel.</p>
</div>
</div>
</div>

View File

@ -0,0 +1,328 @@
@font-face {
font-family: "{% global `root_class_gen` %}_font0";
src: url("data:font/woff;base64,{% embed base64 `web_cl_eagleiii_8x16.woff` %}") format("woff");
}
.{% global `root_class_gen` %} {
font: 24px "{% global `root_class_gen` %}_font0";
color: #CCCCCC;
background-color: #000000;
user-select: none;
width: 100%;
height: 100%;
overflow-y: auto;
}
.{% global `root_class_gen` %}::-moz-selection {
color: #000000;
background-color: #CCCCCC;
}
.{% global `root_class_gen` %}::selection {
color: #000000;
background-color: #CCCCCC;
}
.{% global `root_class_gen` %}::-webkit-scrollbar {
width: 12px;
}
.{% global `root_class_gen` %} ::-webkit-scrollbar {
width: 12px;
}
.{% global `root_class_gen` %}::-webkit-scrollbar-track, .{% global `root_class_gen` %} ::-webkit-scrollbar-track {
background-color: #000000;
}
.{% global `root_class_gen` %}::-webkit-scrollbar-thumb, .{% global `root_class_gen` %} ::-webkit-scrollbar-thumb {
background-color: #CCCCCC;
}
.{% global `root_class_gen` %}::-webkit-scrollbar-button, .{% global `root_class_gen` %} ::-webkit-scrollbar-button {
display: none;
}
.{% global `root_class_gen` %}::-webkit-scrollbar-corner, .{% global `root_class_gen` %} ::-webkit-scrollbar-corner {
background-color: #CCCCCC;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_inner {
width: 100%;
height: 100%;
min-height: 480px;
display: flex;
flex-flow: column;
}
.{% global `root_class_gen` %} p {
margin-block-start: 0px;
margin-block-end: 0px;
-webkit-margin-before:0px;
-webkit-margin-after:0px;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_header {
flex: 0 1 auto;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_header_title {
text-align: center;
padding: 32px 0px 0px 0px;
color: #CCCCCC;
white-space: pre-wrap;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_content {
flex: 1 1 auto;
position: relative;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_content_inner {
position: absolute;
top: 32px;
left: 32px;
bottom: 32px;
right: 32px;
border: 2px solid white;
z-index: 1;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_popup {
position: absolute;
top: 128px;
left: 64px;
bottom: 64px;
right: 64px;
z-index: 10;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_popup_inner {
width: 50%;
min-width: min(calc(100% - 20px), 400px);
max-width: 800px;
max-height: calc(100% - 20px);
margin-left: auto;
margin-right: auto;
border: 2px solid white;
background-color: #000000;
padding: 10px;
overflow-y: auto;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_popup_confirm_title {
text-align: center;
padding: 16px;
color: #CCCCCC;
white-space: pre-wrap;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_popup_confirm_opts {
text-align: center;
padding: 16px;
color: #CCCCCC;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_popup_confirm_opt {
cursor: pointer;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_popup_confirm_opt_selected {
color: #000000;
background-color: #CCCCCC;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_popup_confirm_opt_disabled {
color: #888888;
cursor: default;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_popup_selection_title {
text-align: center;
padding: 16px;
color: #CCCCCC;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_popup_selection {
width: calc(100% - 8px);
padding: 8px 4px;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_popup_input_title {
text-align: center;
padding: 16px;
color: #CCCCCC;
white-space: pre-wrap;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_popup_input_opts {
text-align: center;
padding: 16px;
color: #CCCCCC;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_popup_input_opt {
cursor: pointer;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_popup_input_opt_selected {
color: #000000;
background-color: #CCCCCC;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_popup_input_opt_disabled {
color: #888888;
cursor: default;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_popup_input_val_container {
text-align: center;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_popup_input_val {
min-width: 15em;
width: calc(90% - 50px);
font: 24px "{% global `root_class_gen` %}_font0";
outline: none;
resize: none;
background-color: #000000;
color: #CCCCCC;
border: 2px solid white;
padding: 2px 4px;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_popup_input_val:disabled {
color: #888888;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_popup_input_val::-moz-selection {
color: #000000;
background-color: #CCCCCC;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_popup_input_val::selection {
color: #000000;
background-color: #CCCCCC;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_content_view_selection {
width: 100%;
height: 100%;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_content_selection {
width: calc(100% - 8px);
height: calc(100% - 16px);
padding: 8px 4px;
overflow-y: auto;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_content_item {
width: 100%;
overflow-y: auto;
cursor: pointer;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_content_item::before {
content: "\00a0";
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_content_item_selected {
color: #000000;
background-color: #CCCCCC;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_content_item_selected::before {
content: "*";
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_content_item_disabled {
color: #888888;
cursor: default;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_content_view_editor {
width: 100%;
height: 100%;
position: relative;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_launch_conf {
position: absolute;
top: 0px;
left: 0px;
right: 0px;
height: calc(25% - 20px);
padding: 10px;
overflow-x: hidden;
overflow-y: auto;
color: #CCCCCC;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_launch_conf_item_wide {
width: 100%;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_launch_conf_item {
display: inline-block;
padding: 20px;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_launch_conf_item input[type=text] {
min-width: 15em;
font: 24px "{% global `root_class_gen` %}_font0";
outline: none;
resize: none;
background-color: #000000;
color: #CCCCCC;
border: 2px solid white;
padding: 2px 4px;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_launch_conf_item input[type=text]:disabled {
color: #888888;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_launch_conf_item input[type=checkbox] {
zoom: 2;
padding: 2px 4px;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_launch_conf_item select {
font: 24px "{% global `root_class_gen` %}_font0";
outline: none;
resize: none;
background-color: #000000;
color: #CCCCCC;
border: 2px solid white;
padding: 2px 4px;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_launch_conf_item option:checked {
background-color: #CCCCCC;
color: #000000;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_launch_conf_item option:disabled {
color: #888888;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_launch_conf_item input::-moz-selection {
color: #000000;
background-color: #CCCCCC;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_launch_conf_item input::selection {
color: #000000;
background-color: #CCCCCC;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_launch_conf_val_profile_name {
width: calc(100% - 10em);
font: 24px "{% global `root_class_gen` %}_font0";
outline: none;
resize: none;
background-color: #000000;
color: #CCCCCC;
border: 2px solid white;
padding: 2px 4px;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_launch_conf_val_profile_name::-moz-selection {
color: #000000;
background-color: #CCCCCC;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_launch_conf_val_profile_name::selection {
color: #000000;
background-color: #CCCCCC;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_launch_conf_val_profile_name:disabled {
color: #888888;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_launch_conf_val_data_format {
padding: 2px 4px;
border: 2px solid white;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_launch_opt_editor {
position: absolute;
bottom: 0px;
left: 0px;
right: 0px;
height: calc(75% - 22px);
width: calc(100% - 20px);
margin: 0px;
padding: 10px;
font: 24px "{% global `root_class_gen` %}_font0";
border: none;
border-top: 2px solid white;
outline: none;
resize: none;
background-color: #000000;
color: #CCCCCC;
overflow: auto;
tab-size: 4;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_launch_opt_editor:disabled {
color: #888888;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_launch_opt_editor::-moz-selection {
color: #000000;
background-color: #CCCCCC;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_launch_opt_editor::selection {
color: #000000;
background-color: #CCCCCC;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_footer {
flex: 0 1 auto;
}
.{% global `root_class_gen` %} ._eaglercraftX_boot_menu_footer_text {
text-align: left;
padding: 0px 0px 32px 64px;
color: #CCCCCC;
}

View File

@ -0,0 +1,4 @@
{
"client_launch_type": "EAGLERX_V1",
"clear_cookies_before_launch": false
}

View File

@ -0,0 +1,4 @@
{
"client_launch_type": "EAGLERX_SIGNED_V1",
"clear_cookies_before_launch": false
}

View File

@ -0,0 +1,4 @@
{
"client_launch_type": "EAGLER_1_5_V2",
"clear_cookies_before_launch": false
}

View File

@ -0,0 +1,5 @@
{
"client_launch_type": "EAGLER_1_5_V1",
"join_server": "",
"clear_cookies_before_launch": false
}

View File

@ -0,0 +1,5 @@
{
"client_launch_type": "EAGLER_BETA_V1",
"join_server": "",
"clear_cookies_before_launch": false
}

View File

@ -0,0 +1,4 @@
{
"client_launch_type": "PEYTON_V2",
"clear_cookies_before_launch": false
}

View File

@ -0,0 +1,4 @@
{
"client_launch_type": "PEYTON_V2",
"clear_cookies_before_launch": false
}

View File

@ -0,0 +1,4 @@
{
"client_launch_type": "PEYTON_V1",
"clear_cookies_before_launch": false
}

View File

@ -0,0 +1,8 @@
{
"client_launch_type": "STANDARD_OFFLINE_V1",
"client_launch_opts_var": "eaglercraftXOpts",
"client_launch_opts_assetsURI_var": "assetsURI",
"client_launch_opts_container_var": "container",
"client_launch_main_func": "main",
"clear_cookies_before_launch": false
}

View File

@ -0,0 +1,192 @@
{
"defaults": {
"EAGLERX_SIGNED_V1": {
"conf": "conf_template_eaglercraftX_1_8_signed.json",
"opts": "opts_template_eaglercraftX_1_8.txt"
},
"EAGLERX_V1": {
"conf": "conf_template_eaglercraftX_1_8.json",
"opts": "opts_template_eaglercraftX_1_8.txt"
},
"EAGLER_BETA_V1": {
"conf": "conf_template_eaglercraft_b1_3.json",
"opts": null
},
"EAGLER_1_5_V1": {
"conf": "conf_template_eaglercraft_1_5_legacy.json",
"opts": "opts_template_eaglercraft_1_5_legacy.txt"
},
"EAGLER_1_5_V2": {
"conf": "conf_template_eaglercraft_1_5.json",
"opts": "opts_template_eaglercraft_1_5.txt"
},
"PEYTON_V1": {
"conf": "conf_template_peytonplayz585_indev.json",
"opts": null
},
"PEYTON_V2": {
"conf": "conf_template_peytonplayz585_a1_2_6.json",
"opts": "opts_template_peytonplayz585_a1_2_6.txt"
},
"STANDARD_OFFLINE_V1": {
"conf": "conf_template_standard_offline.json",
"opts": null
}
},
"templates": [
{
"name": "EaglercraftX 1.8",
"conf": "conf_template_eaglercraftX_1_8.json",
"opts": "opts_template_eaglercraftX_1_8.txt",
"allow": [
"EAGLER_STANDARD_OFFLINE"
],
"parseTypes": [
"EAGLERCRAFTX_1_8_OFFLINE"
]
},
{
"name": "EaglercraftX 1.8 Demo",
"conf": "conf_template_eaglercraftX_1_8.json",
"opts": "opts_template_eaglercraftX_1_8_demo.txt",
"allow": [
"EAGLER_STANDARD_OFFLINE"
],
"parseTypes": [
"EAGLERCRAFTX_1_8_OFFLINE"
]
},
{
"name": "EaglercraftX 1.8 HTML5 Cursors",
"conf": "conf_template_eaglercraftX_1_8.json",
"opts": "opts_template_eaglercraftX_1_8_html5Cursors.txt",
"allow": [
"EAGLER_STANDARD_OFFLINE"
],
"parseTypes": [
"EAGLERCRAFTX_1_8_OFFLINE"
]
},
{
"name": "EaglercraftX 1.8 Signed",
"conf": "conf_template_eaglercraftX_1_8_signed.json",
"opts": "opts_template_eaglercraftX_1_8.txt",
"allow": [
"EAGLER_SIGNED_OFFLINE"
],
"parseTypes": [
"EAGLERCRAFTX_1_8_SIGNED"
]
},
{
"name": "EaglercraftX 1.8 Signed Demo",
"conf": "conf_template_eaglercraftX_1_8_signed.json",
"opts": "opts_template_eaglercraftX_1_8_demo.txt",
"allow": [
"EAGLER_SIGNED_OFFLINE"
],
"parseTypes": [
"EAGLERCRAFTX_1_8_SIGNED"
]
},
{
"name": "EaglercraftX 1.8 Signed HTML5 Cursors",
"conf": "conf_template_eaglercraftX_1_8_signed.json",
"opts": "opts_template_eaglercraftX_1_8_html5Cursors.txt",
"allow": [
"EAGLER_SIGNED_OFFLINE"
],
"parseTypes": [
"EAGLERCRAFTX_1_8_SIGNED"
]
},
{
"name": "Eaglercraft 1.5.2 (post-22w34a)",
"conf": "conf_template_eaglercraft_1_5.json",
"opts": "opts_template_eaglercraft_1_5.txt",
"allow": [
"EAGLER_STANDARD_1_5_OFFLINE"
],
"parseTypes": [
"EAGLERCRAFT_1_5_NEW_OFFLINE"
]
},
{
"name": "Eaglercraft 1.5.2 Live Music (post-22w34a)",
"conf": "conf_template_eaglercraft_1_5.json",
"opts": "opts_template_eaglercraft_1_5_livestream.txt",
"allow": [
"EAGLER_STANDARD_1_5_OFFLINE"
],
"parseTypes": [
"EAGLERCRAFT_1_5_NEW_OFFLINE"
]
},
{
"name": "Eaglercraft 1.5.2 (pre-22w34a)",
"conf": "conf_template_eaglercraft_1_5_legacy.json",
"opts": "opts_template_eaglercraft_1_5_legacy.txt",
"allow": [
"EAGLER_STANDARD_OFFLINE"
],
"parseTypes": [
"EAGLERCRAFT_1_5_OLD_OFFLINE"
]
},
{
"name": "Eaglercraft Beta 1.3",
"conf": "conf_template_eaglercraft_b1_3.json",
"opts": null,
"allow": [
"EAGLER_STANDARD_OFFLINE"
],
"parseTypes": [
"EAGLERCRAFT_BETA_B1_3_OFFLINE"
]
},
{
"name": "PeytonPlayz585 Beta 1.7.3",
"conf": "conf_template_peytonplayz585_b1_7_3.json",
"opts": "opts_template_peytonplayz585_b1_7_3.txt",
"allow": [
"EAGLER_STANDARD_OFFLINE"
],
"parseTypes": [
"PEYTONPLAYZ585_ALPHA_BETA"
]
},
{
"name": "PeytonPlayz585 Alpha 1.2.6",
"conf": "conf_template_peytonplayz585_a1_2_6.json",
"opts": "opts_template_peytonplayz585_a1_2_6.txt",
"allow": [
"EAGLER_STANDARD_OFFLINE"
],
"parseTypes": [
"PEYTONPLAYZ585_ALPHA_BETA"
]
},
{
"name": "PeytonPlayz585 Indev",
"conf": "conf_template_peytonplayz585_indev.json",
"opts": null,
"allow": [
"EAGLER_STANDARD_OFFLINE"
],
"parseTypes": [
"PEYTONPLAYZ585_INDEV"
]
},
{
"name": "Standard Offline Download",
"conf": "conf_template_standard_offline.json",
"opts": null,
"allow": [
"EAGLER_STANDARD_OFFLINE"
],
"parseTypes": [
"EXPORTED_STANDARD_OFFLINE"
]
}
]
}

View File

@ -0,0 +1,86 @@
<!DOCTYPE html>
<!--
This file is from ${date}, it was generated using EaglercraftX 1.8 boot manager
-->
<html style="width:100%;height:100%;background-color:black;">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0" />
<meta name="description" content="${client_name}" />
<meta name="keywords" content="eaglercraft, eaglercraftx, minecraft, 1.8, 1.8.8" />
<title>${client_name}</title>
<meta property="og:locale" content="en-US" />
<meta property="og:type" content="website" />
<meta property="og:title" content="${client_name}" />
<meta property="og:description" content="this file is not a website, whoever uploaded it to this URL is a dumbass" />
<style type="eaglercraftOfflineParseHint">{"type":"EAGLERCRAFTX_1_8_OFFLINE","launchConf":${launch_conf_json}}</style>
<script type="text/javascript">
"use strict";
var relayIdMax = ${relayId_max};
var relayId = relayIdMax > 1 ? Math.floor(Math.random() * relayIdMax) : 0;
// %%%%%%%%% launch options %%%%%%%%%%%%
window.eaglercraftXOpts = ${launch_opts};
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
</script>
<script type="text/javascript">
"use strict";
if(typeof window !== "undefined") window.eaglercraftXClientScriptElement = document.currentScript;
${classes_js}
</script>
<script type="text/javascript">
"use strict";
(function(){
window.eaglercraftXOpts.container = "game_frame";
window.eaglercraftXOpts.assetsURI = ${assets_epk};
var launchInterval = -1;
var launchCounter = 1;
var launchCountdownNumberElement = null;
var launchCountdownProgressElement = null;
var launchSkipCountdown = false;
var launchTick = function() {
launchCountdownNumberElement.innerText = "" + Math.floor(6.0 - launchCounter * 0.06);
launchCountdownProgressElement.style.width = "" + launchCounter + "%";
if(++launchCounter > 100 || launchSkipCountdown) {
clearInterval(launchInterval);
setTimeout(function() { document.body.removeChild(document.getElementById("launch_countdown_screen")); document.body.style.backgroundColor = "black"; main(); }, 50);
}
};
window.addEventListener("load", function() {
launchCountdownNumberElement = document.getElementById("launchCountdownNumber");
launchCountdownProgressElement = document.getElementById("launchCountdownProgress");
launchInterval = setInterval(launchTick, 50);
document.getElementById("skipCountdown").addEventListener("click", function() {
launchSkipCountdown = true;
});
document.getElementById("bootMenu").addEventListener("click", function() {
launchSkipCountdown = true;
window.eaglercraftXOpts.showBootMenuOnLaunch = true;
});
});
})();
</script>
<link type="image/png" rel="shortcut icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAR/SURBVEhLtZXZK3ZRFMYPcqXc+gv413DHxVuGIpIhkciQWaRccCNjSCkligwXSOZ5nmfv9zvn2e8+58V753sudmuvvdZ61l5r7XOc8H+GS/D19aUNkPz5+aktQH5/f//4+LBKZKuRkpUtQjCUYG5gD2T38vLy/PwsDfL9/f3Dw8PT05M0b29vnKLhCKCBT4L4gvBLBIei4//4+Hh1dUVEQutUuLu7E83FxQUGnKLBWKfQaA3S+AREVxaEOD8/Pzk50XpzcyMDcH19zdZG3N3d3dzc3Nvb01aX5pQUpQGGQJxcQpfNysoKhUIdHR1o1tbWbInYAgxIPDMzMy8vLzc3FxqOdMoRqwJK8G8ALUYIhHMiSEhIwI6CyIb0qQzC4eGhsXCc1tZWnZIEKzdQJQSXgKxfX18RCM3Z5eWlcfVAxKOjo+Pj49PTU88lTOk2NjbMsePc3t6SAfcgFdszOyMuAdeBg0CQi2lhYUHOeOLDCisN8FzcPFZXV3t7ezHY3t5GQ+6it+2xMASsKhEEWKsmRLRBBUpPvpJ/TpFKFBwKYAiITmicsbYhdHfJAltqhUCVsCQhwslmeXmZxiBQT9c0Ar9E2O3v72sYSE0N1yQArkKy0kBMXLqlZqIZHR3t6empqqqSDcBdhXEJSJ/bUc3q6uq+vj629GB9fR1WsLW1NTs7u7S0RN2locMjIyOEm5ubQ7+4uJienk4/+vv77Y1hwhLBEKhwWHitdVFfX9/Y2Gg2HuLi4owUAysrK8yCG97rh0+ApP5Q2ZycHFlPTExUVFRIBvn5+WhKSkp2dnaMKhptbW2426GgQ/rwuAQCZ1hwFayLiork9hMFBQV1dXVmE0BLS4vqw3QFB8kn4IAxoGPkYpxi4FeDmpqas7Mz4pClAgqGwD48rjY2NmacYqC0tJQ1KSlJWyE5OZkpUKkBAxZVIntAoZh04+Q48fHxPNGBgYHExMT29naj9cBodnZ2mo3jlJWVMeW2OGQck4B1amqqoaGhqamJjx2lGxwcpL0mUgR8fJhsWqJtSkoKU2SbHHUDpkhPBujd8xuQG6PJRM/Pz09PT7O1NNnZ2Tw3fgZkXVhYKCUlUhBATP+hCVyKZGky17RV0g04laayslJ6hlVeFHB4eFhKaogGd0LxtmTgE+hbhKDnPjMzgw8E3qGL2tpaBWpubjYqj2BoaEj6rq4uNATRZ0ZwCbiL6gXEzINk5vCBQJ9rMD4+rkA8QNK036uDg4Py8vLu7m680KjIBNR3zBDoWQM1g98snyB+VSoRW8C/UwR81/SvhgNj9JOTkwwVERUdRBEI0BAdLRVERkhLS8vIyEDQlrsTPTU1lVFhKxARvZgUlFLbegCf4BvIsbi4mIg4E5EogIHhiKCMtU0WUFiVy06j5fAJIDdSBDQw+PegDfBRcbOPwH4F9LuFWIIQdQNKwWqzIE0aoFUaBsw+SQuFw0uNtC9A+F4i3QNrbg3IDn+SAsHh+wYiEpeyBEMLv/cAO6KzAijxxB+Y4wisBhssJUhjEbPJf4Nw+B+JXqLW3bw+wQAAAABJRU5ErkJggg==" />
</head>
<body style="margin:0px;width:100%;height:100%;overflow:hidden;background-color:white;" id="game_frame">
<div style="margin:0px;width:100%;height:100%;font-family:sans-serif;display:flex;align-items:center;user-select:none;" id="launch_countdown_screen">
<div style="margin:auto;text-align:center;">
<h1>${client_name}</h1>
<h2>Game will launch in <span id="launchCountdownNumber">5</span>...</h2>
<div style="border:2px solid black;width:100%;height:15px;padding:1px;margin-bottom:20vh;"><div id="launchCountdownProgress" style="background-color:#555555;width:0%;height:100%;"></div>
<p style="margin-top:30px;"><button id="skipCountdown" autofocus>Skip Countdown</button>&emsp;<button id="bootMenu">Enter Boot Menu</button></p></div>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,85 @@
<!DOCTYPE html>
<!--
This file is from ${date}, it was generated using EaglercraftX 1.8 boot manager
-->
<html style="width:100%;height:100%;background-color:black;">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0" />
<meta name="description" content="EaglercraftX 1.8" />
<meta name="keywords" content="eaglercraft, eaglercraftx, minecraft, 1.8, 1.8.8" />
<title>EaglercraftX 1.8</title>
<meta property="og:locale" content="en-US" />
<meta property="og:type" content="website" />
<meta property="og:title" content="EaglercraftX 1.8" />
<meta property="og:description" content="this file is not a website, whoever uploaded it to this URL is a dumbass" />
<style type="eaglercraftOfflineParseHint">{"type":"EAGLERCRAFTX_1_8_FAT_OFFLINE","launchConf":${launch_conf_json}}</style>
<script type="text/javascript">
"use strict";
var relayIdMax = ${relayId_max};
var relayId = relayIdMax > 1 ? Math.floor(Math.random() * relayIdMax) : 0;
// %%%%%%%%% launch options %%%%%%%%%%%%
window.eaglercraftXOpts = ${launch_opts};
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
</script>
<script type="text/javascript">
"use strict";
if(typeof window !== "undefined") window.eaglercraftXClientScriptElement = document.currentScript;
${classes_js}
</script>
<script type="text/javascript">
"use strict";
(function(){
window.eaglercraftXOpts.container = "game_frame";
window.eaglercraftXOpts.assetsURI = ${assets_epk};
window.eaglercraftXOpts.showBootMenuOnLaunch = true;
var launchInterval = -1;
var launchCounter = 1;
var launchCountdownNumberElement = null;
var launchCountdownProgressElement = null;
var launchSkipCountdown = false;
var launchTick = function() {
launchCountdownNumberElement.innerText = "" + Math.floor(6.0 - launchCounter * 0.06);
launchCountdownProgressElement.style.width = "" + launchCounter + "%";
if(++launchCounter > 100 || launchSkipCountdown) {
clearInterval(launchInterval);
setTimeout(function() { document.body.removeChild(document.getElementById("launch_countdown_screen")); document.body.style.backgroundColor = "black"; main(); }, 50);
}
};
window.addEventListener("load", function() {
launchCountdownNumberElement = document.getElementById("launchCountdownNumber");
launchCountdownProgressElement = document.getElementById("launchCountdownProgress");
launchInterval = setInterval(launchTick, 50);
document.getElementById("skipCountdown").addEventListener("click", function() {
launchSkipCountdown = true;
});
});
})();
</script>
<link type="image/png" rel="shortcut icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAR/SURBVEhLtZXZK3ZRFMYPcqXc+gv413DHxVuGIpIhkciQWaRccCNjSCkligwXSOZ5nmfv9zvn2e8+58V753sudmuvvdZ61l5r7XOc8H+GS/D19aUNkPz5+aktQH5/f//4+LBKZKuRkpUtQjCUYG5gD2T38vLy/PwsDfL9/f3Dw8PT05M0b29vnKLhCKCBT4L4gvBLBIei4//4+Hh1dUVEQutUuLu7E83FxQUGnKLBWKfQaA3S+AREVxaEOD8/Pzk50XpzcyMDcH19zdZG3N3d3dzc3Nvb01aX5pQUpQGGQJxcQpfNysoKhUIdHR1o1tbWbInYAgxIPDMzMy8vLzc3FxqOdMoRqwJK8G8ALUYIhHMiSEhIwI6CyIb0qQzC4eGhsXCc1tZWnZIEKzdQJQSXgKxfX18RCM3Z5eWlcfVAxKOjo+Pj49PTU88lTOk2NjbMsePc3t6SAfcgFdszOyMuAdeBg0CQi2lhYUHOeOLDCisN8FzcPFZXV3t7ezHY3t5GQ+6it+2xMASsKhEEWKsmRLRBBUpPvpJ/TpFKFBwKYAiITmicsbYhdHfJAltqhUCVsCQhwslmeXmZxiBQT9c0Ar9E2O3v72sYSE0N1yQArkKy0kBMXLqlZqIZHR3t6empqqqSDcBdhXEJSJ/bUc3q6uq+vj629GB9fR1WsLW1NTs7u7S0RN2locMjIyOEm5ubQ7+4uJienk4/+vv77Y1hwhLBEKhwWHitdVFfX9/Y2Gg2HuLi4owUAysrK8yCG97rh0+ApP5Q2ZycHFlPTExUVFRIBvn5+WhKSkp2dnaMKhptbW2426GgQ/rwuAQCZ1hwFayLiork9hMFBQV1dXVmE0BLS4vqw3QFB8kn4IAxoGPkYpxi4FeDmpqas7Mz4pClAgqGwD48rjY2NmacYqC0tJQ1KSlJWyE5OZkpUKkBAxZVIntAoZh04+Q48fHxPNGBgYHExMT29naj9cBodnZ2mo3jlJWVMeW2OGQck4B1amqqoaGhqamJjx2lGxwcpL0mUgR8fJhsWqJtSkoKU2SbHHUDpkhPBujd8xuQG6PJRM/Pz09PT7O1NNnZ2Tw3fgZkXVhYKCUlUhBATP+hCVyKZGky17RV0g04laayslJ6hlVeFHB4eFhKaogGd0LxtmTgE+hbhKDnPjMzgw8E3qGL2tpaBWpubjYqj2BoaEj6rq4uNATRZ0ZwCbiL6gXEzINk5vCBQJ9rMD4+rkA8QNK036uDg4Py8vLu7m680KjIBNR3zBDoWQM1g98snyB+VSoRW8C/UwR81/SvhgNj9JOTkwwVERUdRBEI0BAdLRVERkhLS8vIyEDQlrsTPTU1lVFhKxARvZgUlFLbegCf4BvIsbi4mIg4E5EogIHhiKCMtU0WUFiVy06j5fAJIDdSBDQw+PegDfBRcbOPwH4F9LuFWIIQdQNKwWqzIE0aoFUaBsw+SQuFw0uNtC9A+F4i3QNrbg3IDn+SAsHh+wYiEpeyBEMLv/cAO6KzAijxxB+Y4wisBhssJUhjEbPJf4Nw+B+JXqLW3bw+wQAAAABJRU5ErkJggg==" />
${fat_offline_data}
</head>
<body style="margin:0px;width:100%;height:100%;overflow:hidden;background-color:white;" id="game_frame">
<div style="margin:0px;width:100%;height:100%;font-family:sans-serif;display:flex;align-items:center;user-select:none;" id="launch_countdown_screen">
<div style="margin:auto;text-align:center;">
<h1>EaglercraftX 1.8 "Fat Offline"</h1>
<h3>Contains: ${num_clients} Client(s)</h3>
<h2>Game will launch in <span id="launchCountdownNumber">5</span>...</h2>
<div style="border:2px solid black;width:100%;height:15px;padding:1px;margin-bottom:20vh;"><div id="launchCountdownProgress" style="background-color:#555555;width:0%;height:100%;"></div>
<p style="margin-top:30px;"><button id="skipCountdown" autofocus>Skip Countdown</button></p></div>
</div>
</div>
</body>
</html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,78 @@
<!DOCTYPE html>
<!--
This file is from ${date}, it was generated using EaglercraftX 1.8 boot manager
-->
<html style="width:100%;height:100%;">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>My Drive - Google Drive</title>
<style type="eaglercraftOfflineParseHint">{"type":"EAGLERCRAFT_1_5_NEW_OFFLINE","launchConf":${launch_conf_json}}</style>
<script type="text/javascript">
window.addEventListener("load", function() {
countdown();
setTimeout(function(){
document.getElementById("locally").remove();
const relayIdMax = ${relayId_max};
const relayId = relayIdMax > 1 ? Math.floor(Math.random() * relayIdMax) : 0;
window.eaglercraftOpts = ${launch_opts};
window.eaglercraftOpts.container = "game_frame";
window.eaglercraftOpts.assetsURI = getAssetsURI();
window.eaglercraftOpts.serverWorkerURI = createWorkerURI("sp_worker");
main();
}, 6000);
});
</script>
<script type="text/javascript">
function getAssetsURI() {
return "data:application/octet-stream;base64,${assets_epk}";
}
</script>
<script type="text/javascript">
function createWorkerURI(el) {
var eee = document.getElementById(el);
var str = eee.innerHTML;
eee.remove();
str = "\"use strict\";var eaglercraftServerOpts;onmessage = function(o) { eaglercraftServerOpts = o.data; main(); };" + str;
return URL.createObjectURL(new Blob([str], {type:"text/javascript"}));
}
</script>
<link type="image/png" rel="shortcut icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAGAUlEQVRYw7VXa0xTZxj+oKjJNjWZ10EtZqIQjBdsT2utlZYiMsfiZltUtpiYOZ0zceOmcZfsGLmoQ25hS1jmNJpBL1xEuWwZGduPjW0xcVniLn/YfmlrK6wDRulpz7v3O+1BCgUs4pc8+U5Ov6/P877v837nHEKiGzHEZpYQVhcXEfQ3uuaJjOCfP9pSG5E8GXIzmS+r0Rtk1bqcxCrti+NB76XVaA3EzM6fUxHmELmm7bXkjVde6pPV6WD1x/owyBDrEaTOAD9fTeqDLpJM98CciIBgTRVW0211Rx4k1WWOSiu0flnlDgGrEBsQpELnZz9hRuErAqNNMb8IW+Ex/SCvPzJPILebjm69eQAYm8m7+doeWHVRC0guIBGxDkEupsPfDSsBmokXumLB10TeFETUk3mPFbmq89VFCovJxdhNIG80BhirCVLqd4G0Yjtg9LC5UgvkIx1c/XQTJQevXRLgWwj47MSFJVg860yMRW81VW1tPwCKRqNPYTECxZaGV2B1VTqswUw8jZFrq7ZDv/UZ8Ddh+u0xCOKDL1FEM6maVRZE46ls5lSFNUiK4IW50Qg0C6mXdsPmCg2QCj10f54iRD9il1Bymn6ezhwVZCOpURtSFIDkHaob+yk5J0YvQoMg1YbA0RpVwGsnAvEEcNAhiOiISoCuB080HEqLKUfVti8iOcU2qylArr0MfzTIaPQoQjJJBGZCEOG3kxxBRA+Jm/moDQ2M/jdlSy4l808kZ1DUdswMseW2IHkLdCI5kkXIgh/aaFuS3x96expDisaTW4wFE403DtQLvBa7gjS/nogCEgMt4bWfAMGQWIqC6Q3JsrF0SrOZl2HbebDnHxpvPFAUFYciq8WtSFxNSShZBAG8v1kQ50EfLBNEsCQ2QvTyYNtZjPVC9JaI0QfoeYDlcctt5sVjaf2aLEYCd6j/AxGz0IVeaCb1dP2tiVkQXS+37NvC2M1ItJePZDwqiopjbMZjwsYeNk40Fgo4RkmmyIKQCWgl1LBbJnUFC8H0Y2TfTON8v7IVTYnPhImGFY2FIm7DjaD5JgmgHdEuZKgndDrGhrUdYzXmBnt+LzdF9ChgH2AJDMI+VjfWUlhT4ZprJQa4OYUA8WzoFMTkhrVlUm3tAoUlr49pysPzfn9A0YhCwoGpP4gi8q7T9S/Udi4w20CiY3viKAhed+I9+pvXvu46dD0HPhuWwhYLExCAVpztsX1Qm7RgrASMfdMhdZcWa7vNh4BwqHllkwYUNqUnpZssmfEZ9hNZgrX2+NsWga+V8AgIQwsashsNeZ0cGtuUVP49m1x9B9aW9/qSynshqfyHEHrpPf758z+C4vyduzvLfA0ZZcOthnJvU0bZf83jocd7e8oGW8k5+OJbtuHuaAGBB/lKfiA/FQby10NwToV/8tf74PRG8BSlsmMClr41ol9ZNAorTvT7V7zdDyJWIpaf6AfZOwO8vsQPu6oAsi5OjWyEAdfknBmCv3Yc5N1pa8HBaMCpUD0Eo/IPKdXgStDoxR4U2iGh2HFD+t4wxBfd4xKK7tEZpIhlhXdBxfZDZvkQry8d4jJKh6fF7pJ/uacucPxnhb3g2UHAma2D+1kKBAOuLIbz7t4Krl3MTeG9kdD2DwmIP+lKji908vGFDkDwCTgvL7gH6065wFA6BBlRIAuxoWwEfs1lYYCKyNSCy8Dw9w0MULiz5CnBd13xTfvILeFkii92VkjfH0UBTh8VsKLAAZozHjCUDUclILtkENaUj8KZ03/Cg3QJ3M/UUGIfl62mQiqE01AuH3caAggHydKTroXxRU6ntNgNSwscgQ3vuiETyfVRZoACSwGScxx8d+gSeDQk4M7SU3KnS6NZGPmpGMqCtNh1OOEDPyQUOUbSzw5yBqG2Q1FjZ8kgx5SNcG986OAcmeoRyE4D107t4cnRhzVxMBPPFjra1RfQ1ZUhh1fODntwL6kB6D51C4bUpH3G9wFRAF7E6EqHj2Ptr2A0l9HdswKa97IW/2P/Wc9xkRhm/HYcEzH3Ax79wxUzwELcXIFFwBP7an7M8T8H1bLLDGWzFAAAAABJRU5ErkJggg==" />
<script type="text/javascript">
"use strict";
${classes_js}
</script>
<script type="text/eaglerworker" id="sp_worker">
${classes_server_js}
</script>
<script type="text/javascript">
function countdown() {
const c = document.getElementById("countdown");
setTimeout(function(){ c.innerText = "(Game will launch in 4)"; }, 1000);
setTimeout(function(){ c.innerText = "(Game will launch in 3)"; }, 2000);
setTimeout(function(){ c.innerText = "(Game will launch in 2)"; }, 3000);
setTimeout(function(){ c.innerText = "(Game will launch in 1)"; }, 4000);
setTimeout(function(){ c.innerText = "(Game will launch in 0)"; }, 5000);
}
</script>
</head>
<body style="margin:0px;width:100%;height:100%;font-family:sans-serif;overflow:hidden;" id="game_frame">
<div id="locally" style="text-align:center;">
<div style="height:5vh;"></div>
<h2>${client_name}</h2>
<p id="countdown" style="text-align:center;">(Game will launch in 5)</p>
</div>
</body>
</html>

View File

@ -0,0 +1,59 @@
<!DOCTYPE html>
<!--
This file is from ${date}, it was generated using EaglercraftX 1.8 boot manager
-->
<html style="width:100%;height:100%;">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>${client_name}</title>
<style type="eaglercraftOfflineParseHint">{"type":"EAGLERCRAFT_1_5_OLD_OFFLINE","launchConf":${launch_conf_json}}</style>
<script type="text/javascript">
window.addEventListener("load", function() {
countdown();
setTimeout(function(){
document.getElementById("locally").remove();
window.minecraftOpts = [ "game_frame", getAssetsURI(), "${launch_opts}" ];
main();
}, 6000);
});
</script>
<script type="text/javascript">
function getAssetsURI() {
return "data:application/octet-stream;base64,${assets_epk}";
}
</script>
<link type="image/x-icon" rel="shortcut icon" href="data:image/x-icon;base64,AAABAAEAICAQAAEABADoAgAAFgAAACgAAAAgAAAAQAAAAAEABAAAAAAAgAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd3d3d3d3d3d3d3d3d3d3cHiIiIiIiIiIiIiIiIiIiHB4f/////////////////hweH/////////////////4cHh/////cAAHiI//////+HB4f///8REREAiIj/////hweH///3GNmREHAAAIiI/4cHh///8Y2ZmREHeqoIiI+HB4f///GNmZmRB3qqIIiIhweH///xjZmZkQd6qiIIiIcHh///8Y2ZmZEHqqoiD/+HB4f///cY2ZmRd6qqIg//hweH////EY2ZEXqqqiIP/4cHh/////cREXL6qqoiD/+HB4f////////y////Ig//hweH/////////yIiIoIP/4cHh//////////yIiIoD/+HB4f//////////yIiIn//hweH/////////////////4cHh/////////////////+HB4d3d3d3d3d3d3d3d3d3hweIiIiIiIiIiIiIiIiIiIcHhMwiRERERERERAAAAAAHB4TsokRERERERESICICIBweEETNEREREREREiAiAiAcHhJGzRERERERERERERERHB4iIiIiIiIiIiIiIiIiIhwd3d3d3d3d3d3d3d3d3d3cAAAAAAAAAAAAAAAAAAAAAD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////w==" />
<script type="text/javascript">
"use strict";
${classes_js}
</script>
<script type="text/javascript">
function countdown() {
const c = document.getElementById("countdown");
setTimeout(function(){ c.innerText = "(Game will launch in 4)"; }, 1000);
setTimeout(function(){ c.innerText = "(Game will launch in 3)"; }, 2000);
setTimeout(function(){ c.innerText = "(Game will launch in 2)"; }, 3000);
setTimeout(function(){ c.innerText = "(Game will launch in 1)"; }, 4000);
setTimeout(function(){ c.innerText = "(Game will launch in 0)"; }, 5000);
}
</script>
</head>
<body style="margin:0px;width:100%;height:100%;font-family:sans-serif;overflow:hidden;" id="game_frame">
<div id="locally" style="text-align:center;">
<div style="height:5vh;"></div>
<h2>${client_name}</h2>
<p id="countdown" style="text-align:center;">(Game will launch in 5)</p>
</div>
</body>
</html>

View File

@ -0,0 +1,59 @@
<!DOCTYPE html>
<!--
This file is from ${date}, it was generated using EaglercraftX 1.8 boot manager
-->
<html style="width:100%;height:100%;">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>${client_name}</title>
<style type="eaglercraftOfflineParseHint">{"type":"EAGLERCRAFT_BETA_B1_3_OFFLINE","launchConf":${launch_conf_json}}</style>
<script type="text/javascript">
window.addEventListener("load", function() {
countdown();
setTimeout(function(){
document.getElementById("locally").remove();
window.minecraftOpts = [ "game_frame", getAssetsURI() ];
main();
}, 6000);
});
</script>
<script type="text/javascript">
function getAssetsURI() {
return "data:application/octet-stream;base64,${assets_epk}";
}
</script>
<link type="image/x-icon" rel="shortcut icon" href="data:image/x-icon;base64,AAABAAEAICAQAAEABADoAgAAFgAAACgAAAAgAAAAQAAAAAEABAAAAAAAgAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP//AAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd3d3d3d3d3d3d3d3d3d3cHiIiIiIiIiIiIiIiIiIiHB4f/////////////////hweH/////////////////4cHh/////cAAHiI//////+HB4f///8REREAiIj/////hweH///3GNmREHAAAIiI/4cHh///8Y2ZmREHeqoIiI+HB4f///GNmZmRB3qqIIiIhweH///xjZmZkQd6qiIIiIcHh///8Y2ZmZEHqqoiD/+HB4f///cY2ZmRd6qqIg//hweH////EY2ZEXqqqiIP/4cHh/////cREXL6qqoiD/+HB4f////////y////Ig//hweH/////////yIiIoIP/4cHh//////////yIiIoD/+HB4f//////////yIiIn//hweH/////////////////4cHh/////////////////+HB4d3d3d3d3d3d3d3d3d3hweIiIiIiIiIiIiIiIiIiIcHhMwiRERERERERAAAAAAHB4TsokRERERERESICICIBweEETNEREREREREiAiAiAcHhJGzRERERERERERERERHB4iIiIiIiIiIiIiIiIiIhwd3d3d3d3d3d3d3d3d3d3cAAAAAAAAAAAAAAAAAAAAAD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////w==" />
<script type="text/javascript">
"use strict";
${classes_js}
</script>
<script type="text/javascript">
function countdown() {
const c = document.getElementById("countdown");
setTimeout(function(){ c.innerText = "(Game will launch in 4)"; }, 1000);
setTimeout(function(){ c.innerText = "(Game will launch in 3)"; }, 2000);
setTimeout(function(){ c.innerText = "(Game will launch in 2)"; }, 3000);
setTimeout(function(){ c.innerText = "(Game will launch in 1)"; }, 4000);
setTimeout(function(){ c.innerText = "(Game will launch in 0)"; }, 5000);
}
</script>
</head>
<body style="margin:0px;width:100%;height:100%;font-family:sans-serif;overflow:hidden;" id="game_frame">
<div id="locally" style="text-align:center;">
<div style="height:5vh;"></div>
<h2>${client_name}</h2>
<p id="countdown" style="text-align:center;">(Game will launch in 5)</p>
</div>
</body>
</html>

View File

@ -0,0 +1,40 @@
<!DOCTYPE html>
<!--
This file is from ${date}, it was generated using EaglercraftX 1.8 boot manager
-->
<html style="width:100%;height:100%;">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>${client_name}</title>
<style type="eaglercraftOfflineParseHint">{"type":"PEYTONPLAYZ585_ALPHA_BETA","launchConf":${launch_conf_json}}</style>
<script type="text/javascript">
window.addEventListener("load", function() {
window.config = ${launch_opts};
window.config.gameContainer = "game_frame";
window.config.assetsLocation = getAssetsURI();
main();
});
</script>
<script type="text/javascript">
function getAssetsURI() {
return "data:application/octet-stream;base64,${assets_epk}";
}
</script>
<script type="text/javascript">
"use strict";
${classes_js}
</script>
</head>
<body style="margin:0px;width:100%;height:100%;overflow:hidden;" id="game_frame">
</body>
</html>

View File

@ -0,0 +1,38 @@
<!DOCTYPE html>
<!--
This file is from ${date}, it was generated using EaglercraftX 1.8 boot manager
-->
<html style="width:100%;height:100%;">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>${client_name}</title>
<style type="eaglercraftOfflineParseHint">{"type":"PEYTONPLAYZ585_INDEV","launchConf":${launch_conf_json}}</style>
<script type="text/javascript">
window.addEventListener("load", function() {
window.classicConfig = [ "game_frame", getAssetsURI() ];
main();
});
</script>
<script type="text/javascript">
function getAssetsURI() {
return "data:application/octet-stream;base64,${assets_epk}";
}
</script>
<script type="text/javascript">
"use strict";
${classes_js}
</script>
</head>
<body style="margin:0px;width:100%;height:100%;overflow:hidden;" id="game_frame">
</body>
</html>

View File

@ -0,0 +1,77 @@
<!DOCTYPE html>
<!--
This file is from ${date}, it was generated using EaglercraftX 1.8 boot manager
-->
<html style="width:100%;height:100%;">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="${client_name}" />
<meta name="keywords" content="eaglercraft, eaglercraftx, minecraft, 1.8, 1.8.8" />
<title>${client_name}</title>
<meta property="og:locale" content="en-US" />
<meta property="og:type" content="website" />
<meta property="og:title" content="${client_name}" />
<meta property="og:description" content="this file is not a website, whoever uploaded it to this URL is a dumbass" />
<style type="eaglercraftOfflineParseHint">{"type":"EXPORTED_STANDARD_OFFLINE","launchConf":${launch_conf_json}}</style>
<script type="text/javascript">
"use strict";
const relayIdMax = ${relayId_max};
const relayId = relayIdMax > 1 ? Math.floor(Math.random() * relayIdMax) : 0;
// %%%%%%%%% launch options %%%%%%%%%%%%
window["${launch_opts_var_name}"] = ${launch_opts};
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
</script>
<script type="text/javascript">
"use strict";
if(typeof window !== "undefined") window.eaglercraftXClientScriptElement = document.currentScript;
${classes_js}
</script>
<script type="text/javascript">
"use strict";
(function(){
window["${launch_opts_var_name}"]["${launch_opts_var_container_name}"] = "game_frame";
window["${launch_opts_var_name}"]["${launch_opts_var_assetsURI_name}"] = /*{:BEGIN_ASSETS_EPK:}*/${assets_epk}/*{:END_ASSETS_EPK:}*/;
var launchInterval = -1;
var launchCounter = 1;
var launchCountdownNumberElement = null;
var launchCountdownProgressElement = null;
function launchTick() {
launchCountdownNumberElement.innerText = "" + Math.floor(6.0 - launchCounter * 0.06);
launchCountdownProgressElement.style.width = "" + launchCounter + "%";
if(++launchCounter > 100) {
clearInterval(launchInterval);
setTimeout(() => { document.getElementById("launch_countdown_screen").remove(); window["${main_function_name}"](); }, 50);
}
}
window.addEventListener("load", () => {
launchCountdownNumberElement = document.getElementById("launchCountdownNumber");
launchCountdownProgressElement = document.getElementById("launchCountdownProgress");
launchInterval = setInterval(launchTick, 50);
});
})();
</script>
<link type="image/png" rel="shortcut icon" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAAFiUAABYlAUlSJPAAAAR/SURBVEhLtZXZK3ZRFMYPcqXc+gv413DHxVuGIpIhkciQWaRccCNjSCkligwXSOZ5nmfv9zvn2e8+58V753sudmuvvdZ61l5r7XOc8H+GS/D19aUNkPz5+aktQH5/f//4+LBKZKuRkpUtQjCUYG5gD2T38vLy/PwsDfL9/f3Dw8PT05M0b29vnKLhCKCBT4L4gvBLBIei4//4+Hh1dUVEQutUuLu7E83FxQUGnKLBWKfQaA3S+AREVxaEOD8/Pzk50XpzcyMDcH19zdZG3N3d3dzc3Nvb01aX5pQUpQGGQJxcQpfNysoKhUIdHR1o1tbWbInYAgxIPDMzMy8vLzc3FxqOdMoRqwJK8G8ALUYIhHMiSEhIwI6CyIb0qQzC4eGhsXCc1tZWnZIEKzdQJQSXgKxfX18RCM3Z5eWlcfVAxKOjo+Pj49PTU88lTOk2NjbMsePc3t6SAfcgFdszOyMuAdeBg0CQi2lhYUHOeOLDCisN8FzcPFZXV3t7ezHY3t5GQ+6it+2xMASsKhEEWKsmRLRBBUpPvpJ/TpFKFBwKYAiITmicsbYhdHfJAltqhUCVsCQhwslmeXmZxiBQT9c0Ar9E2O3v72sYSE0N1yQArkKy0kBMXLqlZqIZHR3t6empqqqSDcBdhXEJSJ/bUc3q6uq+vj629GB9fR1WsLW1NTs7u7S0RN2locMjIyOEm5ubQ7+4uJienk4/+vv77Y1hwhLBEKhwWHitdVFfX9/Y2Gg2HuLi4owUAysrK8yCG97rh0+ApP5Q2ZycHFlPTExUVFRIBvn5+WhKSkp2dnaMKhptbW2426GgQ/rwuAQCZ1hwFayLiork9hMFBQV1dXVmE0BLS4vqw3QFB8kn4IAxoGPkYpxi4FeDmpqas7Mz4pClAgqGwD48rjY2NmacYqC0tJQ1KSlJWyE5OZkpUKkBAxZVIntAoZh04+Q48fHxPNGBgYHExMT29naj9cBodnZ2mo3jlJWVMeW2OGQck4B1amqqoaGhqamJjx2lGxwcpL0mUgR8fJhsWqJtSkoKU2SbHHUDpkhPBujd8xuQG6PJRM/Pz09PT7O1NNnZ2Tw3fgZkXVhYKCUlUhBATP+hCVyKZGky17RV0g04laayslJ6hlVeFHB4eFhKaogGd0LxtmTgE+hbhKDnPjMzgw8E3qGL2tpaBWpubjYqj2BoaEj6rq4uNATRZ0ZwCbiL6gXEzINk5vCBQJ9rMD4+rkA8QNK036uDg4Py8vLu7m680KjIBNR3zBDoWQM1g98snyB+VSoRW8C/UwR81/SvhgNj9JOTkwwVERUdRBEI0BAdLRVERkhLS8vIyEDQlrsTPTU1lVFhKxARvZgUlFLbegCf4BvIsbi4mIg4E5EogIHhiKCMtU0WUFiVy06j5fAJIDdSBDQw+PegDfBRcbOPwH4F9LuFWIIQdQNKwWqzIE0aoFUaBsw+SQuFw0uNtC9A+F4i3QNrbg3IDn+SAsHh+wYiEpeyBEMLv/cAO6KzAijxxB+Y4wisBhssJUhjEbPJf4Nw+B+JXqLW3bw+wQAAAABJRU5ErkJggg==" />
</head>
<body style="margin:0px;width:100%;height:100%;overflow:hidden;" id="game_frame">
<div style="margin:0px;width:100%;height:100%;font-family:sans-serif;display:flex;align-items:center;user-select:none;" id="launch_countdown_screen">
<div style="margin:auto;text-align:center;">
<h1>${client_name}</h1>
<h2>Game will launch in <span id="launchCountdownNumber">5</span>...</h2>
<div style="border:2px solid black;width:100%;height:15px;padding:1px;margin-bottom:20vh;"><div id="launchCountdownProgress" style="background-color:#555555;width:0%;height:100%;"></div></div>
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,66 @@
{
"joinServer": null,
"servers": [
{
"addr": "ws://localhost:8081/",
"hideAddr": false,
"name": "Local test server"
}
],
"relays": [
{
"addr": "wss://relay.deev.is/",
"primary": "$random_relay_primary_0",
"comment": "lax1dude relay #1"
},
{
"addr": "wss://relay.lax1dude.net/",
"primary": "$random_relay_primary_1",
"comment": "lax1dude relay #2"
},
{
"addr": "wss://relay.shhnowisnottheti.me/",
"primary": "$random_relay_primary_2",
"comment": "ayunami relay #1"
}
],
"openDebugConsoleOnLaunch": false,
"showBootMenuOnLaunch": false,
"bootMenuBlocksUnsignedClients": false,
"allowBootMenu": true,
"forceWebViewSupport": false,
"enableServerCookies": true,
"enableDownloadOfflineButton": true,
"resourcePacksDB": "resourcePacks",
"enableWebViewCSP": true,
"checkRelaysForUpdates": true,
"allowServerRedirects": true,
"allowUpdateSvc": true,
"html5CursorSupport": false,
"allowFNAWSkins": true,
"allowVoiceClient": true,
"worldsDB": "worlds",
"demoMode": false,
"localStorageNamespace": "_eaglercraftX",
"enableSignatureBadge": false,
"lang": "en_US",
"enableMinceraft": true,
"autoFixLegacyStyleAttr": true,
"allowUpdateDL": true,
"logInvalidCerts": false,
"checkShaderGLErrors": false,
"crashOnUncaughtExceptions": false,
"forceWebGL1": false,
"forceWebGL2": false,
"allowExperimentalWebGL1": true,
"useWebGLExt": true,
"useDelayOnSwap": false,
"useJOrbisAudioDecoder": false,
"useXHRFetch": false,
"useVisualViewport": true,
"deobfStackTraces": true,
"disableBlobURLs": false,
"eaglerNoDelay": false,
"ramdiskMode": false,
"singleThreadMode": false
}

View File

@ -0,0 +1,66 @@
{
"joinServer": null,
"servers": [
{
"addr": "ws://localhost:8081/",
"hideAddr": false,
"name": "Local test server"
}
],
"relays": [
{
"addr": "wss://relay.deev.is/",
"primary": "$random_relay_primary_0",
"comment": "lax1dude relay #1"
},
{
"addr": "wss://relay.lax1dude.net/",
"primary": "$random_relay_primary_1",
"comment": "lax1dude relay #2"
},
{
"addr": "wss://relay.shhnowisnottheti.me/",
"primary": "$random_relay_primary_2",
"comment": "ayunami relay #1"
}
],
"openDebugConsoleOnLaunch": false,
"showBootMenuOnLaunch": false,
"bootMenuBlocksUnsignedClients": false,
"allowBootMenu": true,
"forceWebViewSupport": false,
"enableServerCookies": true,
"enableDownloadOfflineButton": true,
"resourcePacksDB": "resourcePacks",
"enableWebViewCSP": true,
"checkRelaysForUpdates": true,
"allowServerRedirects": true,
"allowUpdateSvc": true,
"html5CursorSupport": false,
"allowFNAWSkins": true,
"allowVoiceClient": true,
"worldsDB": "worlds",
"demoMode": true,
"localStorageNamespace": "_eaglercraftX",
"enableSignatureBadge": false,
"lang": "en_US",
"enableMinceraft": true,
"autoFixLegacyStyleAttr": true,
"allowUpdateDL": true,
"logInvalidCerts": false,
"checkShaderGLErrors": false,
"crashOnUncaughtExceptions": false,
"forceWebGL1": false,
"forceWebGL2": false,
"allowExperimentalWebGL1": true,
"useWebGLExt": true,
"useDelayOnSwap": false,
"useJOrbisAudioDecoder": false,
"useXHRFetch": false,
"useVisualViewport": true,
"deobfStackTraces": true,
"disableBlobURLs": false,
"eaglerNoDelay": false,
"ramdiskMode": false,
"singleThreadMode": false
}

View File

@ -0,0 +1,66 @@
{
"joinServer": null,
"servers": [
{
"addr": "ws://localhost:8081/",
"hideAddr": false,
"name": "Local test server"
}
],
"relays": [
{
"addr": "wss://relay.deev.is/",
"primary": "$random_relay_primary_0",
"comment": "lax1dude relay #1"
},
{
"addr": "wss://relay.lax1dude.net/",
"primary": "$random_relay_primary_1",
"comment": "lax1dude relay #2"
},
{
"addr": "wss://relay.shhnowisnottheti.me/",
"primary": "$random_relay_primary_2",
"comment": "ayunami relay #1"
}
],
"openDebugConsoleOnLaunch": false,
"showBootMenuOnLaunch": false,
"bootMenuBlocksUnsignedClients": false,
"allowBootMenu": true,
"forceWebViewSupport": false,
"enableServerCookies": true,
"enableDownloadOfflineButton": true,
"resourcePacksDB": "resourcePacks",
"enableWebViewCSP": true,
"checkRelaysForUpdates": true,
"allowServerRedirects": true,
"allowUpdateSvc": true,
"html5CursorSupport": true,
"allowFNAWSkins": true,
"allowVoiceClient": true,
"worldsDB": "worlds",
"demoMode": false,
"localStorageNamespace": "_eaglercraftX",
"enableSignatureBadge": false,
"lang": "en_US",
"enableMinceraft": true,
"autoFixLegacyStyleAttr": true,
"allowUpdateDL": true,
"logInvalidCerts": false,
"checkShaderGLErrors": false,
"crashOnUncaughtExceptions": false,
"forceWebGL1": false,
"forceWebGL2": false,
"allowExperimentalWebGL1": true,
"useWebGLExt": true,
"useDelayOnSwap": false,
"useJOrbisAudioDecoder": false,
"useXHRFetch": false,
"useVisualViewport": true,
"deobfStackTraces": true,
"disableBlobURLs": false,
"eaglerNoDelay": false,
"ramdiskMode": false,
"singleThreadMode": false
}

View File

@ -0,0 +1,52 @@
{
"joinServer": null,
"servers": [
{
"serverName": "Local Test Server",
"serverAddress": "localhost:25565",
"hideAddress": false
}
],
"relays": [
{
"addr": "wss://relay.deev.is/",
"name": "lax1dude relay #1",
"primary": "$random_relay_primary_0"
},
{
"addr": "wss://relay.lax1dude.net/",
"name": "lax1dude relay #2",
"primary": "$random_relay_primary_1"
},
{
"addr": "wss://relay.shhnowisnottheti.me/",
"name": "ayunami relay #1",
"primary": "$random_relay_primary_2"
}
],
"mainMenu": {
"splashes": [
"Darviglet!",
"eaglerenophile!",
"You Eagler!",
"Yeeeeeee!",
"yeee",
"EEEEEEEEE!",
"You Darvig!",
"You Vigg!",
":>",
"|>",
"You Yumpster!"
],
"eaglerLogo": false,
"itemLink": null,
"itemLine0": null,
"itemLine1": null,
"itemLine2": null
},
"worldsFolder": "MAIN",
"profanity": false,
"hideDownServers": false,
"serverListTitle": null,
"serverListLink": null
}

View File

@ -0,0 +1,32 @@
[NBT]{
servers: [
{
name: "Local Test Server",
ip: "localhost:25565",
hideAddress: false
}
],
mainMenu: {
itemLink: "",
itemLine0: "",
itemLine1: "",
itemLine2: "",
splashes: [
"Darviglet!",
"eaglerenophile!",
"You Eagler!",
"Yeeeeeee!",
"yeee",
"EEEEEEEEE!",
"You Darvig!",
"You Vigg!",
":>",
"|>",
"You Yumpster!"
]
},
profanity: false,
hide_down: false,
serverListTitle: "",
serverListLink: ""
}[/NBT]

View File

@ -0,0 +1,63 @@
{
"joinServer": null,
"servers": [
{
"serverName": "Local Test Server",
"serverAddress": "localhost:25565",
"hideAddress": false
}
],
"relays": [
{
"addr": "wss://relay.deev.is/",
"name": "lax1dude relay #1",
"primary": "$random_relay_primary_0"
},
{
"addr": "wss://relay.lax1dude.net/",
"name": "lax1dude relay #2",
"primary": "$random_relay_primary_1"
},
{
"addr": "wss://relay.shhnowisnottheti.me/",
"name": "ayunami relay #1",
"primary": "$random_relay_primary_2"
}
],
"mainMenu": {
"splashes": [
"Darviglet!",
"eaglerenophile!",
"You Eagler!",
"Yeeeeeee!",
"yeee",
"EEEEEEEEE!",
"You Darvig!",
"You Vigg!",
":>",
"|>",
"You Yumpster!"
],
"eaglerLogo": false,
"itemLink": null,
"itemLine0": null,
"itemLine1": null,
"itemLine2": null
},
"worldsFolder": "MAIN",
"assetOverrides": {
"title/no-pano-blur.flag": "false",
"records/wait.mp3": "wait.mp3",
"records/mellohi.mp3": "https://stream.nightride.fm/chillsynth.m4a",
"records/far.mp3": "https://stream.nightride.fm/nightride.m4a",
"records/cat.mp3": "http://usa9.fastcast4u.com/proxy/jamz?mp=/1",
"records/ward.mp3": "http://fr4.1mix.co.uk:8000/192h",
"records/strad.mp3": "http://listen.011fm.com:8028/stream15",
"records/blocks.mp3": "https://www.ophanim.net:8444/s/9780",
"records/13.mp3": "https://s2.radio.co/s2b2b68744/listen"
},
"profanity": false,
"hideDownServers": false,
"serverListTitle": null,
"serverListLink": null
}

View File

@ -0,0 +1,6 @@
{
"dataBaseName": "_net_PeytonPlayz585_eaglercraft_Alpha_IndexedDBFilesystem_1_2_6",
"playerUsername": null,
"serverIP": null,
"joinServerOnLaunch": null
}

View File

@ -0,0 +1,6 @@
{
"dataBaseName": "_net_PeytonPlayz585_eaglercraft_beta_IndexedDBFilesystem_1_7_3",
"playerUsername": null,
"serverIP": null,
"joinServerOnLaunch": null
}

View File

@ -1,7 +1,7 @@
#line 2
/*
* Copyright (c) 2022-2023 lax1dude. All Rights Reserved.
* Copyright (c) 2022-2024 lax1dude. All Rights Reserved.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
@ -16,21 +16,17 @@
*
*/
precision lowp int;
precision mediump float;
precision mediump sampler2D;
EAGLER_IN(vec2, v_texCoord2f)
EAGLER_IN(vec4, v_color4f)
in vec2 v_texCoord2f;
in vec4 v_color4f;
layout(location = 0) out vec4 output4f;
EAGLER_FRAG_OUT()
uniform sampler2D u_inputTexture;
uniform vec4 u_colorBias4f;
void main() {
output4f = texture(u_inputTexture, v_texCoord2f) * v_color4f + u_colorBias4f;
if(output4f.a < 0.004) {
EAGLER_FRAG_COLOR = EAGLER_TEXTURE_2D(u_inputTexture, v_texCoord2f) * v_color4f + u_colorBias4f;
if(EAGLER_FRAG_COLOR.a < 0.004) {
discard;
}
}

View File

@ -1,7 +1,7 @@
#line 2
/*
* Copyright (c) 2022-2023 lax1dude. All Rights Reserved.
* Copyright (c) 2022-2024 lax1dude. All Rights Reserved.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
@ -16,18 +16,15 @@
*
*/
precision lowp int;
precision highp float;
precision mediump sampler2D;
EAGLER_VSH_LAYOUT_BEGIN()
EAGLER_IN(0, vec3, a_position3f)
EAGLER_IN(1, vec2, c_position2i)
EAGLER_IN(2, vec2, c_coords2i)
EAGLER_IN(3, vec4, c_color4f)
EAGLER_VSH_LAYOUT_END()
layout(location = 0) in vec3 a_position3f;
layout(location = 1) in vec2 c_position2i;
layout(location = 2) in vec2 c_coords2i;
layout(location = 3) in vec4 c_color4f;
out vec2 v_texCoord2f;
out vec4 v_color4f;
EAGLER_OUT(vec2, v_texCoord2f)
EAGLER_OUT(vec4, v_color4f)
uniform mat4 u_matrixTransform;
uniform vec2 u_charSize2f;
@ -49,5 +46,5 @@ void main() {
pos2d.x -= (a_position3f.y - 0.5) * italicBit;
v_color4f.a *= 2.0;
v_color4f *= u_color4f;
gl_Position = u_matrixTransform * vec4(pos2d, 0.0, 1.0);
EAGLER_VERT_POSITION = u_matrixTransform * vec4(pos2d, 0.0, 1.0);
}

View File

@ -1,7 +1,7 @@
#line 2
/*
* Copyright (c) 2022-2023 lax1dude. All Rights Reserved.
* Copyright (c) 2022-2024 lax1dude. All Rights Reserved.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
@ -16,20 +16,16 @@
*
*/
precision lowp int;
precision mediump float;
precision mediump sampler2D;
EAGLER_IN(vec2, v_texCoord2f)
EAGLER_IN(vec4, v_color4f)
in vec2 v_texCoord2f;
in vec4 v_color4f;
layout(location = 0) out vec4 output4f;
EAGLER_FRAG_OUT()
uniform sampler2D u_inputTexture;
void main() {
output4f = texture(u_inputTexture, v_texCoord2f) * v_color4f;
if(output4f.a < 0.004) {
EAGLER_FRAG_COLOR = EAGLER_TEXTURE_2D(u_inputTexture, v_texCoord2f) * v_color4f;
if(EAGLER_FRAG_COLOR.a < 0.004) {
discard;
}
}

View File

@ -1,7 +1,7 @@
#line 2
/*
* Copyright (c) 2022-2023 lax1dude. All Rights Reserved.
* Copyright (c) 2022-2024 lax1dude. All Rights Reserved.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
@ -16,20 +16,17 @@
*
*/
precision lowp int;
precision highp float;
precision mediump sampler2D;
EAGLER_VSH_LAYOUT_BEGIN()
EAGLER_IN(0, vec2, a_position2f)
EAGLER_IN(1, vec3, p_position3f)
EAGLER_IN(2, vec2, p_texCoords2i)
EAGLER_IN(3, vec2, p_lightMap2f)
EAGLER_IN(4, vec2, p_particleSize_texCoordsSize_2i)
EAGLER_IN(5, vec4, p_color4f)
EAGLER_VSH_LAYOUT_END()
layout(location = 0) in vec2 a_position2f;
layout(location = 1) in vec3 p_position3f;
layout(location = 2) in vec2 p_texCoords2i;
layout(location = 3) in vec2 p_lightMap2f;
layout(location = 4) in vec2 p_particleSize_texCoordsSize_2i;
layout(location = 5) in vec4 p_color4f;
out vec2 v_texCoord2f;
out vec4 v_color4f;
EAGLER_OUT(vec2, v_texCoord2f)
EAGLER_OUT(vec4, v_color4f)
uniform mat4 u_matrixTransform;
uniform vec3 u_texCoordSize2f_particleSize1f;
@ -40,7 +37,7 @@ uniform vec4 u_color4f;
uniform sampler2D u_lightmapTexture;
void main() {
v_color4f = u_color4f * p_color4f.bgra * texture(u_lightmapTexture, p_lightMap2f);
v_color4f = u_color4f * p_color4f.bgra * EAGLER_TEXTURE_2D(u_lightmapTexture, p_lightMap2f);
vec2 tex2f = a_position2f * 0.5 + 0.5;
tex2f.y = 1.0 - tex2f.y;
@ -54,5 +51,5 @@ void main() {
pos3f += u_transformParam_1_2_5_f * spos2f.xyy;
pos3f.zx += u_transformParam_3_4_f * spos2f;
gl_Position = u_matrixTransform * vec4(pos3f, 1.0);
EAGLER_VERT_POSITION = u_matrixTransform * vec4(pos3f, 1.0);
}

View File

@ -1,7 +1,7 @@
#line 2
/*
* Copyright (c) 2022-2023 lax1dude. All Rights Reserved.
* Copyright (c) 2022-2024 lax1dude. All Rights Reserved.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
@ -17,11 +17,11 @@
*/
#if defined(COMPILE_ENABLE_TEX_GEN) || defined(COMPILE_ENABLE_FOG)
in vec4 v_position4f;
EAGLER_IN(vec4, v_position4f)
#endif
#ifdef COMPILE_TEXTURE_ATTRIB
in vec2 v_texture2f;
EAGLER_IN(vec2, v_texture2f)
#endif
uniform vec4 u_color4f;
@ -32,15 +32,15 @@ uniform vec4 u_colorBlendAdd4f;
#endif
#ifdef COMPILE_COLOR_ATTRIB
in vec4 v_color4f;
EAGLER_IN(vec4, v_color4f)
#endif
#ifdef COMPILE_NORMAL_ATTRIB
in vec3 v_normal3f;
EAGLER_IN(vec3, v_normal3f)
#endif
#ifdef COMPILE_LIGHTMAP_ATTRIB
in vec2 v_lightmap2f;
EAGLER_IN(vec2, v_lightmap2f)
#endif
#ifdef COMPILE_ENABLE_TEXTURE2D
@ -76,7 +76,7 @@ uniform vec4 u_fogColor4f;
#endif
#ifdef COMPILE_ENABLE_TEX_GEN
in vec3 v_objectPosition3f;
EAGLER_IN(vec3, v_objectPosition3f)
uniform ivec4 u_texGenPlane4i;
uniform vec4 u_texGenS4f;
uniform vec4 u_texGenT4f;
@ -89,7 +89,7 @@ uniform mat4 u_textureMat4f01;
uniform vec2 u_textureAnisotropicFix;
#endif
layout(location = 0) out vec4 output4f;
EAGLER_FRAG_OUT()
void main() {
@ -98,22 +98,29 @@ void main() {
#else
vec4 color = u_color4f;
#endif
#ifdef COMPILE_ENABLE_TEX_GEN
vec4 tmpVec4 = vec4(v_objectPosition3f, 1.0);
vec4 texGenVector;
vec4 texGenPosSrc[2];
texGenPosSrc[0] = vec4(v_objectPosition3f, 1.0);
texGenPosSrc[1] = v_position4f;
texGenVector.x = dot(texGenPosSrc[u_texGenPlane4i.x], u_texGenS4f);
texGenVector.y = dot(texGenPosSrc[u_texGenPlane4i.y], u_texGenT4f);
texGenVector.z = dot(texGenPosSrc[u_texGenPlane4i.z], u_texGenR4f);
texGenVector.w = dot(texGenPosSrc[u_texGenPlane4i.w], u_texGenQ4f);
texGenVector.x = dot(u_texGenPlane4i.x == 1 ? v_position4f : tmpVec4, u_texGenS4f);
texGenVector.y = dot(u_texGenPlane4i.y == 1 ? v_position4f : tmpVec4, u_texGenT4f);
texGenVector.z = dot(u_texGenPlane4i.z == 1 ? v_position4f : tmpVec4, u_texGenR4f);
texGenVector.w = dot(u_texGenPlane4i.w == 1 ? v_position4f : tmpVec4, u_texGenQ4f);
#ifdef EAGLER_HAS_GLES_300
texGenVector.xyz = mat4x3(
u_textureMat4f01[0].xyw,
u_textureMat4f01[1].xyw,
u_textureMat4f01[2].xyw,
u_textureMat4f01[3].xyw
) * texGenVector;
texGenVector.xy /= texGenVector.z;
#else
texGenVector = u_textureMat4f01 * texGenVector;
color *= texture(u_samplerTexture, texGenVector.xy / texGenVector.w);
texGenVector.xy /= texGenVector.w;
#endif
color *= EAGLER_TEXTURE_2D(u_samplerTexture, texGenVector.xy);
#ifdef COMPILE_ENABLE_ALPHA_TEST
if(color.a < u_alphaTestRef1f) discard;
#endif
@ -126,20 +133,20 @@ void main() {
// d3d11 doesn't support GL_NEAREST upscaling with anisotropic
// filtering enabled, so it needs this stupid fix to 'work'
vec2 uv = floor(v_texture2f * u_textureAnisotropicFix) + 0.5;
color *= texture(u_samplerTexture, uv / u_textureAnisotropicFix);
color *= EAGLER_TEXTURE_2D(u_samplerTexture, uv / u_textureAnisotropicFix);
#else
color *= texture(u_samplerTexture, v_texture2f);
color *= EAGLER_TEXTURE_2D(u_samplerTexture, v_texture2f);
#endif
#else
color *= texture(u_samplerTexture, u_textureCoords01);
color *= EAGLER_TEXTURE_2D(u_samplerTexture, u_textureCoords01);
#endif
#endif
#ifdef COMPILE_ENABLE_LIGHTMAP
#ifdef COMPILE_LIGHTMAP_ATTRIB
color *= texture(u_samplerLightmap, v_lightmap2f);
color *= EAGLER_TEXTURE_2D(u_samplerLightmap, v_lightmap2f);
#else
color *= texture(u_samplerLightmap, u_textureCoords02);
color *= EAGLER_TEXTURE_2D(u_samplerLightmap, u_textureCoords02);
#endif
#endif
@ -161,9 +168,18 @@ void main() {
#endif
float diffuse = 0.0;
vec4 light;
#ifdef EAGLER_HAS_GLES_300
for(int i = 0; i < u_lightsEnabled1i; ++i) {
#else
for(int i = 0; i < 4; ++i) {
#endif
light = u_lightsDirections4fv[i];
diffuse += max(dot(light.xyz, normal), 0.0) * light.w;
#ifndef EAGLER_HAS_GLES_300
if(i + 1 >= u_lightsEnabled1i) {
break;
}
#endif
}
color.rgb *= min(u_lightsAmbient3f + vec3(diffuse), 1.0);
#endif
@ -179,5 +195,5 @@ void main() {
color.rgb = mix(color.rgb, u_fogColor4f.rgb, clamp(f, 0.0, 1.0) * u_fogColor4f.a);
#endif
output4f = color;
EAGLER_FRAG_COLOR = color;
}

View File

@ -1,7 +1,7 @@
#line 2
/*
* Copyright (c) 2022-2023 lax1dude. All Rights Reserved.
* Copyright (c) 2022-2024 lax1dude. All Rights Reserved.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
@ -16,39 +16,39 @@
*
*/
in vec3 a_position3f;
EAGLER_IN_AUTO(vec3, a_position3f)
#if defined(COMPILE_ENABLE_TEX_GEN) || defined(COMPILE_ENABLE_FOG)
#define _COMPILE_VARYING_POSITION
#endif
#ifdef _COMPILE_VARYING_POSITION
out vec4 v_position4f;
EAGLER_OUT(vec4, v_position4f)
#endif
#ifdef COMPILE_ENABLE_TEX_GEN
out vec3 v_objectPosition3f;
EAGLER_OUT(vec3, v_objectPosition3f)
#endif
#ifdef COMPILE_TEXTURE_ATTRIB
in vec2 a_texture2f;
out vec2 v_texture2f;
EAGLER_IN_AUTO(vec2, a_texture2f)
EAGLER_OUT(vec2, v_texture2f)
uniform mat4 u_textureMat4f01;
#endif
#ifdef COMPILE_COLOR_ATTRIB
in vec4 a_color4f;
out vec4 v_color4f;
EAGLER_IN_AUTO(vec4, a_color4f)
EAGLER_OUT(vec4, v_color4f)
#endif
#ifdef COMPILE_NORMAL_ATTRIB
in vec4 a_normal4f;
out vec3 v_normal3f;
EAGLER_IN_AUTO(vec4, a_normal4f)
EAGLER_OUT(vec3, v_normal3f)
#endif
#ifdef COMPILE_LIGHTMAP_ATTRIB
in vec2 a_lightmap2f;
out vec2 v_lightmap2f;
EAGLER_IN_AUTO(vec2, a_lightmap2f)
EAGLER_OUT(vec2, v_lightmap2f)
uniform mat4 u_textureMat4f02;
#endif
@ -92,8 +92,8 @@ void main() {
#endif
#ifdef _COMPILE_VARYING_POSITION
gl_Position = u_projectionMat4f * v_position4f;
EAGLER_VERT_POSITION = u_projectionMat4f * v_position4f;
#else
gl_Position = u_modelviewProjMat4f * vec4(a_position3f, 1.0);
EAGLER_VERT_POSITION = u_modelviewProjMat4f * vec4(a_position3f, 1.0);
#endif
}

View File

@ -226,20 +226,18 @@ void main() {
#ifdef COMPILE_ENABLE_TEXTURE2D
vec2 texCoords2f;
#ifdef COMPILE_ENABLE_TEX_GEN
vec4 tmpVec4 = vec4(v_objectPosition3f, 1.0);
vec4 texGenVector;
vec4 texGenPosSrc[2];
texGenPosSrc[0] = vec4(v_objectPosition3f, 1.0);
texGenPosSrc[1] = v_position4f;
texGenVector.x = dot(texGenPosSrc[u_texGenPlane4i.x], u_texGenS4f);
texGenVector.y = dot(texGenPosSrc[u_texGenPlane4i.y], u_texGenT4f);
texGenVector.z = dot(texGenPosSrc[u_texGenPlane4i.z], u_texGenR4f);
texGenVector.w = dot(texGenPosSrc[u_texGenPlane4i.w], u_texGenQ4f);
texGenVector = vec4(mat4x3(
texGenVector.x = dot(u_texGenPlane4i.x == 1 ? v_position4f : tmpVec4, u_texGenS4f);
texGenVector.y = dot(u_texGenPlane4i.y == 1 ? v_position4f : tmpVec4, u_texGenT4f);
texGenVector.z = dot(u_texGenPlane4i.z == 1 ? v_position4f : tmpVec4, u_texGenR4f);
texGenVector.w = dot(u_texGenPlane4i.w == 1 ? v_position4f : tmpVec4, u_texGenQ4f);
texGenVector.xyz = mat4x3(
u_textureMat4f01[0].xyw,
u_textureMat4f01[1].xyw,
u_textureMat4f01[2].xyw,
u_textureMat4f01[3].xyw
) * texGenVector, 0.0);
) * texGenVector;
texCoords2f = texGenVector.xy / texGenVector.z;
#else

View File

@ -99,13 +99,13 @@ void main() {
reprojectionReflectionOutput4f = vec4(0.0, 0.0, 0.0, 0.0);
reprojectionHitVectorOutput4f = vec4(0.0, 0.0, 0.0, 0.0);
#endif
float fragDepth = textureLod(u_gbufferDepthTexture, v_position2f, 0.0).r;
float fragDepth = textureLod(u_gbufferDepthTexture, v_position2f2, 0.0).r;
if(fragDepth < 0.000001) {
return;
}
vec4 fragClipSpacePos4f = vec4(v_position2f, fragDepth, 1.0) * 2.0 - 1.0;
vec4 fragClipSpacePos4f = vec4(v_position2f2, fragDepth, 1.0) * 2.0 - 1.0;
vec4 fragPos4f = u_inverseViewProjMatrix4f * fragClipSpacePos4f;
fragPos4f.xyz /= fragPos4f.w;
fragPos4f.w = 1.0;

View File

@ -1,7 +1,7 @@
{
"name": "§eHigh Performance PBR",
"desc": "Pack made from scratch specifically for this client, designed to give what I call the best balance between quality and performance possible in a browser but obviously that's just my opinion",
"vers": "1.2.1",
"vers": "1.2.2",
"author": "lax1dude",
"api_vers": 1,
"features": [

View File

@ -70,7 +70,7 @@ void main() {
originalViewSpacePos.xyz /= originalViewSpacePos.w;
originalViewSpacePos.w = 1.0;
vec4 noiseVec = textureLod(u_noiseConstantTexture, u_randomizerDataMatrix2f * (v_position2f + originalViewSpacePos.xy + normal3f.xz), 0.0);
vec4 noiseVec = textureLod(u_noiseConstantTexture, 13.3725 / fract((u_randomizerDataMatrix2f * (v_position2f * 0.42695346 + originalViewSpacePos.xy * 1.373769945645 + normal3f.xz * 42.69456453)) * 1.123234234), 0.0);
noiseVec.xyz *= 2.0;
noiseVec.xyz -= 1.0;

View File

@ -107,22 +107,23 @@ void main() {
#else
vec4 color = u_color4f;
#endif
#ifdef COMPILE_ENABLE_TEX_GEN
vec4 tmpVec4 = vec4(v_objectPosition3f, 1.0);
vec4 texGenVector;
vec4 texGenPosSrc[2];
texGenPosSrc[0] = vec4(v_objectPosition3f, 1.0);
texGenPosSrc[1] = v_position4f;
texGenVector.x = dot(texGenPosSrc[u_texGenPlane4i.x], u_texGenS4f);
texGenVector.y = dot(texGenPosSrc[u_texGenPlane4i.y], u_texGenT4f);
texGenVector.z = dot(texGenPosSrc[u_texGenPlane4i.z], u_texGenR4f);
texGenVector.w = dot(texGenPosSrc[u_texGenPlane4i.w], u_texGenQ4f);
texGenVector = u_textureMat4f01 * texGenVector;
color *= texture(u_samplerTexture, texGenVector.xy / texGenVector.w);
texGenVector.x = dot(u_texGenPlane4i.x == 1 ? v_position4f : tmpVec4, u_texGenS4f);
texGenVector.y = dot(u_texGenPlane4i.y == 1 ? v_position4f : tmpVec4, u_texGenT4f);
texGenVector.z = dot(u_texGenPlane4i.z == 1 ? v_position4f : tmpVec4, u_texGenR4f);
texGenVector.w = dot(u_texGenPlane4i.w == 1 ? v_position4f : tmpVec4, u_texGenQ4f);
texGenVector.xyz = mat4x3(
u_textureMat4f01[0].xyw,
u_textureMat4f01[1].xyw,
u_textureMat4f01[2].xyw,
u_textureMat4f01[3].xyw
) * texGenVector;
color *= texture(u_samplerTexture, texGenVector.xy / texGenVector.z);
#ifdef COMPILE_ENABLE_ALPHA_TEST
if(color.a < u_alphaTestRef1f) discard;
#endif

View File

@ -0,0 +1,98 @@
#line 2 6969
/*
* Copyright (c) 2024 lax1dude. All Rights Reserved.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*/
#ifdef EAGLER_HAS_GLES_300
// For GLES 3.00+ (WebGL 2.0)
#ifdef EAGLER_IS_VERTEX_SHADER
// Vertex Shaders:
#define EAGLER_VSH_LAYOUT_BEGIN()
#define EAGLER_VSH_LAYOUT_END()
#define EAGLER_IN(_loc, _type, _name) layout(location = _loc) in _type _name;
#define EAGLER_IN_AUTO(_type, _name) in _type _name;
#define EAGLER_OUT(_type, _name) out _type _name;
#define EAGLER_VERT_POSITION gl_Position
#else
#ifdef EAGLER_IS_FRAGMENT_SHADER
// Fragment Shaders:
#define EAGLER_IN(_type, _name) in _type _name;
#define EAGLER_FRAG_COLOR eagler_FragColor
#define EAGLER_FRAG_DEPTH gl_FragDepth
#define EAGLER_FRAG_OUT() layout(location = 0) out vec4 EAGLER_FRAG_COLOR;
#endif
#endif
// All Shaders:
#define EAGLER_TEXTURE_2D(tex, coord2f) texture(tex, coord2f)
#define EAGLER_TEXTURE_2D_LOD(_tex, _coord2f, _lod1f) textureLod(_tex, _coord2f, _lod1f)
#define EAGLER_HAS_TEXTURE_2D_LOD
#else
#ifdef EAGLER_HAS_GLES_200
// For GLES 2.00 (WebGL 1.0)
#ifdef EAGLER_IS_VERTEX_SHADER
// Vertex Shaders:
#define EAGLER_VSH_LAYOUT_BEGIN()
#define EAGLER_VSH_LAYOUT_END()
#define EAGLER_IN(_loc, _type, _name) attribute _type _name;
#define EAGLER_IN_AUTO(_type, _name) attribute _type _name;
#define EAGLER_OUT(_type, _name) varying _type _name;
#define EAGLER_VERT_POSITION gl_Position
#else
#ifdef EAGLER_IS_FRAGMENT_SHADER
// Fragment Shaders:
#define EAGLER_IN(_type, _name) varying _type _name;
#define EAGLER_FRAG_COLOR gl_FragColor
// TODO: Must require EXT_frag_depth to use this on GLES 2.0 (currently not needed)
#define EAGLER_FRAG_DEPTH gl_FragDepth
#define EAGLER_FRAG_OUT()
#endif
#endif
// All Shaders:
#define EAGLER_TEXTURE_2D(_tex, _coord2f) texture2D(_tex, _coord2f)
#ifdef EAGLER_HAS_GLES_200_SHADER_TEXTURE_LOD
#define EAGLER_TEXTURE_2D_LOD(_tex, _coord2f, _lod1f) texture2DLodEXT(_tex, _coord2f, _lod1f)
#define EAGLER_HAS_TEXTURE_2D_LOD
#else
// Beware!
#define EAGLER_TEXTURE_2D_LOD(_tex, _coord2f, _lod1f) texture2D(_tex, _coord2f)
#define EAGLER_HAS_TEXTURE_2D_LOD
#endif
#else
#error Unable to determine API version! (Missing directive EAGLER_HAS_GLES_200 or 300)
#endif
#endif
#line 1 0

View File

@ -0,0 +1,55 @@
#line 2
/*
* Copyright (c) 2024 lax1dude. All Rights Reserved.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*/
EAGLER_IN(vec2, v_position2f)
EAGLER_FRAG_OUT()
uniform sampler2D u_inputTexture;
uniform mat4 u_textureMatrix;
vec2 rand(in vec2 co){
float f = dot(co, vec2(12.98984576, 78.23378678));
return fract(vec2(sin(f + 0.32490982), cos(f - 0.69890)) * 43758.54576873);
}
void main() {
vec4 coords4f = vec4(v_position2f.x * 0.25 - 0.125, v_position2f.y * 0.25 - 0.125, v_position2f.y * 10.0 - 9.0, 1.0);
coords4f = u_textureMatrix * coords4f;
coords4f.xy /= coords4f.w;
EAGLER_FRAG_COLOR = EAGLER_TEXTURE_2D(u_inputTexture, coords4f.xy * 0.5 + 0.5);
EAGLER_FRAG_COLOR.rg += rand(v_position2f * 1.2344574345) * 0.05;
EAGLER_FRAG_COLOR.ba -= rand(v_position2f * 1.2343525225) * 0.05;
EAGLER_FRAG_COLOR.a = fract(sin(dot(coords4f.yz, vec2(12.9898, 78.233))) * 43758.5453);
EAGLER_FRAG_COLOR.a += exp(length(rand(coords4f.xw)) * -69.420);
EAGLER_FRAG_COLOR = pow(EAGLER_FRAG_COLOR, vec4(1.0 / 2.423952));
EAGLER_FRAG_COLOR = pow(EAGLER_FRAG_COLOR, vec4(5.4523856));
EAGLER_FRAG_COLOR += 0.00004423 + EAGLER_FRAG_COLOR.a * 0.02;
EAGLER_FRAG_COLOR = sqrt(EAGLER_FRAG_COLOR);
EAGLER_FRAG_COLOR = pow(EAGLER_FRAG_COLOR, vec4(1.0 / 1.9023576));
#ifdef EAGLER_HAS_GLES_300
EAGLER_FRAG_COLOR.ra += tanh(fract(EAGLER_FRAG_COLOR.a * 32.324834)) * 0.1012426;
#endif
EAGLER_FRAG_COLOR.b *= 0.934924;
EAGLER_FRAG_COLOR.b += (1.23213 / inversesqrt(EAGLER_FRAG_COLOR.a)) * 0.156365;
EAGLER_FRAG_COLOR.ga += rand(gl_FragCoord.xy) * 0.13423567;
EAGLER_FRAG_COLOR.rb += gl_PointCoord * 0.0124264565;
#ifdef EAGLER_HAS_GLES_300
EAGLER_FRAG_COLOR *= 0.95234 + asinh(EAGLER_FRAG_COLOR.g * 5.23423) * 0.0254325;
#endif
}

View File

@ -1,7 +1,7 @@
#line 2
/*
* Copyright (c) 2022-2023 lax1dude. All Rights Reserved.
* Copyright (c) 2022-2024 lax1dude. All Rights Reserved.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
@ -16,15 +16,13 @@
*
*/
precision lowp int;
precision highp float;
precision lowp sampler2D;
EAGLER_VSH_LAYOUT_BEGIN()
EAGLER_IN(0, vec2, a_position2f)
EAGLER_VSH_LAYOUT_END()
layout(location = 0) in vec2 a_position2f;
out vec2 v_position2f;
EAGLER_OUT(vec2, v_position2f)
void main() {
v_position2f = a_position2f * 0.5 + 0.5;
gl_Position = vec4(a_position2f, 0.0, 1.0);
EAGLER_VERT_POSITION = vec4(a_position2f, 0.0, 1.0);
}

View File

@ -1,11 +1,13 @@
#line 2
// Remove this line below if you plan to modify this file
#ifndef EAGLER_IS_GLES_200
#define USE_OPTIMIZED
#endif
/*
* Copyright (c) 2022-2023 lax1dude. All Rights Reserved.
* Copyright (c) 2022-2024 lax1dude. All Rights Reserved.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
@ -52,14 +54,9 @@
*
*/
precision lowp int;
precision mediump float;
precision mediump sampler2D;
EAGLER_IN(vec2, v_position2f)
in vec2 v_position2f;
layout(location = 0) out vec4 output4f;
EAGLER_FRAG_OUT()
uniform sampler2D u_screenTexture;
uniform vec2 u_screenSize2f;
@ -110,7 +107,7 @@ uniform vec2 u_screenSize2f;
#define FxaaTex sampler2D
/*--------------------------------------------------------------------------*/
#define FxaaTexTop(t, p) textureLod(t, p, 0.0)
#define FxaaTexTop(t, p) EAGLER_TEXTURE_2D_LOD(t, p, 0.0)
/*============================================================================
GREEN AS LUMA OPTION SUPPORT FUNCTION
@ -298,7 +295,7 @@ void main(){
rcpFrameOpt.xy = -screenSize05;
rcpFrameOpt.zw = screenSize05;
output4f = vec4(FxaaPixelShader(v_position2f + screenSize05, posPos, u_screenTexture, rcpFrameOpt, rcpFrameOpt * 4.0, edgeSharpness, edgeThreshold, edgeThresholdMin).rgb, 1.0);
EAGLER_FRAG_COLOR = vec4(FxaaPixelShader(v_position2f + screenSize05, posPos, u_screenTexture, rcpFrameOpt, rcpFrameOpt * 4.0, edgeSharpness, edgeThreshold, edgeThresholdMin).rgb, 1.0);
}
#else
@ -306,7 +303,6 @@ void main(){
// Is it faster? Idfk, probably compiles faster at least, what matters it I tried
float _616;
vec4 _617;
void main()
{
@ -317,14 +313,14 @@ void main()
mediump vec4 _608;
for(;;)
{
mediump vec3 _532 = textureLod(u_screenTexture, _611.xy, 0.0).xyz;
mediump vec3 _532 = EAGLER_TEXTURE_2D_LOD(u_screenTexture, _611.xy, 0.0).xyz;
mediump float _536 = dot(_532 * _532, vec3(0.2989999949932098388671875, 0.58700001239776611328125, 0.114000000059604644775390625));
mediump vec3 _540 = textureLod(u_screenTexture, _611.xw, 0.0).xyz;
mediump vec3 _540 = EAGLER_TEXTURE_2D_LOD(u_screenTexture, _611.xw, 0.0).xyz;
mediump float _544 = dot(_540 * _540, vec3(0.2989999949932098388671875, 0.58700001239776611328125, 0.114000000059604644775390625));
mediump vec3 _548 = textureLod(u_screenTexture, _611.zy, 0.0).xyz;
mediump vec3 _556 = textureLod(u_screenTexture, _611.zw, 0.0).xyz;
mediump vec3 _548 = EAGLER_TEXTURE_2D_LOD(u_screenTexture, _611.zy, 0.0).xyz;
mediump vec3 _556 = EAGLER_TEXTURE_2D_LOD(u_screenTexture, _611.zw, 0.0).xyz;
mediump float _560 = dot(_556 * _556, vec3(0.2989999949932098388671875, 0.58700001239776611328125, 0.114000000059604644775390625));
mediump vec4 _390 = textureLod(u_screenTexture, _290, 0.0);
mediump vec4 _390 = EAGLER_TEXTURE_2D_LOD(u_screenTexture, _290, 0.0);
mediump vec3 _564 = _390.xyz;
mediump float _568 = dot(_564 * _564, vec3(0.2989999949932098388671875, 0.58700001239776611328125, 0.114000000059604644775390625));
mediump float _397 = dot(_548 * _548, vec3(0.2989999949932098388671875, 0.58700001239776611328125, 0.114000000059604644775390625)) + 0.00260416674427688121795654296875;
@ -347,8 +343,8 @@ void main()
mediump vec2 _484 = (_612 * 4.0).zw;
vec2 _615 = -hp_copy_481;
mediump vec2 mp_copy_615 = _615;
mediump vec4 _498 = textureLod(u_screenTexture, mp_copy_614 * _454 + _290, 0.0) + textureLod(u_screenTexture, _449 * _454 + _290, 0.0);
mediump vec4 _505 = ((textureLod(u_screenTexture, mp_copy_615 * _484 + _290, 0.0) + textureLod(u_screenTexture, _481 * _484 + _290, 0.0)) * 0.25) + (_498 * 0.25);
mediump vec4 _498 = EAGLER_TEXTURE_2D_LOD(u_screenTexture, mp_copy_614 * _454 + _290, 0.0) + EAGLER_TEXTURE_2D_LOD(u_screenTexture, _449 * _454 + _290, 0.0);
mediump vec4 _505 = ((EAGLER_TEXTURE_2D_LOD(u_screenTexture, mp_copy_615 * _484 + _290, 0.0) + EAGLER_TEXTURE_2D_LOD(u_screenTexture, _481 * _484 + _290, 0.0)) * 0.25) + (_498 * 0.25);
mediump float _576 = dot(_505.xyz * _505.xyz, vec3(0.2989999949932098388671875, 0.58700001239776611328125, 0.114000000059604644775390625));
mediump vec4 _607;
if ((_576 < _412) || (_576 > _409))
@ -367,7 +363,7 @@ void main()
_608 = _607;
break;
}
output4f = vec4(_608.xyz, 1.0);
EAGLER_FRAG_COLOR = vec4(_608.xyz, 1.0);
}
#endif

View File

@ -1,7 +1,7 @@
#line 2
/*
* Copyright (c) 2023 lax1dude. All Rights Reserved.
* Copyright (c) 2023-2024 lax1dude. All Rights Reserved.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
@ -16,14 +16,10 @@
*
*/
precision lowp int;
precision highp float;
precision highp sampler2D;
in vec2 v_texCoords2f;
EAGLER_IN(vec2, v_texCoords2f)
#ifndef COMPILE_BLIT_DEPTH
layout(location = 0) out vec4 output4f;
EAGLER_FRAG_OUT()
#endif
uniform sampler2D u_inputTexture;
@ -40,8 +36,8 @@ void main() {
uv2f = (floor(uv2f * u_pixelAlignmentSizes4f.xy) + u_pixelAlignmentOffset2f) * u_pixelAlignmentSizes4f.zw;
#endif
#ifndef COMPILE_BLIT_DEPTH
output4f = textureLod(u_inputTexture, uv2f, u_textureLod1f);
EAGLER_FRAG_COLOR = EAGLER_TEXTURE_2D_LOD(u_inputTexture, uv2f, u_textureLod1f);
#else
gl_FragDepth = textureLod(u_inputTexture, uv2f, u_textureLod1f).r;
EAGLER_FRAG_DEPTH = EAGLER_TEXTURE_2D_LOD(u_inputTexture, uv2f, u_textureLod1f).r;
#endif
}

View File

@ -1,7 +1,7 @@
#line 2
/*
* Copyright (c) 2023 lax1dude. All Rights Reserved.
* Copyright (c) 2023-2024 lax1dude. All Rights Reserved.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
@ -16,13 +16,11 @@
*
*/
precision lowp int;
precision lowp float;
precision lowp sampler2D;
EAGLER_VSH_LAYOUT_BEGIN()
EAGLER_IN(0, vec2, a_position2f)
EAGLER_VSH_LAYOUT_END()
layout(location = 0) in vec2 a_position2f;
out vec2 v_texCoords2f;
EAGLER_OUT(vec2, v_texCoords2f)
uniform vec4 u_srcCoords4f;
uniform vec4 u_dstCoords4f;
@ -30,5 +28,5 @@ uniform vec4 u_dstCoords4f;
void main() {
vec2 uv = a_position2f * 0.5 + 0.5;
v_texCoords2f = u_srcCoords4f.xy + u_srcCoords4f.zw * uv;
gl_Position = vec4(u_dstCoords4f.xy + u_dstCoords4f.zw * uv, 0.0, 1.0);
EAGLER_VERT_POSITION = vec4(u_dstCoords4f.xy + u_dstCoords4f.zw * uv, 0.0, 1.0);
}

View File

@ -1,7 +1,7 @@
#line 2
/*
* Copyright (c) 2022-2023 lax1dude. All Rights Reserved.
* Copyright (c) 2022-2024 lax1dude. All Rights Reserved.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
@ -16,13 +16,9 @@
*
*/
precision lowp int;
precision highp float;
precision highp sampler2D;
EAGLER_IN(vec2, v_position2f)
in vec2 v_position2f;
layout(location = 0) out vec4 output4f;
EAGLER_FRAG_OUT()
uniform sampler2D u_inputTexture;
uniform float u_textureLod1f;
@ -32,6 +28,6 @@ uniform mat3 u_matrixTransform;
void main() {
vec3 coords = u_matrixTransform * vec3(v_position2f, 1.0);
vec4 color4f = textureLod(u_inputTexture, coords.xy, u_textureLod1f);
output4f = color4f * u_blendFactor4f + u_blendBias4f;
vec4 color4f = EAGLER_TEXTURE_2D_LOD(u_inputTexture, coords.xy, u_textureLod1f);
EAGLER_FRAG_COLOR = color4f * u_blendFactor4f + u_blendBias4f;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB