Skip to content

Commit 82ff6bd

Browse files
committed
1.16 last fix
1 parent dbcb898 commit 82ff6bd

29 files changed

+414
-390
lines changed

.github/workflows/builder.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,11 @@ jobs:
1919
- name: Grant execute permission for gradlew
2020
run: chmod +x gradlew
2121
- name: Build with Gradle
22-
run: ./gradlew build curseforge
22+
run: ./gradlew build publish
2323
env:
2424
curesforgeapikey: ${{secrets.CURESFORGEAPIKEY}}
25+
mavenname: ${{secrets.MAVEN_NAME}}
26+
mavenpassword: ${{secrets.MAVEN_PASSWORD}}
2527
- name: Zip create
2628
run: |
2729
cd build/libs

build.gradle

Lines changed: 34 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,16 @@ buildscript {
99
}
1010
}
1111
plugins {
12-
id 'com.matthewprenger.cursegradle' version '1.4.0'
1312
id "com.github.johnrengelman.shadow" version "4.0.4"
1413
}
1514
apply plugin: 'net.minecraftforge.gradle'
1615
apply plugin: 'eclipse'
1716
apply plugin: 'maven-publish'
1817

19-
if (System.getenv('curesforgeapikey') == null || "${curesfg_id}" == "0")
20-
version = "${mod_version}-pre${getDate()}"
21-
else
22-
version = "${mod_version}"
18+
//if (System.getenv('curesforgeapikey') == null || "${curesfg_id}" == "0")
19+
// version = "${mod_version}-pre${getDate()}"
20+
//else
21+
version = "${mod_version}"
2322

2423
group = "${mod_group}"
2524
archivesBaseName = "${mod_name}-${mc_version}"
@@ -86,14 +85,16 @@ dependencies {
8685
compileOnly fg.deobf("mezz.jei:jei-${jei_version}:api")
8786
runtimeOnly fg.deobf("mezz.jei:jei-${jei_version}")
8887
compile fg.deobf("com.feed_the_beast.mods:ftb-gui-library:${fgl_version}")
89-
shadow 'dev.felnull:felnull-java-library:1.2'
88+
shadow 'dev.felnull:felnull-java-library:1.5'
89+
shadow 'com.madgag:animated-gif-lib:1.4'
9090
}
9191

9292
shadowJar {
9393
classifier ''
9494
project.configurations.shadow.setTransitive(true);
9595
configurations = [project.configurations.shadow]
96-
relocate 'dev', 'red.felnull.otyacraftengine.libs.dev'
96+
relocate 'dev.felnull.fnjl', 'red.felnull.otyacraftengine.libs.dev.felnull.fnjl'
97+
relocate 'com.madgag.gif', 'red.felnull.otyacraftengine.libs.com.madgag.gif'
9798
}
9899

99100
tasks.withType(AbstractCompile)*.options*.encoding = tasks.withType(GroovyCompile)*.groovyOptions*.encoding = 'UTF-8'
@@ -108,9 +109,6 @@ ext.themanifest = {
108109
"Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ")
109110
])
110111
}
111-
jar {
112-
manifest themanifest
113-
}
114112
jar.finalizedBy('reobfJar')
115113
task devJar(type: Jar) {
116114
from sourceSets.main.output
@@ -134,33 +132,37 @@ afterEvaluate {
134132
publishing {
135133
publications {
136134
mavenJava(MavenPublication) {
135+
artifactId = 'otyacraftengine'
137136
artifact jar
138-
artifact devJar
139-
artifact sourceJar
137+
pom {
138+
name = 'OtyacraftEngine'
139+
description = 'My mod integration library.'
140+
licenses {
141+
license {
142+
name = 'GNU Lesser General Public License v3.0'
143+
url = 'https://www.gnu.org/licenses/lgpl-3.0.txt'
144+
}
145+
}
146+
developers {
147+
developer {
148+
id = 'MORIMORI0317'
149+
name = 'MORIMORI0317'
150+
}
151+
developer {
152+
id = 'FelNull'
153+
name = 'TeamFelNull'
154+
email = 'teamfelnull@m.servg.red'
155+
}
156+
}
157+
}
140158
}
141159
}
142160
repositories {
143161
maven {
144-
url "file:///${project.projectDir}/mcmodsrepo"
145-
}
146-
}
147-
}
148-
if (System.getenv('curesforgeapikey') != null && "${curesfg_id}" != "0") {
149-
curseforge {
150-
apiKey = System.getenv('curesforgeapikey')
151-
project {
152-
id = "${curesfg_id}"
153-
changelog = ""
154-
releaseType = "${releasetype}"
155-
addGameVersion "${mc_version}"
156-
mainArtifact(jar) {
157-
displayName = "${mod_name}-${mc_version}-${mod_version}"
158-
}
159-
addArtifact(devJar) {
160-
displayName = "${mod_name}-${mc_version}-${mod_version}-dev"
161-
}
162-
addArtifact(sourceJar) {
163-
displayName = "${mod_name}-${mc_version}-${mod_version}-source"
162+
url "https://maven.morimori0317.net/"
163+
credentials {
164+
username = System.getenv('mavenname')
165+
password = System.getenv('mavenpassword')
164166
}
165167
}
166168
}

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ org.gradle.daemon=false
33
forge_mapping=20201028-1.16.3
44
forge_version=36.2.8
55
mod_name=OtyacraftEngine
6-
mod_group=red.felnull.otyacraftengine
6+
mod_group=red.felnull
77
mod_version=1.23
88
mod_vendor=TeamFelNull
99
mc_version=1.16.5

src/main/java/red/felnull/otyacraftengine/block/TestBlock.java

Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,6 @@
11
package red.felnull.otyacraftengine.block;
22

3-
import net.minecraft.block.AbstractBlock;
4-
import net.minecraft.block.Block;
5-
import net.minecraft.block.BlockState;
6-
import net.minecraft.block.material.Material;
7-
import net.minecraft.item.BlockItem;
8-
import net.minecraft.item.Item;
9-
import net.minecraft.item.ItemGroup;
10-
import net.minecraft.util.ResourceLocation;
11-
import net.minecraft.util.math.BlockPos;
12-
import net.minecraft.util.math.shapes.ISelectionContext;
13-
import net.minecraft.util.math.shapes.VoxelShape;
14-
import net.minecraft.util.math.shapes.VoxelShapes;
15-
import net.minecraft.world.IBlockReader;
16-
import net.minecraftforge.event.RegistryEvent;
17-
import net.minecraftforge.eventbus.api.SubscribeEvent;
18-
import red.felnull.otyacraftengine.OtyacraftEngine;
19-
import red.felnull.otyacraftengine.util.IKSGVoxelShapeUtil;
20-
3+
/*
214
//@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
225
public class TestBlock extends Block {
236
public static final Block TEST = new TestBlock(AbstractBlock.Properties.create(Material.ANVIL).hardnessAndResistance(1f, 1f)).setRegistryName(new ResourceLocation(OtyacraftEngine.MODID, "test_block"));
@@ -51,4 +34,4 @@ public VoxelShape getShape(BlockState state, IBlockReader worldIn, BlockPos pos,
5134
VoxelShape test = X_AXIS_AABB;
5235
return IKSGVoxelShapeUtil.rotate90(test);
5336
}
54-
}
37+
}*/

src/main/java/red/felnull/otyacraftengine/client/config/ClientConfig.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ static class ConfigLoder {
2525
public ConfigLoder(ForgeConfigSpec.Builder builder) {
2626
OtyacraftEngine.LOGGER.info("Loading Client Config");
2727
builder.push("ToolTip");
28-
ToolTipModName = builder.define("Show ModName", true);
29-
ToolTipTag = builder.define("Show Tag", true);
28+
ToolTipModName = builder.define("Show ModName", false);
29+
ToolTipTag = builder.define("Show Tag", false);
3030
ToolTipTagKey = builder.define("Show Tag Key", "key.sprint");
3131
ToolTipDetailedInformation = builder.define("Show DetailedInformation", true);
3232
ToolTipDetailedInformationKey = builder.define("Show DetailedInformation Key", "key.sneak");

src/main/java/red/felnull/otyacraftengine/client/data/URLImageTextureLoder.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@
22

33
import com.google.gson.Gson;
44
import com.google.gson.GsonBuilder;
5-
import com.google.gson.JsonArray;
65
import com.google.gson.JsonObject;
76
import com.google.gson.stream.JsonReader;
7+
import dev.felnull.fnjl.util.FNDataUtil;
8+
import dev.felnull.fnjl.util.FNURLUtil;
89
import net.minecraft.util.ResourceLocation;
910
import net.minecraftforge.api.distmarker.Dist;
1011
import net.minecraftforge.api.distmarker.OnlyIn;
@@ -14,10 +15,9 @@
1415
import red.felnull.otyacraftengine.util.IKSGPathUtil;
1516
import red.felnull.otyacraftengine.util.IKSGPictuerUtil;
1617

17-
import javax.imageio.ImageIO;
18-
import java.awt.image.BufferedImage;
1918
import java.io.*;
2019
import java.net.URL;
20+
import java.nio.file.Files;
2121
import java.nio.file.Path;
2222
import java.util.*;
2323

@@ -166,12 +166,11 @@ public void run() {
166166
String name = UUID.randomUUID().toString();
167167
Path texPath = CASH_PATH.resolve("cash").resolve(name);
168168
try {
169-
URL imageURL = new URL(urldata.getURL());
170-
BufferedImage image = ImageIO.read(imageURL);
169+
byte[] data = FNDataUtil.streamToByteArray(FNURLUtil.getStream(new URL(urldata.getURL())));
171170
if (urldata.isDecidedSuze())
172-
image = IKSGPictuerUtil.resize(image, urldata.getWidth(), urldata.getHeight());
171+
data = IKSGPictuerUtil.resize(data, urldata.getWidth(), urldata.getHeight());
173172
IKSGFileLoadUtil.createFolder(texPath.getParent());
174-
ImageIO.write(image, "png", texPath.toFile());
173+
Files.write(texPath, data);
175174
} catch (Exception e) {
176175
e.printStackTrace();
177176
URLImageTextureLoder.instance().PICTUER_URL_LOCATION.put(urldata, IKSGTextureUtil.TEXTUER_NOTFINED);

src/main/java/red/felnull/otyacraftengine/client/gui/screen/TestScreen.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import net.minecraft.util.text.StringTextComponent;
55
import red.felnull.otyacraftengine.client.gui.widget.FileChooserWidget;
66
import red.felnull.otyacraftengine.client.util.IKSGRenderUtil;
7+
import red.felnull.otyacraftengine.client.util.IKSGTextureUtil;
78

89
public class TestScreen extends IkisugiScreen {
910

@@ -26,6 +27,8 @@ public void tickByIKSG() {
2627
public void renderByIKSG(MatrixStack matrix, int mouseX, int mouseY, float parTick) {
2728
renderBackgroundByIKSG(matrix);
2829
super.renderByIKSG(matrix, mouseX, mouseY, parTick);
29-
IKSGRenderUtil.drawPlayerFaseByUUID(matrix, "0f286fc2-0c86-42d5-8518-c306cad74f03", 0, 0);
30+
// IKSGRenderUtil.guiBindAndBlit(IKSGTextureUtil.getPictureImageURLTexture("https://cdn.discordapp.com/attachments/887769442019323924/888494682492010519/gabaana_dadhi.png"), matrix, 0, 0, 100, 100, 100, 100);
31+
32+
IKSGRenderUtil.guiBindAndBlit(IKSGTextureUtil.getPictureImageURLTexture("https://cdn.discordapp.com/attachments/887769442019323924/893111745927856128/broken.gif"), matrix, 0, 0, 100, 100, 100, 100);
3033
}
3134
}

src/main/java/red/felnull/otyacraftengine/client/handler/ClientHandler.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import net.minecraft.util.text.StringTextComponent;
77
import net.minecraft.util.text.TextFormatting;
88
import net.minecraft.util.text.TranslationTextComponent;
9-
import net.minecraftforge.client.event.InputEvent;
109
import net.minecraftforge.event.TickEvent;
1110
import net.minecraftforge.event.entity.player.ItemTooltipEvent;
1211
import net.minecraftforge.event.world.WorldEvent;
@@ -21,8 +20,6 @@
2120
import red.felnull.otyacraftengine.client.data.ReceiveTextureLoder;
2221
import red.felnull.otyacraftengine.client.data.URLImageTextureLoder;
2322
import red.felnull.otyacraftengine.client.gui.screen.IInstructionContainerScreen;
24-
import red.felnull.otyacraftengine.client.gui.screen.TestScreen;
25-
import red.felnull.otyacraftengine.client.keys.OEKeyBindings;
2623
import red.felnull.otyacraftengine.client.util.IKSGClientUtil;
2724
import red.felnull.otyacraftengine.client.util.IKSGTextureUtil;
2825
import red.felnull.otyacraftengine.data.WorldDataManager;

src/main/java/red/felnull/otyacraftengine/client/keys/OEKeyBindings.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@
66
import red.felnull.otyacraftengine.OtyacraftEngine;
77

88
public class OEKeyBindings {
9-
public static KeyBinding TEST = createKeyBind("test", GLFW.GLFW_KEY_M);
9+
//public static KeyBinding TEST = createKeyBind("test", GLFW.GLFW_KEY_M);
1010
public static KeyBinding IN_GAME_FILE_MANAGER = createKeyBind("in_game_file_manager", GLFW.GLFW_KEY_O);
1111

1212
public static void init() {
13-
registerKey(TEST);
13+
// registerKey(TEST);
1414
// registerKey(IN_GAME_FILE_MANAGER);
1515
}
1616

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
package red.felnull.otyacraftengine.client.renderer.texture;
2+
3+
import net.minecraft.client.renderer.texture.DynamicTexture;
4+
import net.minecraft.client.renderer.texture.ITickable;
5+
import net.minecraft.client.renderer.texture.NativeImage;
6+
7+
public class DynamicGifTexture extends DynamicTexture implements ITickable {
8+
private final ImageFrame[] frames;
9+
private final long duration;
10+
private int last;
11+
12+
public DynamicGifTexture(long duration, ImageFrame... frames) {
13+
super(frames[0].getImage());
14+
this.duration = duration;
15+
this.frames = frames;
16+
}
17+
18+
@Override
19+
public void tick() {
20+
int ct = Math.toIntExact(getFrameByTime(System.currentTimeMillis() % duration));
21+
if (ct != last) {
22+
this.dynamicTextureData = frames[ct].getImage();
23+
updateDynamicTexture();
24+
last = ct;
25+
}
26+
}
27+
28+
@Override
29+
public void close() {
30+
super.close();
31+
if (frames != null) {
32+
for (ImageFrame image : frames) {
33+
if (image != null)
34+
image.getImage().close();
35+
}
36+
}
37+
}
38+
39+
private int getFrameByTime(long time) {
40+
long dr = 0;
41+
for (int i = 0; i < frames.length; i++) {
42+
if (dr <= time && dr + frames[i].delay > time)
43+
return i;
44+
dr += frames[i].delay;
45+
}
46+
return 0;
47+
}
48+
49+
public static class ImageFrame {
50+
private final NativeImage image;
51+
private final long delay;
52+
53+
public ImageFrame(NativeImage image, long delay) {
54+
this.image = image;
55+
this.delay = delay;
56+
}
57+
58+
public long getDelay() {
59+
return delay;
60+
}
61+
62+
public NativeImage getImage() {
63+
return image;
64+
}
65+
}
66+
}

0 commit comments

Comments
 (0)