This commit is contained in:
Ilya3point999K committed 2026-03-15 16:04:55 +05:00
1 parent b6dc016267
commit 96439af167
10 files changed
+86 -28

No files matched your search

+9
View File
@@ -1,3 +1,12 @@
# Thaumic Concilium 1.1.1
- FIXES:
- Empty NBT tag no longer applied to dropped blocks and items.
- Added black list support for Sloppy Alchemist and Burned Witch.
- Correct handling of missing required mods instead of crash.
- Explicit floor generation for Burning Site.
- Crimson Avanpost' chest is now a legit loot table, modify "ThaumicConcilium:cultist_tower" with your loot editor of choice.
# Thaumic Concilium 1.1.0
- !!!BREAKING, READ BEFORE UPDATING!!!
- Config values for mob replacement and rift spawn chances are now defined in a sane way (lesser number - lesser chance). Reverse them in your configs accordingly.
+1 -1
View File
@@ -4,7 +4,7 @@ org.gradle.daemon=false
# General Specifications
mc_version=1.7.10
mod_version=1.1.0
mod_version=1.1.1
forge_version=10.13.4.1614
mod_group=com.ilya3point999k.thaumicconcilium
mod_id=thaumicconcilium
@@ -10,6 +10,7 @@ import com.ilya3point999k.thaumicconcilium.common.items.wands.foci.TCFociUpgrade
import com.ilya3point999k.thaumicconcilium.common.network.TCPacketHandler;
import com.ilya3point999k.thaumicconcilium.common.registry.*;
import com.ilya3point999k.thaumicconcilium.common.tiles.LithographerTile;
import com.ilya3point999k.thaumicconcilium.common.world.CultistTowerWorldGen;
import com.ilya3point999k.thaumicconcilium.common.world.ThaumicConciliumWorldGen;
import com.ilya3point999k.thaumicconcilium.common.world.village.BurningSite;
import com.ilya3point999k.thaumicconcilium.common.world.village.BurningSiteHandler;
@@ -23,10 +24,15 @@ import cpw.mods.fml.common.registry.VillagerRegistry;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.WeightedRandomChestContent;
import net.minecraft.world.World;
import net.minecraft.world.gen.structure.MapGenStructureIO;
import net.minecraftforge.common.ChestGenHooks;
import net.minecraftforge.common.MinecraftForge;
import thaumcraft.common.config.ConfigItems;
import thaumcraft.common.entities.golems.ContainerGolem;
import thaumcraft.common.entities.golems.EntityGolemBase;
@@ -42,12 +48,12 @@ public class CommonProxy implements IGuiHandler {
TCEntityRegistry.init();
TCConfig.configurate(event.getSuggestedConfigurationFile());
TCPacketHandler.init();
GameRegistry.registerWorldGenerator(new ThaumicConciliumWorldGen(), 0);
}
public void init(FMLInitializationEvent event) {
Integration.init();
TCEntityEventHandler entityEventHandler = new TCEntityEventHandler();
MinecraftForge.EVENT_BUS.register(entityEventHandler);
FMLCommonHandler.instance().bus().register(entityEventHandler);
@@ -56,6 +62,44 @@ public class CommonProxy implements IGuiHandler {
VillagerRegistry.instance().registerVillageCreationHandler(new BurningSiteHandler());
MapGenStructureIO.func_143031_a(BurningSite.class, "BurningSite");
}
if (Integration.dyes){
ChestGenHooks chest = ChestGenHooks.getInfo(CultistTowerWorldGen.CULTIST_TOWER_LOOT);
chest.setMin(2);
chest.setMax(8);
chest.addItem(new WeightedRandomChestContent(
new ItemStack(ConfigItems.itemNugget, 1, 7),
1, 3,
10));
chest.addItem(new WeightedRandomChestContent(
new ItemStack(ConfigItems.itemEldritchObject, 1, 1),
1, 1,
6));
chest.addItem(new WeightedRandomChestContent(
new ItemStack(Items.bow),
1, 1,
8));
chest.addItem(new WeightedRandomChestContent(
new ItemStack(Items.arrow),
1, 16,
15));
chest.addItem(new WeightedRandomChestContent(
new ItemStack(ConfigItems.itemTripleMeatTreat),
1, 3,
10));
chest.addItem(new WeightedRandomChestContent(
new ItemStack(ConfigItems.itemResource, 1, 9),
1, 3,
12));
}
}
public void postInit(FMLPostInitializationEvent event) {
@@ -67,6 +67,8 @@ public class TCConfig {
public static int[] vengefulGolemBiomeBlacklist;
public static int[] crimsonRangerBiomeBlacklist;
public static int[] witheredBotanistBiomeBlacklist;
public static int[] sloppyAlchemistBiomeBlacklist;
public static int[] burnedWitchBiomeBlacklist;
public static int crimsonRaidID;
@@ -127,8 +129,10 @@ public class TCConfig {
biomes = conf.getString("crimsonRangerBiomeBlacklist","mobs", "", "Comma separated IDs of biomes where spawn is not allowed");
crimsonRangerBiomeBlacklist = biomes.isEmpty() ? null : Arrays.stream(biomes.split(",")).mapToInt(Integer::parseInt).toArray();
biomes = conf.getString("witheredBotanistBiomeBlacklist","mobs", "", "Comma separated IDs of biomes where spawn is not allowed");
witheredBotanistBiomeBlacklist = biomes.isEmpty() ? null : Arrays.stream(biomes.split(",")).mapToInt(Integer::parseInt).toArray();
biomes = conf.getString("sloppyAlchemistBiomeBlacklist","mobs", "", "Comma separated IDs of biomes where spawn is not allowed");
sloppyAlchemistBiomeBlacklist = biomes.isEmpty() ? null : Arrays.stream(biomes.split(",")).mapToInt(Integer::parseInt).toArray();
biomes = conf.getString("burnedWitchBiomeBlacklist","mobs", "", "Comma separated IDs of biomes where spawn is not allowed");
burnedWitchBiomeBlacklist = biomes.isEmpty() ? null : Arrays.stream(biomes.split(",")).mapToInt(Integer::parseInt).toArray();
madThaumaturgeReplacesBrainyZombieChance = conf.getInt("madThaumaturgeReplacesBrainyZombieChance", "mobs", 20, 0, 100, "0 - never, 100 - always.");
crimsonPaladinReplacesCultistWarriorChance = conf.getInt("crimsonPaladinReplacesCultistWarriorChance", "mobs", 20, 0, 100, "0 - never, 100 - always.");
@@ -13,7 +13,7 @@ import net.minecraft.creativetab.CreativeTabs;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@Mod(modid = ThaumicConcilium.MODID, name = ThaumicConcilium.NAME, version = ThaumicConcilium.VERSION, dependencies = "after:Thaumcraft;after:ForbiddenMagic;after:ThaumicTinkerer;after:gadomancy;after:thaumicbases;after:Automagy;after:TaintedMagic;after:ThaumicHorizons;after:witchery;after:arsmagica2;after:BloodArsenal;after:alfheim;after:Avaritia")
@Mod(modid = ThaumicConcilium.MODID, name = ThaumicConcilium.NAME, version = ThaumicConcilium.VERSION, dependencies = "required-after:Thaumcraft;required-after:ForbiddenMagic;required-after:ThaumicTinkerer;after:gadomancy;after:thaumicbases;after:Automagy;after:TaintedMagic;after:ThaumicHorizons;after:witchery;after:arsmagica2;after:BloodArsenal;after:alfheim;after:Avaritia")
public class ThaumicConcilium
{
public static final String MODID = "ThaumicConcilium";
@@ -182,7 +182,7 @@ public class TCEntityEventHandler {
public void on(ItemTooltipEvent event) {
if (event.itemStack == null) return;
if (ItemNBTHelper.verifyExistance(event.itemStack, ItemResource.TAG_MEMBRANE)){
if (event.itemStack.hasTagCompound() && event.itemStack.getTagCompound().hasKey(ItemResource.TAG_MEMBRANE)){
event.toolTip.add(StatCollector.translateToLocal("tc.tooltip.nether_membrane"));
}
if (event.itemStack.getItem() instanceof ItemWandCasting) {
@@ -413,7 +413,7 @@ public class TCEntityEventHandler {
ItemStack stack = entityItem.getDataWatcher().getWatchableObjectItemStack(10);
if (stack == null) return;
if (stack.stackSize < 1) return;
if (ItemNBTHelper.getBoolean(stack, ItemResource.TAG_MEMBRANE, false)) {
if (stack.hasTagCompound() && stack.getTagCompound().hasKey(ItemResource.TAG_MEMBRANE)) {
EntityItemFireResistant f = new EntityItemFireResistant(event.world, entityItem.posX, entityItem.posY, entityItem.posZ, stack);
f.delayBeforeCanPickup = 40;
f.motionX = entityItem.motionX;
@@ -23,6 +23,7 @@ import fox.spiteful.forbidden.DarkAspects;
import fox.spiteful.forbidden.compat.Compat;
import net.minecraft.entity.EnumCreatureType;
import net.minecraft.world.biome.BiomeGenBase;
import net.minecraftforge.common.BiomeDictionary;
import thaumcraft.api.ThaumcraftApi;
import thaumcraft.api.aspects.Aspect;
import thaumcraft.api.aspects.AspectList;
@@ -209,9 +210,9 @@ public class TCEntityRegistry {
EntityRegistry.addSpawn(WitheredBotanist.class, TCConfig.witheredBotanistSpawnChance, 1, 1, EnumCreatureType.creature, (BiomeGenBase[]) Arrays.stream(BiomeGenBase.getBiomeGenArray()).filter(x -> x != null && (TCConfig.witheredBotanistBiomeBlacklist == null || Arrays.stream(TCConfig.witheredBotanistBiomeBlacklist).noneMatch(y -> y == x.biomeID))).toArray(BiomeGenBase[]::new));
}
if (Integration.witchery){
EntityRegistry.addSpawn(SloppyAlchemist.class, TCConfig.sloppyAlchemistSpawnChance, 1, 1, EnumCreatureType.monster, BiomeGenBase.hell);
EntityRegistry.addSpawn(BurnedWitch.class, TCConfig.burnedWitchSpawnChance, 1, 1, EnumCreatureType.monster, BiomeGenBase.hell);
if (Integration.witchery && Compat.bm){
EntityRegistry.addSpawn(SloppyAlchemist.class, TCConfig.sloppyAlchemistSpawnChance, 1, 1, EnumCreatureType.monster, Arrays.stream(BiomeDictionary.getBiomesForType(BiomeDictionary.Type.NETHER)).filter(x -> x != null && (TCConfig.sloppyAlchemistBiomeBlacklist == null || Arrays.stream(TCConfig.sloppyAlchemistBiomeBlacklist).noneMatch(y -> y == x.biomeID))).toArray(BiomeGenBase[]::new));
EntityRegistry.addSpawn(BurnedWitch.class, TCConfig.burnedWitchSpawnChance, 1, 1, EnumCreatureType.monster, Arrays.stream(BiomeDictionary.getBiomesForType(BiomeDictionary.Type.NETHER)).filter(x -> x != null && (TCConfig.burnedWitchBiomeBlacklist == null || Arrays.stream(TCConfig.burnedWitchBiomeBlacklist).noneMatch(y -> y == x.biomeID))).toArray(BiomeGenBase[]::new));
}
}
@@ -1,5 +1,6 @@
package com.ilya3point999k.thaumicconcilium.common.world;
import com.ilya3point999k.thaumicconcilium.common.ThaumicConcilium;
import com.ilya3point999k.thaumicconcilium.common.entities.mobs.CrimsonArcher;
import net.minecraft.block.Block;
import net.minecraft.init.Blocks;
@@ -7,8 +8,10 @@ import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.tileentity.TileEntityChest;
import net.minecraft.util.WeightedRandomChestContent;
import net.minecraft.world.World;
import net.minecraft.world.gen.feature.WorldGenerator;
import net.minecraftforge.common.ChestGenHooks;
import thaumcraft.common.config.ConfigBlocks;
import thaumcraft.common.config.ConfigItems;
import thaumcraft.common.tiles.TileBanner;
@@ -18,6 +21,7 @@ import java.util.List;
import java.util.Random;
public class CultistTowerWorldGen extends WorldGenerator {
public static final String CULTIST_TOWER_LOOT = ThaumicConcilium.MODID+":cultist_tower";
public static final List<Block> validTerrainList = new ArrayList<Block>(){{
add(Blocks.dirt);
@@ -201,24 +205,14 @@ public class CultistTowerWorldGen extends WorldGenerator {
world.setBlock(x + 5, y + 10, z - 2, Blocks.chest);
TileEntityChest chest = (TileEntityChest) world.getTileEntity(x + 5, y + 10, z - 2);
ItemStack[] lootTable = new ItemStack[]{
new ItemStack(ConfigItems.itemNugget, random.nextInt(3) + 1, 7),
new ItemStack(ConfigItems.itemEldritchObject, 1, 1),
new ItemStack(Items.bow),
new ItemStack(Items.arrow, random.nextInt(16) + 1),
new ItemStack(ConfigItems.itemTripleMeatTreat, random.nextInt(3) + 1),
new ItemStack(ConfigItems.itemResource, random.nextInt(3) + 1, 9)
};
ChestGenHooks info = ChestGenHooks.getInfo(CULTIST_TOWER_LOOT);
int itemsToAdd = random.nextInt(8) + 2;
for (int i = 0; i < itemsToAdd; i++) {
int slot = random.nextInt(chest.getSizeInventory());
ItemStack loot = lootTable[random.nextInt(lootTable.length)].copy();
if (chest.getStackInSlot(slot) == null) {
chest.setInventorySlotContents(slot, loot);
}
}
WeightedRandomChestContent.generateChestContents(
world.rand,
info.getItems(world.rand),
chest,
info.getCount(world.rand)
);
CrimsonArcher archer = new CrimsonArcher(world);
archer.func_110163_bv();
@@ -75,6 +75,12 @@ public class BurningSite extends StructureVillagePieces.Village {
Blocks.gravel,
Blocks.gravel,
false);
this.fillWithBlocks(world, box,
0, -1, 0,
8, -1, 8,
Blocks.dirt,
Blocks.dirt,
false);
for (int x = 3; x <= 5; x++) {
for (int z = 3; z <= 5; z++) {
+1 -1
View File
@@ -3,7 +3,7 @@
"modid": "ThaumicConcilium",
"name": "Thaumic Concilium",
"description": "Addon for Thaumcraft about devices to assist in solo and coop gameplay",
"version": "1.1.0",
"version": "1.1.1",
"mcversion": "1.7.10",
"url": "",
"updateUrl": "",