Fixed mod structural crash / Fixed input fragment disappearing

This commit is contained in:
Anuken
2019-10-09 17:36:57 -04:00
parent 3a3c5e2304
commit 16eb069717
6 changed files with 16 additions and 9 deletions

View File

@@ -4,12 +4,14 @@ import io.anuke.arc.*;
import io.anuke.arc.assets.loaders.*;
import io.anuke.arc.collection.*;
import io.anuke.arc.files.*;
import io.anuke.arc.util.*;
/** Handles files in a modded context. */
public class FileTree implements FileHandleResolver{
private ObjectMap<String, FileHandle> files = new ObjectMap<>();
public void addFile(String path, FileHandle f){
Log.info("Add " + path);
files.put(path, f);
}

View File

@@ -238,7 +238,6 @@ public class UI implements ApplicationListener, Loadable{
Core.scene.add(menuGroup);
Core.scene.add(hudGroup);
control.input.getFrag().build(hudGroup);
hudfrag.build(hudGroup);
menufrag.build(menuGroup);
chatfrag.container().build(hudGroup);

View File

@@ -538,6 +538,8 @@ public abstract class InputHandler implements InputProcessor, GestureListener{
uiGroup.setFillParent(true);
ui.hudGroup.addChild(uiGroup);
buildUI(uiGroup);
frag.add();
}
if(player != null){

View File

@@ -203,11 +203,14 @@ public class Mods implements Loadable{
private void buildFiles(){
for(LoadedMod mod : loaded){
boolean zipFolder = !mod.file.isDirectory() && mod.root.parent() != null;
String parentName = zipFolder ? mod.root.name() : null;
for(FileHandle file : mod.root.list()){
//ignore special folders like bundles or sprites
if(file.isDirectory() && !specialFolders.contains(file.name())){
//TODO calling child/parent on these files will give you gibberish; create wrapper class.
file.walk(f -> tree.addFile(mod.file.isDirectory() ? f.path().substring(1 + mod.file.path().length()) : f.path(), f));
file.walk(f -> tree.addFile(mod.file.isDirectory() ? f.path().substring(1 + mod.file.path().length()) :
zipFolder ? f.path().substring(parentName.length() + 1) : f.path(), f));
}
}

View File

@@ -51,6 +51,7 @@ public class HudFragment extends Fragment{
//menu at top left
parent.fill(cont -> {
cont.setName("overlaymarker");
cont.top().left();
if(mobile){

View File

@@ -1,11 +1,12 @@
package io.anuke.mindustry.ui.fragments;
import io.anuke.arc.scene.Group;
import io.anuke.arc.scene.event.Touchable;
import io.anuke.arc.scene.ui.layout.WidgetGroup;
import io.anuke.arc.*;
import io.anuke.arc.scene.event.*;
import io.anuke.arc.scene.ui.layout.*;
import io.anuke.mindustry.*;
/** Fragment for displaying overlays such as block inventories. */
public class OverlayFragment extends Fragment{
public class OverlayFragment{
public final BlockInventoryFragment inv;
public final BlockConfigFragment config;
@@ -17,10 +18,9 @@ public class OverlayFragment extends Fragment{
config = new BlockConfigFragment();
}
@Override
public void build(Group parent){
public void add(){
group.setFillParent(true);
parent.addChild(group);
Vars.ui.hudGroup.addChildBefore(Core.scene.find("overlaymarker"), group);
inv.build(group);
config.build(group);