mirror of
https://github.com/sys-32Dev/TACZ.git
synced 2026-08-08 20:06:25 +00:00
29
build.gradle
29
build.gradle
@@ -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
|
||||
])
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
Binary file not shown.
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
// 恢复手臂渲染
|
||||
|
||||
@@ -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) {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
|
||||
}
|
||||
}
|
||||
@@ -16,7 +16,7 @@ description = '''
|
||||
[[dependencies.tacz]]
|
||||
modId = "forge"
|
||||
mandatory = true
|
||||
versionRange = "[47.3.19,)"
|
||||
versionRange = "[46,)"
|
||||
ordering = "NONE"
|
||||
side = "BOTH"
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user