mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-08-10 17:55:44 +00:00
Merge branch 'rulang121' of https://github.com/RayzerHan/Nuclear-Tech-Rulang into rulang121
This commit is contained in:
commit
035caaaa37
3
.gitignore
vendored
3
.gitignore
vendored
@ -27,5 +27,8 @@
|
||||
# CurseForge configuration
|
||||
/curseforge.properties
|
||||
|
||||
# Maven configuration
|
||||
/maven.properties
|
||||
|
||||
# Changelog backup
|
||||
/changelog.bak
|
||||
|
||||
20
README.md
20
README.md
@ -24,6 +24,26 @@ For further ports, try:
|
||||
|
||||
Simply navigate to "Releases" on the right side of the page, download links for the compiled JAR as well as the corresponding source code are under the "Assets" category below the changelog. Make sure to review all changelogs when updating!
|
||||
|
||||
## Using in your project
|
||||
|
||||
To include the mod as a dependency in a project of your own, you can adjust your Gradle buildscript according to the following example:
|
||||
|
||||
```groovy
|
||||
repositories {
|
||||
maven {
|
||||
name "NTM Releases"
|
||||
url "https://maven.ntmr.dev/releases"
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
def ntmBuildNumber = "5687" // Change this value according to the release you wish to use
|
||||
|
||||
implementation "com.hbm:HBM-NTM:1.0.27_X${ntmBuildNumber}:dev"
|
||||
compileOnly "com.hbm:HBM-NTM:1.0.27_X${ntmBuildNumber}:src"
|
||||
}
|
||||
```
|
||||
|
||||
## Building from source
|
||||
|
||||
Tired of waiting until the next version comes out? Here is a tutorial on how to compile the very newest version yourself:
|
||||
|
||||
101
build.gradle
101
build.gradle
@ -18,6 +18,7 @@ buildscript {
|
||||
|
||||
apply plugin: 'forge'
|
||||
apply plugin: 'curseforge'
|
||||
apply plugin: 'maven-publish'
|
||||
|
||||
|
||||
if(Files.exists(Paths.get("curseforge.properties"))) {
|
||||
@ -25,6 +26,10 @@ if(Files.exists(Paths.get("curseforge.properties"))) {
|
||||
ext.cfprops = parseConfig(file("curseforge.properties"))
|
||||
}
|
||||
|
||||
if(Files.exists(Paths.get("maven.properties"))) {
|
||||
ext.mavenprops = parseConfig(file("maven.properties"))
|
||||
}
|
||||
|
||||
def version_name = version = mod_version
|
||||
if(!mod_build_number.isEmpty()) {
|
||||
version_name = mod_version + "_X" + mod_build_number
|
||||
@ -45,7 +50,7 @@ minecraft {
|
||||
eclipse.classpath.file.whenMerged { cp ->
|
||||
// Find all codechicken source jars
|
||||
def srcent = cp.entries.findAll { entry -> entry.path.contains("codechicken") && entry.path.endsWith("-src.jar") }
|
||||
|
||||
|
||||
// Remove them from classpath
|
||||
cp.entries.removeAll srcent
|
||||
|
||||
@ -55,10 +60,10 @@ eclipse.classpath.file.whenMerged { cp ->
|
||||
def file = new File(entry.path)
|
||||
srcmap.put(file.getName().replace("-src.jar", "-dev.jar"), file)
|
||||
}
|
||||
|
||||
|
||||
// Create file reference factory
|
||||
def fileref = new FileReferenceFactory()
|
||||
|
||||
|
||||
// Find all codechicken development jars
|
||||
cp.entries.findAll { entry -> entry.path.contains("codechicken") && entry.path.endsWith("-dev.jar") }.forEach { entry ->
|
||||
File srcmapping = new File(entry.path) // Initialize the srcmapping from the dev jar path
|
||||
@ -99,20 +104,20 @@ repositories {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation 'codechicken:CodeChickenCore:1.7.10-1.0.4.29:dev'
|
||||
compileOnly 'codechicken:CodeChickenCore:1.7.10-1.0.4.29:src'
|
||||
|
||||
implementation 'codechicken:CodeChickenLib:1.7.10-1.1.3.140:dev'
|
||||
compileOnly 'codechicken:CodeChickenLib:1.7.10-1.1.3.140:src'
|
||||
|
||||
implementation 'codechicken:NotEnoughItems:1.7.10-1.0.3.74:dev'
|
||||
compileOnly 'codechicken:NotEnoughItems:1.7.10-1.0.3.74:src'
|
||||
implementation('codechicken:CodeChickenCore:1.7.10-1.0.4.29:dev') { transitive = false }
|
||||
compileOnly('codechicken:CodeChickenCore:1.7.10-1.0.4.29:src') { transitive = false }
|
||||
|
||||
compileOnly "inventorytweaks:InventoryTweaks:1.59-dev:deobf"
|
||||
implementation('codechicken:CodeChickenLib:1.7.10-1.1.3.140:dev') { transitive = false }
|
||||
compileOnly('codechicken:CodeChickenLib:1.7.10-1.1.3.140:src') { transitive = false }
|
||||
|
||||
implementation "li.cil.oc:OpenComputers:MC1.7.10-1.5.+:api"
|
||||
implementation('codechicken:NotEnoughItems:1.7.10-1.0.3.74:dev') { transitive = false }
|
||||
compileOnly('codechicken:NotEnoughItems:1.7.10-1.0.3.74:src') { transitive = false }
|
||||
|
||||
compileOnly "com.github.GTNewHorizons:Applied-Energistics-2-Unofficial:rv3-beta.56-GTNH:dev"
|
||||
compileOnly("inventorytweaks:InventoryTweaks:1.59-dev:deobf") { transitive = false }
|
||||
|
||||
compileOnly("li.cil.oc:OpenComputers:MC1.7.10-1.5.+:api") { transitive = false }
|
||||
|
||||
compileOnly("com.github.GTNewHorizons:Applied-Energistics-2-Unofficial:rv3-beta.56-GTNH:dev") { transitive = false }
|
||||
}
|
||||
|
||||
processResources {
|
||||
@ -123,7 +128,7 @@ processResources {
|
||||
// replace stuff in mcmod.info, nothing else
|
||||
from(sourceSets.main.resources.srcDirs) {
|
||||
include 'mcmod.info'
|
||||
|
||||
|
||||
// replace version and mcversion
|
||||
filesMatching('mcmod.info') {
|
||||
// replace version, mcversion and credits
|
||||
@ -133,7 +138,7 @@ processResources {
|
||||
])
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// copy everything else, thats not the mcmod.info
|
||||
from(sourceSets.main.resources.srcDirs) {
|
||||
exclude 'mcmod.info'
|
||||
@ -147,6 +152,27 @@ jar {
|
||||
}
|
||||
}
|
||||
|
||||
task sourceJar(type: Jar) {
|
||||
from sourceSets.main.allJava
|
||||
|
||||
classifier "src"
|
||||
|
||||
manifest {
|
||||
attributes 'FMLAT': 'HBM_at.cfg'
|
||||
}
|
||||
}
|
||||
|
||||
task devJar(type: Jar) {
|
||||
from(sourceSets.main.output) {
|
||||
include "**"
|
||||
}
|
||||
classifier "dev"
|
||||
|
||||
manifest {
|
||||
attributes 'FMLAT': 'HBM_at.cfg'
|
||||
}
|
||||
}
|
||||
|
||||
task version {
|
||||
doFirst {
|
||||
println project.version
|
||||
@ -179,6 +205,49 @@ if(Files.exists(Paths.get("curseforge.properties"))) {
|
||||
}
|
||||
}
|
||||
|
||||
if(Files.exists(Paths.get("maven.properties"))) {
|
||||
publishing {
|
||||
publications {
|
||||
release(MavenPublication) {
|
||||
artifactId archivesBaseName
|
||||
version version_name
|
||||
|
||||
from components.java
|
||||
|
||||
artifact sourceJar {
|
||||
classifier "src"
|
||||
}
|
||||
|
||||
artifact devJar {
|
||||
classifier "dev"
|
||||
}
|
||||
|
||||
pom.withXml {
|
||||
// NTM doesn't really feature any special runtime dependencies anyone would need, so blast those away
|
||||
def node = asNode()
|
||||
def dependencies = node.get("dependencies")
|
||||
node.remove(dependencies)
|
||||
node
|
||||
}
|
||||
}
|
||||
}
|
||||
repositories {
|
||||
maven {
|
||||
name "Nuggies"
|
||||
url "https://maven.ntmr.dev/releases"
|
||||
|
||||
credentials {
|
||||
username mavenprops.username
|
||||
password mavenprops.password
|
||||
}
|
||||
authentication {
|
||||
basic(BasicAuthentication)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Properties file parsing helper
|
||||
static def parseConfig(File config) {
|
||||
config.withReader {
|
||||
|
||||
@ -68,14 +68,19 @@
|
||||
* Added a new alternate recipe for making obsidian in the chemical plant
|
||||
* Removed the water and steam geysers, which were so obscenely rare most people have never seen either one of them, and became functionally useless without the old geothermal generator
|
||||
* Moved the napalm recipe to the chemical plant
|
||||
* Moved the microchip (all variants) and atomic clock recipes to the assembler
|
||||
* The analog and integrated circuit boards now have alternate recipes in the assembler
|
||||
* Removed two of the older motor recipes in the arc welder
|
||||
* The only remaining recipe is the dense red copper one
|
||||
|
||||
## Fixed
|
||||
* Fixed RoR graph showing the wrong name in the GUI
|
||||
* Fixed polling option in RoR controllers reading dead signals
|
||||
* Fixed state change in RoR controllers not allowing repeat commands
|
||||
* Fixed blast furnace NEI handler not cycling through all valid material shapes
|
||||
* Fixed RoR transmitter sending empty signals when unused mappings apply
|
||||
* Fixed hopper IO for battery sockets being entirely broken
|
||||
* Fixed cargo elevators not dropping the correct amount of segments
|
||||
* Fixed broken config check causing smithing recipes in anvils to always be tier 1
|
||||
* Fixed potential client desync when placing or removing lids on a hot RBMK
|
||||
* Fixed custom missile launch pad cores not being obtainable in 528 mode
|
||||
* Fixed industrial turbines never fully spinning down
|
||||
|
||||
@ -33,10 +33,6 @@ public class ArcWelderRecipes extends SerializableRecipe {
|
||||
public void registerDefaults() {
|
||||
|
||||
//Parts
|
||||
recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.motor, 2), 100, 200L,
|
||||
new OreDictStack(IRON.plate(), 2), new ComparableStack(ModItems.coil_copper), new ComparableStack(ModItems.coil_copper_torus)));
|
||||
recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.motor, 2), 100, 400L,
|
||||
new OreDictStack(STEEL.plate(), 1), new ComparableStack(ModItems.coil_copper), new ComparableStack(ModItems.coil_copper_torus)));
|
||||
recipes.add(new ArcWelderRecipe(new ItemStack(ModItems.motor, 2), 100, 400L,
|
||||
new OreDictStack(STEEL.plate(), 2), new OreDictStack(MINGRADE.wireDense(), 2)));
|
||||
recipes.add(new ArcWelderRecipe(DictFrame.fromOne(ModItems.part_generic, EnumPartType.LDE), 200, 5_000L,
|
||||
|
||||
@ -75,6 +75,7 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
|
||||
this.register(new GenericRecipe("ass.plateweaponsteel").setup(60, 100).outputItems(new ItemStack(ModItems.plate_weaponsteel, 1)).inputItems(new OreDictStack(WEAPONSTEEL.ingot())).setPools(GenericRecipes.POOL_PREFIX_ALT + "plates").setGroup(autoPlate, this));
|
||||
this.register(new GenericRecipe("ass.platesaturnite").setup(60, 100).outputItems(new ItemStack(ModItems.plate_saturnite, 1)).inputItems(new OreDictStack(BIGMT.ingot())).setPools(GenericRecipes.POOL_PREFIX_ALT + "plates").setGroup(autoPlate, this));
|
||||
this.register(new GenericRecipe("ass.platedura").setup(60, 100).outputItems(new ItemStack(ModItems.plate_dura_steel, 1)).inputItems(new OreDictStack(DURA.ingot())).setPools(GenericRecipes.POOL_PREFIX_ALT + "plates").setGroup(autoPlate, this));
|
||||
|
||||
this.register(new GenericRecipe("ass.platemixed").setup(50, 100).outputItems(new ItemStack(ModItems.plate_mixed, 4))
|
||||
.inputItems(new OreDictStack(ALLOY.plate(), 2), new ComparableStack(ModItems.neutron_reflector, 1), new OreDictStack(BIGMT.plate(), 1)));
|
||||
this.register(new GenericRecipe("ass.dalekanium").setup(200, 100).outputItems(new ItemStack(ModItems.plate_dalekanium, 1))
|
||||
@ -118,6 +119,26 @@ public class AssemblyMachineRecipes extends GenericRecipes<GenericRecipe> {
|
||||
.inputItems(new OreDictStack(ASBESTOS.ingot(), 1), new ComparableStack(Items.string, 8)));
|
||||
this.register(new GenericRecipe("ass.filtercoal").setup(50, 100).outputItems(new ItemStack(ModItems.filter_coal, 1))
|
||||
.inputItems(new OreDictStack(COAL.dust(), 4), new ComparableStack(Items.string, 2), new ComparableStack(Items.paper, 1)));
|
||||
|
||||
// crafting parts
|
||||
if(!GeneralConfig.enable528) { // precass otherwise
|
||||
this.register(new GenericRecipe("ass.chip").setup(100, 250).outputItems(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP))
|
||||
.inputItems(new ComparableStack(ModItems.plate_polymer), new ComparableStack(ModItems.circuit, 1, EnumCircuitType.SILICON), new OreDictStack(GOLD.wireFine())));
|
||||
this.register(new GenericRecipe("ass.chipBismoid").setup(100, 1_500).outputItems(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP_BISMOID))
|
||||
.inputItems(new ComparableStack(ModItems.plate_polymer, 2), new ComparableStack(ModItems.circuit, 2, EnumCircuitType.SILICON), new OreDictStack(ANY_BISMOID.nugget()), new OreDictStack(GOLD.wireFine(), 2)));
|
||||
this.register(new GenericRecipe("ass.chipQuantum").setup(200, 15_000).outputItems(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP_QUANTUM))
|
||||
.inputItems(new OreDictStack(ANY_HARDPLASTIC.ingot(), 2), new OreDictStack(BSCCO.wireDense()), new ComparableStack(ModItems.pellet_charged), new OreDictStack(GOLD.wireFine(), 8)));
|
||||
this.register(new GenericRecipe("ass.atomicClock").setup(300, 1_000).outputItems(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ATOMIC_CLOCK))
|
||||
.inputItems(new OreDictStack(ANY_PLASTIC.ingot(), 2), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.CHIP), new OreDictStack(SR.dust(), 1)));
|
||||
|
||||
// alternates
|
||||
this.register(new GenericRecipe("ass.analogAlt").setupNamed(200, 250).outputItems(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ANALOG))
|
||||
.inputItems(new ComparableStack(ModItems.circuit, 4, EnumCircuitType.VACUUM_TUBE), new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(W.wireFine(), 8), new OreDictStack(NB.ingot())).setPools(POOL_PREFIX_ALT + ".circuit"));
|
||||
this.register(new GenericRecipe("ass.factorioChip").setupNamed(300, 20_000).outputItems(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC))
|
||||
.inputItems(new OreDictStack(ANY_PLASTIC.ingot(), 4), new OreDictStack(IRON.plate(), 4), new OreDictStack(CU.wireFine(), 8)).setPools(POOL_PREFIX_ALT + ".circuit"));
|
||||
this.register(new GenericRecipe("ass.atomicClockAlt").setupNamed(300, 20_000).outputItems(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ATOMIC_CLOCK, 4))
|
||||
.inputItems(new OreDictStack(ANY_PLASTIC.ingot(), 4), new ComparableStack(ModItems.circuit, 3, EnumCircuitType.CHIP), new OreDictStack(CS137.dust(), 1)).setPools(POOL_PREFIX_ALT + ".circuit"));
|
||||
}
|
||||
|
||||
// machine parts
|
||||
this.register(new GenericRecipe("ass.centrifugetower").setup(100, 100).outputItems(new ItemStack(ModItems.centrifuge_element, 1))
|
||||
|
||||
@ -64,7 +64,7 @@ public class BlastFurnaceRecipesNT extends GenericRecipes<GenericRecipe> {
|
||||
.outputItems(new ItemStack(ModItems.meteorite_sword_alloyed, 1)));
|
||||
|
||||
this.register(new GenericRecipe("blast.starmetal").setDuration(600)
|
||||
.inputItems(new OreDictStack(CO.ingot()), new ComparableStack(ModItems.powder_meteorite, 1))
|
||||
.inputItems(new OreDictStack(BIGMT.ingot()), new ComparableStack(ModItems.powder_meteorite, 1))
|
||||
.outputItems(new ItemStack(ModItems.ingot_starmetal, 1)));
|
||||
|
||||
this.register(new GenericRecipe("blast.paa").setDuration(600)
|
||||
|
||||
@ -556,7 +556,7 @@ public class ModItems {
|
||||
public static Item coil_copper;
|
||||
public static Item coil_copper_torus;
|
||||
public static Item coil_tungsten;
|
||||
@Deprecated public static Item tank_steel;
|
||||
public static Item tank_steel;
|
||||
public static Item motor;
|
||||
public static Item motor_desh;
|
||||
public static Item motor_bismuth;
|
||||
|
||||
@ -121,16 +121,6 @@ public class CraftingManager {
|
||||
addRecipeAuto(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.PCB), new Object[] { "I", "P", 'I', ModItems.plate_polymer, 'P', CU.plate() });
|
||||
addRecipeAuto(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.PCB, 4), new Object[] { "I", "P", 'I', ModItems.plate_polymer, 'P', GOLD.plate() });
|
||||
addRecipeAuto(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CONTROLLER_CHASSIS), new Object[] { "PPP", "CBB", "PPP", 'P', ANY_PLASTIC.ingot(), 'C', ModItems.crt_display, 'B', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.PCB) });
|
||||
|
||||
if(!GeneralConfig.enable528) {
|
||||
addRecipeAuto(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP), new Object[] { "I", "S", "W", 'I', ModItems.plate_polymer, 'S', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.SILICON), 'W', CU.wireFine() });
|
||||
addRecipeAuto(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP), new Object[] { "I", "S", "W", 'I', ModItems.plate_polymer, 'S', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.SILICON), 'W', GOLD.wireFine() });
|
||||
addRecipeAuto(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP_BISMOID), new Object[] { "III", "SNS", "WWW", 'I', ModItems.plate_polymer, 'S', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.SILICON), 'N', ANY_BISMOID.nugget(), 'W', CU.wireFine() });
|
||||
addRecipeAuto(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP_BISMOID), new Object[] { "III", "SNS", "WWW", 'I', ModItems.plate_polymer, 'S', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.SILICON), 'N', ANY_BISMOID.nugget(), 'W', GOLD.wireFine() });
|
||||
addRecipeAuto(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP_QUANTUM), new Object[] { "HHH", "SIS", "WWW", 'H', ANY_HARDPLASTIC.ingot(), 'S', BSCCO.wireDense(), 'I', ModItems.pellet_charged, 'W', CU.wireFine() });
|
||||
addRecipeAuto(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP_QUANTUM), new Object[] { "HHH", "SIS", "WWW", 'H', ANY_HARDPLASTIC.ingot(), 'S', BSCCO.wireDense(), 'I', ModItems.pellet_charged, 'W', GOLD.wireFine() });
|
||||
addRecipeAuto(DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ATOMIC_CLOCK), new Object[] { "ICI", "CSC", "ICI", 'I', ModItems.plate_polymer, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.CHIP), 'S', SR.dust() });
|
||||
}
|
||||
|
||||
addRecipeAuto(new ItemStack(ModItems.crt_display, 4), new Object[] { " A ", "SGS", " T ", 'A', AL.dust(), 'S', STEEL.plate(), 'G', KEY_ANYPANE, 'T', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.VACUUM_TUBE) });
|
||||
|
||||
@ -169,22 +159,18 @@ public class CraftingManager {
|
||||
addShapelessAuto(new ItemStack(ModItems.biomass, 4), new Object[] { Items.sugar, ModItems.powder_sawdust, ModItems.powder_sawdust, Items.wheat, Items.wheat, Items.wheat, Items.wheat, Items.wheat, Items.wheat });
|
||||
addShapelessAuto(new ItemStack(ModItems.biomass, 4), new Object[] { DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.WEED), DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.WEED), DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.WEED), DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.WEED), DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.WEED), DictFrame.fromOne(ModBlocks.plant_flower, EnumFlowerType.WEED) });
|
||||
|
||||
addRecipeAuto(new ItemStack(ModItems.coil_copper, 1), new Object[] { "WWW", "WIW", "WWW", 'W', MINGRADE.wireFine(), 'I', IRON.ingot() });
|
||||
addRecipeAuto(new ItemStack(ModItems.coil_copper, 1), new Object[] { "WWW", "WIW", "WWW", 'W', MINGRADE.wireFine(), 'I', STEEL.ingot() });
|
||||
addRecipeAuto(new ItemStack(ModItems.coil_advanced_alloy, 1), new Object[] { "WWW", "WIW", "WWW", 'W', ALLOY.wireFine(), 'I', IRON.ingot() });
|
||||
addRecipeAuto(new ItemStack(ModItems.coil_advanced_alloy, 1), new Object[] { "WWW", "WIW", "WWW", 'W', ALLOY.wireFine(), 'I', STEEL.ingot() });
|
||||
addRecipeAuto(new ItemStack(ModItems.coil_gold, 1), new Object[] { "WWW", "WIW", "WWW", 'W', GOLD.wireFine(), 'I', IRON.ingot() });
|
||||
addRecipeAuto(new ItemStack(ModItems.coil_gold, 1), new Object[] { "WWW", "WIW", "WWW", 'W', GOLD.wireFine(), 'I', STEEL.ingot() });
|
||||
addRecipeAuto(new ItemStack(ModItems.coil_magnetized_tungsten, 1), new Object[] { "WWW", "WIW", "WWW", 'W', MAGTUNG.wireFine(), 'I', IRON.ingot() });
|
||||
addRecipeAuto(new ItemStack(ModItems.coil_magnetized_tungsten, 1), new Object[] { "WWW", "WIW", "WWW", 'W', MAGTUNG.wireFine(), 'I', STEEL.ingot() });
|
||||
addRecipeAuto(new ItemStack(ModItems.coil_tungsten, 1), new Object[] { "WWW", "WIW", "WWW", 'W', W.wireFine(), 'I', IRON.ingot() });
|
||||
addRecipeAuto(new ItemStack(ModItems.coil_tungsten, 1), new Object[] { "WWW", "WIW", "WWW", 'W', W.wireFine(), 'I', STEEL.ingot() });
|
||||
addRecipeAuto(new ItemStack(ModItems.coil_copper_torus, 2), new Object[] { " C ", "CPC", " C ", 'P', IRON.plate(), 'C', ModItems.coil_copper });
|
||||
addRecipeAuto(new ItemStack(ModItems.coil_copper_torus, 2), new Object[] { " C ", "CPC", " C ", 'P', STEEL.plate(), 'C', ModItems.coil_copper });
|
||||
addRecipeAuto(new ItemStack(ModItems.coil_advanced_torus, 2), new Object[] { " C ", "CPC", " C ", 'P', IRON.plate(), 'C', ModItems.coil_advanced_alloy });
|
||||
addRecipeAuto(new ItemStack(ModItems.coil_advanced_torus, 2), new Object[] { " C ", "CPC", " C ", 'P', STEEL.plate(), 'C', ModItems.coil_advanced_alloy });
|
||||
addRecipeAuto(new ItemStack(ModItems.coil_gold_torus, 2), new Object[] { " C ", "CPC", " C ", 'P', IRON.plate(), 'C', ModItems.coil_gold });
|
||||
addRecipeAuto(new ItemStack(ModItems.coil_gold_torus, 2), new Object[] { " C ", "CPC", " C ", 'P', STEEL.plate(), 'C', ModItems.coil_gold });
|
||||
for(String ingot : new String[] {IRON.ingot(), STEEL.ingot()}) {
|
||||
addRecipeAuto(new ItemStack(ModItems.coil_copper, 1), new Object[] { "WWW", "WIW", "WWW", 'W', MINGRADE.wireFine(), 'I', ingot });
|
||||
addRecipeAuto(new ItemStack(ModItems.coil_advanced_alloy, 1), new Object[] { "WWW", "WIW", "WWW", 'W', ALLOY.wireFine(), 'I', ingot });
|
||||
addRecipeAuto(new ItemStack(ModItems.coil_gold, 1), new Object[] { "WWW", "WIW", "WWW", 'W', GOLD.wireFine(), 'I', ingot });
|
||||
addRecipeAuto(new ItemStack(ModItems.coil_magnetized_tungsten, 1), new Object[] { "WWW", "WIW", "WWW", 'W', MAGTUNG.wireFine(), 'I', ingot });
|
||||
addRecipeAuto(new ItemStack(ModItems.coil_tungsten, 1), new Object[] { "WWW", "WIW", "WWW", 'W', W.wireFine(), 'I', ingot });
|
||||
}
|
||||
for(String plate : new String[] {IRON.plate(), STEEL.plate()}) {
|
||||
addRecipeAuto(new ItemStack(ModItems.coil_copper_torus, 2), new Object[] { " C ", "CPC", " C ", 'P', plate, 'C', ModItems.coil_copper });
|
||||
addRecipeAuto(new ItemStack(ModItems.coil_advanced_torus, 2), new Object[] { " C ", "CPC", " C ", 'P', plate, 'C', ModItems.coil_advanced_alloy });
|
||||
addRecipeAuto(new ItemStack(ModItems.coil_gold_torus, 2), new Object[] { " C ", "CPC", " C ", 'P', plate, 'C', ModItems.coil_gold });
|
||||
}
|
||||
addRecipeAuto(new ItemStack(ModItems.tank_steel, 2), new Object[] { "STS", "S S", "STS", 'S', STEEL.plate(), 'T', TI.plate() });
|
||||
addRecipeAuto(new ItemStack(ModItems.motor, 2), new Object[] { " R ", "ICI", "ITI", 'R', MINGRADE.wireFine(), 'T', ModItems.coil_copper_torus, 'I', IRON.plate(), 'C', ModItems.coil_copper });
|
||||
addRecipeAuto(new ItemStack(ModItems.motor, 2), new Object[] { " R ", "ICI", " T ", 'R', MINGRADE.wireFine(), 'T', ModItems.coil_copper_torus, 'I', STEEL.plate(), 'C', ModItems.coil_copper });
|
||||
@ -997,10 +983,11 @@ public class CraftingManager {
|
||||
for(NTMMaterial mat : Mats.orderedList) {
|
||||
if(mat.autogen.contains(MaterialShapes.BOLT)) for(String name : mat.names) addRecipeAuto(new ItemStack(ModItems.bolt, 16, mat.id), new Object[] { "#", "#", '#', MaterialShapes.INGOT.name() + name });
|
||||
}
|
||||
|
||||
addRecipeAuto(new ItemStack(ModBlocks.struct_launcher_core, 1), new Object[] { "SCS", "SIS", "BEB", 'S', ModBlocks.steel_scaffold, 'I', Blocks.iron_bars, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'B', ModBlocks.struct_launcher, 'E', new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LEAD.ordinal()) });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.struct_launcher_core_large, 1), new Object[] { "SIS", "ICI", "BEB", 'S', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'I', Blocks.iron_bars, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'B', ModBlocks.struct_launcher, 'E', new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LEAD.ordinal()) });
|
||||
|
||||
if(!GeneralConfig.enable528) {
|
||||
addRecipeAuto(new ItemStack(ModBlocks.struct_launcher_core, 1), new Object[] { "SCS", "SIS", "BEB", 'S', ModBlocks.steel_scaffold, 'I', Blocks.iron_bars, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'B', ModBlocks.struct_launcher, 'E', new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LEAD.ordinal()) });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.struct_launcher_core_large, 1), new Object[] { "SIS", "ICI", "BEB", 'S', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'I', Blocks.iron_bars, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ADVANCED), 'B', ModBlocks.struct_launcher, 'E', new ItemStack(ModItems.battery_pack, 1, EnumBatteryPack.BATTERY_LEAD.ordinal()) });
|
||||
addRecipeAuto(new ItemStack(ModItems.reactor_sensor, 1), new Object[] { "WPW", "CMC", "PPP", 'W', W.wireFine(), 'P', PB.plate(), 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.BASIC), 'M', ModItems.magnetron });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.rbmk_console, 1), new Object[] { "BBB", "DGD", "DCD", 'B', B.ingot(), 'D', ModBlocks.deco_rbmk, 'G', KEY_ANYPANE, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ANALOG) });
|
||||
addRecipeAuto(new ItemStack(ModBlocks.rbmk_crane_console, 1), new Object[] { "BCD", "DDD", 'B', B.ingot(), 'D', ModBlocks.deco_rbmk, 'C', DictFrame.fromOne(ModItems.circuit, EnumCircuitType.ANALOG) });
|
||||
|
||||
@ -6,6 +6,7 @@ import com.hbm.blocks.BlockDummyable;
|
||||
import com.hbm.blocks.ModBlocks;
|
||||
import com.hbm.main.ResourceManager;
|
||||
import com.hbm.render.item.ItemRenderBase;
|
||||
import com.hbm.tileentity.machine.TileEntityMachineBlastFurnace;
|
||||
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||
import net.minecraft.item.Item;
|
||||
@ -28,6 +29,14 @@ public class RenderBlastFurnace extends TileEntitySpecialRenderer implements IIt
|
||||
case 5: GL11.glRotatef(0, 0F, 1F, 0F); break;
|
||||
}
|
||||
|
||||
TileEntityMachineBlastFurnace furnace = (TileEntityMachineBlastFurnace) tile;
|
||||
|
||||
if(furnace.tilted) {
|
||||
GL11.glTranslated(0, -0.25, 0);
|
||||
GL11.glRotated(10, 0, 0, 1);
|
||||
GL11.glRotated(5, 0, 1, 0);
|
||||
}
|
||||
|
||||
bindTexture(ResourceManager.blast_furnace_tex);
|
||||
ResourceManager.blast_furnace.renderAll();
|
||||
|
||||
|
||||
@ -20,6 +20,7 @@ import com.hbm.module.ModuleBurnTime;
|
||||
import com.hbm.tileentity.IFluidCopiable;
|
||||
import com.hbm.tileentity.IGUIProvider;
|
||||
import com.hbm.tileentity.TileEntityMachineBase;
|
||||
import com.hbm.util.fauxpointtwelve.BlockPos;
|
||||
import com.hbm.util.fauxpointtwelve.DirPos;
|
||||
|
||||
import api.hbm.fluidmk2.IFluidStandardTransceiverMK2;
|
||||
@ -67,6 +68,7 @@ public class TileEntityMachineBlastFurnace extends TileEntityMachineBase impleme
|
||||
public void updateEntity() {
|
||||
|
||||
if(!worldObj.isRemote) {
|
||||
this.checkTilt(TiltType.CONFIG, false);
|
||||
|
||||
for(DirPos pos : this.getConPos()) {
|
||||
this.trySubscribe(tanks[0].getTankType(), worldObj, pos);
|
||||
@ -85,7 +87,7 @@ public class TileEntityMachineBlastFurnace extends TileEntityMachineBase impleme
|
||||
this.speed = 0F;
|
||||
GenericRecipe recipe = BlastFurnaceRecipesNT.INSTANCE.getRecipe(slots[1], slots[2]);
|
||||
|
||||
if(recipe != null && this.fuel >= FUEL_RATE && this.canOutput(recipe)) {
|
||||
if(!this.tilted && recipe != null && this.fuel >= FUEL_RATE && this.canOutput(recipe)) {
|
||||
|
||||
this.speed = MathHelper.clamp_float(0.5F + this.tanks[0].getFill() * 4F / this.tanks[0].getMaxFill(), 0.5F, 3F);
|
||||
|
||||
@ -312,4 +314,7 @@ public class TileEntityMachineBlastFurnace extends TileEntityMachineBase impleme
|
||||
@Override public long getProviderSpeed(FluidType type, int pressure) { return Math.max(tanks[1].getFill() * 50 / tanks[1].getMaxFill(), 1); }
|
||||
|
||||
@Override public FluidTank getTankToPaste() { return null; }
|
||||
|
||||
@Override public int getFloorCount() { return 2 * 2; }
|
||||
@Override public BlockPos getFloorPosFromIndex(int index) { return this.standardFloor3x3(index); }
|
||||
}
|
||||
|
||||
@ -90,7 +90,7 @@ public class TileEntityMachineIndustrialTurbine extends TileEntityTurbineBase im
|
||||
@Override
|
||||
public void onServerTick() {
|
||||
this.spin = (double) flywheel_energy / FLYWHEEL_MAX_ENERGY; //because dense steams have way lower energy output, turbines running them take a lot longer to spool up
|
||||
this.lastPowerTarget = Math.min((long) (Math.max(this.spin, 0.1) * maxPower), this.flywheel_energy);
|
||||
this.lastPowerTarget = Math.min((long) (Math.max(this.spin, 0.05) * maxPower), this.flywheel_energy);
|
||||
this.flywheel_energy -= this.lastPowerTarget;
|
||||
this.powerBuffer = (long) (this.lastPowerTarget);
|
||||
}
|
||||
|
||||
@ -129,6 +129,9 @@ armorMod.type.leggings=Beinschienen
|
||||
armorMod.type.servo=Servos
|
||||
armorMod.type.special=Spezial
|
||||
|
||||
ass.analogAlt=Simple Analogschaltkreise
|
||||
ass.atomicClockAlt=Caesium-Atomuhr
|
||||
ass.factorioChip=Minimalisten-Schaltkreise
|
||||
ass.nitra=Nitra zu Munition
|
||||
|
||||
autoswitch=Teil der Rezeptgruppe "%s"$Rezept ändert sich basierend auf das erste Item
|
||||
|
||||
@ -184,6 +184,9 @@ armorMod.type.leggings=Leggings
|
||||
armorMod.type.servo=Servos
|
||||
armorMod.type.special=Special
|
||||
|
||||
ass.analogAlt=Simple Analog Circuit
|
||||
ass.atomicClockAlt=Caesium Atomic Clock
|
||||
ass.factorioChip=Minimalist Circuits
|
||||
ass.nitra=Nitra to Ammunition
|
||||
|
||||
autoswitch=Part of auto switch group "%s"$Recipe changes based on first ingredient
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user