Skip to content

Commit b1effac

Browse files
committed
Update Forge & Mappings and add WildBoar
1 parent 09dffc6 commit b1effac

31 files changed

+229
-84
lines changed

gradle.properties

+6-5
Original file line numberDiff line numberDiff line change
@@ -29,18 +29,19 @@ modFileName = ModName
2929
# modFileName = Mod-Name
3030

3131
# The version of Minecraft we are modding for
32-
modMinecraftVersion = 1.15.1
32+
modMinecraftVersion = 1.15.2
3333

3434
# The MCP Mappings the source code of the mod will be built against
3535
# MCP Mappings are in the format
3636
# snapshot_YYYYMMDD
3737
# stable_#
3838
# Snapshot are built nightly and stables are built at the discretion of the MCP team
39-
# to change your mappings change the modMcpMappingsVersion property
39+
# To change your mappings change the modMcpMappingsVersion property
4040
# (and the modMcpMappingsChannel property if you're switching in between stable and snapshot)
41-
# and then refresh the gradle project in your IDE
41+
# then refresh the gradle project in your IDE
42+
# and run the gredle task to generate the run configs for your IDE (genEclipseRuns or genIntellijRuns)
4243
modMcpMappingsChannel = snapshot
43-
modMcpMappingsVersion = 20200115-1.14.3
44+
modMcpMappingsVersion = 20200131-1.15.1
4445

4546
# The Forge version the mod is being made for
46-
modForgeVersion = 30.0.39
47+
modForgeVersion = 31.0.14

src/main/java/io/github/cadiboo/examplemod/ExampleMod.java

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import io.github.cadiboo.examplemod.config.ConfigHolder;
44
import io.github.cadiboo.examplemod.init.ModBlocks;
55
import io.github.cadiboo.examplemod.init.ModContainerTypes;
6+
import io.github.cadiboo.examplemod.init.ModEntityTypes;
67
import io.github.cadiboo.examplemod.init.ModItems;
78
import io.github.cadiboo.examplemod.init.ModTileEntityTypes;
89
import net.minecraftforge.eventbus.api.IEventBus;
@@ -33,6 +34,7 @@ public ExampleMod() {
3334
ModBlocks.BLOCKS.register(modEventBus);
3435
ModItems.ITEMS.register(modEventBus);
3536
ModContainerTypes.CONTAINER_TYPES.register(modEventBus);
37+
ModEntityTypes.ENTITY_TYPES.register(modEventBus);
3638
ModTileEntityTypes.TILE_ENTITY_TYPES.register(modEventBus);
3739
// Register Configs (Does not need to be after Deferred Registers)
3840
modLoadingContext.registerConfig(ModConfig.Type.CLIENT, ConfigHolder.CLIENT_SPEC);

src/main/java/io/github/cadiboo/examplemod/ModEventSubscriber.java

+6-31
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,22 @@
11
package io.github.cadiboo.examplemod;
22

3-
import com.google.common.base.Preconditions;
43
import io.github.cadiboo.examplemod.config.ConfigHelper;
54
import io.github.cadiboo.examplemod.config.ConfigHolder;
65
import io.github.cadiboo.examplemod.init.ModBlocks;
76
import io.github.cadiboo.examplemod.init.ModItemGroups;
7+
import io.github.cadiboo.examplemod.item.ModdedSpawnEggItem;
88
import net.minecraft.item.BlockItem;
99
import net.minecraft.item.Item;
10-
import net.minecraft.util.ResourceLocation;
1110
import net.minecraftforge.event.RegistryEvent;
1211
import net.minecraftforge.eventbus.api.SubscribeEvent;
1312
import net.minecraftforge.fml.RegistryObject;
1413
import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
1514
import net.minecraftforge.fml.config.ModConfig;
15+
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
1616
import net.minecraftforge.registries.IForgeRegistry;
17-
import net.minecraftforge.registries.IForgeRegistryEntry;
1817
import org.apache.logging.log4j.LogManager;
1918
import org.apache.logging.log4j.Logger;
2019

21-
import javax.annotation.Nonnull;
22-
2320
/**
2421
* Subscribe to events from the MOD EventBus that should be handled on both PHYSICAL sides in this class
2522
*
@@ -48,8 +45,10 @@ public static void onRegisterItems(final RegistryEvent.Register<Item> event) {
4845
final Item.Properties properties = new Item.Properties().group(ModItemGroups.MOD_ITEM_GROUP);
4946
// Create the new BlockItem with the block and it's properties
5047
final BlockItem blockItem = new BlockItem(block, properties);
51-
// Setup the new BlockItem with the block's registry name and register it
52-
registry.register(setup(blockItem, block.getRegistryName()));
48+
// Set the new BlockItem's registry name to the block's registry name
49+
blockItem.setRegistryName(block.getRegistryName());
50+
// Register the BlockItem
51+
registry.register(blockItem);
5352
});
5453
LOGGER.debug("Registered BlockItems");
5554
}
@@ -70,28 +69,4 @@ public static void onModConfigEvent(final ModConfig.ModConfigEvent event) {
7069
}
7170
}
7271

73-
/**
74-
* Performs setup on a registry entry
75-
*
76-
* @param name The path of the entry's name. Used to make a name who's domain is our mod's modid
77-
*/
78-
@Nonnull
79-
private static <T extends IForgeRegistryEntry<T>> T setup(@Nonnull final T entry, @Nonnull final String name) {
80-
Preconditions.checkNotNull(name, "Name to assign to entry cannot be null!");
81-
return setup(entry, new ResourceLocation(ExampleMod.MODID, name));
82-
}
83-
84-
/**
85-
* Performs setup on a registry entry
86-
*
87-
* @param registryName The full registry name of the entry
88-
*/
89-
@Nonnull
90-
private static <T extends IForgeRegistryEntry<T>> T setup(@Nonnull final T entry, @Nonnull final ResourceLocation registryName) {
91-
Preconditions.checkNotNull(entry, "Entry cannot be null!");
92-
Preconditions.checkNotNull(registryName, "Registry name to assign to entry cannot be null!");
93-
entry.setRegistryName(registryName);
94-
return entry;
95-
}
96-
9772
}

src/main/java/io/github/cadiboo/examplemod/block/ElectricFurnaceBlock.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,7 @@ public void onReplaced(BlockState oldState, World worldIn, BlockPos pos, BlockSt
7979
* Implementing/overriding is fine.
8080
*/
8181
@Override
82-
// public boolean onBlockActivated(final BlockState state, final World worldIn, final BlockPos pos, final PlayerEntity player, final Hand handIn, final BlockRayTraceResult hit) {
83-
public ActionResultType func_225533_a_(final BlockState state, final World worldIn, final BlockPos pos, final PlayerEntity player, final Hand handIn, final BlockRayTraceResult hit) {
82+
public ActionResultType onBlockActivated(final BlockState state, final World worldIn, final BlockPos pos, final PlayerEntity player, final Hand handIn, final BlockRayTraceResult hit) {
8483
if (!worldIn.isRemote) {
8584
final TileEntity tileEntity = worldIn.getTileEntity(pos);
8685
if (tileEntity instanceof ElectricFurnaceTileEntity)

src/main/java/io/github/cadiboo/examplemod/block/HeatCollectorBlock.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,7 @@ public void onReplaced(BlockState oldState, World worldIn, BlockPos pos, BlockSt
9595
* Implementing/overriding is fine.
9696
*/
9797
@Override
98-
// public boolean onBlockActivated(final BlockState state, final World worldIn, final BlockPos pos, final PlayerEntity player, final Hand handIn, final BlockRayTraceResult hit) {
99-
public ActionResultType func_225533_a_(final BlockState state, final World worldIn, final BlockPos pos, final PlayerEntity player, final Hand handIn, final BlockRayTraceResult hit) {
98+
public ActionResultType onBlockActivated(final BlockState state, final World worldIn, final BlockPos pos, final PlayerEntity player, final Hand handIn, final BlockRayTraceResult hit) {
10099
if (!worldIn.isRemote) {
101100
final TileEntity tileEntity = worldIn.getTileEntity(pos);
102101
if (tileEntity instanceof HeatCollectorTileEntity)

src/main/java/io/github/cadiboo/examplemod/block/MiniModelBlock.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,7 @@ public TileEntity createTileEntity(final BlockState state, final IBlockReader wo
4949
* Implementing/overriding is fine.
5050
*/
5151
@Override
52-
// public boolean onBlockActivated(final BlockState state, final World worldIn, final BlockPos pos, final PlayerEntity player, final Hand handIn, final BlockRayTraceResult hit) {
53-
public ActionResultType func_225533_a_(final BlockState state, final World worldIn, final BlockPos pos, final PlayerEntity player, final Hand handIn, final BlockRayTraceResult hit) {
52+
public ActionResultType onBlockActivated(final BlockState state, final World worldIn, final BlockPos pos, final PlayerEntity player, final Hand handIn, final BlockRayTraceResult hit) {
5453
// Only open the gui on the physical client
5554
DistExecutor.runWhenOn(Dist.CLIENT, () -> () -> openGui(worldIn, pos));
5655
return ActionResultType.SUCCESS;

src/main/java/io/github/cadiboo/examplemod/block/ModFurnaceBlock.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,7 @@ public void onReplaced(BlockState oldState, World worldIn, BlockPos pos, BlockSt
9393
* Implementing/overriding is fine.
9494
*/
9595
@Override
96-
// public boolean onBlockActivated(final BlockState state, final World worldIn, final BlockPos pos, final PlayerEntity player, final Hand handIn, final BlockRayTraceResult hit) {
97-
public ActionResultType func_225533_a_(final BlockState state, final World worldIn, final BlockPos pos, final PlayerEntity player, final Hand handIn, final BlockRayTraceResult hit) {
96+
public ActionResultType onBlockActivated(final BlockState state, final World worldIn, final BlockPos pos, final PlayerEntity player, final Hand handIn, final BlockRayTraceResult hit) {
9897
if (!worldIn.isRemote) {
9998
final TileEntity tileEntity = worldIn.getTileEntity(pos);
10099
if (tileEntity instanceof ModFurnaceTileEntity)

src/main/java/io/github/cadiboo/examplemod/client/ClientModEventSubscriber.java

+13-6
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,18 @@
44
import io.github.cadiboo.examplemod.client.gui.ElectricFurnaceScreen;
55
import io.github.cadiboo.examplemod.client.gui.HeatCollectorScreen;
66
import io.github.cadiboo.examplemod.client.gui.ModFurnaceScreen;
7+
import io.github.cadiboo.examplemod.client.render.entity.WildBoarRenderer;
78
import io.github.cadiboo.examplemod.client.render.tileentity.ElectricFurnaceTileEntityRenderer;
89
import io.github.cadiboo.examplemod.client.render.tileentity.MiniModelTileEntityRenderer;
910
import io.github.cadiboo.examplemod.init.ModContainerTypes;
11+
import io.github.cadiboo.examplemod.init.ModEntityTypes;
1012
import io.github.cadiboo.examplemod.init.ModTileEntityTypes;
1113
import net.minecraft.client.gui.ScreenManager;
1214
import net.minecraftforge.api.distmarker.Dist;
1315
import net.minecraftforge.eventbus.api.SubscribeEvent;
16+
import net.minecraftforge.fml.DeferredWorkQueue;
1417
import net.minecraftforge.fml.client.registry.ClientRegistry;
18+
import net.minecraftforge.fml.client.registry.RenderingRegistry;
1519
import net.minecraftforge.fml.common.Mod.EventBusSubscriber;
1620
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
1721
import org.apache.logging.log4j.LogManager;
@@ -44,14 +48,17 @@ public static void onFMLClientSetupEvent(final FMLClientSetupEvent event) {
4448
LOGGER.debug("Registered TileEntity Renderers");
4549

4650
// Register Entity Renderers
47-
// RenderingRegistry.registerEntityRenderingHandler(ModEntityTypes.YOUR_ENTITY_TYPE, YourEntityRenderer::new);
48-
// LOGGER.debug("Registered Entity Renderers");
51+
RenderingRegistry.registerEntityRenderingHandler(ModEntityTypes.WILD_BOAR.get(), WildBoarRenderer::new);
52+
LOGGER.debug("Registered Entity Renderers");
4953

5054
// Register ContainerType Screens
51-
ScreenManager.registerFactory(ModContainerTypes.HEAT_COLLECTOR.get(), HeatCollectorScreen::new);
52-
ScreenManager.registerFactory(ModContainerTypes.ELECTRIC_FURNACE.get(), ElectricFurnaceScreen::new);
53-
ScreenManager.registerFactory(ModContainerTypes.MOD_FURNACE.get(), ModFurnaceScreen::new);
54-
LOGGER.debug("Registered ContainerType Screens");
55+
// ScreenManager.registerFactory is not safe to call during parallel mod loading so we queue it to run later
56+
DeferredWorkQueue.runLater(() -> {
57+
ScreenManager.registerFactory(ModContainerTypes.HEAT_COLLECTOR.get(), HeatCollectorScreen::new);
58+
ScreenManager.registerFactory(ModContainerTypes.ELECTRIC_FURNACE.get(), ElectricFurnaceScreen::new);
59+
ScreenManager.registerFactory(ModContainerTypes.MOD_FURNACE.get(), ModFurnaceScreen::new);
60+
LOGGER.debug("Registered ContainerType Screens");
61+
});
5562

5663
}
5764

src/main/java/io/github/cadiboo/examplemod/client/gui/MiniModelScreen.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import io.github.cadiboo.examplemod.tileentity.MiniModelTileEntity;
77
import net.minecraft.client.gui.screen.Screen;
88
import net.minecraft.client.resources.I18n;
9-
import net.minecraftforge.fml.client.config.GuiButtonExt;
9+
import net.minecraftforge.fml.client.gui.widget.ExtendedButton;
1010

1111
/**
1212
* A Screen for refreshing our MiniMode.
@@ -34,15 +34,15 @@ protected void init() {
3434
final int halfW = this.width / 2;
3535
final int halfH = this.height / 2;
3636
// "Refresh Mini Model" button rebuilds the tile's MiniModel
37-
this.addButton(new GuiButtonExt(halfW - 150, halfH, 150, 20, I18n.format("gui." + ExampleMod.MODID + ".refresh_mini_model"),
37+
this.addButton(new ExtendedButton(halfW - 150, halfH, 150, 20, I18n.format("gui." + ExampleMod.MODID + ".refresh_mini_model"),
3838
$ -> {
3939
final MiniModel miniModel = this.tileEntity.miniModel;
4040
if (miniModel != null)
41-
miniModel.rebuild();
41+
miniModel.compile();
4242
}
4343
));
4444
// "Done" button exits the GUI
45-
this.addButton(new GuiButtonExt(halfW, halfH, 150, 20, I18n.format("gui.done"),
45+
this.addButton(new ExtendedButton(halfW, halfH, 150, 20, I18n.format("gui.done"),
4646
$ -> this.minecraft.displayGuiScreen(null)
4747
));
4848
super.init();
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package io.github.cadiboo.examplemod.client.render.entity;
2+
3+
import io.github.cadiboo.examplemod.ExampleMod;
4+
import io.github.cadiboo.examplemod.client.render.entity.layer.WildBoarSaddleLayer;
5+
import io.github.cadiboo.examplemod.entity.WildBoarEntity;
6+
import net.minecraft.client.renderer.entity.EntityRendererManager;
7+
import net.minecraft.client.renderer.entity.MobRenderer;
8+
import net.minecraft.client.renderer.entity.model.PigModel;
9+
import net.minecraft.util.ResourceLocation;
10+
11+
/**
12+
* Handles rendering all WildBoar Entities.
13+
* The render method is called once each frame for every visible WildBoar.
14+
* <p>
15+
* We use a PigModel in our renderer and simply change it's texture.
16+
*
17+
* @author Cadiboo
18+
*/
19+
public class WildBoarRenderer extends MobRenderer<WildBoarEntity, PigModel<WildBoarEntity>> {
20+
21+
private static final ResourceLocation WILD_BOAR_TEXTURE = new ResourceLocation(ExampleMod.MODID, "textures/entity/wild_boar/wild_boar.png");
22+
23+
public WildBoarRenderer(final EntityRendererManager manager) {
24+
super(manager, new PigModel<>(), 0.7F);
25+
this.addLayer(new WildBoarSaddleLayer(this));
26+
}
27+
28+
@Override
29+
public ResourceLocation getEntityTexture(final WildBoarEntity entity) {
30+
return WILD_BOAR_TEXTURE;
31+
}
32+
33+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package io.github.cadiboo.examplemod.client.render.entity.layer;
2+
3+
import com.mojang.blaze3d.matrix.MatrixStack;
4+
import com.mojang.blaze3d.vertex.IVertexBuilder;
5+
import io.github.cadiboo.examplemod.ExampleMod;
6+
import io.github.cadiboo.examplemod.entity.WildBoarEntity;
7+
import net.minecraft.client.renderer.IRenderTypeBuffer;
8+
import net.minecraft.client.renderer.RenderType;
9+
import net.minecraft.client.renderer.entity.IEntityRenderer;
10+
import net.minecraft.client.renderer.entity.layers.LayerRenderer;
11+
import net.minecraft.client.renderer.entity.layers.SaddleLayer;
12+
import net.minecraft.client.renderer.entity.model.PigModel;
13+
import net.minecraft.client.renderer.texture.OverlayTexture;
14+
import net.minecraft.util.ResourceLocation;
15+
16+
/**
17+
* Copy of {@link SaddleLayer} with tweaks to make it work for WildBoarEntity.
18+
*
19+
* @author Cadiboo
20+
*/
21+
public class WildBoarSaddleLayer extends LayerRenderer<WildBoarEntity, PigModel<WildBoarEntity>> {
22+
23+
private static final ResourceLocation TEXTURE = new ResourceLocation(ExampleMod.MODID, "textures/entity/wild_boar/wild_boar_saddle.png");
24+
private final PigModel<WildBoarEntity> pigModel = new PigModel<>(0.5F);
25+
26+
public WildBoarSaddleLayer(IEntityRenderer<WildBoarEntity, PigModel<WildBoarEntity>> p_i50927_1_) {
27+
super(p_i50927_1_);
28+
}
29+
30+
@Override
31+
public void render(MatrixStack matrixStack, IRenderTypeBuffer renderTypeBuffer, int light, WildBoarEntity entity, float p_225628_5_, float p_225628_6_, float p_225628_7_, float p_225628_8_, float p_225628_9_, float p_225628_10_) {
32+
if (entity.getSaddled()) {
33+
this.getEntityModel().setModelAttributes(this.pigModel);
34+
this.pigModel.setLivingAnimations(entity, p_225628_5_, p_225628_6_, p_225628_7_);
35+
this.pigModel.render(entity, p_225628_5_, p_225628_6_, p_225628_8_, p_225628_9_, p_225628_10_);
36+
IVertexBuilder buffer = renderTypeBuffer.getBuffer(RenderType.entityCutoutNoCull(TEXTURE));
37+
this.pigModel.render(matrixStack, buffer, light, OverlayTexture.DEFAULT_LIGHT, 1.0F, 1.0F, 1.0F, 1.0F);
38+
}
39+
}
40+
41+
}

src/main/java/io/github/cadiboo/examplemod/client/render/tileentity/ElectricFurnaceTileEntityRenderer.java

+6-11
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,13 @@
88
import net.minecraft.block.RedstoneTorchBlock;
99
import net.minecraft.client.Minecraft;
1010
import net.minecraft.client.renderer.IRenderTypeBuffer;
11-
import net.minecraft.client.renderer.RenderHelper;
1211
import net.minecraft.client.renderer.tileentity.TileEntityRenderer;
1312
import net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher;
1413

1514
/**
15+
* Handles rendering all ElectricFurnace TileEntities.
16+
* The render method is called once each frame for every visible ElectricFurnace.
17+
*
1618
* @author Cadiboo
1719
*/
1820
public class ElectricFurnaceTileEntityRenderer extends TileEntityRenderer<ElectricFurnaceTileEntity> {
@@ -25,21 +27,14 @@ public ElectricFurnaceTileEntityRenderer(final TileEntityRendererDispatcher tile
2527
* Render our TileEntity
2628
*/
2729
@Override
28-
public void func_225616_a_(final ElectricFurnaceTileEntity tileEntityIn, final float partialTicks, final MatrixStack matrixStack, final IRenderTypeBuffer renderTypeBuffer, final int packedLight, final int backupPackedLight) {
29-
30-
// Set up GL state
31-
// RenderHelper.enableStandardItemLighting();
32-
RenderHelper.func_227780_a_();
30+
public void render(final ElectricFurnaceTileEntity tileEntityIn, final float partialTicks, final MatrixStack matrixStack, final IRenderTypeBuffer renderTypeBuffer, final int packedLight, final int backupPackedLight) {
31+
// TODO: Fix this up to actually do the rendering I want
3332

3433
final boolean hasEnergy = tileEntityIn.energy.getEnergyStored() >= ExampleModConfig.electricFurnaceEnergySmeltCostPerTick;
3534
final BlockState renderState = Blocks.REDSTONE_TORCH.getDefaultState()
3635
.with(RedstoneTorchBlock.LIT, hasEnergy);
3736
// Render the torch (We use the depreciated method because we don't have an IModelData instance and want to use the default one)
38-
Minecraft.getInstance().getBlockRendererDispatcher()
39-
.func_228791_a_(renderState, matrixStack, renderTypeBuffer, packedLight, backupPackedLight);
40-
41-
// Clean up GL state
42-
RenderHelper.disableStandardItemLighting();
37+
Minecraft.getInstance().getBlockRendererDispatcher().renderBlock(renderState, matrixStack, renderTypeBuffer, packedLight, backupPackedLight);
4338
}
4439

4540
}

src/main/java/io/github/cadiboo/examplemod/client/render/tileentity/MiniModelTileEntityRenderer.java

+3
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@
1717
import java.nio.ByteBuffer;
1818

1919
/**
20+
* Handles rendering all MiniModel TileEntities.
21+
* The render method is called once each frame for every visible MiniModel.
22+
* <p>
2023
* Renders a model of the surrounding blocks.
2124
* This should really probably not be in an examplemod for beginners,
2225
* but I added comments to it so its all good

src/main/java/io/github/cadiboo/examplemod/config/ClientConfig.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ final class ClientConfig {
4444
modelScale = builder
4545
.comment("The scale to render the model at")
4646
.translation(ExampleMod.MODID + ".config.modelScale")
47-
.defineInRange("modelScale", 0.0625, 0.0001, 100);
47+
.defineInRange("modelScale", 0.0625F, 0.0001F, 100F);
4848
builder.pop();
4949
}
5050

src/main/java/io/github/cadiboo/examplemod/config/ConfigHelper.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public static void bakeClient(final ModConfig config) {
1616
ExampleModConfig.clientDyeColorEnum = ConfigHolder.CLIENT.clientDyeColorEnum.get();
1717

1818
ExampleModConfig.modelTranslucency = ConfigHolder.CLIENT.modelTranslucency.get();
19-
ExampleModConfig.modelScale = ConfigHolder.CLIENT.modelScale.get();
19+
ExampleModConfig.modelScale = ConfigHolder.CLIENT.modelScale.get().floatValue();
2020
}
2121

2222
public static void bakeServer(final ModConfig config) {

src/main/java/io/github/cadiboo/examplemod/config/ExampleModConfig.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public final class ExampleModConfig {
2020
public static DyeColor clientDyeColorEnum;
2121

2222
public static boolean modelTranslucency;
23-
public static double modelScale;
23+
public static float modelScale;
2424

2525
// Server
2626
public static boolean serverBoolean;

0 commit comments

Comments
 (0)