Skip to content

Commit e48fe58

Browse files
committed
Merge remote-tracking branch 'origin/1.17/dev' into 1.18/dev
Conflicts: gradle.properties
2 parents aa30a8c + c6dc0b0 commit e48fe58

16 files changed

Lines changed: 108 additions & 70 deletions

build.gradle

Lines changed: 6 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,8 @@ dependencies {
4444
exclude group: 'net.fabricmc.fabric-api'
4545
}
4646

47-
modCompileOnly 'maven.modrinth:sodium:mc1.17.1-0.3.2'
48-
modCompileOnly('io.vram:canvas-fabric-mc117-1.17:1.0.2124') {
49-
exclude group: '*', module: '*'
50-
}
47+
modCompileOnly 'maven.modrinth:sodium:mc1.17.1-0.3.3'
48+
modCompileOnly 'io.vram:canvas-fabric-mc117:1.0.2219'
5149
}
5250

5351
String getExtraBuildMetadata() {
@@ -59,20 +57,14 @@ String getExtraBuildMetadata() {
5957
}
6058

6159
processResources {
62-
inputs.property "version", project.version
60+
inputs.property 'version', project.version
6361

64-
filesMatching("fabric.mod.json") {
65-
expand "version": project.version
62+
filesMatching('fabric.mod.json') {
63+
expand 'version': project.version
6664
}
6765
}
6866

6967
tasks.withType(JavaCompile).configureEach {
70-
// ensure that the encoding is set to UTF-8, no matter what the system default is
71-
// this fixes some edge cases with special characters not displaying correctly
72-
// see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html
73-
// If Javadoc is generated, this must be specified in that task too.
74-
it.options.encoding 'UTF-8'
75-
7668
// Minecraft 1.17 (21w19a) upwards uses Java 16.
7769
it.options.release.set(16)
7870
}
@@ -94,13 +86,7 @@ jar {
9486
publishing {
9587
publications {
9688
mavenJava(MavenPublication) {
97-
// add all the jars that should be included when publishing to maven
98-
artifact(remapJar) {
99-
builtBy remapJar
100-
}
101-
artifact(sourcesJar) {
102-
builtBy remapSourcesJar
103-
}
89+
from components.java
10490
}
10591
}
10692

gradle.properties

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
# Done to increase the memory available to gradle.
1+
# Done to increase the memory available to Gradle.
22
org.gradle.jvmargs = -Xmx1G
33

44
# Fabric Properties
55
loom_version = 0.10-SNAPSHOT
66
minecraft_version = 21w42a
77
yarn_mappings = 21w42a+build.1
8-
loader_version = 0.11.7
8+
loader_version = 0.12.8
99

1010
# Mod Properties
11-
mod_version = 1.0.2
11+
mod_version = 1.0.3
1212
mod_minecraft_version = 1.18
1313
maven_group = me.pepperbell
1414
archives_base_name = continuity
1515

1616
# Dependencies
17-
fabric_version = 0.41.1+1.18
17+
fabric_version = 0.44.0+1.18
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.1-bin.zip
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists

src/main/java/me/pepperbell/continuity/client/processor/AbstractQuadProcessor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public AbstractQuadProcessor(Sprite[] sprites, ProcessingPredicate processingPre
2121

2222
@Override
2323
public ProcessingResult processQuad(MutableQuadView quad, Sprite sprite, BlockRenderView blockView, BlockState state, BlockPos pos, Supplier<Random> randomSupplier, int pass, int processorIndex, ProcessingContext context) {
24-
if (!processingPredicate.shouldProcessQuad(quad, sprite, blockView, state, pos)) {
24+
if (!processingPredicate.shouldProcessQuad(quad, sprite, blockView, state, pos, context)) {
2525
return ProcessingResult.CONTINUE;
2626
}
2727
return processQuadInner(quad, sprite, blockView, state, pos, randomSupplier, pass, processorIndex, context);

src/main/java/me/pepperbell/continuity/client/processor/BaseProcessingPredicate.java

Lines changed: 53 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55
import java.util.function.IntPredicate;
66
import java.util.function.Predicate;
77

8+
import org.jetbrains.annotations.Nullable;
9+
10+
import me.pepperbell.continuity.api.client.ProcessingDataProvider;
811
import me.pepperbell.continuity.client.properties.BaseCTMProperties;
912
import me.pepperbell.continuity.client.util.biome.BiomeRetriever;
1013
import net.fabricmc.fabric.api.renderer.v1.mesh.QuadView;
@@ -35,7 +38,7 @@ public BaseProcessingPredicate(Set<Identifier> matchTilesSet, EnumSet<Direction>
3538
}
3639

3740
@Override
38-
public boolean shouldProcessQuad(QuadView quad, Sprite sprite, BlockRenderView blockView, BlockState state, BlockPos pos) {
41+
public boolean shouldProcessQuad(QuadView quad, Sprite sprite, BlockRenderView blockView, BlockState state, BlockPos pos, ProcessingDataProvider dataProvider) {
3942
if (matchTilesSet != null) {
4043
if (!matchTilesSet.contains(sprite.getId())) {
4144
return false;
@@ -61,26 +64,14 @@ public boolean shouldProcessQuad(QuadView quad, Sprite sprite, BlockRenderView b
6164
}
6265
}
6366
if (biomePredicate != null) {
64-
Biome biome = BiomeRetriever.getBiome(blockView, pos);
65-
if (biome != null) {
66-
if (!biomePredicate.test(biome)) {
67-
return false;
68-
}
69-
} else {
67+
Biome biome = dataProvider.getData(ProcessingDataKeys.BIOME_CACHE_KEY).get(blockView, pos);
68+
if (biome == null || !biomePredicate.test(biome)) {
7069
return false;
7170
}
7271
}
7372
if (blockEntityNamePredicate != null) {
74-
BlockEntity blockEntity = blockView.getBlockEntity(pos);
75-
if (blockEntity instanceof Nameable nameable) {
76-
if (nameable.hasCustomName()) {
77-
if (!blockEntityNamePredicate.test(nameable.getCustomName().asString())) {
78-
return false;
79-
}
80-
} else {
81-
return false;
82-
}
83-
} else {
73+
String blockEntityName = dataProvider.getData(ProcessingDataKeys.BLOCK_ENTITY_NAME_CACHE_KEY).get(blockView, pos);
74+
if (blockEntityName == null || !blockEntityNamePredicate.test(blockEntityName)) {
8475
return false;
8576
}
8677
}
@@ -90,4 +81,49 @@ public boolean shouldProcessQuad(QuadView quad, Sprite sprite, BlockRenderView b
9081
public static BaseProcessingPredicate fromProperties(BaseCTMProperties properties) {
9182
return new BaseProcessingPredicate(properties.getMatchTilesSet(), properties.getFaces(), properties.getBiomePredicate(), properties.getHeightPredicate(), properties.getBlockEntityNamePredicate());
9283
}
84+
85+
public static class BiomeCache {
86+
protected Biome biome;
87+
protected boolean invalid = true;
88+
89+
@Nullable
90+
public Biome get(BlockRenderView blockView, BlockPos pos) {
91+
if (invalid) {
92+
biome = BiomeRetriever.getBiome(blockView, pos);
93+
invalid = false;
94+
}
95+
return biome;
96+
}
97+
98+
public void reset() {
99+
invalid = true;
100+
}
101+
}
102+
103+
public static class BlockEntityNameCache {
104+
protected String blockEntityName;
105+
protected boolean invalid = true;
106+
107+
@Nullable
108+
public String get(BlockRenderView blockView, BlockPos pos) {
109+
if (invalid) {
110+
BlockEntity blockEntity = blockView.getBlockEntity(pos);
111+
if (blockEntity instanceof Nameable nameable) {
112+
if (nameable.hasCustomName()) {
113+
blockEntityName = nameable.getCustomName().asString();
114+
} else {
115+
blockEntityName = null;
116+
}
117+
} else {
118+
blockEntityName = null;
119+
}
120+
invalid = false;
121+
}
122+
return blockEntityName;
123+
}
124+
125+
public void reset() {
126+
invalid = true;
127+
}
128+
}
93129
}

src/main/java/me/pepperbell/continuity/client/processor/ProcessingDataKeys.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
public final class ProcessingDataKeys {
1616
public static final ProcessingDataKey<BlockPos.Mutable> MUTABLE_POS_KEY = create("mutable_pos", BlockPos.Mutable::new);
1717
public static final ProcessingDataKey<MeshBuilder> MESH_BUILDER_KEY = create("mesh_builder", () -> RendererAccess.INSTANCE.getRenderer().meshBuilder());
18+
public static final ProcessingDataKey<BaseProcessingPredicate.BiomeCache> BIOME_CACHE_KEY = create("biome_cache", BaseProcessingPredicate.BiomeCache::new, BaseProcessingPredicate.BiomeCache::reset);
19+
public static final ProcessingDataKey<BaseProcessingPredicate.BlockEntityNameCache> BLOCK_ENTITY_NAME_CACHE_KEY = create("block_entity_name_cache", BaseProcessingPredicate.BlockEntityNameCache::new, BaseProcessingPredicate.BlockEntityNameCache::reset);
1820
public static final ProcessingDataKey<StandardOverlayQuadProcessor.BlockStateAndBoolean> BLOCK_STATE_AND_BOOLEAN_KEY = create("block_state_and_boolean", StandardOverlayQuadProcessor.BlockStateAndBoolean::new);
1921
public static final ProcessingDataKey<StandardOverlayQuadProcessor.OverlayRendererPool> STANDARD_OVERLAY_RENDERER_POOL_KEY = create("standard_overlay_renderer_pool", StandardOverlayQuadProcessor.OverlayRendererPool::new, StandardOverlayQuadProcessor.OverlayRendererPool::reset);
2022
public static final ProcessingDataKey<SimpleOverlayQuadProcessor.OverlayRendererPool> SIMPLE_OVERLAY_RENDERER_POOL_KEY = create("simple_overlay_renderer_pool", SimpleOverlayQuadProcessor.OverlayRendererPool::new, SimpleOverlayQuadProcessor.OverlayRendererPool::reset);
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
package me.pepperbell.continuity.client.processor;
22

3+
import me.pepperbell.continuity.api.client.ProcessingDataProvider;
34
import net.fabricmc.fabric.api.renderer.v1.mesh.QuadView;
45
import net.minecraft.block.BlockState;
56
import net.minecraft.client.texture.Sprite;
67
import net.minecraft.util.math.BlockPos;
78
import net.minecraft.world.BlockRenderView;
89

910
public interface ProcessingPredicate {
10-
boolean shouldProcessQuad(QuadView quad, Sprite sprite, BlockRenderView blockView, BlockState state, BlockPos pos);
11+
boolean shouldProcessQuad(QuadView quad, Sprite sprite, BlockRenderView blockView, BlockState state, BlockPos pos, ProcessingDataProvider dataProvider);
1112
}

src/main/java/me/pepperbell/continuity/client/processor/overlay/OverlayProcessingPredicate.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import java.util.function.IntPredicate;
66
import java.util.function.Predicate;
77

8+
import me.pepperbell.continuity.api.client.ProcessingDataProvider;
89
import me.pepperbell.continuity.client.processor.BaseProcessingPredicate;
910
import me.pepperbell.continuity.client.properties.BaseCTMProperties;
1011
import me.pepperbell.continuity.client.util.QuadUtil;
@@ -23,8 +24,8 @@ public OverlayProcessingPredicate(Set<Identifier> matchTilesSet, EnumSet<Directi
2324
}
2425

2526
@Override
26-
public boolean shouldProcessQuad(QuadView quad, Sprite sprite, BlockRenderView blockView, BlockState state, BlockPos pos) {
27-
if (!super.shouldProcessQuad(quad, sprite, blockView, state, pos)) {
27+
public boolean shouldProcessQuad(QuadView quad, Sprite sprite, BlockRenderView blockView, BlockState state, BlockPos pos, ProcessingDataProvider dataProvider) {
28+
if (!super.shouldProcessQuad(quad, sprite, blockView, state, pos, dataProvider)) {
2829
return false;
2930
}
3031
return QuadUtil.isQuadUnitSquare(quad);

src/main/java/me/pepperbell/continuity/client/processor/overlay/SimpleOverlayQuadProcessor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public SimpleOverlayQuadProcessor(SpriteProvider spriteProvider, ProcessingPredi
4040

4141
@Override
4242
public ProcessingResult processQuad(MutableQuadView quad, Sprite sprite, BlockRenderView blockView, BlockState state, BlockPos pos, Supplier<Random> randomSupplier, int pass, int processorIndex, ProcessingContext context) {
43-
if (processingPredicate.shouldProcessQuad(quad, sprite, blockView, state, pos)) {
43+
if (processingPredicate.shouldProcessQuad(quad, sprite, blockView, state, pos, context)) {
4444
Sprite newSprite = spriteProvider.getSprite(quad, sprite, blockView, state, pos, randomSupplier, context);
4545
if (!TextureUtil.isMissingSprite(newSprite)) {
4646
OverlayRenderer renderer = context.getData(ProcessingDataKeys.SIMPLE_OVERLAY_RENDERER_POOL_KEY).getRenderer();

src/main/java/me/pepperbell/continuity/client/processor/simple/SimpleQuadProcessor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public SimpleQuadProcessor(SpriteProvider spriteProvider, ProcessingPredicate pr
2727

2828
@Override
2929
public ProcessingResult processQuad(MutableQuadView quad, Sprite sprite, BlockRenderView blockView, BlockState state, BlockPos pos, Supplier<Random> randomSupplier, int pass, int processorIndex, ProcessingContext context) {
30-
if (!processingPredicate.shouldProcessQuad(quad, sprite, blockView, state, pos)) {
30+
if (!processingPredicate.shouldProcessQuad(quad, sprite, blockView, state, pos, context)) {
3131
return ProcessingResult.CONTINUE;
3232
}
3333
Sprite newSprite = spriteProvider.getSprite(quad, sprite, blockView, state, pos, randomSupplier, context);

0 commit comments

Comments
 (0)