-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathSpecialModelLoaderAPI.java
More file actions
62 lines (54 loc) · 1.94 KB
/
SpecialModelLoaderAPI.java
File metadata and controls
62 lines (54 loc) · 1.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
package dev.felnull.specialmodelloader.api;
import dev.felnull.specialmodelloader.api.model.LoadedResource;
import dev.felnull.specialmodelloader.api.model.ModelLoader;
import dev.felnull.specialmodelloader.api.model.obj.ObjModelLoader;
import dev.felnull.specialmodelloader.impl.SpecialModelLoaderAPIImpl;
import net.minecraft.client.resources.model.UnbakedModel;
import net.minecraft.resources.Identifier;
import net.minecraft.server.packs.resources.ResourceManager;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.annotations.Unmodifiable;
import java.util.List;
public interface SpecialModelLoaderAPI {
static SpecialModelLoaderAPI getInstance() {
return SpecialModelLoaderAPIImpl.INSTANCE;
}
/**
* A complete list of model loaders supported by this mod.<br/>
* Currently, there is only an OBJ loader
*
* @return ModelLoader list
*/
@Unmodifiable
@NotNull
List<ModelLoader> getLoaders();
/**
* A loader for reading OBJ files
*
* @return OBJModel Loader
*/
@NotNull
ObjModelLoader getObjLoader();
/**
* Loads a model at a specified location using the resource manager and returns
* the loaded resource.
*
* @param resourceManager ResourceManager
* @param modelLocation The location of the JsonModel (e.g.
* minecraft:item/apple)
* @return The loaded resource instances required to make the model. Null if
* unable to load.
*/
@Nullable
LoadedResource loadResource(@NotNull ResourceManager resourceManager, @NotNull Identifier modelLocation);
/**
* Made a model from the loaded resources.
*
* @param resource Resources loaded
* using{@link #loadResource(ResourceManager, ResourceLocation)}
* @return Made model
*/
@NotNull
UnbakedModel makeModel(@NotNull LoadedResource resource);
}