Merge pull request #3051 from kevlahnota/newmaster2

fix blackscreen
This commit is contained in:
Anthony Calosa
2023-05-02 15:31:18 +08:00
committed by GitHub
2 changed files with 12 additions and 3 deletions

View File

@@ -1,6 +1,7 @@
package forge.adventure.stage;
import com.badlogic.gdx.graphics.g2d.Batch;
import com.badlogic.gdx.graphics.g2d.Sprite;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.scenes.scene2d.Actor;
@@ -56,8 +57,11 @@ public class MapSprite extends Actor {
BiomeSpriteData data = WorldSave.getCurrentSave().getWorld().getObject(entry.getValue());
if (data.layer != layer)
continue;
Actor sprite = new MapSprite(entry.getKey(), WorldSave.getCurrentSave().getWorld().getData().GetBiomeSprites().getSprite(data.name, (int) entry.getKey().x + (int) entry.getKey().y * 11483), null);
actorGroup.add(sprite);
Sprite biomeSprite = WorldSave.getCurrentSave().getWorld().getData().GetBiomeSprites().getSprite(data.name, (int) entry.getKey().x + (int) entry.getKey().y * 11483);
if (biomeSprite != null) { //null means invalid and will cause blackscreen, investigate why this would happen...
Actor sprite = new MapSprite(entry.getKey(), biomeSprite, null);
actorGroup.add(sprite);
}
}
return actorGroup;
}

View File

@@ -28,7 +28,12 @@ public class BiomeSprites {
if (sprites.isEmpty()) {
sprites.addAll(textureAtlasBuffer.createSprites(name));
}
return sprites.get(seed % sprites.size);
int index = seed % sprites.size;
if (index >= sprites.size || index < 0) {
System.err.println("Invalid index: " + index + " [" + name + "]");
return null;
}
return sprites.get(index);
}
public BiomeSpriteData getSpriteData(String name) {