Skip to content

Commit

Permalink
refactor: disk interface model now has a color property on forge
Browse files Browse the repository at this point in the history
  • Loading branch information
raoulvdberge committed Aug 14, 2024
1 parent da665f2 commit 5028bbb
Show file tree
Hide file tree
Showing 42 changed files with 101 additions and 70 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

### Changed

- Optimized memory usage and startup time of cable models. After updating, cables will appear disconnected, but this is only visual. Cause a block update to fix this.

### Fixed

- Fixed mouse keybindings not working on NeoForge.
Expand Down
4 changes: 3 additions & 1 deletion config/checkstyle/checkstyle.xml
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,9 @@
<module name="MethodCount"/>
<module name="MethodLength"/>
<module name="OuterTypeNumber"/>
<module name="RecordComponentNumber"/>
<module name="RecordComponentNumber">
<property name="max" value="20"/>
</module>
<module name="EmptyForInitializerPad"/>
<module name="EmptyForIteratorPad"/>
<module name="NoWhitespaceAfter"/>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{
"loader": "refinedstorage:black_disk_interface"
"color": "black",
"loader": "refinedstorage:disk_interface"
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{
"loader": "refinedstorage:blue_disk_interface"
"color": "blue",
"loader": "refinedstorage:disk_interface"
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{
"loader": "refinedstorage:brown_disk_interface"
"color": "brown",
"loader": "refinedstorage:disk_interface"
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{
"loader": "refinedstorage:cyan_disk_interface"
"color": "cyan",
"loader": "refinedstorage:disk_interface"
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{
"loader": "refinedstorage:gray_disk_interface"
"color": "gray",
"loader": "refinedstorage:disk_interface"
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{
"loader": "refinedstorage:green_disk_interface"
"color": "green",
"loader": "refinedstorage:disk_interface"
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{
"color": "light_blue",
"loader": "refinedstorage:disk_interface"
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{
"loader": "refinedstorage:light_gray_disk_interface"
"color": "light_gray",
"loader": "refinedstorage:disk_interface"
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{
"loader": "refinedstorage:lime_disk_interface"
"color": "lime",
"loader": "refinedstorage:disk_interface"
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{
"loader": "refinedstorage:magenta_disk_interface"
"color": "magenta",
"loader": "refinedstorage:disk_interface"
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{
"loader": "refinedstorage:orange_disk_interface"
"color": "orange",
"loader": "refinedstorage:disk_interface"
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{
"loader": "refinedstorage:pink_disk_interface"
"color": "pink",
"loader": "refinedstorage:disk_interface"
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{
"loader": "refinedstorage:purple_disk_interface"
"color": "purple",
"loader": "refinedstorage:disk_interface"
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{
"loader": "refinedstorage:red_disk_interface"
"color": "red",
"loader": "refinedstorage:disk_interface"
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{
"loader": "refinedstorage:white_disk_interface"
"color": "white",
"loader": "refinedstorage:disk_interface"
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{
"loader": "refinedstorage:yellow_disk_interface"
"color": "yellow",
"loader": "refinedstorage:disk_interface"
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{
"loader": "refinedstorage:black_disk_interface"
"color": "black",
"loader": "refinedstorage:disk_interface"
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{
"loader": "refinedstorage:blue_disk_interface"
"color": "blue",
"loader": "refinedstorage:disk_interface"
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{
"loader": "refinedstorage:brown_disk_interface"
"color": "brown",
"loader": "refinedstorage:disk_interface"
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{
"loader": "refinedstorage:cyan_disk_interface"
"color": "cyan",
"loader": "refinedstorage:disk_interface"
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{
"color": "light_blue",
"loader": "refinedstorage:disk_interface"
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{
"loader": "refinedstorage:gray_disk_interface"
"color": "gray",
"loader": "refinedstorage:disk_interface"
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{
"loader": "refinedstorage:green_disk_interface"
"color": "green",
"loader": "refinedstorage:disk_interface"
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{
"loader": "refinedstorage:light_gray_disk_interface"
"color": "light_gray",
"loader": "refinedstorage:disk_interface"
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{
"loader": "refinedstorage:lime_disk_interface"
"color": "lime",
"loader": "refinedstorage:disk_interface"
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{
"loader": "refinedstorage:magenta_disk_interface"
"color": "magenta",
"loader": "refinedstorage:disk_interface"
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{
"loader": "refinedstorage:orange_disk_interface"
"color": "orange",
"loader": "refinedstorage:disk_interface"
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{
"loader": "refinedstorage:pink_disk_interface"
"color": "pink",
"loader": "refinedstorage:disk_interface"
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{
"loader": "refinedstorage:purple_disk_interface"
"color": "purple",
"loader": "refinedstorage:disk_interface"
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{
"loader": "refinedstorage:red_disk_interface"
"color": "red",
"loader": "refinedstorage:disk_interface"
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{
"loader": "refinedstorage:white_disk_interface"
"color": "white",
"loader": "refinedstorage:disk_interface"
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
{
"loader": "refinedstorage:yellow_disk_interface"
"color": "yellow",
"loader": "refinedstorage:disk_interface"
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package com.refinedmods.refinedstorage.common.content;

import com.refinedmods.refinedstorage.common.autocrafting.PatternGridBlock;
import com.refinedmods.refinedstorage.common.constructordestructor.ConstructorBlock;
import com.refinedmods.refinedstorage.common.constructordestructor.AbstractConstructorBlockEntity;
import com.refinedmods.refinedstorage.common.constructordestructor.DestructorBlock;
import com.refinedmods.refinedstorage.common.constructordestructor.AbstractDestructorBlockEntity;
import com.refinedmods.refinedstorage.common.constructordestructor.ConstructorBlock;
import com.refinedmods.refinedstorage.common.constructordestructor.DestructorBlock;
import com.refinedmods.refinedstorage.common.controller.AbstractControllerBlock;
import com.refinedmods.refinedstorage.common.controller.ControllerBlock;
import com.refinedmods.refinedstorage.common.controller.ControllerBlockEntityTicker;
Expand All @@ -17,10 +17,10 @@
import com.refinedmods.refinedstorage.common.grid.CraftingGridBlock;
import com.refinedmods.refinedstorage.common.grid.GridBlock;
import com.refinedmods.refinedstorage.common.iface.InterfaceBlock;
import com.refinedmods.refinedstorage.common.importer.ImporterBlock;
import com.refinedmods.refinedstorage.common.importer.AbstractImporterBlockEntity;
import com.refinedmods.refinedstorage.common.networking.CableBlock;
import com.refinedmods.refinedstorage.common.importer.ImporterBlock;
import com.refinedmods.refinedstorage.common.networking.AbstractCableBlockEntity;
import com.refinedmods.refinedstorage.common.networking.CableBlock;
import com.refinedmods.refinedstorage.common.networking.NetworkReceiverBlock;
import com.refinedmods.refinedstorage.common.networking.NetworkTransmitterBlock;
import com.refinedmods.refinedstorage.common.networking.RelayBlock;
Expand All @@ -31,8 +31,8 @@
import com.refinedmods.refinedstorage.common.storage.diskdrive.DiskDriveBlock;
import com.refinedmods.refinedstorage.common.storage.diskinterface.AbstractDiskInterfaceBlockEntity;
import com.refinedmods.refinedstorage.common.storage.diskinterface.DiskInterfaceBlock;
import com.refinedmods.refinedstorage.common.storage.externalstorage.ExternalStorageBlock;
import com.refinedmods.refinedstorage.common.storage.externalstorage.AbstractExternalStorageBlockEntity;
import com.refinedmods.refinedstorage.common.storage.externalstorage.ExternalStorageBlock;
import com.refinedmods.refinedstorage.common.storage.portablegrid.PortableGridBlock;
import com.refinedmods.refinedstorage.common.storage.storageblock.FluidStorageBlock;
import com.refinedmods.refinedstorage.common.storage.storageblock.ItemStorageBlock;
Expand Down Expand Up @@ -169,7 +169,8 @@ public final class Blocks {
private Blocks() {
}

public BlockColorMap<CableBlock, BaseBlockItem> setCable(final BlockEntityProvider<AbstractCableBlockEntity> provider) {
public BlockColorMap<CableBlock, BaseBlockItem> setCable(
final BlockEntityProvider<AbstractCableBlockEntity> provider) {
cable = new BlockColorMap<>(
(color, name) -> new CableBlock(color, name, provider),
ContentIds.CABLE,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,8 @@ public class ExporterBlock extends AbstractDirectionalCableBlock
implements ColorableBlock<ExporterBlock, BaseBlockItem>, EntityBlock, BlockItemProvider<BaseBlockItem> {
private static final Component HELP = createTranslation("item", "exporter.help");
private static final Map<DirectionalCacheShapeCacheKey, VoxelShape> SHAPE_CACHE = new ConcurrentHashMap<>();
private static final AbstractBlockEntityTicker<AbstractExporterBlockEntity> TICKER = new NetworkNodeBlockEntityTicker<>(
BlockEntities.INSTANCE::getExporter
);
private static final AbstractBlockEntityTicker<AbstractExporterBlockEntity> TICKER =
new NetworkNodeBlockEntityTicker<>(BlockEntities.INSTANCE::getExporter);

private final DyeColor color;
private final MutableComponent name;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,8 @@ public class ImporterBlock extends AbstractDirectionalCableBlock implements
ColorableBlock<ImporterBlock, BaseBlockItem>, EntityBlock, BlockItemProvider<BaseBlockItem> {
private static final Component HELP = createTranslation("item", "importer.help");
private static final Map<DirectionalCacheShapeCacheKey, VoxelShape> SHAPE_CACHE = new HashMap<>();
private static final AbstractBlockEntityTicker<AbstractImporterBlockEntity> TICKER = new NetworkNodeBlockEntityTicker<>(
BlockEntities.INSTANCE::getImporter
);
private static final AbstractBlockEntityTicker<AbstractImporterBlockEntity> TICKER =
new NetworkNodeBlockEntityTicker<>(BlockEntities.INSTANCE::getImporter);

private final DyeColor color;
private final MutableComponent name;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
import com.refinedmods.refinedstorage.common.autocrafting.PatternTooltipCache;
import com.refinedmods.refinedstorage.common.configurationcard.ConfigurationCardItemPropertyFunction;
import com.refinedmods.refinedstorage.common.content.BlockEntities;
import com.refinedmods.refinedstorage.common.content.Blocks;
import com.refinedmods.refinedstorage.common.content.ContentNames;
import com.refinedmods.refinedstorage.common.content.Items;
import com.refinedmods.refinedstorage.common.content.KeyMappings;
Expand Down Expand Up @@ -62,6 +61,7 @@

import static com.refinedmods.refinedstorage.common.content.ContentIds.CABLE;
import static com.refinedmods.refinedstorage.common.content.ContentIds.DISK_DRIVE;
import static com.refinedmods.refinedstorage.common.content.ContentIds.DISK_INTERFACE;
import static com.refinedmods.refinedstorage.common.content.ContentIds.PATTERN;
import static com.refinedmods.refinedstorage.common.content.ContentIds.PORTABLE_GRID;
import static com.refinedmods.refinedstorage.common.util.IdentifierUtil.createIdentifier;
Expand Down Expand Up @@ -106,9 +106,7 @@ public static void onRegisterCustomModels(final ModelEvent.RegisterGeometryLoade
e.register(PATTERN, new PatternGeometryLoader());
e.register(DISK_DRIVE, new DiskDriveGeometryLoader());
e.register(PORTABLE_GRID, new PortableGridGeometryLoader());
Blocks.INSTANCE.getDiskInterface().forEach(
(color, id, supplier) -> e.register(id, new DiskInterfaceGeometryLoader(color))
);
e.register(DISK_INTERFACE, new DiskInterfaceGeometryLoader());
e.register(CABLE, new CableGeometryLoader());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
import net.minecraft.data.PackOutput;
import net.minecraft.resources.ResourceLocation;
import net.neoforged.neoforge.client.model.generators.BlockModelProvider;
import net.neoforged.neoforge.client.model.generators.CustomLoaderBuilder;
import net.neoforged.neoforge.common.data.ExistingFileHelper;

import static com.refinedmods.refinedstorage.common.util.IdentifierUtil.MOD_ID;
Expand Down Expand Up @@ -73,7 +72,7 @@ private void registerCables() {
.texture("cable", texture)
.texture(PARTICLE_TEXTURE, texture);
getBuilder("block/cable/" + color.getName())
.customLoader((blockModelBuilder, existingFileHelper) -> new CableCustomLoaderBuilder(
.customLoader((blockModelBuilder, existingFileHelper) -> new ColoredCustomLoaderBuilder<>(
ContentIds.CABLE,
blockModelBuilder,
existingFileHelper,
Expand Down Expand Up @@ -282,15 +281,14 @@ private void registerRelays() {
}

private void registerDiskInterfaces() {
// TODO: add color as property and use single loader?
registerRightLeftBackFrontTopModel(Blocks.INSTANCE.getDiskInterface(), "disk_interface", "base_");
Blocks.INSTANCE.getDiskInterface()
.forEach((color, id, block) -> getBuilder("block/disk_interface/" + color.getName())
.customLoader((blockModelBuilder, existingFileHelper) -> new CustomLoaderBuilder<>(
id,
.customLoader((blockModelBuilder, existingFileHelper) -> new ColoredCustomLoaderBuilder<>(
ContentIds.DISK_INTERFACE,
blockModelBuilder,
existingFileHelper,
true
color
) {
}).end());
}
Expand Down
Loading

0 comments on commit 5028bbb

Please sign in to comment.