Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
6aee822284 |
13
.gitignore
vendored
13
.gitignore
vendored
|
@ -6,20 +6,9 @@ build
|
|||
bin
|
||||
proxyServer/bin
|
||||
proxyServer/rundir
|
||||
desktopRuntime/eclipseProject/*
|
||||
desktopRuntime/_eagstorage*
|
||||
desktopRuntime/eclipseProject/bin*
|
||||
desktopRuntime/hs_err_*
|
||||
desktopRuntime/crash-reports/*
|
||||
desktopRuntime/options.txt
|
||||
desktopRuntime/_eagstorage*
|
||||
/.metadata/
|
||||
desktopRuntime/eclipseProject/.classpath
|
||||
desktopRuntime/eclipseProject/.project
|
||||
desktopRuntime/eclipseProject/eaglercraftDebugRuntime.launch
|
||||
desktopRuntime/eclipseProject/.classpath
|
||||
.gitpod.yml
|
||||
javascript/EaglercraftX_1.8_Offline_en_US.html
|
||||
javascript/EaglercraftX_1.8_Offline_International.html
|
||||
javascript/Resent_3.7_patch__1.8_US.html
|
||||
javascript/Resent_3.7_patch__1.8_International.html
|
||||
desktopRuntime/_eagstorage*
|
8
.idea/.gitignore
vendored
8
.idea/.gitignore
vendored
|
@ -1,8 +0,0 @@
|
|||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
# Editor-based HTTP Client requests
|
||||
/httpRequests/
|
||||
# Datasource local storage ignored files
|
||||
/dataSources/
|
||||
/dataSources.local.xml
|
|
@ -1 +0,0 @@
|
|||
eaglercraft-workspace
|
|
@ -1,5 +0,0 @@
|
|||
<component name="ProjectCodeStyleConfiguration">
|
||||
<state>
|
||||
<option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" />
|
||||
</state>
|
||||
</component>
|
|
@ -1,6 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="CompilerConfiguration">
|
||||
<bytecodeTargetLevel target="1.8" />
|
||||
</component>
|
||||
</project>
|
|
@ -1,19 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="GradleMigrationSettings" migrationVersion="1" />
|
||||
<component name="GradleSettings">
|
||||
<option name="linkedExternalProjectsSettings">
|
||||
<GradleProjectSettings>
|
||||
<option name="distributionType" value="DEFAULT_WRAPPED" />
|
||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||
<option name="gradleHome" value="$USER_HOME$/.sdkman/candidates/gradle/current" />
|
||||
<option name="gradleJvm" value="#JAVA_HOME" />
|
||||
<option name="modules">
|
||||
<set>
|
||||
<option value="$PROJECT_DIR$" />
|
||||
</set>
|
||||
</option>
|
||||
</GradleProjectSettings>
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
|
@ -1,20 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="RemoteRepositoriesConfiguration">
|
||||
<remote-repository>
|
||||
<option name="id" value="central" />
|
||||
<option name="name" value="Maven Central repository" />
|
||||
<option name="url" value="https://repo1.maven.org/maven2" />
|
||||
</remote-repository>
|
||||
<remote-repository>
|
||||
<option name="id" value="jboss.community" />
|
||||
<option name="name" value="JBoss Community repository" />
|
||||
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
|
||||
</remote-repository>
|
||||
<remote-repository>
|
||||
<option name="id" value="MavenRepo" />
|
||||
<option name="name" value="MavenRepo" />
|
||||
<option name="url" value="https://repo.maven.apache.org/maven2/" />
|
||||
</remote-repository>
|
||||
</component>
|
||||
</project>
|
|
@ -1,5 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="zulu-11" project-jdk-type="JavaSDK" />
|
||||
</project>
|
|
@ -1,6 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
|
@ -1,9 +0,0 @@
|
|||
# Prettier configuration
|
||||
overrides:
|
||||
- files:
|
||||
- "*.java"
|
||||
options:
|
||||
printWidth: 400
|
||||
tabWidth: 4
|
||||
useTabs: false
|
||||
trailingComma: none
|
9
.vscode/settings.json
vendored
9
.vscode/settings.json
vendored
|
@ -1,9 +0,0 @@
|
|||
{
|
||||
"liveServer.settings.root": "/javascript/",
|
||||
"java.dependency.packagePresentation": "hierarchical",
|
||||
"java.jdt.ls.vmargs": "-XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx4G -Xms100m -Xlog:disable",
|
||||
"editor.tabCompletion": "on",
|
||||
"diffEditor.codeLens": true,
|
||||
"java.configuration.updateBuildConfiguration": "automatic",
|
||||
"java.compile.nullAnalysis.mode": "disabled"
|
||||
}
|
0
CompileEPK.sh
Executable file → Normal file
0
CompileEPK.sh
Executable file → Normal file
|
@ -1,4 +1,4 @@
|
|||
@echo off
|
||||
title MakeOfflineDownload
|
||||
java -cp "desktopRuntime/MakeOfflineDownload.jar;desktopRuntime/CompileEPK.jar" net.lax1dude.eaglercraft.v1_8.buildtools.workspace.MakeOfflineDownload "javascript/OfflineDownloadTemplate.txt" "javascript/classes.js;javascript/fix-webm-duration.js" "javascript/assets.epk" "javascript/Resent_3.7_patch__1.8_US.html" "javascript/Resent_3.7_patch__1.8_International.html" "javascript/lang"
|
||||
java -cp "desktopRuntime/MakeOfflineDownload.jar;desktopRuntime/CompileEPK.jar" net.lax1dude.eaglercraft.v1_8.buildtools.workspace.MakeOfflineDownload "javascript/OfflineDownloadTemplate.txt" "javascript/classes.js;javascript/fix-webm-duration.js" "javascript/assets.epk" "javascript/EaglercraftX_1.8_Offline_en_US.html" "javascript/EaglercraftX_1.8_Offline_International.html" "javascript/lang"
|
||||
pause
|
0
MakeOfflineDownload.sh
Executable file → Normal file
0
MakeOfflineDownload.sh
Executable file → Normal file
|
@ -1,63 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
|
||||
This file is from ${date}, there is no official eagler download link anymore, check the websites and discords of your favorite eagler servers for new versions
|
||||
|
||||
Be aware that some server owners are lazy and do not update their client regularly
|
||||
|
||||
Compile it yourself here: https://gitlab.com/lax1dude/eaglercraftx-1.8/
|
||||
|
||||
-->
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<meta name="description" content="Resent client 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 Offline" />
|
||||
<meta property="og:description" content="this file is not a website, whoever uploaded it to this URL is a dumbass" />
|
||||
<script type="text/javascript">
|
||||
"use strict";
|
||||
|
||||
|
||||
// %%%%%%%%% launch options %%%%%%%%%%%%
|
||||
|
||||
window.eaglercraftXOpts = { container: "game_frame" };
|
||||
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
||||
|
||||
${classes_js}
|
||||
|
||||
window.eaglercraftXOpts.assetsURI = ${assets_epk};
|
||||
|
||||
</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:100vw;height:100vh;overflow:hidden;" id="game_frame">
|
||||
<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>
|
||||
|
||||
<!-- lax1dude was here ( and so was hooman ) -->
|
105
README.md
105
README.md
|
@ -1,105 +0,0 @@
|
|||
# in case this repo is open-sourced, here's some info:
|
||||
|
||||
(i wrote this with like 2 hours of sleep)
|
||||
|
||||
i have decided to fully quit eaglercraft and everything related for personal reasons (dont dig into my past, seriously. i don't like having severe paranoia that one of ur 12 year old asses is gonna raid my friend group). i first started working on this project a long time ago, and that means my code base and half of the code sucks an incredible amount of ass. if you're going to comment on code quality, don't. there are cheats in resent, what a surprise (xray and spawner esp, 3.5 reach), it's not hard to block the activation of these serverside. Finally, i loved my time in the eagler community (not really you all suck ngl) and it has affected me in many ways. (you may see me on mmc or mcpvp, feel free to talk to me or something)
|
||||
|
||||
|
||||
alright, this notice is long enough. さようなら! (if you ever hear from me again i'll be back with a surprise)
|
||||
|
||||
|
||||
## fatal i know you're skidding this right now kys (uwu client always better)
|
||||
|
||||
|
||||
ORIGINAL README BELOW:
|
||||
|
||||
# Resent-1.8
|
||||
|
||||
|
||||
if you're reading this, that means one of the following:
|
||||
|
||||
|
||||
* i open-sourced resent. this is most likely
|
||||
|
||||
* another dev was added to the project.
|
||||
|
||||
* you hacked into my account from my weak ass password and somehow bypassed github email verification.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
either way, here's some documentation on this project.
|
||||
please note that I wrote all of this in a text editor so i probably made a few mistakes in the code.
|
||||
|
||||
|
||||
|
||||
## Module system
|
||||
|
||||
|
||||
### Standard, non-render modules. (ex: fullbright, norain, tooltips)
|
||||
|
||||
create a new class structured like the following:
|
||||
|
||||
|
||||
```
|
||||
@Module(name = "Example", category = Category.MISC) //theres another optional value, hasSetting, set to false by default.
|
||||
public class ExampleModule extends Mod {
|
||||
|
||||
@Override //Overrides method in Mod class.
|
||||
public void onEnable(){
|
||||
//what happens when the module is enabled
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDisable(){
|
||||
//what happens when the module is disabled
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
||||
### Render-related modules that requires drawing to the screen. (ex: keystrokes, info, fps, potionhud)
|
||||
|
||||
|
||||
create a new class structured like this:
|
||||
|
||||
```
|
||||
@RenderModule(name = "ExampleRender", category = Category.MISC, x = 4, y = 4)
|
||||
public class ExampleRenderModule extends RenderModule {
|
||||
|
||||
//this method is called in GuiIngame to draw stuff to the screen.
|
||||
public void draw(){
|
||||
mc.fontRendererObj.drawString("Test", this.getX(), this.getY(), -1 /* -1 is the color of the text. */);
|
||||
}
|
||||
|
||||
//you can still use onEnable and onDisable methods.
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
||||
## Settings
|
||||
|
||||
not too difficult to figure out on your own, here's an example:
|
||||
|
||||
```
|
||||
public class ExampleRenderModule extends RenderModule {
|
||||
public ExampleRenderModule(){
|
||||
addSetting(example);
|
||||
}
|
||||
|
||||
public static BooleanSetting example = new BooleanSetting("Example", "" /* description */, true /* default value */);
|
||||
|
||||
public void draw(){
|
||||
if(example.getValue())
|
||||
mc.fontRendererObj.drawString("Test", this.getX(), this.getY(), -1 /* -1 is the color of the text. */);
|
||||
}
|
||||
|
||||
}
|
||||
```
|
||||
|
||||
^ this example was done with a booleansetting, its similar to a modesetting, too lazy to write a documentation for that cope.
|
||||
|
||||
|
20
Start.java
20
Start.java
|
@ -1,20 +0,0 @@
|
|||
import java.io.File;
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.Arrays;
|
||||
|
||||
import net.minecraft.client.main.Main;
|
||||
|
||||
public class Start
|
||||
{
|
||||
public static void main(String[] args)
|
||||
{
|
||||
Main.main(concat(new String[] {"--version", "mcp", "--accessToken", "0", "--assetsDir", "assets", "--assetIndex", "1.8", "--userProperties", "{}"}, args));
|
||||
}
|
||||
|
||||
public static <T> T[] concat(T[] first, T[] second)
|
||||
{
|
||||
T[] result = Arrays.copyOf(first, first.length + second.length);
|
||||
System.arraycopy(second, 0, result, first.length, second.length);
|
||||
return result;
|
||||
}
|
||||
}
|
123
build.gradle
123
build.gradle
|
@ -1,28 +1,26 @@
|
|||
|
||||
buildscript {
|
||||
repositories {
|
||||
mavenCentral()
|
||||
google()
|
||||
}
|
||||
|
||||
dependencies {
|
||||
// classpath 'io.github.zebalu:teavm-gradle-plugin:1.0.0'
|
||||
classpath 'io.github.zebalu:teavm-gradle-plugin:1.0.0'
|
||||
}
|
||||
}
|
||||
|
||||
plugins {
|
||||
id 'java'
|
||||
id 'eclipse'
|
||||
id "org.teavm" version "0.8.1"
|
||||
}
|
||||
apply plugin: 'java'
|
||||
apply plugin: 'eclipse'
|
||||
apply plugin: 'io.github.zebalu.teavm-gradle-plugin'
|
||||
|
||||
sourceCompatibility = JavaVersion.VERSION_11
|
||||
targetCompatibility = JavaVersion.VERSION_11
|
||||
sourceCompatibility = 1.8
|
||||
targetCompatibility = 1.8
|
||||
|
||||
sourceSets {
|
||||
main {
|
||||
java {
|
||||
srcDir 'src/main/java'
|
||||
srcDir 'src/teavm'
|
||||
srcDir 'src/teavm/java'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -32,58 +30,57 @@ repositories {
|
|||
}
|
||||
|
||||
dependencies {
|
||||
// https://mvnrepository.com/artifact/org.teavm/teavm-platform
|
||||
implementation 'org.teavm:teavm-platform:0.8.1'
|
||||
// https://mvnrepository.com/artifact/org.teavm/teavm-classlib
|
||||
implementation 'org.teavm:teavm-classlib:0.8.1'
|
||||
// https://mvnrepository.com/artifact/org.teavm/teavm-interop
|
||||
implementation 'org.teavm:teavm-interop:0.8.1'
|
||||
// https://mvnrepository.com/artifact/org.teavm/teavm-jso
|
||||
implementation 'org.teavm:teavm-jso:0.8.1'
|
||||
// https://mvnrepository.com/artifact/org.teavm/teavm-jso-apis
|
||||
implementation 'org.teavm:teavm-jso-apis:0.8.1'
|
||||
// https://mvnrepository.com/artifact/org.teavm/teavm-junit
|
||||
testImplementation 'org.teavm:teavm-junit:0.8.1'
|
||||
// https://mvnrepository.com/artifact/org.teavm/teavm-jso-impl
|
||||
implementation 'org.teavm:teavm-jso-impl:0.8.1'
|
||||
// https://mvnrepository.com/artifact/com.jcraft/jzlib
|
||||
implementation 'com.jcraft:jzlib:1.1.3'
|
||||
/** we use 0.6.1 due to performance issues on 7.0.0 */
|
||||
implementation 'org.teavm:teavm-platform:0.6.1'
|
||||
implementation('org.teavm:teavm-classlib:0.6.1') {
|
||||
exclude group: 'com.google.code.gson', module: 'gson'
|
||||
}
|
||||
}
|
||||
|
||||
teavm.js {
|
||||
properties = null;
|
||||
debugInformation = false;
|
||||
sourceMap = true;
|
||||
obfuscated = false;
|
||||
|
||||
/** Where to save the result */
|
||||
outputDir = file("javascript");
|
||||
|
||||
/** How to name the result file. */
|
||||
targetFileName = "classes.js";
|
||||
|
||||
/** Which class holds your public static void main(Strin[] args) method */
|
||||
mainClass = 'net.lax1dude.eaglercraft.v1_8.internal.teavm.MainClass';
|
||||
|
||||
/** This will be the name of your main method after compilation. */
|
||||
entryPointName = 'main';
|
||||
|
||||
preservedClasses = Arrays.asList('net.minecraft.client.Minecraft');
|
||||
// optimization = BALANCED; //org.teavm.vm.TeaVMOptimizationLevel.SIMPLE;
|
||||
fastGlobalAnalysis = false;
|
||||
// targetType = "JAVASCRIPT"; //org.teavm.tooling.TeaVMTargetType.JAVASCRIPT;
|
||||
// cacheDirectory = null;
|
||||
// wasmVersion = "V_0x1"; //org.teavm.backend.wasm.render.WasmBinaryVersion.V_0x1;
|
||||
// minHeapSize = 4;
|
||||
// maxHeapSize = 128;
|
||||
outOfProcess = false;
|
||||
processMemory = 512;
|
||||
// longjmpSupported = true;
|
||||
// heapDump = false;
|
||||
|
||||
/** Add name of configurations here where to look for jarfiles. */
|
||||
// includeJarsFrom = [];
|
||||
|
||||
/** By default teavmc taskd epends on javaCompile task, unless this varaibale is true. */
|
||||
// skipJavaCompile = false;
|
||||
}
|
||||
teavm {
|
||||
|
||||
compileScopes = null;
|
||||
minifying = true;
|
||||
maxTopLevelNames = 10000;
|
||||
properties = null;
|
||||
debugInformationGenerated = false;
|
||||
sourceMapsGenerated = true;
|
||||
sourceFilesCopied = false;
|
||||
incremental = false;
|
||||
transformers = null;
|
||||
|
||||
/** Where to save the result */
|
||||
targetDirectory = file("javascript");
|
||||
|
||||
/** The directory to monitor to decide if compile is up-to-date or not */
|
||||
sourceDirectory = file("src");
|
||||
|
||||
/** How to name the result file. */
|
||||
targetFileName = "classes.js";
|
||||
|
||||
/** Which class holds your public static void main(Strin[] args) method */
|
||||
mainClass = 'net.lax1dude.eaglercraft.v1_8.internal.teavm.MainClass';
|
||||
|
||||
/** This will be the name of your main method after compilation. */
|
||||
entryPointName = 'main';
|
||||
|
||||
classesToPreserve = null;
|
||||
stopOnErrors = false;
|
||||
optimizationLevel = "ADVANCED"; //org.teavm.vm.TeaVMOptimizationLevel.SIMPLE;
|
||||
fastGlobalAnalysis = false;
|
||||
targetType = "JAVASCRIPT"; //org.teavm.tooling.TeaVMTargetType.JAVASCRIPT;
|
||||
cacheDirectory = null;
|
||||
wasmVersion = "V_0x1"; //org.teavm.backend.wasm.render.WasmBinaryVersion.V_0x1;
|
||||
minHeapSize = 4;
|
||||
maxHeapSize = 128;
|
||||
outOfProcess = false;
|
||||
processMemory = 512;
|
||||
longjmpSupported = true;
|
||||
heapDump = false;
|
||||
|
||||
/** Add name of configurations here where to look for jarfiles. */
|
||||
includeJarsFrom = [];
|
||||
|
||||
/** By default teavmc taskd epends on javaCompile task, unless this varaibale is true. */
|
||||
skipJavaCompile = false;
|
||||
}
|
||||
|
|
|
@ -7,17 +7,17 @@
|
|||
<attribute name="module" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="lib" path="C:/Users/kay_j/Downloads/uwu/Resent-1.8/desktopRuntime/CompileEPK.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/kay_j/Downloads/uwu/Resent-1.8/desktopRuntime/Java-WebSocket-1.5.1-with-dependencies.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/kay_j/Downloads/uwu/Resent-1.8/desktopRuntime/MakeOfflineDownload.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/kay_j/Downloads/uwu/Resent-1.8/desktopRuntime/codecjorbis-20101023.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/kay_j/Downloads/uwu/Resent-1.8/desktopRuntime/codecwav-20101023.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/kay_j/Downloads/uwu/Resent-1.8/desktopRuntime/lwjgl-egl.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/kay_j/Downloads/uwu/Resent-1.8/desktopRuntime/lwjgl-glfw.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/kay_j/Downloads/uwu/Resent-1.8/desktopRuntime/lwjgl-jemalloc.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/kay_j/Downloads/uwu/Resent-1.8/desktopRuntime/lwjgl-openal.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/kay_j/Downloads/uwu/Resent-1.8/desktopRuntime/lwjgl-opengles.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/kay_j/Downloads/uwu/Resent-1.8/desktopRuntime/lwjgl.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/kay_j/Downloads/uwu/Resent-1.8/desktopRuntime/soundsystem-20120107.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/suvan/Downloads/bafybeiakklgbdjufhlcbsf2hksxbmxgyilobmvtcogt6ltdtweh5nyvbvi/../eaglercraft_1.8_workspace/desktopRuntime/codecjorbis-20101023.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/suvan/Downloads/bafybeiakklgbdjufhlcbsf2hksxbmxgyilobmvtcogt6ltdtweh5nyvbvi/../eaglercraft_1.8_workspace/desktopRuntime/codecwav-20101023.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/suvan/Downloads/bafybeiakklgbdjufhlcbsf2hksxbmxgyilobmvtcogt6ltdtweh5nyvbvi/../eaglercraft_1.8_workspace/desktopRuntime/CompileEPK.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/suvan/Downloads/bafybeiakklgbdjufhlcbsf2hksxbmxgyilobmvtcogt6ltdtweh5nyvbvi/../eaglercraft_1.8_workspace/desktopRuntime/Java-WebSocket-1.5.1-with-dependencies.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/suvan/Downloads/bafybeiakklgbdjufhlcbsf2hksxbmxgyilobmvtcogt6ltdtweh5nyvbvi/../eaglercraft_1.8_workspace/desktopRuntime/lwjgl-egl.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/suvan/Downloads/bafybeiakklgbdjufhlcbsf2hksxbmxgyilobmvtcogt6ltdtweh5nyvbvi/../eaglercraft_1.8_workspace/desktopRuntime/lwjgl-glfw.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/suvan/Downloads/bafybeiakklgbdjufhlcbsf2hksxbmxgyilobmvtcogt6ltdtweh5nyvbvi/../eaglercraft_1.8_workspace/desktopRuntime/lwjgl-jemalloc.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/suvan/Downloads/bafybeiakklgbdjufhlcbsf2hksxbmxgyilobmvtcogt6ltdtweh5nyvbvi/../eaglercraft_1.8_workspace/desktopRuntime/lwjgl-openal.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/suvan/Downloads/bafybeiakklgbdjufhlcbsf2hksxbmxgyilobmvtcogt6ltdtweh5nyvbvi/../eaglercraft_1.8_workspace/desktopRuntime/lwjgl-opengles.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/suvan/Downloads/bafybeiakklgbdjufhlcbsf2hksxbmxgyilobmvtcogt6ltdtweh5nyvbvi/../eaglercraft_1.8_workspace/desktopRuntime/lwjgl.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/suvan/Downloads/bafybeiakklgbdjufhlcbsf2hksxbmxgyilobmvtcogt6ltdtweh5nyvbvi/../eaglercraft_1.8_workspace/desktopRuntime/MakeOfflineDownload.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/suvan/Downloads/bafybeiakklgbdjufhlcbsf2hksxbmxgyilobmvtcogt6ltdtweh5nyvbvi/../eaglercraft_1.8_workspace/desktopRuntime/soundsystem-20120107.jar"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>Resent 1.8</name>
|
||||
<name>eclipseProject</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
|
@ -18,12 +18,12 @@
|
|||
<link>
|
||||
<name>src_lwjgl_java</name>
|
||||
<type>2</type>
|
||||
<location>C:/Users/kay_j/Downloads/uwu/Resent-1.8/src/lwjgl/java/</location>
|
||||
<location>C:/Users/suvan/Downloads/bafybeiakklgbdjufhlcbsf2hksxbmxgyilobmvtcogt6ltdtweh5nyvbvi/../eaglercraft_1.8_workspace/src/lwjgl/java</location>
|
||||
</link>
|
||||
<link>
|
||||
<name>src_main_java</name>
|
||||
<type>2</type>
|
||||
<location>C:/Users/kay_j/Downloads/uwu/Resent-1.8/src/main/java/</location>
|
||||
<location>C:/Users/suvan/Downloads/bafybeiakklgbdjufhlcbsf2hksxbmxgyilobmvtcogt6ltdtweh5nyvbvi/../eaglercraft_1.8_workspace/src/main/java</location>
|
||||
</link>
|
||||
</linkedResources>
|
||||
</projectDescription>
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
|
||||
<booleanAttribute key="org.eclipse.debug.core.ATTR_FORCE_SYSTEM_CONSOLE_ENCODING" value="false"/>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||
<listEntry value="/Resent 1.8/src_lwjgl_java/net/lax1dude/eaglercraft/v1_8/internal/lwjgl/MainClass.java"/>
|
||||
<listEntry value="/eclipseProject/src_lwjgl_java/net/lax1dude/eaglercraft/v1_8/internal/lwjgl/MainClass.java"/>
|
||||
</listAttribute>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||
<listEntry value="1"/>
|
||||
|
@ -15,10 +14,9 @@
|
|||
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_SHOW_CODEDETAILS_IN_EXCEPTION_MESSAGES" value="true"/>
|
||||
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_CLASSPATH_ONLY_JAR" value="false"/>
|
||||
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8/"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="net.lax1dude.eaglercraft.v1_8.internal.lwjgl.MainClass"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.MODULE_NAME" value="Resent 1.8"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="Resent 1.8"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.MODULE_NAME" value="eclipseProject"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="eclipseProject"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Djava.library.path=."/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="C:/Users/kay_j/Downloads/uwu/Resent-1.8/desktopRuntime"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="C:/Users/suvan/Downloads/bafybeiakklgbdjufhlcbsf2hksxbmxgyilobmvtcogt6ltdtweh5nyvbvi/../eaglercraft_1.8_workspace/desktopRuntime"/>
|
||||
</launchConfiguration>
|
||||
|
|
|
@ -5,9 +5,11 @@
|
|||
lax1dude:
|
||||
|
||||
- Creator of Eaglercraft
|
||||
- Wrote HW accelerated OpenGL 1.3 emulator
|
||||
- Wrote all desktop emulation code
|
||||
- Ported the Minecraft 1.8 client src to TeaVM
|
||||
- Wrote HW accelerated OpenGL 1.3 emulator
|
||||
- Wrote the default shader pack
|
||||
- Made the integrated PBR resource pack
|
||||
- Wrote all desktop emulation code
|
||||
- Wrote EaglercraftXBungee
|
||||
- Wrote the patch and build system
|
||||
|
||||
|
|
|
@ -15,8 +15,8 @@
|
|||
*/
|
||||
|
||||
precision lowp int;
|
||||
precision lowp float;
|
||||
precision lowp sampler2D;
|
||||
precision mediump float;
|
||||
precision mediump sampler2D;
|
||||
|
||||
in vec2 v_texCoord2f;
|
||||
in vec4 v_color4f;
|
||||
|
|
|
@ -15,8 +15,8 @@
|
|||
*/
|
||||
|
||||
precision lowp int;
|
||||
precision lowp float;
|
||||
precision lowp sampler2D;
|
||||
precision highp float;
|
||||
precision mediump sampler2D;
|
||||
|
||||
layout(location = 0) in vec3 a_position3f;
|
||||
|
||||
|
|
|
@ -15,8 +15,8 @@
|
|||
*/
|
||||
|
||||
precision lowp int;
|
||||
precision lowp float;
|
||||
precision lowp sampler2D;
|
||||
precision mediump float;
|
||||
precision mediump sampler2D;
|
||||
|
||||
in vec2 v_texCoord2f;
|
||||
in vec4 v_color4f;
|
||||
|
|
|
@ -15,8 +15,8 @@
|
|||
*/
|
||||
|
||||
precision lowp int;
|
||||
precision lowp float;
|
||||
precision lowp sampler2D;
|
||||
precision highp float;
|
||||
precision mediump sampler2D;
|
||||
|
||||
layout(location = 0) in vec2 a_position2f;
|
||||
|
||||
|
|
|
@ -141,6 +141,10 @@ void main() {
|
|||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef COMPILE_BLEND_ADD
|
||||
color = color * u_colorBlendSrc4f + u_colorBlendAdd4f;
|
||||
#endif
|
||||
|
||||
#ifdef COMPILE_ENABLE_ALPHA_TEST
|
||||
if(color.a < u_alphaTestRef1f) discard;
|
||||
#endif
|
||||
|
@ -154,24 +158,21 @@ void main() {
|
|||
vec3 normal = u_uniformNormal3f;
|
||||
#endif
|
||||
float diffuse = 0.0;
|
||||
vec4 light;
|
||||
for(int i = 0; i < u_lightsEnabled1i; ++i) {
|
||||
vec4 light = u_lightsDirections4fv[i];
|
||||
light = u_lightsDirections4fv[i];
|
||||
diffuse += max(dot(light.xyz, normal), 0.0) * light.w;
|
||||
}
|
||||
color.rgb *= min(u_lightsAmbient3f + vec3(diffuse), 1.0);
|
||||
#endif
|
||||
|
||||
#ifdef COMPILE_BLEND_ADD
|
||||
color.rgba = color.rgba * u_colorBlendSrc4f + u_colorBlendAdd4f;
|
||||
#endif
|
||||
|
||||
#ifdef COMPILE_ENABLE_FOG
|
||||
vec3 fogPos = v_position4f.xyz / v_position4f.w;
|
||||
float dist = sqrt(dot(fogPos, fogPos));
|
||||
float fogDensity = u_fogParameters4f.y;
|
||||
float fogStart = u_fogParameters4f.z;
|
||||
float fogEnd = u_fogParameters4f.w;
|
||||
float f = u_fogParameters4f.x > 0.0 ? 1.0 - pow(2.718, -(fogDensity * dist)) :
|
||||
float f = u_fogParameters4f.x > 0.0 ? 1.0 - exp(-fogDensity * dist) :
|
||||
(dist - fogStart) / (fogEnd - fogStart);
|
||||
color.rgb = mix(color.rgb, u_fogColor4f.rgb, clamp(f, 0.0, 1.0) * u_fogColor4f.a);
|
||||
#endif
|
||||
|
|
|
@ -50,29 +50,29 @@ out vec2 v_lightmap2f;
|
|||
uniform mat4 u_textureMat4f02;
|
||||
#endif
|
||||
|
||||
#ifdef _COMPILE_VARYING_POSITION
|
||||
uniform mat4 u_modelviewMat4f;
|
||||
uniform mat4 u_projectionMat4f;
|
||||
#else
|
||||
uniform mat4 u_modelviewProjMat4f;
|
||||
#ifdef COMPILE_NORMAL_ATTRIB
|
||||
uniform mat4 u_modelviewMat4f;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define TEX_MAT3(mat4In) mat3(mat4In[0].xyw,mat4In[1].xyw,mat4In[3].xyw)
|
||||
|
||||
void main() {
|
||||
|
||||
#ifdef COMPILE_ENABLE_TEX_GEN
|
||||
v_objectPosition3f = a_position3f;
|
||||
#endif
|
||||
|
||||
vec4 pos = u_modelviewMat4f * vec4(a_position3f, 1.0);
|
||||
|
||||
#ifdef _COMPILE_VARYING_POSITION
|
||||
v_position4f = pos;
|
||||
v_position4f = u_modelviewMat4f * vec4(a_position3f, 1.0);
|
||||
#endif
|
||||
|
||||
#ifdef COMPILE_TEXTURE_ATTRIB
|
||||
mat4x3 texMat4x3 = mat4x3(
|
||||
u_textureMat4f01[0].xyw,
|
||||
u_textureMat4f01[1].xyw,
|
||||
u_textureMat4f01[2].xyw,
|
||||
u_textureMat4f01[3].xyw
|
||||
);
|
||||
vec3 v_textureTmp3f = texMat4x3 * vec4(a_texture2f, 0.0, 1.0);
|
||||
vec3 v_textureTmp3f = TEX_MAT3(u_textureMat4f01) * vec3(a_texture2f, 1.0);
|
||||
v_texture2f = v_textureTmp3f.xy / v_textureTmp3f.z;
|
||||
#endif
|
||||
|
||||
|
@ -85,19 +85,13 @@ void main() {
|
|||
#endif
|
||||
|
||||
#ifdef COMPILE_LIGHTMAP_ATTRIB
|
||||
#ifdef COMPILE_TEXTURE_ATTRIB
|
||||
texMat4x3 = mat4x3(
|
||||
#else
|
||||
mat4x3 texMat4x3 = mat4x3(
|
||||
#endif
|
||||
u_textureMat4f02[0].xyw,
|
||||
u_textureMat4f02[1].xyw,
|
||||
u_textureMat4f02[2].xyw,
|
||||
u_textureMat4f02[3].xyw
|
||||
);
|
||||
vec3 v_lightmapTmp3f = texMat4x3 * vec4(a_lightmap2f, 0.0, 1.0);
|
||||
vec3 v_lightmapTmp3f = TEX_MAT3(u_textureMat4f02) * vec3(a_lightmap2f, 1.0);
|
||||
v_lightmap2f = v_lightmapTmp3f.xy / v_lightmapTmp3f.z;
|
||||
#endif
|
||||
|
||||
gl_Position = u_projectionMat4f * pos;
|
||||
#ifdef _COMPILE_VARYING_POSITION
|
||||
gl_Position = u_projectionMat4f * v_position4f;
|
||||
#else
|
||||
gl_Position = u_modelviewProjMat4f * vec4(a_position3f, 1.0);
|
||||
#endif
|
||||
}
|
||||
|
|
|
@ -0,0 +1,72 @@
|
|||
#line 2
|
||||
|
||||
/*
|
||||
* Copyright (c) 2023 LAX1DUDE. All Rights Reserved.
|
||||
*
|
||||
* WITH THE EXCEPTION OF PATCH FILES, MINIFIED JAVASCRIPT, AND ALL FILES
|
||||
* NORMALLY FOUND IN AN UNMODIFIED MINECRAFT RESOURCE PACK, YOU ARE NOT ALLOWED
|
||||
* TO SHARE, DISTRIBUTE, OR REPURPOSE ANY FILE USED BY OR PRODUCED BY THE
|
||||
* SOFTWARE IN THIS REPOSITORY WITHOUT PRIOR PERMISSION FROM THE PROJECT AUTHOR.
|
||||
*
|
||||
* NOT FOR COMMERCIAL OR MALICIOUS USE
|
||||
*
|
||||
* (please read the 'LICENSE' file this repo's root directory for more info)
|
||||
*
|
||||
*/
|
||||
|
||||
precision lowp int;
|
||||
precision highp float;
|
||||
precision mediump sampler2D;
|
||||
|
||||
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;
|
||||
out vec2 v_lightmap2f;
|
||||
|
||||
#ifdef COMPILE_FORWARD_VSH
|
||||
out vec4 v_position4f;
|
||||
uniform mat4 u_modelViewMatrix4f;
|
||||
uniform mat4 u_projectionMatrix4f;
|
||||
#endif
|
||||
|
||||
#ifdef COMPILE_GBUFFER_VSH
|
||||
uniform mat4 u_matrixTransform;
|
||||
#endif
|
||||
|
||||
uniform vec3 u_texCoordSize2f_particleSize1f;
|
||||
uniform vec4 u_transformParam_1_2_3_4_f;
|
||||
uniform float u_transformParam_5_f;
|
||||
|
||||
void main() {
|
||||
v_color4f = p_color4f.bgra;
|
||||
v_lightmap2f = p_lightMap2f;
|
||||
|
||||
vec2 tex2f = a_position2f * 0.5 + 0.5;
|
||||
tex2f.y = 1.0 - tex2f.y;
|
||||
tex2f = p_texCoords2i + tex2f * p_particleSize_texCoordsSize_2i.y;
|
||||
v_texCoord2f = tex2f * u_texCoordSize2f_particleSize1f.xy;
|
||||
|
||||
float particleSize = u_texCoordSize2f_particleSize1f.z * p_particleSize_texCoordsSize_2i.x;
|
||||
|
||||
vec3 pos3f = p_position3f;
|
||||
pos3f.x += u_transformParam_1_2_3_4_f.x * particleSize * a_position2f.x;
|
||||
pos3f.x += u_transformParam_1_2_3_4_f.w * particleSize * a_position2f.y;
|
||||
pos3f.y += u_transformParam_1_2_3_4_f.y * particleSize * a_position2f.y;
|
||||
pos3f.z += u_transformParam_1_2_3_4_f.z * particleSize * a_position2f.x;
|
||||
pos3f.z += u_transformParam_5_f * particleSize * a_position2f.y;
|
||||
|
||||
#ifdef COMPILE_GBUFFER_VSH
|
||||
gl_Position = u_matrixTransform * vec4(pos3f, 1.0);
|
||||
#endif
|
||||
#ifdef COMPILE_FORWARD_VSH
|
||||
v_position4f = u_modelViewMatrix4f * vec4(pos3f, 1.0);
|
||||
gl_Position = u_projectionMatrix4f * v_position4f;
|
||||
#endif
|
||||
}
|
|
@ -0,0 +1,233 @@
|
|||
#line 2
|
||||
|
||||
/*
|
||||
* Copyright (c) 2023 LAX1DUDE. All Rights Reserved.
|
||||
*
|
||||
* WITH THE EXCEPTION OF PATCH FILES, MINIFIED JAVASCRIPT, AND ALL FILES
|
||||
* NORMALLY FOUND IN AN UNMODIFIED MINECRAFT RESOURCE PACK, YOU ARE NOT ALLOWED
|
||||
* TO SHARE, DISTRIBUTE, OR REPURPOSE ANY FILE USED BY OR PRODUCED BY THE
|
||||
* SOFTWARE IN THIS REPOSITORY WITHOUT PRIOR PERMISSION FROM THE PROJECT AUTHOR.
|
||||
*
|
||||
* NOT FOR COMMERCIAL OR MALICIOUS USE
|
||||
*
|
||||
* (please read the 'LICENSE' file this repo's root directory for more info)
|
||||
*
|
||||
*/
|
||||
|
||||
precision lowp int;
|
||||
precision highp float;
|
||||
precision mediump sampler2D;
|
||||
precision highp sampler2DShadow;
|
||||
|
||||
in vec4 v_position4f;
|
||||
in vec2 v_texCoord2f;
|
||||
in vec4 v_color4f;
|
||||
in vec2 v_lightmap2f;
|
||||
|
||||
layout(location = 0) out vec4 output4f;
|
||||
|
||||
uniform sampler2D u_diffuseTexture;
|
||||
|
||||
uniform vec2 u_textureYScale2f;
|
||||
|
||||
uniform mat4 u_inverseViewMatrix4f;
|
||||
|
||||
#ifdef COMPILE_DYNAMIC_LIGHTS
|
||||
struct DynamicLight {
|
||||
mediump vec4 u_lightPosition4f;
|
||||
mediump vec4 u_lightColor4f;
|
||||
};
|
||||
layout(std140) uniform u_chunkLightingData {
|
||||
mediump int u_dynamicLightCount1i;
|
||||
mediump int _paddingA_;
|
||||
mediump int _paddingB_;
|
||||
mediump int _paddingC_;
|
||||
DynamicLight u_dynamicLightArray[12];
|
||||
};
|
||||
#endif
|
||||
|
||||
layout(std140) uniform u_worldLightingData {
|
||||
mediump vec4 u_sunDirection4f;
|
||||
mediump vec4 u_sunColor3f_sky1f;
|
||||
mediump vec4 u_fogParameters4f;
|
||||
mediump vec4 u_fogColorLight4f;
|
||||
mediump vec4 u_fogColorDark4f;
|
||||
mediump vec4 u_fogColorAddSun4f;
|
||||
mediump vec4 u_blockSkySunDynamicLightFac4f;
|
||||
#ifdef COMPILE_SUN_SHADOW_LOD0
|
||||
mediump mat4 u_sunShadowMatrixLOD04f;
|
||||
#define DO_COMPILE_SUN_SHADOWS
|
||||
#define SUN_SHADOW_MAP_FRAC 1.0
|
||||
#endif
|
||||
#ifdef COMPILE_SUN_SHADOW_LOD1
|
||||
mediump mat4 u_sunShadowMatrixLOD04f;
|
||||
mediump mat4 u_sunShadowMatrixLOD14f;
|
||||
#define DO_COMPILE_SUN_SHADOWS
|
||||
#define SUN_SHADOW_MAP_FRAC 0.5
|
||||
#endif
|
||||
#ifdef COMPILE_SUN_SHADOW_LOD2
|
||||
mediump mat4 u_sunShadowMatrixLOD04f;
|
||||
mediump mat4 u_sunShadowMatrixLOD14f;
|
||||
mediump mat4 u_sunShadowMatrixLOD24f;
|
||||
#define DO_COMPILE_SUN_SHADOWS
|
||||
#define SUN_SHADOW_MAP_FRAC 0.3333333
|
||||
#endif
|
||||
};
|
||||
|
||||
uniform sampler2D u_samplerNormalMaterial;
|
||||
|
||||
uniform sampler2D u_metalsLUT;
|
||||
|
||||
#define LIB_INCLUDE_PBR_LIGHTING_FUNCTION
|
||||
#define LIB_INCLUDE_PBR_LIGHTING_PREFETCH
|
||||
#EAGLER INCLUDE (3) "eagler:glsl/deferred/lib/pbr_lighting.glsl"
|
||||
|
||||
uniform sampler2D u_irradianceMap;
|
||||
|
||||
#ifdef DO_COMPILE_SUN_SHADOWS
|
||||
uniform sampler2DShadow u_sunShadowDepthTexture;
|
||||
#endif
|
||||
|
||||
void main() {
|
||||
vec4 worldPosition4f;
|
||||
vec4 worldDirection4f;
|
||||
vec4 diffuseColor4f;
|
||||
vec3 normalVector3f;
|
||||
vec2 lightmapCoords2f;
|
||||
vec3 materialData3f;
|
||||
|
||||
// =========== RESOLVE CONSTANTS ============ //
|
||||
|
||||
worldPosition4f = u_inverseViewMatrix4f * v_position4f;
|
||||
worldPosition4f.xyz /= worldPosition4f.w;
|
||||
worldPosition4f.w = 1.0;
|
||||
worldDirection4f = u_inverseViewMatrix4f * vec4(v_position4f.xyz / v_position4f.w, 0.0);
|
||||
worldDirection4f.xyz = normalize(worldDirection4f.xyz);
|
||||
|
||||
lightmapCoords2f = v_lightmap2f;
|
||||
|
||||
normalVector3f = normalize(u_inverseViewMatrix4f[2].xyz);
|
||||
|
||||
// ========= CALCULATE DIFFUSE COLOR ========== //
|
||||
|
||||
diffuseColor4f = texture(u_diffuseTexture, v_texCoord2f) * v_color4f;
|
||||
|
||||
// ============= ALPHA TEST ============== //
|
||||
|
||||
if(diffuseColor4f.a < 0.004) discard;
|
||||
|
||||
// ========== RESOLVE MATERIALS =========== //
|
||||
|
||||
materialData3f = texture(u_samplerNormalMaterial, vec2(v_texCoord2f.x, v_texCoord2f.y * u_textureYScale2f.x + u_textureYScale2f.y)).rgb;
|
||||
|
||||
vec3 metalN, metalK;
|
||||
PREFETCH_METALS(diffuseColor4f.rgb, materialData3f.g, metalN, metalK)
|
||||
|
||||
// ============ SUN LIGHTING ============== //
|
||||
|
||||
diffuseColor4f.rgb *= diffuseColor4f.rgb;
|
||||
|
||||
vec3 lightColor3f = vec3(0.0);
|
||||
if(dot(u_sunDirection4f.xyz, normalVector3f) > 0.0 && lightmapCoords2f.g > 0.5 &&
|
||||
(u_sunColor3f_sky1f.r + u_sunColor3f_sky1f.g + u_sunColor3f_sky1f.b) > 0.001) {
|
||||
#ifdef DO_COMPILE_SUN_SHADOWS
|
||||
|
||||
// ========== SUN SHADOW: LOD0 ============ //
|
||||
|
||||
float skyLight = max(lightmapCoords2f.g * 2.0 - 1.0, 0.0);
|
||||
float shadowSample = 1.0;
|
||||
vec4 shadowWorldPos4f = worldPosition4f;
|
||||
shadowWorldPos4f.xyz += normalVector3f * 0.05;
|
||||
|
||||
vec4 shadowTexPos4f;
|
||||
vec2 tmpVec2;
|
||||
for(;;) {
|
||||
shadowTexPos4f = u_sunShadowMatrixLOD04f * shadowWorldPos4f;
|
||||
if(shadowTexPos4f.xyz == clamp(shadowTexPos4f.xyz, vec3(0.005), vec3(0.995))) {
|
||||
shadowSample = textureLod(u_sunShadowDepthTexture, vec3(shadowTexPos4f.xy * vec2(1.0, SUN_SHADOW_MAP_FRAC), shadowTexPos4f.z), 0.0);
|
||||
break;
|
||||
}
|
||||
|
||||
#if defined(COMPILE_SUN_SHADOW_LOD1) || defined(COMPILE_SUN_SHADOW_LOD2)
|
||||
shadowTexPos4f = u_sunShadowMatrixLOD14f * shadowWorldPos4f;
|
||||
if(shadowTexPos4f.xyz == clamp(shadowTexPos4f.xyz, vec3(0.005), vec3(0.995))) {
|
||||
shadowTexPos4f.y += 1.0;
|
||||
shadowTexPos4f.y *= SUN_SHADOW_MAP_FRAC;
|
||||
shadowSample = textureLod(u_sunShadowDepthTexture, vec3(shadowTexPos4f.xy, shadowTexPos4f.z + 0.00015), 0.0);
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef COMPILE_SUN_SHADOW_LOD2
|
||||
shadowTexPos4f = u_sunShadowMatrixLOD24f * shadowWorldPos4f;
|
||||
if(shadowTexPos4f.xyz == clamp(shadowTexPos4f.xyz, vec3(0.005), vec3(0.995))) {
|
||||
shadowTexPos4f.y += 2.0;
|
||||
shadowTexPos4f.y *= SUN_SHADOW_MAP_FRAC;
|
||||
shadowSample = textureLod(u_sunShadowDepthTexture, vec3(shadowTexPos4f.xy, shadowTexPos4f.z + 0.00015), 0.0);
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
lightColor3f = u_sunColor3f_sky1f.rgb * max(lightmapCoords2f.g * 2.0 - 1.0, 0.0);
|
||||
#ifdef DO_COMPILE_SUN_SHADOWS
|
||||
lightColor3f *= shadowSample * skyLight;
|
||||
#endif
|
||||
vec3 normalWrap3f = normalVector3f * (dot(-worldDirection4f.xyz, normalVector3f) < 0.0 ? -1.0 : 1.0);
|
||||
lightColor3f = eaglercraftLighting(diffuseColor4f.rgb, lightColor3f, -worldDirection4f.xyz, u_sunDirection4f.xyz, normalWrap3f, materialData3f, metalN, metalK) * u_blockSkySunDynamicLightFac4f.z;
|
||||
}
|
||||
|
||||
// =========== IRRADIANCE MAP =========== //
|
||||
|
||||
lightmapCoords2f *= lightmapCoords2f;
|
||||
|
||||
vec3 irradianceMapSamplePos2f = normalVector3f;
|
||||
irradianceMapSamplePos2f.xz /= abs(irradianceMapSamplePos2f.y) + 1.0;
|
||||
float dst = 1.0 - dot(irradianceMapSamplePos2f.xz, irradianceMapSamplePos2f.xz);
|
||||
dst *= dst;
|
||||
irradianceMapSamplePos2f.xz *= 0.975;
|
||||
vec3 skyLight = vec3(sqrt(0.01 + max(u_sunDirection4f.w, 0.0)));
|
||||
if(dst < 0.005) {
|
||||
vec4 sample1 = textureLod(u_irradianceMap, irradianceMapSamplePos2f.xz * vec2(0.5, 0.25) + vec2(0.5, 0.25), 0.0);
|
||||
vec4 sample2 = textureLod(u_irradianceMap, irradianceMapSamplePos2f.xz * vec2(0.5, -0.25) + vec2(0.5, 0.75), 0.0);
|
||||
skyLight += mix(sample1.rgb, sample2.rgb, smoothstep(0.0, 1.0, irradianceMapSamplePos2f.y * -12.5 + 0.5)).rgb;
|
||||
}else {
|
||||
irradianceMapSamplePos2f.xz *= vec2(0.5, irradianceMapSamplePos2f.y > 0.0 ? 0.25 : -0.25);
|
||||
irradianceMapSamplePos2f.xz += vec2(0.5, irradianceMapSamplePos2f.y > 0.0 ? 0.25 : 0.75);
|
||||
skyLight += textureLod(u_irradianceMap, irradianceMapSamplePos2f.xz, 0.0).rgb;
|
||||
}
|
||||
skyLight *= lightmapCoords2f.g * u_sunColor3f_sky1f.w;
|
||||
|
||||
#ifdef COMPILE_DYNAMIC_LIGHTS
|
||||
|
||||
// =========== DYNAMIC LIGHTING =========== //
|
||||
|
||||
vec3 dlightDist3f, dlightDir3f, dlightColor3f;
|
||||
int safeLightCount = u_dynamicLightCount1i > 12 ? 0 : u_dynamicLightCount1i; // hate this
|
||||
for(int i = 0; i < safeLightCount; ++i) {
|
||||
dlightDist3f = worldPosition4f.xyz - u_dynamicLightArray[i].u_lightPosition4f.xyz;
|
||||
dlightDir3f = normalize(dlightDist3f);
|
||||
dlightDir3f = dlightDir3f * (dot(dlightDir3f, normalVector3f) < 0.0 ? 1.0 : -1.0);
|
||||
dlightDir3f = materialData3f.b == 1.0 ? normalVector3f : -dlightDir3f;
|
||||
if(dot(dlightDir3f, normalVector3f) <= 0.0) {
|
||||
continue;
|
||||
}
|
||||
dlightColor3f = u_dynamicLightArray[i].u_lightColor4f.rgb / dot(dlightDist3f, dlightDist3f);
|
||||
if(dlightColor3f.r + dlightColor3f.g + dlightColor3f.b < 0.025) {
|
||||
continue;
|
||||
}
|
||||
lightColor3f += eaglercraftLighting(diffuseColor4f.rgb, dlightColor3f, -worldDirection4f.xyz, dlightDir3f, normalVector3f, materialData3f, metalN, metalK) * u_blockSkySunDynamicLightFac4f.w;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
// ============ OUTPUT COLOR ============== //
|
||||
|
||||
vec3 blockLight = lightmapCoords2f.r * vec3(1.0, 0.5809, 0.2433) * 2.0 * u_blockSkySunDynamicLightFac4f.x;
|
||||
skyLight *= u_blockSkySunDynamicLightFac4f.y;
|
||||
float emissive = materialData3f.b == 1.0 ? 0.0 : materialData3f.b;
|
||||
diffuseColor4f.rgb *= max(skyLight + blockLight, vec3(emissive * emissive * 20.0 + 0.075)) * 0.075;
|
||||
diffuseColor4f.rgb += lightColor3f;
|
||||
|
||||
output4f = vec4(diffuseColor4f.rgb * diffuseColor4f.a, diffuseColor4f.a);
|
||||
}
|
|
@ -0,0 +1,42 @@
|
|||
#line 2
|
||||
|
||||
/*
|
||||
* Copyright (c) 2023 LAX1DUDE. All Rights Reserved.
|
||||
*
|
||||
* WITH THE EXCEPTION OF PATCH FILES, MINIFIED JAVASCRIPT, AND ALL FILES
|
||||
* NORMALLY FOUND IN AN UNMODIFIED MINECRAFT RESOURCE PACK, YOU ARE NOT ALLOWED
|
||||
* TO SHARE, DISTRIBUTE, OR REPURPOSE ANY FILE USED BY OR PRODUCED BY THE
|
||||
* SOFTWARE IN THIS REPOSITORY WITHOUT PRIOR PERMISSION FROM THE PROJECT AUTHOR.
|
||||
*
|
||||
* NOT FOR COMMERCIAL OR MALICIOUS USE
|
||||
*
|
||||
* (please read the 'LICENSE' file this repo's root directory for more info)
|
||||
*
|
||||
*/
|
||||
|
||||
precision lowp int;
|
||||
precision mediump float;
|
||||
precision mediump sampler2D;
|
||||
|
||||
in vec2 v_texCoord2f;
|
||||
in vec4 v_color4f;
|
||||
in vec2 v_lightmap2f;
|
||||
|
||||
layout(location = 0) out vec4 gbufferColor4f;
|
||||
layout(location = 1) out vec4 gbufferNormal4f;
|
||||
layout(location = 2) out vec4 gbufferMaterial4f;
|
||||
|
||||
uniform sampler2D u_diffuseTexture;
|
||||
uniform sampler2D u_samplerNormalMaterial;
|
||||
|
||||
uniform vec2 u_textureYScale2f;
|
||||
|
||||
void main() {
|
||||
vec4 diffuseRGBA = texture(u_diffuseTexture, v_texCoord2f) * v_color4f;
|
||||
if(diffuseRGBA.a < 0.004) {
|
||||
discard;
|
||||
}
|
||||
gbufferColor4f = vec4(diffuseRGBA.rgb, v_lightmap2f.r);
|
||||
gbufferNormal4f = vec4(0.5, 0.5, 1.0, v_lightmap2f.g);
|
||||
gbufferMaterial4f = vec4(texture(u_samplerNormalMaterial, vec2(v_texCoord2f.x, v_texCoord2f.y * u_textureYScale2f.x + u_textureYScale2f.y)).rgb, 1.0);
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
these are just low quality fallback material textures for the default vanilla resource pack when no PBR resource pack is loaded, if you would like to make a PBR resource pack put your _n and _s textures in the "/assets/minecraft/textures/" directory of your zip file, do not modify any files within "/assets/eagler/glsl/deferred/assets_pbr/textures/" because they will not be recognized
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user