From ef0cb759d4298d1441ecc943e55ddcb7208601fb Mon Sep 17 00:00:00 2001 From: Aleksey Date: Sat, 26 Dec 2020 23:47:51 +0300 Subject: [PATCH] Small fix --- .../blocks/BlockVentBubbleColumn.java | 24 ++--------------- .../client/NamespaceResourceManagerMixin.java | 26 ++++++++++++++----- .../ru/betterend/registry/EndFeatures.java | 2 +- .../betterend/world/features/EndFeature.java | 2 +- .../blockstates/vent_bubble_column.json | 7 +++++ 5 files changed, 31 insertions(+), 30 deletions(-) create mode 100644 src/main/resources/assets/betterend/blockstates/vent_bubble_column.json diff --git a/src/main/java/ru/betterend/blocks/BlockVentBubbleColumn.java b/src/main/java/ru/betterend/blocks/BlockVentBubbleColumn.java index f50a6b06..0d483bee 100644 --- a/src/main/java/ru/betterend/blocks/BlockVentBubbleColumn.java +++ b/src/main/java/ru/betterend/blocks/BlockVentBubbleColumn.java @@ -1,6 +1,5 @@ package ru.betterend.blocks; -import java.io.Reader; import java.util.Random; import net.fabricmc.api.EnvType; @@ -22,22 +21,19 @@ import net.minecraft.particle.ParticleTypes; import net.minecraft.server.world.ServerWorld; import net.minecraft.sound.SoundCategory; import net.minecraft.sound.SoundEvents; -import net.minecraft.util.Identifier; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; -import net.minecraft.util.registry.Registry; import net.minecraft.util.shape.VoxelShape; import net.minecraft.util.shape.VoxelShapes; import net.minecraft.world.BlockView; import net.minecraft.world.World; import net.minecraft.world.WorldAccess; import net.minecraft.world.WorldView; -import ru.betterend.patterns.BlockPatterned; -import ru.betterend.patterns.Patterns; + import ru.betterend.registry.EndBlocks; import ru.betterend.util.BlocksHelper; -public class BlockVentBubbleColumn extends Block implements FluidDrainable, FluidFillable, BlockPatterned { +public class BlockVentBubbleColumn extends Block implements FluidDrainable, FluidFillable { public BlockVentBubbleColumn() { super(FabricBlockSettings.of(Material.BUBBLE_COLUMN).nonOpaque().noCollision().dropsNothing()); } @@ -125,20 +121,4 @@ public class BlockVentBubbleColumn extends Block implements FluidDrainable, Flui public FluidState getFluidState(BlockState state) { return Fluids.WATER.getStill(false); } - - @Override - public String getStatesPattern(Reader data) { - String block = Registry.BLOCK.getId(this).getPath(); - return Patterns.createJson(data, block, block); - } - - @Override - public String getModelPattern(String block) { - return Patterns.createJson(Patterns.BLOCK_EMPTY, "stone", "stone"); - } - - @Override - public Identifier statePatternId() { - return Patterns.STATE_SIMPLE; - } } diff --git a/src/main/java/ru/betterend/mixin/client/NamespaceResourceManagerMixin.java b/src/main/java/ru/betterend/mixin/client/NamespaceResourceManagerMixin.java index 84805062..b23538f5 100644 --- a/src/main/java/ru/betterend/mixin/client/NamespaceResourceManagerMixin.java +++ b/src/main/java/ru/betterend/mixin/client/NamespaceResourceManagerMixin.java @@ -2,44 +2,58 @@ package ru.betterend.mixin.client; import java.util.List; +import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.At.Shift; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; - import com.google.common.collect.Lists; import net.minecraft.block.Block; import net.minecraft.resource.NamespaceResourceManager; import net.minecraft.resource.Resource; +import net.minecraft.resource.ResourcePack; import net.minecraft.util.Identifier; import net.minecraft.util.registry.Registry; + import ru.betterend.BetterEnd; import ru.betterend.patterns.BlockPatterned; @Mixin(NamespaceResourceManager.class) public abstract class NamespaceResourceManagerMixin { + @Final + @Shadow + protected List packList; + @Shadow public abstract Resource getResource(Identifier id); + @Shadow + public abstract List getAllResources(Identifier id); @Inject(method = "getAllResources", cancellable = true, at = @At( value = "NEW", target = "java/io/FileNotFoundException", shift = Shift.BEFORE)) public void getStatesPattern(Identifier id, CallbackInfoReturnable> info) { - if (id.getNamespace().contains(BetterEnd.MOD_ID)) { + if (id.getNamespace().equals(BetterEnd.MOD_ID)) { String[] data = id.getPath().split("/"); if (data.length > 1) { Identifier blockId = BetterEnd.makeID(data[1].replace(".json", "")); Block block = Registry.BLOCK.get(blockId); if (block instanceof BlockPatterned) { - List resources = Lists.newArrayList(); - resources.add(this.getResource(((BlockPatterned) block).statePatternId())); - info.setReturnValue(resources); - info.cancel(); + Identifier stateId = ((BlockPatterned) block).statePatternId(); + try { + List resources = Lists.newArrayList(); + Resource stateRes = this.getResource(stateId); + resources.add(stateRes); + info.setReturnValue(resources); + info.cancel(); + } catch (Exception ex) { + BetterEnd.LOGGER.catching(ex); + } } } } diff --git a/src/main/java/ru/betterend/registry/EndFeatures.java b/src/main/java/ru/betterend/registry/EndFeatures.java index c49eb39f..0f875e3d 100644 --- a/src/main/java/ru/betterend/registry/EndFeatures.java +++ b/src/main/java/ru/betterend/registry/EndFeatures.java @@ -128,7 +128,7 @@ public class EndFeatures { public static final EndFeature CHARNIA_GREEN = new EndFeature("charnia_green", new CharniaFeature(EndBlocks.CHARNIA_GREEN), 10); public static final EndFeature MENGER_SPONGE = new EndFeature("menger_sponge", new MengerSpongeFeature(5), 1); public static final EndFeature CHARNIA_RED_RARE = new EndFeature("charnia_red_rare", new CharniaFeature(EndBlocks.CHARNIA_RED), 2); - public static final EndFeature OVERWORLD_ISLAND = EndFeature.makeOverworldIsland("overworld_island", new OverworldIslandFeature()); + public static final EndFeature OVERWORLD_ISLAND = EndFeature.makeFetureConfigured("overworld_island", new OverworldIslandFeature()); // Terrain // public static final EndFeature END_LAKE = EndFeature.makeLakeFeature("end_lake", new EndLakeFeature(), 4); diff --git a/src/main/java/ru/betterend/world/features/EndFeature.java b/src/main/java/ru/betterend/world/features/EndFeature.java index 1e2e9aed..09a9484b 100644 --- a/src/main/java/ru/betterend/world/features/EndFeature.java +++ b/src/main/java/ru/betterend/world/features/EndFeature.java @@ -114,7 +114,7 @@ public class EndFeature { return new EndFeature(name, feature, GenerationStep.Feature.RAW_GENERATION, configured); } - public static EndFeature makeOverworldIsland(String name, Feature feature) { + public static EndFeature makeFetureConfigured(String name, Feature feature) { ConfiguredFeature configured = feature.configure(FeatureConfig.DEFAULT); return new EndFeature(name, feature, GenerationStep.Feature.RAW_GENERATION, configured); } diff --git a/src/main/resources/assets/betterend/blockstates/vent_bubble_column.json b/src/main/resources/assets/betterend/blockstates/vent_bubble_column.json new file mode 100644 index 00000000..442f38d9 --- /dev/null +++ b/src/main/resources/assets/betterend/blockstates/vent_bubble_column.json @@ -0,0 +1,7 @@ +{ + "variants": { + "": { + "model": "minecraft:block/water" + } + } +} \ No newline at end of file