Git Product home page Git Product logo

atfc's Introduction

Welcome to aTFC

Why?

Because we didn't like how TFC-TNG dropped the food mechanics from the original Mod, and were not happy with the current performance of TFC+ which is still being based on Minecraft 1.7.10. We also wanted to dabble in writing Minecraft mods, after playing the game for a decade.

What does aTFC stand for?

The term aTFC stands for another TFC, because this is yet another rewrite of the most amazing Minecraft mod that was ever made. Our goal is to recreate the original TFC mod, running on the newest Minecraft version (1.16.4), as well as introduce changes we enjoyed by both TFC+ and TFC-TNG.

This mod is different to...

  • TFC+: as it is not based on the original code for Minecraft 1.7.10
  • TFC-TNG as it is not dropping the food mechanics

Contributors

Testers

Install Forge

You will need Minecraft Forge - MC 1.16.4 to play the mod: http://files.minecraftforge.net/maven/net/minecraftforge/forge/index_1.16.4.html

Latest ALPHA Builds

You can get the latest alpha-build by...

  1. selecting the develop branch on the top-left and then click on the green checkmark:
    image showing the above described process
  2. selecting the details link from the aTFC build process:
    image showing the above described process
  3. selecting artifacts at the top of the page, and then the aTFC zip file to download it:
    image showing the above described process
  4. inside the zip you will find the mod-jar

You can also download builds from any of the other branches, but please do not report bugs for anything else than develop.

Play

Start the modded minecraft instance and, when generating a new world, select the atfc-continental worldtype.

Report Bugs

If you happen upon bugs and/or behaviour you think is wrong, please report a bug under the Issue-Tracker. You can also propose new game-features, but please first check if the feature you thought of hasn't already been proposed.

Development

How to build & run

  1. run gradlew build
  2. run gradlew runData to generate json files (models, blockstates, ...)
  3. run gradlew build
  4. run gradlew runClient or use the runClient.launch config in eclipse to start the game

After the first build you only have to run steps 2, 3 and 4. If no generators were touched, step 4. is enough.

OR

  1. run gradlew buildData to generate json files (models, blockstates, ...) and build, etc.
  2. run gradlew runClient or use the runClient.launch config in eclipse to start the game

Some blocks don't load properly?

Delete the src/generated directory or run gradlew deleteGeneratedFiles

Versioning

  • 0.0.x Enyo

Coordinates

x increments towards east and decrements towards west
y increments towards up and decrements towards down
z increments towards south and decrements towards north

Tools

Formats

Links

Texturing:

Modelling:

Mod Samples:

Umlauts

Ä \u00c4
ä \u00e4
Ö \u00d6
ö \u00f6
Ü \u00dc
ü \u00fc
ß (sz) \u00df

atfc's People

Contributors

dotsp0t avatar mcdonnough avatar

Watchers

 avatar James Cloos avatar  avatar

atfc's Issues

Channels

When digging channels between waterblocks, they should be filled with water - equalizing so to say.

  • When digging between 2 sourceblocks, then the channel should fill with sourceblocks.
  • When digging between 1 sourceblock and 1 flowing waterblock, the channel should fill with blocks flowing towards the flowing water.

A channel can only fill if all combined sources are > the channel size which needs to be filled (4 times that for sourceblock filled channels). E.g.:

  • I dig a 1x1x10 channel between a lake and a river, the lake needs to have at least 1x1x10 = 11 sourcetiles in order for the channel to be filles
  • I dig a 2x2x20 channel between two lakes, the two lakes need at least 2x2x20 = 80 x 4 (because sourceblocks) = 320 sourceblocks combined, in order to fill the channel.

Animaux

Issue for gathering lists of all the animals we might want to include in the game. (cursive are animals\changes that aren't on the tfc wikis)

https://tng.terrafirmacraft.com/Animals
https://plus.terrafirmacraft.com/Animal_Husbandry

Q: What about adding hay to the agriculture products? And thus adding a requirement to feed domesticated animals (still allow e.g. milking wild, tame animlas, etc. without having to look after them; but once they are domesticated, they need you to provide fodder every day, maybe in a crib item?)

Domesticatable Animals:

Animal Feed (for domestication) Produces Drops
Alpaca Grain Wool Camelid Meat, Medium Hide, Bone
Chicken Grain Eggs Feather, Chicken Meat, Bone
Cow Grain Milk Beef, Large Hide, Bone
Duck Grain Eggs Feather, Duck Meat, Bone
Goat Grain Milk Chevon, Medium Hide, Bone
Ocelot/Cat Fish, Meat Fights for you Small Hide, Bone
Parrot Grain Alerts for nearby mobs Feather, Bone
Pig Grain Meat Pork, Medium Hide, Bone
Sheep Grain Wool Mutton, Medium Sheepskin, Bone
Wolf/Dog Bone, Meat Will fight for you Wolf Meat, Medium Hide, Bone

Pack/Work/Ride Animals:

  • Camel
  • Donkey
  • Horse
  • Llama
  • Mule

Wild Animals:

  • Deer > Venison, Medium Hide, Bone
  • Pheasant > Feather, Pheasant Meat, bone
  • Rabbit > Rabbit Meat, Small Hide, Bone
  • Squid > Calamari
  • Primate > Primate Meat, Small Hide, Bone
  • Eurasian Coot > Bird Meat, Feather, Bone
  • Goose > Bird Meat, Feather, Bone; Hostile

Predators:

  • Bear > Bear Meat, Large Hide, Bone
  • Lion > Gran Feline Meat, Medium Hide, Bone
  • Panther > Gran Feline Meat, Medium Hide, Bone
  • Polar Bear > Bear Meat, Large Hide, Bone
  • Saber Tooth > Gran Feline Meat, Medum Hide, Bone

SLF4J missing from mod-jar

Trying to run the aTFC-mod-jar built through GitHub Actions in a fresh installation of Forge 35.1.36 yields the error java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory. See below for the crash report.

---- Minecraft Crash Report ----
// Ooh. Shiny.

Time: 17.01.21 17:09
Description: Mod loading error has occurred

java.lang.Exception: Mod Loading has failed
	at net.minecraftforge.fml.CrashReportExtender.dumpModLoadingCrashReport(CrashReportExtender.java:85) [?:?] {re:classloading}
	at net.minecraftforge.fml.client.ClientModLoader.completeModLoading(ClientModLoader.java:188) [?:?] {re:classloading,pl:runtimedistcleaner:A}
	at net.minecraft.client.Minecraft.lambda$null$1(Minecraft.java:508) [?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
	at net.minecraft.client.Minecraft$$Lambda$3606/60055669.run(Unknown Source) [?:?] {}
	at net.minecraft.util.Util.func_215077_a(SourceFile:404) [?:?] {re:classloading}
	at net.minecraft.client.Minecraft.lambda$new$2(Minecraft.java:504) [?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
	at net.minecraft.client.Minecraft$$Lambda$3389/1387174267.accept(Unknown Source) [?:?] {}
	at net.minecraft.client.gui.ResourceLoadProgressGui.func_230430_a_(ResourceLoadProgressGui.java:113) [?:?] {re:classloading,pl:runtimedistcleaner:A}
	at net.minecraft.client.renderer.GameRenderer.func_195458_a(GameRenderer.java:480) [?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
	at net.minecraft.client.Minecraft.func_195542_b(Minecraft.java:976) [?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
	at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:607) [?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
	at net.minecraft.client.main.Main.main(Main.java:184) [?:?] {re:classloading,pl:runtimedistcleaner:A}
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_51] {}
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_51] {}
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_51] {}
	at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_51] {}
	at net.minecraftforge.fml.loading.FMLClientLaunchProvider.lambda$launchService$0(FMLClientLaunchProvider.java:51) [forge-1.16.4-35.1.36.jar:35.1] {}
	at net.minecraftforge.fml.loading.FMLClientLaunchProvider$$Lambda$432/1055104416.call(Unknown Source) [forge-1.16.4-35.1.36.jar:35.1] {}
	at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-8.0.6.jar:?] {}
	at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [modlauncher-8.0.6.jar:?] {}
	at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [modlauncher-8.0.6.jar:?] {}
	at cpw.mods.modlauncher.Launcher.run(Launcher.java:82) [modlauncher-8.0.6.jar:?] {}
	at cpw.mods.modlauncher.Launcher.main(Launcher.java:66) [modlauncher-8.0.6.jar:?] {}


A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Thread: Render thread
Stacktrace:
	at java.lang.ClassLoader.findClass(ClassLoader.java:530) ~[?:1.8.0_51] {}
-- MOD atfc --
Details:
	Caused by 0: java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
		at org.crumbleworks.forge.aTFC.Main.<clinit>(Main.java:28) ~[?:0.0.1-Enyo] {re:classloading}
		at java.lang.Class.forName0(Native Method) ~[?:1.8.0_51] {}
		at java.lang.Class.forName(Class.java:348) ~[?:1.8.0_51] {}
		at net.minecraftforge.fml.javafmlmod.FMLModContainer.<init>(FMLModContainer.java:61) ~[?:35.1] {re:classloading}
		at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_51] {}
		at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_51] {}
		at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_51] {}
		at java.lang.reflect.Constructor.newInstance(Constructor.java:422) ~[?:1.8.0_51] {}
		at net.minecraftforge.fml.javafmlmod.FMLJavaModLanguageProvider$FMLModTarget.loadMod(FMLJavaModLanguageProvider.java:76) ~[?:35.1] {re:classloading}
		at net.minecraftforge.fml.ModLoader.buildModContainerFromTOML(ModLoader.java:296) ~[?:?] {re:classloading}
		at net.minecraftforge.fml.ModLoader.lambda$buildMods$29(ModLoader.java:275) ~[?:?] {re:classloading}
		at net.minecraftforge.fml.ModLoader$$Lambda$3024/1802073627.apply(Unknown Source) ~[?:?] {}
		at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) ~[?:1.8.0_51] {}
		at java.util.HashMap$EntrySpliterator.forEachRemaining(HashMap.java:1683) ~[?:1.8.0_51] {}
		at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:512) ~[?:1.8.0_51] {}
		at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502) ~[?:1.8.0_51] {}
		at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) ~[?:1.8.0_51] {}
		at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_51] {}
		at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) ~[?:1.8.0_51] {}
		at net.minecraftforge.fml.ModLoader.buildMods(ModLoader.java:277) ~[?:?] {re:classloading}
		at net.minecraftforge.fml.ModLoader.lambda$gatherAndInitializeMods$11(ModLoader.java:177) ~[?:?] {re:classloading}
		at net.minecraftforge.fml.ModLoader$$Lambda$3021/1547994163.apply(Unknown Source) ~[?:?] {}
		at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) ~[?:1.8.0_51] {}
		at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) ~[?:1.8.0_51] {}
		at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374) ~[?:1.8.0_51] {}
		at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:512) ~[?:1.8.0_51] {}
		at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502) ~[?:1.8.0_51] {}
		at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) ~[?:1.8.0_51] {}
		at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_51] {}
		at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) ~[?:1.8.0_51] {}
		at net.minecraftforge.fml.ModLoader.gatherAndInitializeMods(ModLoader.java:179) ~[?:?] {re:classloading}
		at net.minecraftforge.fml.client.ClientModLoader.lambda$begin$1(ClientModLoader.java:103) ~[?:?] {re:classloading,pl:runtimedistcleaner:A}
		at net.minecraftforge.fml.client.ClientModLoader$$Lambda$2886/1063423209.run(Unknown Source) ~[?:?] {}
		at net.minecraftforge.fml.client.ClientModLoader.lambda$createRunnableWithCatch$4(ClientModLoader.java:123) ~[?:?] {re:classloading,pl:runtimedistcleaner:A}
		at net.minecraftforge.fml.client.ClientModLoader$$Lambda$2887/904409454.run(Unknown Source) ~[?:?] {}
		at net.minecraftforge.fml.client.ClientModLoader.begin(ClientModLoader.java:103) ~[?:?] {re:classloading,pl:runtimedistcleaner:A}
		at net.minecraft.client.Minecraft.<init>(Minecraft.java:437) [?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
		at net.minecraft.client.main.Main.main(Main.java:149) [?:?] {re:classloading,pl:runtimedistcleaner:A}
		at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_51] {}
		at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_51] {}
		at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_51] {}
		at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_51] {}
		at net.minecraftforge.fml.loading.FMLClientLaunchProvider.lambda$launchService$0(FMLClientLaunchProvider.java:51) [forge-1.16.4-35.1.36.jar:35.1] {}
		at net.minecraftforge.fml.loading.FMLClientLaunchProvider$$Lambda$432/1055104416.call(Unknown Source) [forge-1.16.4-35.1.36.jar:35.1] {}
		at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-8.0.6.jar:?] {}
		at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [modlauncher-8.0.6.jar:?] {}
		at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [modlauncher-8.0.6.jar:?] {}
		at cpw.mods.modlauncher.Launcher.run(Launcher.java:82) [modlauncher-8.0.6.jar:?] {}
		at cpw.mods.modlauncher.Launcher.main(Launcher.java:66) [modlauncher-8.0.6.jar:?] {}

	Mod File: aTFC-0.0.1-Enyo.jar
	Failure message: aTFC has class loading errors
		java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
	Mod Version: 0.0.1-Enyo
	Mod Issue URL: NOT PROVIDED
	Exception message: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
Stacktrace:
	at java.lang.ClassLoader.findClass(ClassLoader.java:530) ~[?:1.8.0_51] {}
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[?:1.8.0_51] {}
	at cpw.mods.modlauncher.TransformingClassLoader.loadClass(TransformingClassLoader.java:106) ~[modlauncher-8.0.6.jar:?] {re:classloading}
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0_51] {}
	at org.crumbleworks.forge.aTFC.Main.<clinit>(Main.java:28) ~[?:0.0.1-Enyo] {re:classloading}
	at java.lang.Class.forName0(Native Method) ~[?:1.8.0_51] {}
	at java.lang.Class.forName(Class.java:348) ~[?:1.8.0_51] {}
	at net.minecraftforge.fml.javafmlmod.FMLModContainer.<init>(FMLModContainer.java:61) ~[?:35.1] {re:classloading}
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_51] {}
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_51] {}
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_51] {}
	at java.lang.reflect.Constructor.newInstance(Constructor.java:422) ~[?:1.8.0_51] {}
	at net.minecraftforge.fml.javafmlmod.FMLJavaModLanguageProvider$FMLModTarget.loadMod(FMLJavaModLanguageProvider.java:76) ~[?:35.1] {re:classloading}
	at net.minecraftforge.fml.ModLoader.buildModContainerFromTOML(ModLoader.java:296) ~[?:?] {re:classloading}
	at net.minecraftforge.fml.ModLoader.lambda$buildMods$29(ModLoader.java:275) ~[?:?] {re:classloading}
	at net.minecraftforge.fml.ModLoader$$Lambda$3024/1802073627.apply(Unknown Source) ~[?:?] {}
	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) ~[?:1.8.0_51] {}
	at java.util.HashMap$EntrySpliterator.forEachRemaining(HashMap.java:1683) ~[?:1.8.0_51] {}
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:512) ~[?:1.8.0_51] {}
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502) ~[?:1.8.0_51] {}
	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) ~[?:1.8.0_51] {}
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_51] {}
	at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) ~[?:1.8.0_51] {}
	at net.minecraftforge.fml.ModLoader.buildMods(ModLoader.java:277) ~[?:?] {re:classloading}
	at net.minecraftforge.fml.ModLoader.lambda$gatherAndInitializeMods$11(ModLoader.java:177) ~[?:?] {re:classloading}
	at net.minecraftforge.fml.ModLoader$$Lambda$3021/1547994163.apply(Unknown Source) ~[?:?] {}
	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) ~[?:1.8.0_51] {}
	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) ~[?:1.8.0_51] {}
	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374) ~[?:1.8.0_51] {}
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:512) ~[?:1.8.0_51] {}
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:502) ~[?:1.8.0_51] {}
	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) ~[?:1.8.0_51] {}
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:1.8.0_51] {}
	at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) ~[?:1.8.0_51] {}
	at net.minecraftforge.fml.ModLoader.gatherAndInitializeMods(ModLoader.java:179) ~[?:?] {re:classloading}
	at net.minecraftforge.fml.client.ClientModLoader.lambda$begin$1(ClientModLoader.java:103) ~[?:?] {re:classloading,pl:runtimedistcleaner:A}
	at net.minecraftforge.fml.client.ClientModLoader$$Lambda$2886/1063423209.run(Unknown Source) ~[?:?] {}
	at net.minecraftforge.fml.client.ClientModLoader.lambda$createRunnableWithCatch$4(ClientModLoader.java:123) ~[?:?] {re:classloading,pl:runtimedistcleaner:A}
	at net.minecraftforge.fml.client.ClientModLoader$$Lambda$2887/904409454.run(Unknown Source) ~[?:?] {}
	at net.minecraftforge.fml.client.ClientModLoader.begin(ClientModLoader.java:103) ~[?:?] {re:classloading,pl:runtimedistcleaner:A}
	at net.minecraft.client.Minecraft.<init>(Minecraft.java:437) [?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
	at net.minecraft.client.main.Main.main(Main.java:149) [?:?] {re:classloading,pl:runtimedistcleaner:A}
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_51] {}
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_51] {}
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_51] {}
	at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_51] {}
	at net.minecraftforge.fml.loading.FMLClientLaunchProvider.lambda$launchService$0(FMLClientLaunchProvider.java:51) [forge-1.16.4-35.1.36.jar:35.1] {}
	at net.minecraftforge.fml.loading.FMLClientLaunchProvider$$Lambda$432/1055104416.call(Unknown Source) [forge-1.16.4-35.1.36.jar:35.1] {}
	at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-8.0.6.jar:?] {}
	at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [modlauncher-8.0.6.jar:?] {}
	at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [modlauncher-8.0.6.jar:?] {}
	at cpw.mods.modlauncher.Launcher.run(Launcher.java:82) [modlauncher-8.0.6.jar:?] {}
	at cpw.mods.modlauncher.Launcher.main(Launcher.java:66) [modlauncher-8.0.6.jar:?] {}


-- System Details --
Details:
	Minecraft Version: 1.16.4
	Minecraft Version ID: 1.16.4
	Operating System: Windows 10 (amd64) version 10.0
	Java Version: 1.8.0_51, Oracle Corporation
	Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
	Memory: 666962072 bytes (636 MB) / 1845493760 bytes (1760 MB) up to 2147483648 bytes (2048 MB)
	CPUs: 8
	JVM Flags: 9 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xss1M -Xmx2G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M
	ModLauncher: 8.0.6+85+master.325de55
	ModLauncher launch target: fmlclient
	ModLauncher naming: srg
	ModLauncher services: 
		/mixin-0.8.2.jar mixin PLUGINSERVICE 
		/eventbus-3.0.5-service.jar eventbus PLUGINSERVICE 
		/forge-1.16.4-35.1.36.jar object_holder_definalize PLUGINSERVICE 
		/forge-1.16.4-35.1.36.jar runtime_enum_extender PLUGINSERVICE 
		/accesstransformers-2.2.0-shadowed.jar accesstransformer PLUGINSERVICE 
		/forge-1.16.4-35.1.36.jar capability_inject_definalize PLUGINSERVICE 
		/forge-1.16.4-35.1.36.jar runtimedistcleaner PLUGINSERVICE 
		/mixin-0.8.2.jar mixin TRANSFORMATIONSERVICE 
		/forge-1.16.4-35.1.36.jar fml TRANSFORMATIONSERVICE 
	FML: 35.1
	Forge: net.minecraftforge:35.1.36
	FML Language Providers: 
		[email protected]
		minecraft@1
	Mod List: 
		forge-1.16.4-35.1.36-client.jar                   |Minecraft                     |minecraft                     |1.16.4              |NONE      |NOSIGNATURE
		forge-1.16.4-35.1.36-universal.jar                |Forge                         |forge                         |35.1.36             |NONE      |22:af:21:d8:19:82:7f:93:94:fe:2b:ac:b7:e4:41:57:68:39:87:b1:a7:5c:c6:44:f9:25:74:21:14:f5:0d:90
		aTFC-0.0.1-Enyo.jar                               |aTFC                          |atfc                          |0.0.1-Enyo          |NONE      |NOSIGNATURE

Foodstuffs (Nutrition, etc.)

Issue for gathering lists of all the foodstuff we might want to include in the game. (cursive are foodstuffs that aren't on the tfc+ wiki)

https://plus.terrafirmacraft.com/Food
https://de.wikipedia.org/wiki/Ern%C3%A4hrungspyramide#/media/Datei:Ern%C3%A4hrungs_Pyramide.jpg

Fruit:

  • Banana
  • Blackberries (Brombeere)
  • Blackcurrant (Schwarze Johannisbeere)
  • Blueberries
  • Bunchberries (Kanadischer Hartriegel)
  • Cherry
  • Cloudberries
  • Coconuts
  • Cranberries
  • Dates
  • Elderberries
  • Gooseberries
  • Grapes (> Rooti Truube, Wiissi Truube)
  • Green Apple
  • Lemon
  • Lime (limette)
  • Mango
  • Melons
  • Olive
  • Orange
  • Papaya
  • Peach
  • Pineapple
  • Plum
  • Quince (Quitte)
  • Raspberries
  • Red Apple
  • Redcurrant (Rote Johannisbeere)
  • Snowberries
  • Strawberries
  • Wintergreen Berries (Niedere Scheinbeere)

Vegetable:

  • Black Eyed Peas
  • Cabbage
  • Carrot
  • Garlic
  • Green Beans (Buschbohne)
  • Green Bellpepper
  • Onion
  • Potato
  • Red Bell Pepper
  • Rutabaga
  • Sea Weed
  • Squash
  • Tomato
  • Yellow Bell Pepper
  • Yardlong Bean (Spargelbohne, laaaaaaang)

Carbohydrates (Grain im Wiki):

  • Barley Bread
  • Barley Grain
  • Buckwheat Grain (Buchweizen)
  • Cornbread (Maisbrot)
  • Maize Ear
  • Oat Bread
  • Oat Grain
  • Rice Bread
  • Rice Grain
  • Rye Bread
  • Rye Grain
  • Sugar (e.g. made from birch-bark or from sugarbeets?)
  • Wheat Bread
  • Wheat Grain

Protein:

  • Cooked Beef
  • Cooked Calamari
  • Cooked Crab
  • Cooked Egg
  • Cooked Fish (maybe we should split these into different kinds of fish? e.g. Salmon, Pangasius, Cod, Tuna, ...)
  • Cooked Horse Meat
  • Cooked Mutton
  • Cooked Pork
  • Cooked Poultry
  • Cooked Venison
  • Fresh Raw Crab
  • Fresh Raw Fish (aka Sashimi)
  • Soybeans
  • Tofu
  • Scallops (Kammmuscheln)
  • Seastar

Dairy:

  • Cheese (again, maybe we want to expand this into Cottage Cheese, Soft Cheese (e.g. brie), Cheese, Hard Cheese; with varying amounts of saltyness, etc....)
  • Milk
  • Cream

Oils & Fats (proposed category)

  • Butter
  • Olive Oil
  • Rapeseed Oil
  • Sesame Oil
  • Walnut
  • Walnut Oil

Invert Spawnprotection feature from TFC?

TFC has a Spawn-Protection feature, where hostile mobs will spawn less and less the longer you stay in a certain area. Basically settling there makes it civilized or sth like that. https://1710-wiki.terrafirmacraft.com/Protection_Meter

How about we invert that system? Instead, the longer you stay in an area (or the more you change about an area or sth like that), the higher the chance of hostile mobs spawning there-ish. Starting to attack established settlements, rather than making the wildness dangerous due to monsters.

Would still keep wildness dangerous to animals, etc. But monsters only spawn around player-bases -> bc we are the real monsters. or sth. sorta like Factorio?

Digging Wells

Add functionality for digging wells

  • dependent on soil/rocklayer(s)
  • each kind of rock could get a function that defines how much water a block stores (or area or whatnot)
  • could create underground acquifiers that 'wetten' the surrounding areas (up to a few dozen blocks?)

possible ways of creating (choose one, obv..):

  • special well-block that is placed atop the well?
  • could just say that digging 1by1 straight-down creates a hole that slowly fills with water (could expand to having to drain mines?)
  • could say that a well needs to be lined with certain block(s) (e.g. brick?)

Integrate Supportbeams into Wattle & Daub building

Related to #3 and #31

How about we integrate support-beams into the whole wattle & daub system from tfc+? That would mean, wattle & daub walls could only be built so high/wide without the support of beams -> Meaning we have don't have the situation that the early-game wattledaub house will persist till lategame, cuz you want to make it bigger, but need tools to make it bigger....

  • supportpillars and -beams need logic to combine with wattleblocks & daubblocks
  • Wattle & daub would either be unplacable, or break the wall if built too tall?
  • What about integrating wood-floors into the system? (could either have a blockstate that combines with planks, or change the thing to use new wooden-floor-tiles that have to be secured with brickwalls and/or supportbeams?)

Add guide on how to find latest build-artifact to Readme

The latest build artifacts of branches and pull requests can be accessed in two different ways:

Either by clicking the little tick next to the commit hash in the header of the Code-tab, clicking Details and then opening the Artifact-dropdown in the upper right corner and selecting the artifact called aTFC.

Alternatively, one can open the Actions-tab, click on the desired build and selecting the artifact called aTFC in the Artifacts-section at the bottom of the page.

Musical Instruments

Add musical instruments like TFC+ (?).

  • use keys unused by minecraft to control playing the instrument, so we have at least 2 octaves

Cacti

Cacti should be usable as a source for food and water when travelling through dry patches of land. Food is gathered in the form of cacti fruit, which have to be cooked in order to be palatable. Similarly, water gathered from cacti has to be boild in order to be drinkable. Omitting these precautions will result in averse effects on the player's health and/or constitution.

[1] https://www.britannica.com/story/can-you-drink-water-from-a-cactus
[2] https://www.theactivetimes.com/how-survive-finding-water-desert

Create Biomes

Biomes blablbalbla

Define colours for greenery, dirt, rocks, etc tinting in biome

Flowing Rivers

Rivers should have a flow-direction, and hold flowing waterblocks instead of sourceblocks.

  • rivers should 'organically' grow from smaller and smaller streams
  • rivers flow into bodies of water that are lower than the river's origin
  • all rivers must flow into lakes/oceans
  • lakes do not need rivers flowing out of them
  • lakes have at-most 1 river flowing out of them, the outflowing river always has the same crosssection as the combined entering rivers

Grass

https://plus.terrafirmacraft.com/Land#Gravity

  • Grass frows over Dirt, Clay, Peat and will thus hide these
  • Grass also grows on sides of blocks, if the blocks are arranged in a stair-like pattern with other grass-growing blocks
  • Cliffs of grass-growing material only have grass on top, not on the side (but they will also break down on update, so should probably not be generated in the first place?)

Depends on: #7 , #8 , #11

Implement Reach

https://youtu.be/aNavN12r-k4?t=326
Depending on the tool, etc. the player-character should have different reach:

  • spear, javellin, scythe, shovel, ... -> long -> 2 blocks?
  • sword, mace, ... -> medium -> 1.5 blocks?
  • fist, ... -> short -> 1 block?

Remove all Minecraft Default Entities

  • remove or empty (using reflection) the default itemgroups so they don't load into the creative menu

if we do also have a custom worldgen we shouldn't ever come into contact with vanilla blocks

Retry failed builds

Periodically, builds will during the Run Forge data-generator-phase with a range of possible error messages (e.g. failed to download assets). Such builds have to be manually restarted and most of the time will run through on the second try, although at least one build took three tries to acutally finish.
The workflow should be (re-)configured in such a way that it will rerun failed builds for a set number of times (e.g. 3). If it still fails after those repeated attempts chances are the problem is not with the aforementioned build-phase but with something else.
The Retry action seems to offer what is needed to accomplish these.

Decouple ItemGroups from Wireables

Currently Itemgroups are closely coupled to some Wireables, due to the fact that they use some of the items defined in Wireables as group-icons.

This means that these Wireables will always be loaded and thus added to the blocks, items, etc of the mod. Hence cannot be controlled by the process in the Wiring class...

Felling Trees

Depends on #21

Cutting:

  • Felling trees should not make them explode, but produce a 'felled tree' that lies on the ground (hence felling a tree becomes constant-time again, like vanilla)
  • the felled tree can be cut down with an axe or saw (the tool has a 'range' to it, e.g. 5 blocks, so it will cut down the surrounding 5 blocks of the felled tree(s))
  • felled trees have a chance to 'rot' every n days (maybe require a certain humidity?); rotten trees have a chance to spawn mushrooms every m days

Planting:

Stumps:

  • Felling trees leaves back a tree-stump (lowest block) where the tree was grown
  • The stump has a chance to grow a new tree of the same kind over time (mitigating the propagation requirement)
  • Removing the stump will need a siginificant effort / tools? (maybe a a draft-animal and rope/chains to pull it out of the ground?
  • Stumps can also be burnt out/away -> cover stump in hay or sth and set that on fire? Takes time and/or multiple repetitions? Stump could drop charcoal or fertilizer or sth?
  • Stumps can be used to propagate saplings of other trees (aufpropfen, https://de.wikipedia.org/wiki/Pfropfen_(Pflanzen) ); this would e.g. allow tropical plants to grow in colder climates, etc ?

Peat

https://plus.terrafirmacraft.com/Land#Peat

When adding peat, make the block have a sponge-y behaviour when walking across in order to make it a bit more noticeable.

  • could change the jump modifier to make jumping harder, because you 'sink-in'

  • could modify the walking behaviour to actually sink into the ground a bit and get slower (maybe only modify running speed?)

  • peat block

  • peat item (looks like a chunk of peat)

  • fresh peat brick

  • dried peat brick

  • 1 block drops 1 item with shovel (otherwise dirt?) digging without shovel drops chunks

  • digging with shovel drops bricks

  • recipe to create brick from 2 chunks

  • recipe to create 2 chunks from brick

  • mechanic to place bricks in world to dry them

  • walking directly on peat or on a soilblock covering a peatblock makes movement slower / player sink in

Mud Stuff

cursive things are proposed additions to the system
https://plus.terrafirmacraft.com/Mud

  • Mud Item (drop dirt & straw onto ground, pour water from bucket)
  • Mud brick Item & Block
  • Brickpan ( https://i.ytimg.com/vi/eMVqJk_SHFY/hqdefault.jpg made from 2 lumber or so? -> could make forming bricks, also concrete ones, depend on the item)
  • Wattle item & Wattle block (fence)
  • Wattle Door item & block (door)
  • Daub block (created when rightclicking mud onto wattle walls
  • Chalk (either mix into mud, oder put on daub afterwards ??

Mud behaviours:

  • shift+rightclick on ground to place a brick for drying

  • brick dries while exposed to sunlight AND dry air (AND temperature minimum?) -> how long should it take?

  • harvest bricks by left-click destroying them (1 click)

  • place brick in water OR water on brick to create MUD item

  • if exposed to rain for long enough, will turn into MUD item again (how long? add moisture property?)

  • Should we call the item Cob instead?: https://en.wikipedia.org/wiki/Cob_(material)

  • Should Wattle & Daub walls need to dry before they can be e.g. painted?

Crafted Books with content

What about filling crafted books with random contents? Some nonsensical generated stories that can be read and enjoeyd?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.