add survival mode support: camera, film system, and dynamic crafting recipes for photos

This commit is contained in:
2026-06-21 17:30:24 +02:00
parent fed94f97d1
commit 220cda1deb
14 changed files with 948 additions and 95 deletions
@@ -26,6 +26,13 @@ public final class Main extends JavaPlugin {
public final NamespacedKey pictureIdFlag = new NamespacedKey(this, "imageid");
/** Marks a {@code PLAYER_HEAD} as a camera (BYTE 1). */
public final NamespacedKey cameraMarker = new NamespacedKey(this, "camera");
/** Loaded film count stored on a camera (INTEGER, 0..{@code CameraItems.MAX_FILM}). */
public final NamespacedKey filmCountKey = new NamespacedKey(this, "filmcount");
/** Marks a {@code PLAYER_HEAD} as a film roll (BYTE 1). */
public final NamespacedKey filmMarker = new NamespacedKey(this, "film");
@Override
public void onEnable() {
instance = this;
@@ -33,6 +40,11 @@ public final class Main extends JavaPlugin {
Bukkit.getPluginManager().registerEvents(new OnMapInitialize(), this);
Objects.requireNonNull(Bukkit.getPluginCommand("pixelPic")).setExecutor(new PixelPicsCommand());
Bukkit.getPluginManager().registerEvents(new eu.mhsl.minecraft.pixelpics.survival.CameraListener(), this);
Bukkit.getPluginManager().registerEvents(new eu.mhsl.minecraft.pixelpics.survival.CraftingListener(), this);
Bukkit.getPluginManager().registerEvents(new eu.mhsl.minecraft.pixelpics.survival.JoinListener(), this);
eu.mhsl.minecraft.pixelpics.survival.SurvivalRecipes.register();
initRenderer();
}
@@ -81,6 +93,7 @@ public final class Main extends JavaPlugin {
@Override
public void onDisable() {
eu.mhsl.minecraft.pixelpics.survival.SurvivalRecipes.unregister();
if (resourcePack != null) {
resourcePack.close();
resourcePack = null;