tutorial:custom_model
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
tutorial:custom_model [2020/12/15 15:10] – [Custom Model] BLOCK_ATLAS_TEX to BLOCK_ATLAS_TEXTURE technici4n | tutorial:custom_model [2023/06/25 21:41] – fix typo (EntType -> EnvType) andrew6rant | ||
---|---|---|---|
Line 10: | Line 10: | ||
<code java> | <code java> | ||
+ | @Environment(EnvType.CLIENT) | ||
public class FourSidedFurnaceModel implements UnbakedModel, | public class FourSidedFurnaceModel implements UnbakedModel, | ||
</ | </ | ||
Line 71: | Line 72: | ||
} | } | ||
</ | </ | ||
+ | |||
+ | Note that the type parameter "'' | ||
==== BakedModel methods ==== | ==== BakedModel methods ==== | ||
Not all the methods here are used by the Fabric Renderer, so we don't really care about the implementation. | Not all the methods here are used by the Fabric Renderer, so we don't really care about the implementation. | ||
<code java> | <code java> | ||
- | @Override | + | |
public List< | public List< | ||
- | | + | // Don't need because we use FabricBakedModel instead. However, it's better to not return null in case some mod decides to call this function. |
+ | return Collections.emptyList(); | ||
} | } | ||
Line 101: | Line 105: | ||
@Override | @Override | ||
- | public Sprite | + | public Sprite |
return SPRITES[1]; // Block break particle, let's use furnace_top | return SPRITES[1]; // Block break particle, let's use furnace_top | ||
} | } | ||
Line 143: | Line 147: | ||
Let's register the model under the name '' | Let's register the model under the name '' | ||
<code java> | <code java> | ||
+ | @Environment(EnvType.CLIENT) | ||
public class TutorialModelProvider implements ModelResourceProvider { | public class TutorialModelProvider implements ModelResourceProvider { | ||
public static final Identifier FOUR_SIDED_FURNACE_MODEL = new Identifier(" | public static final Identifier FOUR_SIDED_FURNACE_MODEL = new Identifier(" | ||
Line 158: | Line 163: | ||
Now we have to register this class in the client initializer, | Now we have to register this class in the client initializer, | ||
<code java> | <code java> | ||
+ | @Environment(EnvType.CLIENT) | ||
public class ExampleModClient implements ClientModInitializer { | public class ExampleModClient implements ClientModInitializer { | ||
@Override | @Override | ||
Line 174: | Line 180: | ||
/* ... */ | /* ... */ | ||
" | " | ||
- | "tutorial.path.to.ExampleModClient" | + | "net.fabricmc.example.ExampleModClient" |
] | ] | ||
}, | }, | ||
Line 198: | Line 204: | ||
==== Updating the model ==== | ==== Updating the model ==== | ||
We will re-use the same model class, with just a small change: | We will re-use the same model class, with just a small change: | ||
- | * We will need a '' | + | * We will need a '' |
We will update our '' | We will update our '' | ||
<code java> | <code java> | ||
- | // The minecraft default block model | ||
- | private static final Identifier DEFAULT_BLOCK_MODEL = new Identifier(" | ||
- | |||
- | private ModelTransformation transformation; | ||
- | | ||
- | // We need to add the default model to the dependencies | ||
- | public Collection< | ||
- | return Arrays.asList(DEFAULT_BLOCK_MODEL); | ||
- | } | ||
- | | ||
- | // We need to add a bit of logic to the bake function | ||
- | @Override | ||
- | public BakedModel bake(ModelLoader loader, Function< | ||
- | // Load the default block model | ||
- | JsonUnbakedModel defaultBlockModel = (JsonUnbakedModel) loader.getOrLoadModel(DEFAULT_BLOCK_MODEL); | ||
- | // Get its ModelTransformation | ||
- | transformation = defaultBlockModel.getTransformations(); | ||
- | | ||
- | /* Previous code */ | ||
- | } | ||
- | | ||
// We need to implement getTransformation() and getOverrides() | // We need to implement getTransformation() and getOverrides() | ||
@Override | @Override | ||
public ModelTransformation getTransformation() { | public ModelTransformation getTransformation() { | ||
- | return | + | return |
} | } | ||
Line 250: | Line 235: | ||
Let's update the '' | Let's update the '' | ||
<code java> | <code java> | ||
+ | @Environment(EnvType.CLIENT) | ||
public class TutorialModelProvider implements ModelResourceProvider { | public class TutorialModelProvider implements ModelResourceProvider { | ||
public static final FourSidedFurnaceModel FOUR_SIDED_FURNACE_MODEL = new FourSidedFurnaceModel(); | public static final FourSidedFurnaceModel FOUR_SIDED_FURNACE_MODEL = new FourSidedFurnaceModel(); |
tutorial/custom_model.txt · Last modified: 2024/04/27 08:58 by florens