Skip to content

Commit

Permalink
Generate assets
Browse files Browse the repository at this point in the history
  • Loading branch information
Hugman76 committed Dec 19, 2024
1 parent 0a392ae commit 0d21d99
Show file tree
Hide file tree
Showing 8 changed files with 88 additions and 16 deletions.
1 change: 1 addition & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ dependencies {
//modCompileOnly "com.viaversion:viaversion-api:4.7.0-SNAPSHOT"
modCompileOnly "dev.gegy:player-roles-api:1.6.13"

modImplementation "eu.pb4:polymer-resource-pack-extras:${project.rp_extras_version}"
modImplementation "eu.pb4:polymer-autohost:${project.autohost_version}"
}

Expand Down
1 change: 1 addition & 0 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,5 @@ mod_version=1.3.2
maven_group=xyz.nucleoid
archives_base_name=nucleoid-extras

rp_extras_version=0.11.2+1.21.4
autohost_version=0.11.2+1.21.4
2 changes: 2 additions & 0 deletions src/datagen/java/xyz/nucleoid/extras/data/NEDatagen.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import xyz.nucleoid.extras.data.provider.NEAdvancementProvider;
import xyz.nucleoid.extras.data.provider.NEBlockTagProvider;
import xyz.nucleoid.extras.data.provider.NEItemTagProvider;
import xyz.nucleoid.extras.data.provider.NEModelProvider;

public class NEDatagen implements DataGeneratorEntrypoint {
@Override
Expand All @@ -15,5 +16,6 @@ public void onInitializeDataGenerator(FabricDataGenerator dataGenerator) {

var blockTags = pack.addProvider(NEBlockTagProvider::new);
pack.addProvider((dataOutput, registries) -> new NEItemTagProvider(dataOutput, registries, blockTags));
pack.addProvider(NEModelProvider::new);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
package xyz.nucleoid.extras.data.provider;

import com.google.common.hash.HashCode;
import eu.pb4.polymer.resourcepack.api.AssetPaths;
import eu.pb4.polymer.resourcepack.extras.api.format.item.ItemAsset;
import eu.pb4.polymer.resourcepack.extras.api.format.item.model.BasicItemModel;
import eu.pb4.polymer.resourcepack.extras.api.format.model.ModelAsset;
import net.fabricmc.fabric.api.datagen.v1.FabricDataOutput;
import net.minecraft.data.DataOutput;
import net.minecraft.data.DataProvider;
import net.minecraft.data.DataWriter;
import net.minecraft.util.Identifier;
import net.minecraft.util.Util;
import xyz.nucleoid.extras.NucleoidExtras;
import xyz.nucleoid.extras.model.NEModels;

import java.io.IOException;
import java.util.HashMap;
import java.util.concurrent.CompletableFuture;
import java.util.function.BiConsumer;

public class NEModelProvider implements DataProvider {
private static final String NAME = NucleoidExtras.identifier("model_provider").toString();

private final DataOutput output;
private final HashMap<Identifier, ItemAsset> assetMap;
private final HashMap<Identifier, ModelAsset> modelMap;

public NEModelProvider(FabricDataOutput output) {
this.output = output;
this.assetMap = new HashMap<>();
this.modelMap = new HashMap<>();
}

public void runWriters(BiConsumer<String, byte[]> assetWriter) {
createItems();
this.assetMap.forEach((id, asset) -> assetWriter.accept(AssetPaths.itemAsset(id), asset.toBytes()));
this.modelMap.forEach((id, asset) -> assetWriter.accept(AssetPaths.itemModel(id), asset.toBytes()));
}

private void createItems() {
spriteItem(NEModels.CONTROLLER);
}

private void spriteItem(Identifier id) {
this.assetMap.put(id, new ItemAsset(new BasicItemModel(id.withPrefixedPath("item/")), ItemAsset.Properties.DEFAULT));
this.modelMap.put(id, ModelAsset.builder().parent(Identifier.of("item/generated")).texture("layer0", id.withPrefixedPath("item/").toString()).build());
}

@Override
public CompletableFuture<?> run(DataWriter writer) {
BiConsumer<String, byte[]> assetWriter = (path, data) -> {
try {
writer.write(this.output.getPath().resolve(path), data, HashCode.fromBytes(data));
} catch (IOException e) {
e.printStackTrace();
}
};
return CompletableFuture.runAsync(() -> {
this.
runWriters(assetWriter);
}, Util.getMainWorkerExecutor());
}

@Override
public String getName() {
return NAME;
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package xyz.nucleoid.extras.lobby.item;

import com.mojang.authlib.GameProfile;
import eu.pb4.polymer.core.api.item.PolymerItem;
import eu.pb4.polymer.resourcepack.api.PolymerResourcePackUtils;
import net.minecraft.entity.player.PlayerEntity;
Expand All @@ -13,9 +12,9 @@
import net.minecraft.util.Hand;
import net.minecraft.util.Identifier;
import net.minecraft.world.World;
import xyz.nucleoid.extras.NucleoidExtras;
import xyz.nucleoid.extras.component.GamePortalComponent;
import xyz.nucleoid.extras.component.NEDataComponentTypes;
import xyz.nucleoid.extras.model.NEModels;
import xyz.nucleoid.packettweaker.PacketContext;
import xyz.nucleoid.plasmid.impl.portal.GamePortal;

Expand Down Expand Up @@ -48,8 +47,8 @@ public Item getPolymerItem(ItemStack stack, PacketContext context) {

@Override
public Identifier getPolymerItemModel(ItemStack stack, PacketContext context) {
if(PolymerResourcePackUtils.hasMainPack(context)) {
return NucleoidExtras.identifier("controller");
if (PolymerResourcePackUtils.hasMainPack(context)) {
return NEModels.CONTROLLER;
}
return null;
}
Expand Down
12 changes: 12 additions & 0 deletions src/main/java/xyz/nucleoid/extras/model/NEModels.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package xyz.nucleoid.extras.model;

import net.minecraft.util.Identifier;
import xyz.nucleoid.extras.NucleoidExtras;

public class NEModels {
public static final Identifier CONTROLLER = of("controller");

private static Identifier of(String path) {
return NucleoidExtras.identifier(path);
}
}

This file was deleted.

This file was deleted.

0 comments on commit 0d21d99

Please sign in to comment.