Skip to content

Commit baff145

Browse files
committed
v1
1 parent cd3f5b1 commit baff145

File tree

27 files changed

+410
-95
lines changed

27 files changed

+410
-95
lines changed

Readme.MD

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# Natura Niceties
2+
3+
### Building
4+
Intellij will start out thinking there's errors, because the mod info template needs to be generated (`build/generated/java`)

build.gradle

Lines changed: 96 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -1,117 +1,132 @@
11
buildscript {
22
repositories {
3-
maven { url = 'https://files.minecraftforge.net/maven' }
3+
maven {
4+
name = "MinecraftForge"
5+
url = 'https://files.minecraftforge.net/maven'
6+
}
47
jcenter()
58
mavenCentral()
69
}
710
dependencies {
8-
classpath 'net.minecraftforge.gradle:ForgeGradle:3.+'
11+
classpath 'net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT'
912
}
1013
}
11-
12-
apply plugin: 'net.minecraftforge.gradle'
13-
// Only edit below this line, the above code adds and enables the necessary things for Forge to be setup.
14+
15+
apply plugin: 'net.minecraftforge.gradle.forge'
1416
apply plugin: 'eclipse'
1517
apply plugin: 'maven-publish'
1618

17-
version = '1.0'
18-
group = 'com.yourname.modid' // http://maven.apache.org/guides/mini/guide-naming-conventions.html
19-
archivesBaseName = 'modid'
19+
apply plugin: 'java'
20+
apply plugin: 'idea'
2021

21-
sourceCompatibility = targetCompatibility = compileJava.sourceCompatibility = compileJava.targetCompatibility = '1.8' // Need this here so eclipse task generates correctly.
22+
idea {
23+
module {
24+
// for those who provide sources and javadocs, this is great
25+
downloadJavadoc = downloadSources = true
26+
}
27+
}
2228

23-
minecraft {
24-
// The mappings can be changed at any time, and must be in the following format.
25-
// snapshot_YYYYMMDD Snapshot are built nightly.
26-
// stable_# Stables are built at the discretion of the MCP team.
27-
// Use non-default mappings at your own risk. they may not always work.
28-
// Simply re-run your setup task after changing the mappings to update your workspace.
29-
//mappings channel: 'snapshot', version: '20171003-1.12'
30-
mappings channel: 'snapshot', version: '20171003-1.12'
31-
// makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable.
32-
33-
// accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg')
34-
35-
// Default run configurations.
36-
// These can be tweaked, removed, or duplicated as needed.
37-
runs {
38-
client {
39-
workingDirectory project.file('run')
40-
41-
// Recommended logging data for a userdev environment
42-
property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP'
43-
44-
// Recommended logging level for the console
45-
property 'forge.logging.console.level', 'debug'
46-
}
29+
repositories {
30+
maven {
31+
name = "CurseForge"
32+
url = "https://minecraft.curseforge.com/api/maven/"
33+
}
34+
maven {
35+
name 'DVS1 Maven FS'
36+
url 'http://dvs1.progwml6.com/files/maven'
37+
}
38+
}
4739

48-
server {
40+
def modid = 'natura_niceties'
41+
def creator = 'degeneratehuman'
4942

50-
// Recommended logging data for a userdev environment
51-
property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP'
43+
project.setVersion '1.0'
44+
project.setGroup "com.${creator}.${modid}"
45+
project.setArchivesBaseName "${modid}"
5246

53-
// Recommended logging level for the console
54-
property 'forge.logging.console.level', 'debug'
55-
}
56-
}
47+
def minecraft_ver = "${mc_ver}-${forge_ver}"
48+
49+
def placeholderFileGlobs = [
50+
'**/*.info',
51+
"assets/${modid}/**/*.json"
52+
]
53+
54+
def placeholders = [
55+
'version' : project.getVersion(),
56+
'mc_ver' : mc_ver,
57+
'modid' : modid
58+
]
59+
60+
def jvm_ver = '1.8'
61+
sourceCompatibility = targetCompatibility = jvm_ver
62+
63+
compileJava {
64+
sourceCompatibility = targetCompatibility = jvm_ver
5765
}
5866

5967
dependencies {
60-
// Specify the version of Minecraft to use, If this is any group other then 'net.minecraft' it is assumed
61-
// that the dep is a ForgeGradle 'patcher' dependency. And it's patches will be applied.
62-
// The userdev artifact is a special name and will get all sorts of transformations applied to it.
63-
minecraft 'net.minecraftforge:forge:1.12.2-14.23.5.2854'
68+
compile "com.progwml6.natura:natura:${mc_ver}-${natura_ver}"
69+
compile "slimeknights.mantle:Mantle:${mc_ver_short}-${mantle_ver}"
6470

65-
// You may put jars on which you depend on in ./libs or you may define them like so..
66-
// compile "some.group:artifact:version:classifier"
67-
// compile "some.group:artifact:version"
71+
// utility for when manually testing stuff
72+
// runtime "mezz.jei:jei_${mc_ver}:${jei_ver}"
73+
}
6874

69-
// Real examples
70-
// compile 'com.mod-buildcraft:buildcraft:6.0.8:dev' // adds buildcraft to the dev env
71-
// compile 'com.googlecode.efficient-java-matrix-library:ejml:0.24' // adds ejml to the dev env
75+
task generateJava(type:Copy) {
76+
from 'src/template/java'
77+
into "$buildDir/generated/java"
78+
expand placeholders
79+
}
7280

73-
// The 'provided' configuration is for optional dependencies that exist at compile-time but might not at runtime.
74-
// provided 'com.mod-buildcraft:buildcraft:6.0.8:dev'
81+
// append the 'generated' folder to the list of source dirs
82+
sourceSets.main.java.srcDir "$buildDir/generated/java"
83+
compileJava.dependsOn generateJava
7584

76-
// These dependencies get remapped to your current MCP mappings
77-
// deobf 'com.mod-buildcraft:buildcraft:6.0.8:dev'
85+
minecraft {
86+
setVersion minecraft_ver
87+
setMappings mappings_ver
88+
runDir = "run"
89+
replace '${version}', project.version
90+
useDepAts = true
91+
}
7892

79-
// For more info...
80-
// http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html
81-
// http://www.gradle.org/docs/current/userguide/dependency_management.html
93+
processResources {
94+
from(sourceSets.main.resources.srcDirs) {
95+
for (glob in placeholderFileGlobs) {
96+
include glob
97+
}
98+
// replace version and MCVersion
99+
expand placeholders
100+
}
82101

102+
from(sourceSets.main.resources.srcDirs) {
103+
for (glob in placeholderFileGlobs) {
104+
exclude glob
105+
}
106+
}
83107
}
84108

85-
// Example for how to get properties into the manifest for reading by the runtime..
86109
jar {
87110
manifest {
88111
attributes([
89-
"Specification-Title": "examplemod",
90-
"Specification-Vendor": "examplemodsareus",
91-
"Specification-Version": "1", // We are version 1 of ourselves
92-
"Implementation-Title": project.name,
93-
"Implementation-Version": "${version}",
94-
"Implementation-Vendor" :"examplemodsareus",
95-
"Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ")
112+
"Specification-Title" : modid,
113+
"Specification-Vendor" : creator,
114+
"Specification-Version" : "1",
115+
"Implementation-Title" : project.name,
116+
"Implementation-Version" : project.version,
117+
"Implementation-Vendor" : creator,
118+
"Implementation-Timestamp" : new Date().format("yyyy-MM-dd'T'HH:mm:ssZ") // ISO FORMAT!!! WOOP!!!
96119
])
97120
}
121+
122+
finalizedBy('reobfJar')
98123
}
99124

100-
// Example configuration to allow publishing using the maven-publish task
101-
// This is the preferred method to reobfuscate your jar file
102-
jar.finalizedBy('reobfJar')
103-
// However if you are in a multi-project build, dev time needs unobfed jar files, so you can delay the obfuscation until publishing by doing
104-
//publish.dependsOn('reobfJar')
125+
task sourcesJar(type: Jar) {
126+
from sourceSets.main.allJava
127+
classifier = 'sources'
128+
}
105129

106-
publishing {
107-
publications {
108-
mavenJava(MavenPublication) {
109-
artifact jar
110-
}
111-
}
112-
repositories {
113-
maven {
114-
url "file:///${project.projectDir}/mcmodsrepo"
115-
}
116-
}
130+
artifacts {
131+
archives sourcesJar
117132
}

gradle.properties

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,12 @@
11
# Sets default memory used for gradle commands. Can be overridden by user or command line properties.
22
# This is required to provide enough memory for the Minecraft decompilation process.
3-
org.gradle.jvmargs=-Xmx3G
4-
org.gradle.daemon=false
3+
org.gradle.jvmargs=-Xmx2G
4+
org.gradle.daemon=false
5+
6+
forge_ver=14.23.4.2739
7+
mappings_ver=snapshot_20180101
8+
mc_ver=1.12.2
9+
mc_ver_short=1.12
10+
mantle_ver=1.3.+
11+
natura_ver=4.3.2.69
12+
jei_ver=4.11.+

gradle/wrapper/gradle-wrapper.jar

-295 Bytes
Binary file not shown.
Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1+
#Mon May 25 15:01:50 BST 2020
2+
distributionUrl=https\://services.gradle.org/distributions/gradle-4.9-all.zip
13
distributionBase=GRADLE_USER_HOME
24
distributionPath=wrapper/dists
3-
zipStoreBase=GRADLE_USER_HOME
45
zipStorePath=wrapper/dists
5-
distributionUrl=https\://services.gradle.org/distributions/gradle-4.9-bin.zip
6+
zipStoreBase=GRADLE_USER_HOME
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package com.degeneratehuman.natura_niceties;
2+
3+
import com.degeneratehuman.natura_niceties.init.ModRecipes;
4+
import com.degeneratehuman.natura_niceties.proxy.CommonProxy;
5+
import com.degeneratehuman.natura_niceties.templated.util.Reference; // generated
6+
import net.minecraftforge.fml.common.Mod;
7+
import net.minecraftforge.fml.common.Mod.EventHandler;
8+
import net.minecraftforge.fml.common.Mod.Instance;
9+
import net.minecraftforge.fml.common.SidedProxy;
10+
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
11+
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
12+
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
13+
import org.apache.logging.log4j.LogManager;
14+
import org.apache.logging.log4j.Logger;
15+
16+
@Mod(modid = Reference.MODID, name = Reference.NAME, version = Reference.VERSION, dependencies = "required-after:natura@[1.12.2-4.3.2.69,);")
17+
public class NaturaNiceties {
18+
public static final Logger LOGGER = LogManager.getLogger(Reference.MODID);
19+
20+
@Instance
21+
public static NaturaNiceties instance;
22+
23+
@SidedProxy(clientSide = Reference.CLIENT_PROXY_CLASS, serverSide = Reference.COMMON_PROXY_CLASS)
24+
public static CommonProxy proxy;
25+
26+
@EventHandler
27+
public void preInit(FMLPreInitializationEvent event) { }
28+
29+
@EventHandler
30+
public void init(FMLInitializationEvent event) {
31+
ModRecipes.Smelting.init();
32+
}
33+
34+
@EventHandler
35+
public void postInit(FMLPostInitializationEvent event) { }
36+
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package com.degeneratehuman.natura_niceties.blocks;
2+
3+
import com.degeneratehuman.natura_niceties.NaturaNiceties;
4+
import com.degeneratehuman.natura_niceties.init.ModBlocks;
5+
import com.degeneratehuman.natura_niceties.init.ModItems;
6+
import com.degeneratehuman.natura_niceties.util.CreativeTabs;
7+
import com.degeneratehuman.natura_niceties.util.IHasModel;
8+
import net.minecraft.block.BlockRotatedPillar;
9+
import net.minecraft.block.material.Material;
10+
import net.minecraft.entity.Entity;
11+
import net.minecraft.item.Item;
12+
import net.minecraft.item.ItemBlock;
13+
import net.minecraft.util.EnumFacing;
14+
import net.minecraft.util.math.BlockPos;
15+
import net.minecraft.world.World;
16+
17+
public class BlockBarley extends BlockRotatedPillar implements IHasModel {
18+
private Item itemInstance;
19+
public BlockBarley() {
20+
super(Material.PLANTS);
21+
this.setDefaultState(this.blockState.getBaseState().withProperty(AXIS, EnumFacing.Axis.Y));
22+
this.setUnlocalizedName("barley_block").setRegistryName("barley_block");
23+
this.setCreativeTab(CreativeTabs.tabBlocks);
24+
25+
ModBlocks.BLOCKS.add(this);
26+
this.itemInstance = new ItemBlock(this).setRegistryName(this.getRegistryName());
27+
28+
ModItems.ITEMS.add(this.itemInstance);
29+
}
30+
31+
/**
32+
* Block's chance to react to a living entity falling on it.
33+
*/
34+
public void onFallenUpon(World worldIn, BlockPos pos, Entity entityIn, float fallDistance) {
35+
entityIn.fall(fallDistance, 0.2F);
36+
}
37+
38+
@Override
39+
public void registerModels() {
40+
NaturaNiceties.proxy.registerItemRenderer(this.itemInstance, 0, "inventory");
41+
}
42+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package com.degeneratehuman.natura_niceties.blocks;
2+
3+
import com.degeneratehuman.natura_niceties.NaturaNiceties;
4+
import com.degeneratehuman.natura_niceties.init.ModBlocks;
5+
import com.degeneratehuman.natura_niceties.init.ModItems;
6+
import com.degeneratehuman.natura_niceties.util.CreativeTabs;
7+
import com.degeneratehuman.natura_niceties.util.IHasModel;
8+
import net.minecraft.block.Block;
9+
import net.minecraft.block.material.Material;
10+
import net.minecraft.item.Item;
11+
import net.minecraft.item.ItemBlock;
12+
13+
import java.util.Objects;
14+
15+
public class BlockBase extends Block implements IHasModel {
16+
public BlockBase(String name, Material materialIn) {
17+
super(materialIn);
18+
Objects.requireNonNull(name);
19+
setUnlocalizedName(name);
20+
setRegistryName(name);
21+
setCreativeTab(CreativeTabs.tabBlocks);
22+
23+
ModBlocks.BLOCKS.add(this);
24+
ModItems.ITEMS.add(new ItemBlock(this).setRegistryName(this.getRegistryName()));
25+
}
26+
27+
@Override
28+
public void registerModels() {
29+
NaturaNiceties.proxy.registerItemRenderer(Item.getItemFromBlock(this), 0, "inventory");
30+
}
31+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.degeneratehuman.natura_niceties.init;
2+
3+
import com.degeneratehuman.natura_niceties.blocks.BlockBarley;
4+
import net.minecraft.block.Block;
5+
6+
import java.util.ArrayList;
7+
import java.util.List;
8+
9+
public class ModBlocks {
10+
public static final List<Block> BLOCKS = new ArrayList<>();
11+
public static final Block BARLEY_BLOCK = new BlockBarley();
12+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.degeneratehuman.natura_niceties.init;
2+
3+
import net.minecraft.item.Item;
4+
5+
import java.util.ArrayList;
6+
import java.util.List;
7+
8+
public class ModItems {
9+
public static final List<Item> ITEMS = new ArrayList<>();
10+
}

0 commit comments

Comments
 (0)