我的世界整合包GTNH开发文档

本文详细介绍了如何为格雷科技的新视野GTNH项目贡献代码,包括如何选择项目、克隆仓库、使用IDE开发、更新构建脚本,以及遵循的贡献流程和最佳实践,涉及Git配置、IDE插件和Maven/Jenkins集成等内容。
摘要由CSDN通过智能技术生成

介绍

每个人都可以通过某种方式为格雷科技:新视野(GTNH)做出贡献。其中一种可能的方法是改进或扩展模组的源代码。

开始前,你首先需要明确你想要做什么。
如果你还没有想法,可以先浏览问题界面并尝试解决一些问题。
如果你已经有了想法,但是想听听更多的意见,你可以在Github问题界面或Discord中发表新的讨论。

入门指南

如果你找到了一个想要编辑的模组,可以在其GitHub页面上按下Fork按钮来创建一个分支。
在这之后,你可以克隆你的分支到本地仓库,导入到你的集成开发环境(IDE)中,并开始开发。
如果你不确定该如何进行某些操作时,可以尝试查找类似的操作是如何完成的。

从现有仓库开始 

  1. 克隆该仓库。
  2. 通过./gradlew updateBuildScript指令自动更新构建脚本,如果未能成功,可以按照本指南手动更新。

从零开始

如果以下步骤不成功,请查看实例模组 README.md

  1. 解压项目启动器到项目目录。
  2. 替换许可证模板(LICENSE-template)中的占位符,并将其重命名为许可证(LICENSE),或者删除LICENSE-template并在代码上放上你喜欢的任何其他许可证。这是一个宽松的开源软件项目,我们鼓励你使用像模板许可证一样宽松的许可证,参与开放源代码软件运动。你可以在这篇文章中了解开源软件的优缺点。
  3. 确保你的项目使用了版本控制系统(VCS)。例如,通过运行git init; git commit --message "initialized repository"来初始化git仓库。
  4. 替换占位符(编辑gradle.properties中的值,更改示例包和类名等)。
  5. 运行./gradlew build
  6. 请确保查看本文件的剩余部分。
  7. 准备工作已经完成了!

下一步

  1. 运行./gradlew updateBuildScript来更新仓库的Gradle构建脚本。
  2. 运行./gradlew build --build-cache来创建项目。使用--build-cache标志可加快构建。请查看此文档以获取更多信息。
  3. 如果构建失败,检查控制台中显示的内容。通常是因为依赖过期或使用了Spotless而导致的失败。你可以使用./gradlew updateDependencies./gradlew spotlessApply来进行修复。
  4. 在Eclipse / IntelliJ IDEA中,将你的工作区导入为现有的Gradle项目。如果导入失败,你可能需要调整Gradle版本和/或构建脚本。如果你正在为我的世界1.7.10版本进行开发,请阅读这个指南
  5. 在你进行更改后,请对其进行测试:
    1. 使用./gradlew build构建项目。你会在build/libs中找到几个jar文件。而你所需要的是不以-dev-api为后缀的文件。
    2. 下载最新的每晚构建,并在你选择的启动器中导入它。
    3. 用你的版本替换掉目标模组,如果是新的模组,则添加它。
    4. 启动整合包,检查一切是否正常运作。

常见问题

  • 如果即便你执行了gradlew build,你的IDE仍告诉你缺少某些东西,请尝试重新加载Gradle。
  • 你需要64位的Java来进行开发。大多数模组适用于Java 8-19。但是,目前一些模组在gradle.properties中使用了enableModernJavaSyntax这个配置选项。在这种情况下,你至少需要Java 11来进行编译。如果你的电脑中有多个Java版本,那么你可能需要将JAVA_HOME环境变量设置为所需Java版本所安装的位置,并在你的IDE中进行配置。

Git配置

如果你不想使用真实姓名提交签名,请参考Git身份管理页面。

贡献流程

  1. 找到要贡献的内容。
  2. 复制你需要的仓库。
  3. 对你所做的更改进行彻底测试。如果你更改了某些内容,请了解已更改的类或方法以便知道要测试什么。
  4. 推送代码到你的分支。
  5. 创建一个拉取请求,并对更改/添加/删除进行说明。如有必要,可以附上图片/图表。如果有相关的问题,可以附上链接。请以下成员进行审查:
    • Java/Scala/Kotlin代码更改: GTNewHorizons/developers team,
    • 任务或配方更改:chochom或DreamMasterXXL
    • NEI模组的更改:mitchej123
    • 原始模组开发者,如果你正在为他们的模组做贡献且他们仍活跃着。例如,Glease开发的TC4Tweaks,SinTh0r4s开发的VisualProspecting,GlodBlock开发的GoodGenerators。
  6. 解决审查发现的问题。解决合并冲突。等待最终合并。即使获得批准,也不要自行合并拉取请求(PR)!这是GTNewHorizons/admin成员的任务。 请不要在单个拉取请求中进行多个更改/功能,而是为每个更改/功能创建一个单独的拉取请求。如果它们之间相互依赖,你可以在拉取请求的描述中留下注释。 如果你不确定如何复制和创建拉取请求,请阅读Chaser324所写的要点

GTNH特定的贡献指南

  • 你可以在此处找到GTNH开发社区的行为准则
  • 查看在GTNH模组包之外还支持哪些模组,并在此表格中查看许可证的概述。
  • 有关GTNH代码风格准则,请查看代码风格专用页面。
  • 关于任务开发,请查看任务开发指南
  • 可以在此处找到StructureLib文档,可用于多方块结构创建。
  • 想要了解化学合成是如何在配方中平衡的,请查看化学平衡

工具

所有分组在一起的应用程序的功用都差不多,但这并不意味着你可以选择其中任何一个,因为它们在功能、风格、性能和可定制性方面有所不同。建议你查看它们的功能并对每一个都进行尝试,以便确定你想要用于某种用途的应用程序。

类别链接
Code Editors
Integrated Development Environments (IDEs)
  • Eclipse Note: as of version 2020-09, using Java 8 became more difficult. 2020-06 is the last version with official support for Java 8.
  • IntelliJ IDEA
Image Editors
Modeling
Animation
Miscellaneous

有用的IDEA插件

此外,如果你选择JetBrains IntelliJ IDEA作为您的集成开发环境,那么有些插件在某些方面会很有帮助

  • Minecraft Development:为混合开发,内置NBT编辑器,新项目窗口中的minecraft项目类型,以及许多其他小型实用工具提供自动补全功能。请注意,特别是对于GTNH,你将使用由eigenraven维护的分支。我们的构建工具是RFG,但是不幸的是它和插件市场上提供的原始版本并不兼容。请按照该分支的README中的安装说明进行操作。
  • ASM字节码查看器(ASM Bytecode Viewer):对asm开发有很大帮助的插件,偶尔也对mixin开发有所帮助。请注意,许多插件有着相似名称和几乎相同目的,其中一个是JetBrains的捆绑插件。JetBrains的插件有些靠不住,它无法显示ASM化的代码。这里所推荐的插件可以完美运行并显示ASM化的代码。如果你不确定是否安装了正确的插件,以下是该插件的链接:ASM Bytecode Viewer - IntelliJ IDEs Plugin | Marketplace。 使用此插件时,请关注任何已打开的Java编辑器选项卡(无论是没有附加源代码的反编译库类、带有附加源代码的库类,还是你自己的源文件),然后在代码菜单中单击ASM字节码查看器。该操作也可以通过在“搜索所有(Search Everything)”中搜索该插件名来完成。在你的源文件中,它将触发项目构建以确保.class文件是最新的。

Maven/Jenkins Selection

URLMods
Download / MekanismMekanism, MekanismGenerators, MekanismTools
https://api.modrinth.com/mavenAll Modrinth mods
Repository - Sonatype Nexus RepositoryCodeChickenCore, CodeChickenLib, EnderStorage, NotEnoughItems, Translocator, WR-CBE, ...
https://ci.rs485.network/ 
http://downloads.gtnewhorizons.com/Mods_for_Jenkins/Various
https://dvs1.progwml6.com/files/mavenIguanaTinkerTweaks, HungerOverhaul, Mantle, Natura, TinkersConstruct, TinkersMechworks, ...
https://files.projectredwiki.com/mavenMrTJPCore, ForgeRelocation, ProjectRed
https://files.vexatos.comAre We Endgame Yet?, AsieLib, BeeSpecific, BuildcraftOilTweak, CheatyComputers, Computronics, Conventional, CustomManualTab, Don't Stub Your Toe, FactumOpus, ForecatsersBackpacks, TGregworks, ...
GregTechVarious
immibis.comAdvanced Machines, Advanced Repulsion Systems, AutoFood, Cloud Storage, Connected Glass, Dimensional Anchors, Immibis Core, Immibis's Macroblocks, Immibis's Microblocks, Immibis's Peripherals, InfiView, InfiniTubes, Liquid XP, RedLogic, Simple Recycling, TinyCarts, TubeStuff, ...
https://jenkins.bdew.net/mavenAE2Stuff, BDLib, CoFHLib, Compacter, Computercraft, Generators, Gendustry, Mekanism, Pressure, ...
https://jenkins.dries007.net/AutoCrafter2000, BetterFoliage, CrayCrafting, D3Backend, D3Log, GooglyEyes, GreenThumb, HoloInventory, InsiderTrading, MCLink, MineSafety, MorphAdditions, Pay2Spawn, Pay2SpawnBlocks, PlaceableTools, TapeMouse, TerraFirmaCraft, TerraFirmaStuff, TFCraft-NEIplugin, TFC-Tweaks, Thermal Expansion, TorchTools, WeepingAngels, ...
https://jenkins.ironhide.de/CraftingUtilities, Open Modular Turrets, FloodLights, ...
http://jenkins.usrv.eu:8080/Various
http://jenkins.usrv.eu:8081/nexus/content/repositories/public/Various
JitPack | Publish JVM and Android librariesAny GitHub project
https://maven.blamejared.com/MineTweaker3, CraftTweaker, ...
Index of /AppliedEnergistics 2, BetterStorage, BloodMagic, BluePower, BuildCraft, Charset, CodeChickenCore, CodeChickenLib, CoFHCore, CoFHLib, ColoredLightsCore, ComputerCraft, CraftGuide, EnderCore, EnderIO, EnderStorage, Forestry, Forge Multipart, GalacticraftCore, GregTech, Immibis Multipart, InGameWiki, Inventory Tweaks, Mantle, Mekanism, MineFactory Reloaded, MrTJPCore, NotEnoughItems, NotEnoughKeys, OpenComputers, PowerAdvantage, QmunityLib, ProjectRed, Railcraft, RedLogic, RedstoneFlux API, RotaryCraft, RotateableBlocks, ThaumicEnergistics, TinkersConstruct, TinkersMechworks, TIS-3D, Waila, WR-CBE, ...
Repository - Sonatype Nexus Repository

Repository - Sonatype Nexus Repository

ChickenChunks, CodeChickenCore, CodeChickenLib, EnderStorage, ForgeMultipart, NotEnoughItems, Translocators, WR-CBE
https://maven.falsepattern.com/releasesLightningOverhaul, AnimFix, CrashGuard, DyamicRendering, EndlessIDs, FalsePatternLib, JarLoader, LagGoggles, SSMLegacy, Triangulator, ...
https://maven.ic2.player.to/IndustrialCraft, Forestry, ...
https://maven.k-4u.nl/Boilerplate, InGameWiki, K4Lib, MoarCarts, PneumaticCraft, ServerInfoProvider, Steamcraft2, ...
https://maven.latmod.com/ 
https://maven.mcmoddev.com

Backup: https://maven.tophatcat.dev/

Baubles, LLibrary, Thaumcraft, VeinMiner, ...
https://maven.minecraftforge.net/Biomes O' Plenty, HelpFixer, MalisisCore, MalisisDoors, Mixin, IronChest, ...
Index of / 
Index of /ExtraPlanets, ...
https://ci.tterrag.com/

https://maven.tterrag.com

Chisel, CTMLib, CustomThings, DifficultyRecipes, EnderIO, EnderCore, EnderZoo, Ex-Astris, Ex-Nihilo, RecipeTweakingCore, SuperMassiveTech, ttCore, ...
http://mc.lunatri.us/files/Config Patcher, DynIMC, Extension Fixer, InGame Info XML, InGame Mod Configs, Laser, Level, LunatriusCore, Monster Spawner Highlighter, Profiles, Schematica, SchematicaPlugin, Stackie, Tracer
https://minecraft.curseforge.com/api/maven/Any CurseForge file
http://minetweaker3.powerofbytes.com/download/MineTweaker3
https://mobiusstrip.eu/mavenAdminCommandsToolbox, JABBA, MobiusCore, Netty-Opis, Opis, WAILA, ...
Index of all/AccountSync, AddictedToRed, AI Improvements, Announcement Mod, Armory, Armory Gem Items, AssemblyLine, Atomic Science, Bagable Plants, Basic Industry, boilerplate, BoneTorch, cardboardboxes, ChickenChunks, CodeChickenCore, CodeChickenLib, Colored Chests, Colored Pots, Come Closer, Controlling, Corruption, Ender Storage, Forge Multipart, GasCan, GrapplingHook, HelmBucket, ICBM, ICBM Classic, ICBM Classic Sentry, IguanaTinkerTweaks, IguanaTweaks, Magic Mirror, MC Profiler, MFFS, MilitaryBaseDecour, MinecraftJUnit, moarcarts, NotEnoughItems, NVFix, ProgressWorldCleanup, RedCow, Sentry AA, SkyIslandGenerator, steamcraft2, Translocator, VE Fluid Handling, Voltz Engine, Voltz Engine Essentials, Wooden Bucket, Wooden Rails, Wooden Shears, WR-CBE, ...
https://mvn.falsepattern.com/releasesGasStation, LightingOverhaul, MixinExtras, AnimFix, CartLoad, CrashGuard, DynamicRendering, EndlessIDs, FalsePatternLib, FalseTweaks, JarLoader, LagGogglesLegacy, SSMLegacy, Triangulator, GalactiCraft-Core, GalactiCraft-Planets, MicdoodleCore, Biome Wand, Space Core, CoroUtil, EnhancedBiomes, Tropicraft, ...
https://purpleposeidon.github.io/fz_archive/Factorization
Repository - Nexus Repository ManagerMixin, ...
https://www.cursemaven.comAny CurseForge file
Index of /releases/BuildCraft/Buildcraft, BuildCraft Compat
Maven RepoAppleCore

资源 

并不是所有这里列出的维基/教程/文章/……中都包含我的世界1.7.10版本的信息,但是有些主题并没有发生太大变化,而且通用的方法都是相同的。Minecraft/Forge的内部工作原理与1.7.10版本相比,随着版本的更新而变得越来越不可比较。

你可以在此处查看GTNH中大多数模组的源代码。如果要查找特定内容,请使用Ctrl+F。

你可以在这里找到由MMD-Team制作的大量改装游戏的资源列表。

教程 / 博客

NameVersion(s)Topics (including, but often not limited to)
MMD Modding-ResourcesVariousBlocks, Commands, Entities, Fluids, Items, Rendering, ...
Jabelar's Minecraft Forge Modding TutorialsVariousGetting Started, Concepts, Registries, Entities, Blocks, Items, Armor, Weapons, Tools, Fluids, Tanks, Recipes, Ore Dictionary, Loot, Tile Entities, Networking, Events, Models, Animations, Rendering, Assets, Enchantments, GUIs, Keybindings & Mouse, Achievements / Advancements, Configs, World Generation, Creative Tabs, Particles, Sounds, Commands, IMC / Compat, ...
#knowledgebase (Minecraft Pack Development Discord)AllVarious bits of information on Mod(pack) Development
#resources (Blockbench Discord)AllModeling, Textures, Animation
Mixin-CheatsheetAllCheatsheet for mixins
Mapping and Modding Tutorials on Minecraft ForumAll?Various Topics
Old Forge Wiki Tutorials1.3 - 1.7Gettings Started, Concepts, Blocks, Items, Recipes, Events, Ore Generation, Tile Entities, Commands, Rendering, Configs, Models, Biome Dictionary, Ore Dictionary, Achievements, Sounds, GUIs, Networking, NBT, Containers, Entities, Multiblocks, Fluids, Scala, ...
Wuppy's Tutorials1.3 - 1.8Gettings Started, Recipes, Loot, Assets, Blocks, Items, Tools, Rendering, World Generation, Crops, Entities, Dimensions, ...
Vswe's Summer Courses1.6.2Java Basics, Getting Started, Items, Blocks, Tile Entities, Entities, World Gen, Sounds, Particles, Models, Textures, Animations
The Grey Ghost's Minecraft By Example [Blog|GitHub]1.6 - 1.16Concepts, Blocks, Items, Rendering, User Input, Packets, Entities, GUIs, Containers, Tools, Redstone, ...
EMX Tutorials1.7Getting Started, Items, Blocks, Recipes, Keybindings, Textures, Drops, GUIs, NBT, Models, Containers, ...
coolAlias' Forge Tutorials1.7Armor, Villager Trades, Inventories, Events, Rendering, ...
Vike's ASM Tutorial [Part 1|Part 2]1.7ASM
Bedrock Miner's Tutorials1.7, 1.8Getting started, Concepts, Blocks, Items, Tools, Armor, Food, Recipes, ...
TheXFactor117's Forge Modding Tutorials1.7, 1.8Getting Started, Items, Blocks, Armor, Tools, Ore Generation, NBT, Tile Entities, Assets, Creative Tabs, Recipes, Entities, ...
Darkhax' Tutorials1.8 - 1.12Custom Entity Data, Loot Tables, Events, Structure Generation, Update Checker, IMC, Jar Signing, Access Transformers, Rendering, CraftTweaker Support, Mixin
McJty's Tutorials1.9+Getting Started, Concepts, Configs, Blocks, Items, Tile Entities, Recipes, GUIs, Inventories, Entities, Rendering, Networking, Commands, Dimensions, WAILA Integration, ...
ShadowFacts' Tutorials1.10 - 1.12Getting Started, Concepts, Items, Models, Blocks, Blockstates, Assets, Crops, Creative Tabs, Recipes, Ore Dictionary, Food, Tools, Armor, World Generation, Tile Entities, Inventories, GUIs, Rendering, ...
suppergerrie2's Tutorials1.12 - 1.15Getting Started, Items, Blocks, Recipes, Ore Generation, Food, Creative Tabs, Tools, Slabs, Enchantments, Crops, Block States, Events, ...
Cubic Interpolation - Helpful Things for Making Mods with Forge for Minecraft 1.151.15Events, Registries, Tile Entities, Dimensions, Loot, Data Generators, Configs, NBT, ...
Forge Community WikiLTS, LatestGetting Started, Concepts, Blocks, Items, Tile Entities, Events, Resources, Data, Models, Networking, Potions, Particles, Sound, Events, Loot, Key Bindings, Access Transformers, ...
Java Docs TutorialsNot Minecraft specificJava
Red Blob GamesNot Minecraft specificPath Finding, Graph Theory, Map Generation, Procedural Generation
0 FPSNot Minecraft specificCollision Detection, Geometry, Mathematics, Voxels, Shape Modeling, Ambient Occlusion, ...
Lazy Foo OpenGL tutorialsNot Minecraft specificOpenGL tutorial for beginners, Computer Graphics

Wikis / Docs

NameTopics
CraftTweaker DocsCraftTweaker
Gradle User ManualGradle
Minecraft Forge Event ListVanilla and Forge Events (MC 1.12+)
Fabric Wiki - Introduction to MixinsMixins
FTB Wiki UnofficialInformation on many Mods
Git DocsGit
Data Driven Shaders by LadysnakeMC 1.7+ Post Process Shaders
Mixin Extras WikiMixin Extras
Mixin WikiMixins
Official Forge Docs [Latest|Legacy]Forge
OpenGL WikiOpenGL
MineTweaker 3 WikiMineTweaker 3
ForgeJavaDocsJavadocs for MC, Forge and FML
VisualVM DocsVisualVM
wiki.vgProtocols, Authentification, NBT, etc.
WikipediaMore than you can think of (but not everything)
docs.gl quick referenceA nice viewer for OpenGL reference documentation, choose the OpenGL 2.1 version

拉文(Raven)的渲染资源列表

OpenGL资源:

  • [1] - 一个很好的关于OpenGL的C++教程
  • [2] - 另一个进行逐步教学的OpenGL C++教程
  • [3] - 使用代码示例进行3D游戏开发的lwjgl3教程书籍
  • [4] - 一个简短但有用的现代OpenGL渲染管线教程
  • [5] - 用于OpenGL3D渲染的大量有用的图表和线性代数
  • [6] - LWJGL3程序用大量示例展示了各种渲染技术的实现,这是一个小金矿

参考文档:

  • [7] - 一个查找和查看Khronos官方文档的好地方
  • [8] - 一张包含完整OpenGL应用程序接口(API)的可打印备忘单

更进阶的东西:

  • [9] - 《一周末写出光追》系列,你能学到许多有关计算机图形的知识(请注意,光线追踪并不等同于OpenGL使用的光栅化,但大多数数学原理仍然适用)
  • [10] - 一篇关于一种提高性能的绘制调用批处理方法的博客文章
  • [11] 一个AMD图形处理器(GPU)驱动程序开发人员的出色的博客,这里有很多有价值的信息

在油管(YouTube)上搜索超高阶的有关渲染主题的游戏开发者大会(GDC)、超威半导体公司(AMD)、英伟达(NVIDIA)和AMD演说:

  • [12] - 一系列深入探讨GPU工作原理的博客文章
  • [13] - 适用于AMD GCN3 GPU的完整指令集架构文档,有助于理解GPU实际执行时所使用的机器码

随机的非渲染内容: Table of Contents · Game Programming Patterns - 一本关于游戏代码中常见模式的书(可免费在线获取)

帮助

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值