Revert "ar兼容测试"

This reverts commit 1e3f8d3032.
This commit is contained in:
xjqsh
2025-11-17 23:04:44 +08:00
parent 3dc4a016ae
commit a7074b440c
10 changed files with 9 additions and 202 deletions

View File

@@ -30,9 +30,9 @@ apply plugin: 'eclipse'
apply plugin: 'org.spongepowered.mixin'
apply plugin: 'java'
//version = "1.1.6-hotfix"
version = "1.1.6-hotfix"
// 版本号,正式发布需要修改这一行
version = FORMAT.format(new Date())
//version = FORMAT.format(new Date())
group = "com.tacz"
archivesBaseName = "tacz-1.20.1"
@@ -41,7 +41,6 @@ java.toolchain.languageVersion = JavaLanguageVersion.of(17)
mixin {
add sourceSets.main, "tacz.refmap.json"
config "tacz.mixins.json"
config "tacz.compat.acceleratedrendering.mixins.json"
}
minecraft {
@@ -136,18 +135,6 @@ repositories {
includeGroup "curse.maven"
}
}
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
forRepositories(fg.repository) // Only add this if you're using ForgeGradle, otherwise remove this line
filter {
includeGroup "maven.modrinth"
}
}
maven { url "https://maven.shedaniel.me/" } // cloth config api
maven { url "https://dvs1.progwml6.com/files/maven/" }
maven { url "https://modmaven.dev" }
@@ -221,7 +208,7 @@ dependencies {
runtimeOnly fg.deobf("curse.maven:selene-499980:5478857")
runtimeOnly fg.deobf("curse.maven:mmmmmmmmmmmm-225738:5319203")
// 手柄按键支持
compileOnly fg.deobf("curse.maven:framework-549225:4718251")
implementation fg.deobf("curse.maven:framework-549225:4718251")
compileOnly(fg.deobf("curse.maven:controllable-317269:4598985"))
// 越肩视角,用来兼容第三人称准星
@@ -229,17 +216,14 @@ dependencies {
implementation fg.deobf("me.shedaniel.cloth:cloth-config-forge:${cloth_config_forge}")
implementation fg.deobf("curse.maven:embeddium-908741:${embeddedt_id}")
compileOnly fg.deobf("curse.maven:embeddium-908741:${embeddedt_id}")
// 同时兼容两个版本
compileOnly fg.deobf('libs:oculus_legacy:mc1.20.1-1.6.13')
implementation fg.deobf('libs:oculus:mc1.20.1-1.7.0')
compileOnly fg.deobf('libs:oculus:mc1.20.1-1.7.0')
runtimeOnly fg.deobf("curse.maven:carry-on-274259:${carry_on_id}")
implementation fg.deobf("dev.kosmx.player-anim:player-animation-lib-forge:${player_animation_lib}")
compileOnly fg.deobf("maven.modrinth:acceleratedrendering:${acceleratedrendering_version}")
runtimeOnly fg.deobf("curse.maven:configured-457570:5180900")
// kubejs开发环境引入
compileOnly fg.deobf("dev.latvian.mods:kubejs-forge:${kubejs_version}")
@@ -261,8 +245,7 @@ jar {
manifest {
attributes([
"Implementation-Title" : project.name,
"Implementation-Version": project.version,
"MixinConfigs": "tacz.mixins.json, tacz.compat.acceleratedrendering.mixins"
"Implementation-Version": project.version
])
}
}

View File

@@ -1,6 +1,6 @@
org.gradle.jvmargs=-Xmx4G
org.gradle.daemon=false
forge_version=1.20.1-47.3.19
forge_version=1.20.1-47.1.3
jei_version=15.0.0.12
cloth_config_forge=11.1.106
embeddedt_id=5175031
@@ -11,5 +11,4 @@ flywheel_version = 0.6.11-13
registrate_version = MC1.20-1.3.3
rhino_version=2001.2.3-build.6
architectury_version=9.2.14
kubejs_version=2001.6.5-build.14
acceleratedrendering_version=1.0.5.1-1.20.1-alpha
kubejs_version=2001.6.5-build.14

View File

@@ -241,8 +241,6 @@ public class BedrockGunModel extends BedrockAnimatedModel {
textShowList.forEach((name, textShow) -> this.setFunctionalRenderer(name, bedrockPart -> new TextShowRender(this, textShow, currentGunItem)));
}
public static boolean ENABLE_ACCELERATED_RENDERING = true;
public void render(PoseStack matrixStack, ItemStack gunItem, ItemDisplayContext transformType, RenderType renderType, int light, int overlay) {
IGun iGun = IGun.getIGunOrNull(gunItem);
if (iGun == null) {

View File

@@ -6,7 +6,6 @@ import com.mojang.math.Axis;
import com.tacz.guns.api.TimelessAPI;
import com.tacz.guns.api.item.IAttachment;
import com.tacz.guns.client.model.BedrockAttachmentModel;
import com.tacz.guns.client.model.BedrockGunModel;
import com.tacz.guns.client.model.SlotModel;
import com.tacz.guns.client.resource.index.ClientAttachmentIndex;
import com.tacz.guns.util.RenderDistance;
@@ -51,9 +50,7 @@ public class AttachmentItemRenderer extends BlockEntityWithoutLevelRenderer {
if (transformType == ItemDisplayContext.FIXED) {
poseStack.mulPose(Axis.YN.rotationDegrees(90f));
}
BedrockGunModel.ENABLE_ACCELERATED_RENDERING = false;
this.renderDefaultAttachment(transformType, poseStack, pBuffer, pPackedLight, pPackedOverlay, attachmentIndex);
BedrockGunModel.ENABLE_ACCELERATED_RENDERING = true;
}, () -> {
// 没有这个 attachmentId渲染黑紫材质以提醒
poseStack.translate(0.5, 1.5, 0.5);

View File

@@ -214,9 +214,7 @@ public class GunItemRendererWrapper extends AnimateGeoItemRenderer<BedrockGunMod
}
// 调用枪械模型渲染
RenderType renderType = RenderType.entityCutout(display.getModelTexture());
BedrockGunModel.ENABLE_ACCELERATED_RENDERING = false;
gunModel.render(poseStack, stack, ctx, renderType, light, OverlayTexture.NO_OVERLAY);
BedrockGunModel.ENABLE_ACCELERATED_RENDERING = true;
// 缓存枪口位置,为第一人称曳光弹渲染作准备
cacheMuzzlePosition(poseStack, gunModel);
// 恢复手臂渲染

View File

@@ -1,52 +0,0 @@
package com.tacz.guns.mixin.compat;
import net.minecraftforge.fml.loading.LoadingModList;
import org.objectweb.asm.tree.ClassNode;
import org.spongepowered.asm.mixin.extensibility.IMixinConfigPlugin;
import org.spongepowered.asm.mixin.extensibility.IMixinInfo;
import java.util.List;
import java.util.Set;
public class CompatMixinPlugin implements IMixinConfigPlugin {
private final boolean enableAcceleratedRendering;
public CompatMixinPlugin() {
this.enableAcceleratedRendering = (LoadingModList.get().getModFileById("acceleratedrendering") != null);
}
@Override
public boolean shouldApplyMixin(String targetClassName, String mixinClassName) {
return enableAcceleratedRendering;
}
@Override
public String getRefMapperConfig() {
return null;
}
@Override
public List<String> getMixins() {
return null;
}
@Override
public void onLoad(String mixinPackage) {
}
@Override
public void acceptTargets(Set<String> myTargets, Set<String> otherTargets) {
}
@Override
public void preApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) {
}
@Override
public void postApply(String targetClassName, ClassNode targetClass, String mixinClassName, IMixinInfo mixinInfo) {
}
}

View File

@@ -1,100 +0,0 @@
package com.tacz.guns.mixin.compat.acceleratedrendering;
import com.github.argon4w.acceleratedrendering.core.CoreFeature;
import com.github.argon4w.acceleratedrendering.core.buffers.accelerated.builders.IBufferGraph;
import com.github.argon4w.acceleratedrendering.core.buffers.accelerated.builders.VertexConsumerExtension;
import com.github.argon4w.acceleratedrendering.core.buffers.accelerated.renderers.IAcceleratedRenderer;
import com.github.argon4w.acceleratedrendering.core.meshes.IMesh;
import com.github.argon4w.acceleratedrendering.core.meshes.collectors.CulledMeshCollector;
import com.github.argon4w.acceleratedrendering.features.entities.AcceleratedEntityRenderingFeature;
import com.mojang.blaze3d.vertex.PoseStack;
import com.mojang.blaze3d.vertex.VertexConsumer;
import com.tacz.guns.client.model.bedrock.BedrockCube;
import com.tacz.guns.client.model.bedrock.BedrockPart;
import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
import it.unimi.dsi.fastutil.objects.ObjectList;
import net.minecraft.util.FastColor;
import org.joml.Matrix3f;
import org.joml.Matrix4f;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.Unique;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import java.util.Map;
import static com.tacz.guns.client.model.BedrockGunModel.ENABLE_ACCELERATED_RENDERING;
@Mixin(BedrockPart.class)
public class ARBedrockPartMixin implements IAcceleratedRenderer<Void> {
@Unique
private static final PoseStack.Pose POSE = new PoseStack().last();
@Unique
private final Map<IBufferGraph, IMesh> meshes = new Object2ObjectOpenHashMap<>();
@Shadow(remap = false)
@Final
public ObjectList<BedrockCube> cubes;
@Inject(
method = "compile",
at = @At("HEAD"),
cancellable = true,
remap = false
)
public void compileFast(PoseStack.Pose pose, VertexConsumer consumer, int texU, int texV,
float red, float green, float blue, float alpha, CallbackInfo ci
) {
var extension = VertexConsumerExtension.getAccelerated(consumer);
if (AcceleratedEntityRenderingFeature.isEnabled()
&& AcceleratedEntityRenderingFeature.shouldUseAcceleratedPipeline()
&& (CoreFeature.isRenderingLevel()
|| (CoreFeature.isRenderingGui()
&& AcceleratedEntityRenderingFeature.shouldAccelerateInGui()))
&& extension.isAccelerated()
&& ENABLE_ACCELERATED_RENDERING
) {
ci.cancel();
int color = FastColor.ARGB32.color((int) (alpha * 255.0f), (int) (red * 255.0f), (int) (green * 255.0f), (int) (blue * 255.0f));
extension.doRender(this, null, pose.pose(), pose.normal(), texU, texV, color);
}
}
@Unique
@Override
public void render(VertexConsumer consumer, Void context, Matrix4f transform, Matrix3f normal, int light, int overlay, int color) {
var extension = VertexConsumerExtension.getAccelerated(consumer);
var mesh = meshes.get(extension);
extension.beginTransform(transform, normal);
if (mesh != null) {
mesh.write(extension, color, light, overlay);
extension.endTransform();
return;
}
var culledMeshCollector = new CulledMeshCollector(extension);
var meshBuilder = extension.decorate(culledMeshCollector);
for (var cube : cubes) {
cube.compile(POSE, meshBuilder, 0, overlay, 1.0f, 1.0f, 1.0f, 1.0f);
}
culledMeshCollector.flush();
mesh = AcceleratedEntityRenderingFeature.getMeshType().getBuilder().build(culledMeshCollector);
meshes.put(extension, mesh);
mesh.write(extension, color, light, overlay);
extension.endTransform();
}
}

View File

@@ -16,7 +16,7 @@ description = '''
[[dependencies.tacz]]
modId = "forge"
mandatory = true
versionRange = "[47.3.19,)"
versionRange = "[46,)"
ordering = "NONE"
side = "BOTH"

View File

@@ -1,16 +0,0 @@
{
"required": true,
"minVersion": "0.8",
"package": "com.tacz.guns.mixin",
"plugin": "com.tacz.guns.mixin.compat.CompatMixinPlugin",
"compatibilityLevel": "JAVA_17",
"refmap": "tacz.refmap.json",
"mixins": [
],
"client": [
"compat.acceleratedrendering.ARBedrockPartMixin"
],
"injectors": {
"defaultRequire": 1
}
}