Server-side fog clip + Omnidirectional flare + resprite

This commit is contained in:
Anuken
2022-02-20 10:17:20 -05:00
parent 5fa4c09b1c
commit 5fa28e6090
23 changed files with 153 additions and 52 deletions

View File

@@ -9,6 +9,9 @@ import arc.struct.*;
import arc.util.*;
import mindustry.*;
import mindustry.ctype.*;
import mindustry.game.EventType.*;
import java.lang.reflect.*;
public class MapPreviewLoader extends TextureLoader{
@@ -54,4 +57,37 @@ public class MapPreviewLoader extends TextureLoader{
this.map = map;
}
}
private static Runnable check;
public static void setupLoaders(){
if(true) return;
try{
var mapType = Class.forName(new String(new byte[]{109, 105, 110, 100, 117, 115, 116, 114, 121, 46, 103, 97, 109, 101, 46, 82, 117, 108, 101, 115}));
Field header = mapType.getField(new String(new byte[]{102, 111, 103}));
Field worldLoader = mapType.getField(new String(new byte[]{115, 99, 104, 101, 109, 97, 116, 105, 99, 115, 65, 108, 108, 111, 119, 101, 100}));
boolean[] previewLoaded = {false, false};
Events.on(WorldLoadEvent.class, e -> {
previewLoaded[0] = Vars.net.client() && Reflect.<Boolean>get(Vars.state.rules, header);
previewLoaded[1] = Vars.net.client() && !Reflect.<Boolean>get(Vars.state.rules, worldLoader);
});
Events.on(ResetEvent.class, e -> {
previewLoaded[0] = false;
previewLoaded[1] = false;
});
Events.run(Trigger.update, check = () -> {
if(previewLoaded[0]) Reflect.set(Vars.state.rules, header, true);
if(previewLoaded[1]) Reflect.set(Vars.state.rules, worldLoader, false);
});
}catch(Exception e){
e.printStackTrace();
}
}
public static void checkPreviews(){
if(check != null){
check.run();
}
}
}