diff --git a/src/main/java/mod/icarus/crimsonrevelations/block/CRBlockMaterial.java b/src/main/java/mod/icarus/crimsonrevelations/block/CRBlockMaterial.java new file mode 100644 index 0000000..ab7e41f --- /dev/null +++ b/src/main/java/mod/icarus/crimsonrevelations/block/CRBlockMaterial.java @@ -0,0 +1,30 @@ +package mod.icarus.crimsonrevelations.block; + +import mod.icarus.crimsonrevelations.init.CRBlocks; +import net.minecraft.block.Block; +import net.minecraft.block.SoundType; +import net.minecraft.block.material.MapColor; +import net.minecraft.block.material.Material; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.math.BlockPos; +import net.minecraft.world.World; + +public class CRBlockMaterial extends Block { + public CRBlockMaterial(Material material, MapColor mapColor, float hardness, float resistance, SoundType soundType) { + super(material, mapColor); + this.setHardness(hardness); + this.setResistance(resistance); + this.setSoundType(soundType); + } + + public CRBlockMaterial(Material material, MapColor mapColor, float hardness, SoundType soundType) { + super(material, mapColor); + this.setHardness(hardness); + this.setSoundType(soundType); + } + + @Override + public boolean isFireSource(World world, BlockPos pos, EnumFacing side) { + return this == CRBlocks.magicTallowBlock; + } +} diff --git a/src/main/java/mod/icarus/crimsonrevelations/init/CRBlocks.java b/src/main/java/mod/icarus/crimsonrevelations/init/CRBlocks.java new file mode 100644 index 0000000..5580f2e --- /dev/null +++ b/src/main/java/mod/icarus/crimsonrevelations/init/CRBlocks.java @@ -0,0 +1,31 @@ +package mod.icarus.crimsonrevelations.init; + +import javax.annotation.Nonnull; + +import mod.icarus.crimsonrevelations.NewCrimsonRevelations; +import mod.icarus.crimsonrevelations.block.CRBlockMaterial; +import net.minecraft.block.Block; +import net.minecraft.block.SoundType; +import net.minecraft.block.material.MapColor; +import net.minecraft.block.material.Material; +import net.minecraftforge.event.RegistryEvent; +import net.minecraftforge.fml.common.Mod.EventBusSubscriber; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import net.minecraftforge.fml.common.registry.GameRegistry; +import net.minecraftforge.registries.IForgeRegistry; + +@EventBusSubscriber(modid = NewCrimsonRevelations.MODID) +@GameRegistry.ObjectHolder(NewCrimsonRevelations.MODID) +public class CRBlocks { + @GameRegistry.ObjectHolder("magic_tallow_block") + public static Block magicTallowBlock; + + @SubscribeEvent + public static void registerBlocks(@Nonnull final RegistryEvent.Register event) { + final IForgeRegistry registry = event.getRegistry(); + + registry.registerAll( + CRRegistry.setup(new CRBlockMaterial(Material.ROCK, MapColor.SAND, 4.0F, 15.0F, SoundType.STONE), "magic_tallow_block") + ); + } +} diff --git a/src/main/java/mod/icarus/crimsonrevelations/init/CRItems.java b/src/main/java/mod/icarus/crimsonrevelations/init/CRItems.java index 69f936e..df90755 100644 --- a/src/main/java/mod/icarus/crimsonrevelations/init/CRItems.java +++ b/src/main/java/mod/icarus/crimsonrevelations/init/CRItems.java @@ -1,13 +1,11 @@ package mod.icarus.crimsonrevelations.init; -import com.google.common.base.Preconditions; import mod.icarus.crimsonrevelations.NewCrimsonRevelations; import mod.icarus.crimsonrevelations.item.CRItem; import mod.icarus.crimsonrevelations.item.CRItemArrow; import mod.icarus.crimsonrevelations.item.CRItemSword; import mod.icarus.crimsonrevelations.item.armor.ItemCultistArcherArmor; import mod.icarus.crimsonrevelations.item.weapons.ItemBoneBow; -import net.minecraft.block.Block; import net.minecraft.block.BlockDoor; import net.minecraft.block.BlockSlab; import net.minecraft.client.renderer.block.model.ModelResourceLocation; @@ -19,7 +17,6 @@ import net.minecraft.item.ItemArmor.ArmorMaterial; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; -import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.event.ModelRegistryEvent; import net.minecraftforge.client.model.ModelLoader; import net.minecraftforge.common.util.EnumHelper; @@ -31,7 +28,6 @@ import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import net.minecraftforge.registries.IForgeRegistry; -import net.minecraftforge.registries.IForgeRegistryEntry; import javax.annotation.Nonnull; @@ -73,63 +69,44 @@ public class CRItems { public static ToolMaterial TOOL_CULTIST = EnumHelper.addToolMaterial("CULTIST", 3, 321, 7.5F, 2.5F, 20).setRepairItem(new ItemStack(crimsonPlate)); @SubscribeEvent - public static void registerItems(RegistryEvent.Register event) { - event.getRegistry().registerAll( - setup(new CRItem(EnumRarity.UNCOMMON), "crimson_fabric"), - setup(new CRItem(EnumRarity.UNCOMMON), "embellished_crimson_fabric"), - setup(new CRItem(EnumRarity.UNCOMMON), "crimson_plate"), - setup(new CRItemSword(TOOL_CULTIST, EnumRarity.UNCOMMON), "crimson_sword"), + public static void registerItems(@Nonnull final RegistryEvent.Register event) { + final IForgeRegistry registry = event.getRegistry(); + + registry.registerAll( + CRRegistry.setup(new CRItem(EnumRarity.UNCOMMON), "crimson_fabric"), + CRRegistry.setup(new CRItem(EnumRarity.UNCOMMON), "embellished_crimson_fabric"), + CRRegistry.setup(new CRItem(EnumRarity.UNCOMMON), "crimson_plate"), + CRRegistry.setup(new CRItemSword(TOOL_CULTIST, EnumRarity.UNCOMMON), "crimson_sword"), - setup(new ItemCultistArcherArmor(EntityEquipmentSlot.HEAD), "crimson_archer_helmet"), - setup(new ItemCultistArcherArmor(EntityEquipmentSlot.CHEST), "crimson_archer_chestplate"), - setup(new ItemCultistArcherArmor(EntityEquipmentSlot.LEGS), "crimson_archer_leggings"), + CRRegistry.setup(new ItemCultistArcherArmor(EntityEquipmentSlot.HEAD), "crimson_archer_helmet"), + CRRegistry.setup(new ItemCultistArcherArmor(EntityEquipmentSlot.CHEST), "crimson_archer_chestplate"), + CRRegistry.setup(new ItemCultistArcherArmor(EntityEquipmentSlot.LEGS), "crimson_archer_leggings"), - setup(new ItemBoneBow(), "bone_bow"), - setup(new CRItemArrow(EnumRarity.UNCOMMON), "aer_arrow"), - setup(new CRItemArrow(EnumRarity.UNCOMMON), "aqua_arrow"), - setup(new CRItemArrow(EnumRarity.UNCOMMON), "ignis_arrow"), - setup(new CRItemArrow(EnumRarity.UNCOMMON), "ordo_arrow"), - setup(new CRItemArrow(EnumRarity.UNCOMMON), "perditio_arrow"), - setup(new CRItemArrow(EnumRarity.UNCOMMON), "terra_arrow") + CRRegistry.setup(new ItemBoneBow(), "bone_bow"), + CRRegistry.setup(new CRItemArrow(EnumRarity.UNCOMMON), "aer_arrow"), + CRRegistry.setup(new CRItemArrow(EnumRarity.UNCOMMON), "aqua_arrow"), + CRRegistry.setup(new CRItemArrow(EnumRarity.UNCOMMON), "ignis_arrow"), + CRRegistry.setup(new CRItemArrow(EnumRarity.UNCOMMON), "ordo_arrow"), + CRRegistry.setup(new CRItemArrow(EnumRarity.UNCOMMON), "perditio_arrow"), + CRRegistry.setup(new CRItemArrow(EnumRarity.UNCOMMON), "terra_arrow") ); - } - @SubscribeEvent - public static void registerItemBlocks(RegistryEvent.Register event) { - final IForgeRegistry registry = event.getRegistry(); + // Item Blocks ForgeRegistries.BLOCKS.getValues().stream() .filter(block -> block.getRegistryName().getNamespace().equals(NewCrimsonRevelations.MODID)) .filter(block -> !(block instanceof BlockDoor)) // Doors should not have an item block registered .filter(block -> !(block instanceof BlockSlab)) // Slabs should not have an item block registered - .forEach(block -> registry.register(setup(new ItemBlock(block), block.getRegistryName()))); + .forEach(block -> registry.register(CRRegistry.setup(new ItemBlock(block), block.getRegistryName()))); } @SideOnly(Side.CLIENT) @SubscribeEvent - public static void registerModels(ModelRegistryEvent event) { - for (Item item : ForgeRegistries.ITEMS.getValues()) { + public static void onRegisterModelsEvent(@Nonnull final ModelRegistryEvent event) { + // Item Models + for (final Item item : ForgeRegistries.ITEMS.getValues()) { if (item.getRegistryName().getNamespace().equals(NewCrimsonRevelations.MODID)) { - ModelLoader.setCustomModelResourceLocation(item, 0, new ModelResourceLocation(item.getRegistryName(), "normal")); + ModelLoader.setCustomModelResourceLocation(item, 0, new ModelResourceLocation(item.getRegistryName(), "inventory")); } } } - - @Nonnull - public static > T setup(T entry, String name) { - return setup(entry, new ResourceLocation(NewCrimsonRevelations.MODID, name)); - } - - @Nonnull - public static > T setup(T entry, ResourceLocation registryName) { - Preconditions.checkNotNull(entry, "Entry to setup must not be null!"); - Preconditions.checkNotNull(registryName, "Registry name to assign must not be null!"); - entry.setRegistryName(registryName); - if (entry instanceof Block) { - ((Block) entry).setTranslationKey(registryName.getNamespace() + "." + registryName.getPath()).setCreativeTab(NewCrimsonRevelations.tabCR); - } - if (entry instanceof Item) { - ((Item) entry).setTranslationKey(registryName.getNamespace() + "." + registryName.getPath()).setCreativeTab(NewCrimsonRevelations.tabCR); - } - return entry; - } } diff --git a/src/main/java/mod/icarus/crimsonrevelations/init/CRRegistry.java b/src/main/java/mod/icarus/crimsonrevelations/init/CRRegistry.java new file mode 100644 index 0000000..e8344b7 --- /dev/null +++ b/src/main/java/mod/icarus/crimsonrevelations/init/CRRegistry.java @@ -0,0 +1,35 @@ +package mod.icarus.crimsonrevelations.init; + +import javax.annotation.Nonnull; + +import com.google.common.base.Preconditions; + +import net.minecraft.block.Block; +import net.minecraft.item.Item; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.registries.IForgeRegistryEntry; + +import mod.icarus.crimsonrevelations.NewCrimsonRevelations; + +@SuppressWarnings("rawtypes") +@Mod.EventBusSubscriber(modid = NewCrimsonRevelations.MODID) +public class CRRegistry { + @Nonnull + public static T setup(@Nonnull final T entry, @Nonnull final String name) { + return setup(entry, new ResourceLocation(NewCrimsonRevelations.MODID, name)); + } + + @Nonnull + public static T setup(@Nonnull final T entry, @Nonnull final ResourceLocation registryName) { + Preconditions.checkNotNull(entry, "Entry to setup must not be null!"); + Preconditions.checkNotNull(registryName, "Registry name to assign must not be null!"); + + entry.setRegistryName(registryName); + if (entry instanceof Block) + ((Block) entry).setTranslationKey(registryName.getNamespace() + "." + registryName.getPath()).setCreativeTab(NewCrimsonRevelations.tabCR); + if (entry instanceof Item) + ((Item) entry).setTranslationKey(registryName.getNamespace() + "." + registryName.getPath()).setCreativeTab(NewCrimsonRevelations.tabCR); + return entry; + } +} diff --git a/src/main/java/mod/icarus/crimsonrevelations/init/CRResearchRegistry.java b/src/main/java/mod/icarus/crimsonrevelations/init/CRResearchRegistry.java index 5cd41d7..df62708 100644 --- a/src/main/java/mod/icarus/crimsonrevelations/init/CRResearchRegistry.java +++ b/src/main/java/mod/icarus/crimsonrevelations/init/CRResearchRegistry.java @@ -6,12 +6,17 @@ import mod.icarus.crimsonrevelations.casters.foci.FocusEffectBlindingFlash; import mod.icarus.crimsonrevelations.casters.foci.FocusEffectPoison; import mod.icarus.crimsonrevelations.casters.foci.FocusEffectTaintPoison; +import net.minecraft.item.ItemStack; import net.minecraft.util.ResourceLocation; import net.minecraftforge.fml.common.Loader; import thaumcraft.Thaumcraft; import thaumcraft.api.ThaumcraftApi; import thaumcraft.api.aspects.AspectList; +import thaumcraft.api.blocks.BlocksTC; import thaumcraft.api.casters.FocusEngine; +import thaumcraft.api.golems.EnumGolemTrait; +import thaumcraft.api.golems.parts.GolemMaterial; +import thaumcraft.api.items.ItemsTC; import thaumcraft.api.research.ResearchCategories; import thaumcraft.api.research.ScanEntity; import thaumcraft.api.research.ScanningManager; @@ -20,6 +25,28 @@ public class CRResearchRegistry { public static void init() { + // Golems + GolemMaterial.register( + new GolemMaterial("CR_CULT_PLATE", new String[]{"CR_GOLEM_MAT_CULT_PLATE"}, new ResourceLocation(NewCrimsonRevelations.MODID, "textures/entity/golem/mat_cult_plate.png"), + 4342338, 22, 9, 3, // [Color, Health, Armor , Damage] - [1 = 0.5] + new ItemStack(CRItems.crimsonPlate), new ItemStack(ItemsTC.mechanismSimple), // Base Component, Base Mechanism + new EnumGolemTrait[]{EnumGolemTrait.LIGHT, EnumGolemTrait.FIREPROOF} // Starting Traits + ) + ); + GolemMaterial.register( + new GolemMaterial("CR_FLESH", new String[]{"CR_GOLEM_MAT_FLESH"}, new ResourceLocation(NewCrimsonRevelations.MODID, "textures/entity/golem/mat_flesh.png"), + 13474967, 2, 0, 1, // [Color, Health, Armor , Damage] - [1 = 0.5] + new ItemStack(BlocksTC.fleshBlock), new ItemStack(ItemsTC.mechanismSimple), // Base Component, Base Mechanism + new EnumGolemTrait[]{EnumGolemTrait.REPAIR} // Starting Traits + ) + ); + GolemMaterial.register( + new GolemMaterial("CR_TALLOW", new String[]{"CR_GOLEM_MAT_TALLOW"}, new ResourceLocation(NewCrimsonRevelations.MODID, "textures/entity/golem/mat_tallow.png"), + 12823156, 14, 4, 3, // [Color, Health, Armor , Damage] - [1 = 0.5] + new ItemStack(CRBlocks.magicTallowBlock), new ItemStack(ItemsTC.mechanismSimple), // Base Component, Base Mechanism + new EnumGolemTrait[]{} // Starting Traits + ) + ); // Focus Effects FocusEngine.registerElement(FocusEffectBlindingFlash.class, new ResourceLocation(NewCrimsonRevelations.MODID, "textures/foci/blinding_flash.png"), 16776421); FocusEngine.registerElement(FocusEffectPoison.class, new ResourceLocation(NewCrimsonRevelations.MODID, "textures/foci/poison.png"), 9039872); diff --git a/src/main/resources/assets/crimsonrevelations/blockstates/magic_tallow_block.json b/src/main/resources/assets/crimsonrevelations/blockstates/magic_tallow_block.json new file mode 100644 index 0000000..2d1ffea --- /dev/null +++ b/src/main/resources/assets/crimsonrevelations/blockstates/magic_tallow_block.json @@ -0,0 +1,18 @@ +{ + "forge_marker": 1, + "defaults": { + "model": "cube_column", + "textures": { + "end": "crimsonrevelations:blocks/magic_tallow_block_top", + "side": "crimsonrevelations:blocks/magic_tallow_block" + } + }, + "variants": { + "normal": [ + {} + ], + "inventory": [ + {} + ] + } +} \ No newline at end of file diff --git a/src/main/resources/assets/crimsonrevelations/lang/en_us.lang b/src/main/resources/assets/crimsonrevelations/lang/en_us.lang index 897f449..dc8c0f0 100644 --- a/src/main/resources/assets/crimsonrevelations/lang/en_us.lang +++ b/src/main/resources/assets/crimsonrevelations/lang/en_us.lang @@ -1,8 +1,13 @@ itemGroup.CrimsonRevelationsTab=New Crimson Revelations +# Entities entity.crimsonrevelations.cultist_archer.name=Crimson Archer entity.crimsonrevelations.overgrown_taintacle.name=Overgrown Taintacle +# Blocks +tile.crimsonrevelations.magic_tallow_block.name=Magic Tallow Block + +# Items item.crimsonrevelations.aer_arrow.name=Aer Arrow item.crimsonrevelations.aqua_arrow.name=Aqua Arrow item.crimsonrevelations.bone_bow.name=Bow of Bone @@ -18,6 +23,7 @@ item.crimsonrevelations.ordo_arrow.name=Ordo Arrow item.crimsonrevelations.perditio_arrow.name=Perditio Arrow item.crimsonrevelations.terra_arrow.name=Terra Arrow +# Research tc.research_category.REVELATIONS=Revelations crimsonrevelations.research.crimson_revelations.title=Crimson Revelations @@ -64,9 +70,20 @@ crimsonrevelations.research.primal_arrows.title=Primal Arrows crimsonrevelations.research.primal_arrows.stage.0=The Bow of Bone was not the only ancient item that I have discovered in the Crimson Rites. There is mention of powerful arrows utilized by the Crimson Cult that are infused with various different aspects from Vis Crystals, I was only able to properly translate the most basic kind utilizing primal aspects.
Now I just need to perform some experiments and hope it all turns out well... crimsonrevelations.research.primal_arrows.stage.1=I have succeeded on utilizing the power of Vis Crystals to imbue normal arrows with primal elements like the Crimson Cult did. Unlike other special arrows, primal arrows have a 1-in-3 chance to be preserved by the Infinity enchantment due to their magical nature.
Each primal element is powerful in their own way and I have detailed the information about each type on the next few pages.§lAer§r
Crackling with energy, these arrows deal the same damage as normal arrows, they will also pack quite a knockback from their windy nature and are not hindered when fired underwater.§lAqua§r
These arrows deal the same damage as normal arrows, they also greatly slow the target's movement speed down by chilling them to the bone, which is perfect for certain situations.
In addition, they are not hindered when fired underwater and they are completely resistant to fire including the Flame enchantment, for better or worse.§lIgnis§r
These arrows deal extra damage compared to normal arrows, they also inflict fire damage rather than normal damage.
Targets will additionally be set ablaze for a few seconds (or longer when the arrows are shot from a bow with the Flame enchantment), it's best not to utilize this element against enemies that are resistant to fire.§lOrdo§r
These arrows deal less damage compared to normal arrows, but the target also becomes greatly weakened for a few seconds. This element would be best against strong opponents.§lPerditio§r
These arrows deal less damage compared to normal arrows, but their chaotic nature will also inflict the target with a strong withering effect for a few seconds.§lTerra§r
These arrows, weighted with the essence of earth, will pierce through the target's armor while dealing the same damage as normal arrows. This element is best utilized against heavily armored foes. +# Research: Golemancy crimsonrevelations.research.dark_golemancy.title=Dark Golemancy Studies crimsonrevelations.research.dark_golemancy.stage.0=I've had more success on translating this section of the Crimson Rites. Surprisingly, the Crimson Cult has already done a lot of research to construct and perform their own golems, this is when it all took a more darker turn however, their more inhumane choices on building these golems.
Whether I would want to learn some of these methods for my own uses or not is up to my own risk... +crimsonrevelations.research.golem_mat_cult_plate.title=Material Studies: Crimson Plate +crimsonrevelations.research.golem_mat_cult_plate.stage.0=Crimson Plates are rather interesting, it originated from the Crimson Cult, but what they did to make whatever alloy these plates are composed of will remain a mystery.
It has the best of both brass and iron, it is quite lightweight as brass and has many of the same properties as iron. It however cannot withstand explosions as well, which is the main drawback of using this as a golem material. + +crimsonrevelations.research.golem_mat_flesh.title=Material Studies: Flesh +crimsonrevelations.research.golem_mat_flesh.stage.0=I dread to know what was in the mind of the Crimson Cult for wanting to utilize flesh as a golem material, should I decide to utilize this myself if I am just as sick and twisted as they are, it does have some benefits.
Golems made out of flesh have the ability to self-repair, this is especially useful with flesh being easily obtainable from any type of zombie. Flesh is also very fragile and even more so than Greatwood, I should thus be careful with any golems made out of it. + +crimsonrevelations.research.golem_mat_tallow.title=Material Studies: Tallow +crimsonrevelations.research.golem_mat_tallow.stage.0=While tallow is strange for a golem material, it surprisingly is fairly durable but also lacks any notable traits. If I were to need a golem without positive or negative traits, this is the perfect material to utilize. + +# Research: Auromancy crimsonrevelations.research.dark_auromancy.title=Dark Auromancy Studies crimsonrevelations.research.dark_auromancy.stage.0=I have discovered drafts within the Rites itself, the Crimson Cult are much more knowledgeable about thaumaturgy than I had previously thought.
The knowledge that I have uncovered is more stranger than my usual discoveries, upon fully translating their own work done on Auromancy, I expect these new additions to be much more §osituational§r than I'm used to. @@ -82,6 +99,7 @@ crimsonrevelations.research.focus_taint_poison.stage.0=Taint Poison is much more crimsonrevelations.research.overgrown_taintacle.title=Overgrown Taintacle crimsonrevelations.research.overgrown_taintacle.stage.0=During one of my treks in the Emptiness, I have discovered a significantly stronger and more aggressive Taintacle variant. It seems to have a symbiotic relationship with the environment, which would explain the main source of its power.
Hunting these larger Taintacles would be ideal, I should be able to harvest whatever congealed energy it leaves off for my own purposes. +# Research: Bestiary crimsonrevelations.research.cult_bestiary.title=The Cult Bestiary crimsonrevelations.research.cult_bestiary.stage.0=I am dedicating this side of the Revelations chapter for any of the different type of Crimson Cult members I encounter. The cultists seem to be human or at least related to humans. However, something is off about them. Their eyes are of a striking glowing red, and their bodies seem to have a higher constitution than a normal body would, surviving wounds that I would not be able to.Whatever process they use to "enhance" themselves is both curious, and at the same time strangely sinister. Interestingly, I can't help but notice the similarity of Angry Zombies to them. Perhaps the remains of failed expeditions?
Of particularly interesting note, they seem to have some form of rank system, or at least that's what I was able to translate. I will note down more about each of the members upon scanning any of them with my Thaumometer. crimsonrevelations.research.cult_bestiary.addenda.0=Upon observing the Shambling Husks, they appear to wear similar armor to the cultists themselves. Were these husks also the remains of failed expeditions thanks to the very aggressive Eldritch Crabs deciding their own fates?
Maybe I'm onto something here... @@ -95,6 +113,7 @@ crimsonrevelations.research.crimson_knight.addenda.0=It looks like the knights a crimsonrevelations.text.overgrown_taintacle=You have absorbed some of the Overgrown Taintacle's power. +# Misc focus.crimsonrevelations.blinding_flash.name=Blinding Flash focus.crimsonrevelations.blinding_flash.text=Forms an orb of bright light that blinds and blurs targets while also causing weakness to non-players. Damage is doubled against undead targets but halved against non-undead targets. @@ -106,4 +125,13 @@ focus.crimsonrevelations.taint_poison.text=Unleashes a glob of infectious taint focus.common.double_duration=Duration (two seconds) -research.m_OVERGROWN_TAINTACLE.text=Eliminate an Overgrown Taintacle. \ No newline at end of file +research.m_OVERGROWN_TAINTACLE.text=Eliminate an Overgrown Taintacle. + +golem.material.cr_cult_plate=Crimson Plate +golem.material.text.cr_cult_plate=This golem is crafted from an unknown lightweight metal that originated from the Crimson Cult. While not resistant to explosions unlike iron and thaumium, it is quite light and still fireproof. + +golem.material.cr_flesh=Flesh +golem.material.text.cr_flesh=This golem is crafted from flesh. It is extremely fragile but can repair itself with ease, thanks to its fleshy nature. + +golem.material.cr_tallow=Tallow +golem.material.text.cr_tallow=This golem is crafted from magical tallow. It is fairly durable, but doesn't start off with any notable positive or negative traits. diff --git a/src/main/resources/assets/crimsonrevelations/recipes/block_to_magic_tallow.json b/src/main/resources/assets/crimsonrevelations/recipes/block_to_magic_tallow.json new file mode 100644 index 0000000..a0c25b6 --- /dev/null +++ b/src/main/resources/assets/crimsonrevelations/recipes/block_to_magic_tallow.json @@ -0,0 +1,12 @@ +{ + "type": "forge:ore_shapeless", + "ingredients": [ + { + "item": "crimsonrevelations:magic_tallow_block" + } + ], + "result": { + "item": "thaumcraft:tallow", + "count": 9 + } +} diff --git a/src/main/resources/assets/crimsonrevelations/recipes/magic_tallow_to_block.json b/src/main/resources/assets/crimsonrevelations/recipes/magic_tallow_to_block.json new file mode 100644 index 0000000..1c26124 --- /dev/null +++ b/src/main/resources/assets/crimsonrevelations/recipes/magic_tallow_to_block.json @@ -0,0 +1,16 @@ +{ + "type": "forge:ore_shaped", + "pattern": [ + "MMM", + "MMM", + "MMM" + ], + "key": { + "M": { + "item": "thaumcraft:tallow" + } + }, + "result": { + "item": "crimsonrevelations:magic_tallow_block" + } +} diff --git a/src/main/resources/assets/crimsonrevelations/research/revelations.json b/src/main/resources/assets/crimsonrevelations/research/revelations.json index 5766134..d3cf983 100644 --- a/src/main/resources/assets/crimsonrevelations/research/revelations.json +++ b/src/main/resources/assets/crimsonrevelations/research/revelations.json @@ -576,6 +576,93 @@ } ] }, + { + "key": "CR_GOLEM_MAT_CULT_PLATE", + "name": "crimsonrevelations.research.golem_mat_cult_plate.title", + "icons": [ + "crimsonrevelations:crimson_plate" + ], + "category": "REVELATIONS", + "parents": [ + "CR_DARK_GOLEMANCY", + "~CR_BASIC_CRIMSON_ARMORY" + ], + "siblings": [], + "meta": [ + "ROUND" + ], + "location": [ + -6, + -1 + ], + "reward_item": [], + "reward_knowledge": [], + "stages": [ + { + "text": "crimsonrevelations.research.golem_mat_cult_plate.stage.0" + } + ] + }, + { + "key": "CR_GOLEM_MAT_FLESH", + "name": "crimsonrevelations.research.golem_mat_flesh.title", + "icons": [ + "thaumcraft:flesh_block" + ], + "category": "REVELATIONS", + "parents": [ + "CR_DARK_GOLEMANCY", + "~HEDGEALCHEMY" + ], + "siblings": [], + "meta": [ + "ROUND" + ], + "location": [ + -7, + -2 + ], + "reward_item": [], + "reward_knowledge": [], + "stages": [ + { + "text": "crimsonrevelations.research.golem_mat_flesh.stage.0", + "recipes": [ + "thaumcraft:fleshtoblock" + ] + } + ] + }, + { + "key": "CR_GOLEM_MAT_TALLOW", + "name": "crimsonrevelations.research.golem_mat_tallow.title", + "icons": [ + "crimsonrevelations:magic_tallow_block" + ], + "category": "REVELATIONS", + "parents": [ + "CR_DARK_GOLEMANCY", + "~HEDGEALCHEMY" + ], + "siblings": [], + "meta": [ + "ROUND" + ], + "location": [ + -6, + -3 + ], + "reward_item": [], + "reward_knowledge": [], + "stages": [ + { + "text": "crimsonrevelations.research.golem_mat_tallow.stage.0", + "recipes": [ + "crimsonrevelations:magic_tallow_to_block" + ] + } + ] + }, { "key": "CR_DARK_AUROMANCY", "name": "crimsonrevelations.research.dark_auromancy.title",