Compare commits

...
Author SHA1 Message Date
boubou19andAlexdoru c72988e435 Faster load (#89)
Co-authored-by: Alexdoru <57050655+Alexdoru@users.noreply.github.com>
2025-07-17 05:10:15 +02:00
koolkrafter5 26a8bd6a26 Fix achievement text typo (#88) 2025-07-13 05:36:01 +02:00
Martin Robertz 23e4f6760d update 2025-06-08 11:55:28 +02:00
Nikolay S. 72da2272d1 Fix the rest of the lang file mistakes in Botania (#84) 2025-06-06 20:57:18 +00:00
Nikolay S. 36deb60855 Add missing equals sign (#83) 2025-06-06 20:31:18 +00:00
Maya c387a30be8 update 2025-05-25 19:38:30 -06:00
brandynandMaya bcf96ed130 Add configurable F3 Debug (#78)
Co-authored-by: Maya <10861407+serenibyss@users.noreply.github.com>
2025-05-25 19:38:18 -06:00
Martin Robertz 7b767d52c5 update 2025-05-16 18:32:31 +02:00
Caedis e812d33caf Replace Baubles with Baubles Expanded (#81) 2025-05-13 19:09:33 -05:00
Martin Robertz a0ba2f2d6a update 2025-03-04 10:08:44 +01:00
miozune 10f4e05d37 Update build (#76) 2025-03-02 15:54:17 +00:00
Dream Master 2b586edcf2 update 2025-01-15 12:01:33 +01:00
Shadow1590Shadow1590Maya
36dfeea862 Reach ring rewrite (#67)
Co-authored-by: Shadow1590 <>
Co-authored-by: Maya <10861407+serenibyss@users.noreply.github.com>
2025-01-14 23:50:10 -06:00
glowredmanandMartin Robertz e8fb04df37 Small Cleanup (#68)
Co-authored-by: Martin Robertz <dream-master@gmx.net>
2025-01-13 00:13:56 -06:00
Martin Robertz f5a21fe41e update 2024-12-27 10:06:52 +01:00
5b81cbe85e backported item filter for Rannuncarpus (#60)
Co-authored-by: Martin Robertz <dream-master@gmx.net>
Co-authored-by: Maya <10861407+serenibyss@users.noreply.github.com>
2024-12-26 22:29:04 -06:00
241 changed files with 2086 additions and 1984 deletions

No files matched your search

-33
View File
@@ -1,33 +0,0 @@
#!/usr/bin/env bash
RUNDIR="run"
CRASH="crash-reports"
SERVERLOG="server.log"
if [[ -d $RUNDIR/$CRASH ]]; then
echo "Crash reports detected:"
cat $RUNDIR/$CRASH/crash*.txt
exit 1
fi
if grep --quiet "Fatal errors were detected" $SERVERLOG; then
echo "Fatal errors detected:"
cat server.log
exit 1
fi
if grep --quiet "The state engine was in incorrect state ERRORED and forced into state SERVER_STOPPED" $SERVERLOG; then
echo "Server force stopped:"
cat server.log
exit 1
fi
if ! grep --quiet -Po '.+Done \(.+\)\! For help, type "help" or "\?"' $SERVERLOG; then
echo "Server didn't finish startup:"
cat server.log
exit 1
fi
echo "No crash reports detected"
exit 0
+7 -1
View File
@@ -26,7 +26,13 @@ whitelist.json
*.iml
*.ipr
*.iws
src/main/resources/mixins.*.json
src/main/resources/mixins.*([!.]).json
*.bat
*.DS_Store
!gradlew.bat
.factorypath
addon.local.gradle
addon.local.gradle.kts
addon.late.local.gradle
addon.late.local.gradle.kts
layout.json
+8 -11
View File
@@ -1,19 +1,16 @@
// Add your dependencies here
dependencies {
api('com.github.GTNewHorizons:Baubles:1.0.4:dev')
api('thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev')
compileOnly('com.github.GTNewHorizons:Railcraft:9.15.15:api') {transitive=false}
compileOnly('com.github.GTNewHorizons:StorageDrawers:2.0.5-GTNH:api') {transitive=false}
compileOnly('com.github.GTNewHorizons:ForgeMultipart:1.5.0:dev') {transitive=false}
compileOnly('com.github.GTNewHorizons:NotEnoughItems:2.7.4-GTNH:dev')
compileOnly('com.github.GTNewHorizons:BuildCraft:7.1.39:api') {transitive=false}
api('com.github.GTNewHorizons:GTNHLib:0.6.0:dev')
api('com.github.GTNewHorizons:Baubles-Expanded:2.1.8-GTNH:dev')
api('com.github.GTNewHorizons:GTNHLib:0.6.30:dev')
compileOnly('com.github.GTNewHorizons:BuildCraft:7.1.43:api') {transitive=false}
compileOnly('com.github.GTNewHorizons:ForgeMultipart:1.6.4:dev') {transitive=false}
devOnlyNonPublishable('com.github.GTNewHorizons:NotEnoughItems:2.7.51-GTNH:dev')
compileOnly('com.github.GTNewHorizons:Railcraft:9.16.30:api') {transitive=false}
compileOnly('com.github.GTNewHorizons:StorageDrawers:2.1.2-GTNH:api') {transitive=false}
compileOnly('curse.maven:cofh-lib-220333:2388748')
compileOnly('curse.maven:minefactory-reloaded-66672:2366150')
devOnlyNonPublishable('com.github.GTNewHorizons:NotEnoughItems:2.7.4-GTNH:dev')
compileOnly('thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev')
}
+2 -11
View File
@@ -14,7 +14,7 @@ modId = Botania
modGroup = vazkii.botania
# Whether to use modGroup as the maven publishing group.
# Due to a history of using JitPack, the default is com.github.GTNewHorizons for all mods.
# When false, com.github.GTNewHorizons is used.
useModGroupForPublishing = false
# Updates your build.gradle and settings.gradle automatically whenever an update is available.
@@ -55,22 +55,13 @@ generateGradleTokenClass = vazkii.botania.common.Tags
# Name of the token containing the project's current version to generate/replace.
gradleTokenVersion = VERSION
# [DEPRECATED] Mod ID replacement token.
gradleTokenModId =
# [DEPRECATED] Mod name replacement token.
gradleTokenModName =
# [DEPRECATED] Mod Group replacement token.
gradleTokenGroupName =
# [DEPRECATED]
# Multiple source files can be defined here by providing a comma-separated list: Class1.java,Class2.java,Class3.java
# public static final String VERSION = "GRADLETOKEN_VERSION";
# The string's content will be replaced with your mod's version when compiled. You should use this to specify your mod's
# version in @Mod([...], version = VERSION, [...]).
# Leave these properties empty to skip individual token replacements.
replaceGradleTokenInFile =
# replaceGradleTokenInFile =
# In case your mod provides an API for other mods to implement you may declare its package here. Otherwise, you can
# leave this property empty.
Binary file not shown.
+1 -1
View File
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Vendored
+2 -3
View File
@@ -86,8 +86,7 @@ done
# shellcheck disable=SC2034
APP_BASE_NAME=${0##*/}
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s
' "$PWD" ) || exit
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum
@@ -206,7 +205,7 @@ fi
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Collect all arguments for the java command:
# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
# and any embedded shellness will be escaped.
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
# treated as '${Hostname}' itself on the command line.
-20
View File
@@ -1,22 +1,2 @@
repositories {
maven {
name 'GTNH Maven'
url 'http://jenkins.usrv.eu:8081/nexus/content/groups/public/'
allowInsecureProtocol
}
maven {
name 'ic2'
url 'https://maven.ic2.player.to/'
url 'https://maven2.ic2.player.to/'
metadataSources {
mavenPom()
artifact()
}
}
maven {
url 'https://cursemaven.com'
}
maven {
url 'https://jitpack.io'
}
}
+1 -1
View File
@@ -17,7 +17,7 @@ pluginManagement {
}
plugins {
id 'com.gtnewhorizons.gtnhsettingsconvention' version '1.0.30'
id 'com.gtnewhorizons.gtnhsettingsconvention' version '1.0.38'
}
@@ -60,37 +60,37 @@ import cpw.mods.fml.common.Loader;
public final class BotaniaAPI {
private static List<LexiconCategory> categories = new ArrayList<LexiconCategory>();
private static List<LexiconEntry> allEntries = new ArrayList<LexiconEntry>();
private static List<LexiconCategory> categories = new ArrayList<>();
private static List<LexiconEntry> allEntries = new ArrayList<>();
public static Map<String, KnowledgeType> knowledgeTypes = new HashMap<String, KnowledgeType>();
public static Map<String, KnowledgeType> knowledgeTypes = new HashMap<>();
public static Map<String, Brew> brewMap = new LinkedHashMap<String, Brew>();
public static Map<String, Brew> brewMap = new LinkedHashMap<>();
public static List<String> disposableBlocks = new ArrayList<String>();
public static List<String> semiDisposableBlocks = new ArrayList<String>();
public static List<String> disposableBlocks = new ArrayList<>();
public static List<String> semiDisposableBlocks = new ArrayList<>();
public static List<RecipePetals> petalRecipes = new ArrayList<RecipePetals>();
public static List<RecipePureDaisy> pureDaisyRecipes = new ArrayList<RecipePureDaisy>();
public static List<RecipeManaInfusion> manaInfusionRecipes = new ArrayList<RecipeManaInfusion>();
public static List<RecipeRuneAltar> runeAltarRecipes = new ArrayList<RecipeRuneAltar>();
public static List<RecipeElvenTrade> elvenTradeRecipes = new ArrayList<RecipeElvenTrade>();
public static List<RecipeBrew> brewRecipes = new ArrayList<RecipeBrew>();
public static List<RecipeManaInfusion> miniFlowerRecipes = new ArrayList<RecipeManaInfusion>();
public static List<RecipePetals> petalRecipes = new ArrayList<>();
public static List<RecipePureDaisy> pureDaisyRecipes = new ArrayList<>();
public static List<RecipeManaInfusion> manaInfusionRecipes = new ArrayList<>();
public static List<RecipeRuneAltar> runeAltarRecipes = new ArrayList<>();
public static List<RecipeElvenTrade> elvenTradeRecipes = new ArrayList<>();
public static List<RecipeBrew> brewRecipes = new ArrayList<>();
public static List<RecipeManaInfusion> miniFlowerRecipes = new ArrayList<>();
private static BiMap<String, Class<? extends SubTileEntity>> subTiles = HashBiMap.<String, Class<? extends SubTileEntity>> create();
private static Map<Class<? extends SubTileEntity>, SubTileSignature> subTileSignatures = new HashMap<Class<? extends SubTileEntity>, SubTileSignature>();
public static Set<String> subtilesForCreativeMenu = new LinkedHashSet();
public static Map<String, String> subTileMods = new HashMap<String, String>();
private static Map<Class<? extends SubTileEntity>, SubTileSignature> subTileSignatures = new HashMap<>();
public static Set<String> subtilesForCreativeMenu = new LinkedHashSet<>();
public static Map<String, String> subTileMods = new HashMap<>();
public static BiMap<String, String> miniFlowers = HashBiMap.<String, String> create();
public static Map<String, Integer> oreWeights = new HashMap<String, Integer>();
public static Map<String, Integer> oreWeightsNether = new HashMap<String, Integer>();
public static Map<Item, Block> seeds = new HashMap();
public static Set<Item> looniumBlacklist = new LinkedHashSet<Item>();
public static Set<Block> paintableBlocks = new LinkedHashSet<Block>();
public static Set<String> magnetBlacklist = new LinkedHashSet<String>();
public static Set<Class<? extends Entity>> gravityRodBlacklist = new LinkedHashSet<Class<? extends Entity>>();
public static Map<String, Integer> oreWeights = new HashMap<>();
public static Map<String, Integer> oreWeightsNether = new HashMap<>();
public static Map<Item, Block> seeds = new HashMap<>();
public static Set<Item> looniumBlacklist = new LinkedHashSet<>();
public static Set<Block> paintableBlocks = new LinkedHashSet<>();
public static Set<String> magnetBlacklist = new LinkedHashSet<>();
public static Set<Class<? extends Entity>> gravityRodBlacklist = new LinkedHashSet<>();
public static ArmorMaterial manasteelArmorMaterial = EnumHelper.addArmorMaterial("MANASTEEL", 16, new int[] { 2, 6, 5, 2 }, 18);
public static ToolMaterial manasteelToolMaterial = EnumHelper.addToolMaterial("MANASTEEL", 3, 300, 6.2F, 2F, 20);
@@ -317,7 +317,7 @@ public final class BotaniaAPI {
* Blacklists an Entity from being affected by the Rod of the Shaded Mesa.
* Pass in the class for the Entity, e.g. EntityCow.class
*/
public static void blacklistEntityFromGravityRod(Class entity) {
public static void blacklistEntityFromGravityRod(Class<? extends Entity> entity) {
gravityRodBlacklist.add(entity);
}
@@ -325,7 +325,7 @@ public final class BotaniaAPI {
* Checks if the provided Entity is contained in the Blacklist.
* Pass in the class for the Entity, e.g. entity.getClass()
*/
public static boolean isEntityBlacklistedFromGravityRod(Class entity) {
public static boolean isEntityBlacklistedFromGravityRod(Class<? extends Entity> entity) {
return gravityRodBlacklist.contains(entity);
}
@@ -634,7 +634,7 @@ public final class BotaniaAPI {
*/
public static List<IRecipe> getLatestAddedRecipes(int x) {
List<IRecipe> list = CraftingManager.getInstance().getRecipeList();
List<IRecipe> newList = new ArrayList();
List<IRecipe> newList = new ArrayList<>();
for(int i = x - 1; i >= 0; i--)
newList.add(list.get(list.size() - 1 - i));
@@ -42,7 +42,7 @@ public class Brew {
this.name = name;
this.color = color;
this.cost = cost;
this.effects = new ArrayList(Arrays.asList(effects));
this.effects = new ArrayList<>(Arrays.asList(effects));
}
/**
@@ -29,9 +29,9 @@ import vazkii.botania.api.BotaniaAPI;
public final class CorporeaHelper {
private static final List<IInventory> empty = Collections.unmodifiableList(new ArrayList());
private static final WeakHashMap<List<ICorporeaSpark>, List<IInventory>> cachedNetworks = new WeakHashMap();
private static final List<ICorporeaAutoCompleteController> autoCompleteControllers = new ArrayList<ICorporeaAutoCompleteController>();
private static final List<IInventory> empty = Collections.unmodifiableList(new ArrayList<>());
private static final WeakHashMap<List<ICorporeaSpark>, List<IInventory>> cachedNetworks = new WeakHashMap<>();
private static final List<ICorporeaAutoCompleteController> autoCompleteControllers = new ArrayList<>();
private static final Pattern patternControlCode = Pattern.compile("(?i)\\u00A7[0-9A-FK-OR]");
@@ -64,7 +64,7 @@ public final class CorporeaHelper {
return cache;
}
List<IInventory> inventories = new ArrayList();
List<IInventory> inventories = new ArrayList<>();
if(network != null)
for(ICorporeaSpark otherSpark : network)
if(otherSpark != null) {
@@ -125,7 +125,7 @@ public final class CorporeaHelper {
* called instead if the context for this exists to avoid having to get the value again.
*/
public static Map<IInventory, Integer> getInventoriesWithItemInNetwork(ItemStack stack,List<IInventory> inventories, boolean checkNBT) {
Map<IInventory, Integer> countMap = new HashMap<IInventory, Integer>();
Map<IInventory, Integer> countMap = new HashMap<>();
List<IWrappedInventory> wrappedInventories = BotaniaAPI.internalHandler.wrapInventory(inventories);
for (IWrappedInventory inv : wrappedInventories) {
CorporeaRequest request = new CorporeaRequest(stack, checkNBT, -1);
@@ -166,14 +166,14 @@ public final class CorporeaHelper {
* purposes of counting huge amounts.
*/
public static List<ItemStack> requestItem(Object matcher, int itemCount, ICorporeaSpark spark, boolean checkNBT, boolean doit) {
List<ItemStack> stacks = new ArrayList<ItemStack>();
List<ItemStack> stacks = new ArrayList<>();
CorporeaRequestEvent event = new CorporeaRequestEvent(matcher, itemCount, spark, checkNBT, doit);
if(MinecraftForge.EVENT_BUS.post(event))
return stacks;
List<IInventory> inventories = getInventoriesOnNetwork(spark);
List<IWrappedInventory> inventoriesW = BotaniaAPI.internalHandler.wrapInventory(inventories);
Map<ICorporeaInterceptor, ICorporeaSpark> interceptors = new HashMap<ICorporeaInterceptor, ICorporeaSpark>();
Map<ICorporeaInterceptor, ICorporeaSpark> interceptors = new HashMap<>();
CorporeaRequest request = new CorporeaRequest(matcher, checkNBT, itemCount);
for(IWrappedInventory inv : inventoriesW) {
@@ -39,12 +39,12 @@ public class DummyManaNetwork implements IManaNetwork {
@Override
public List<TileSignature> getAllCollectorsInWorld(World world) {
return new ArrayList();
return new ArrayList<>();
}
@Override
public List<TileSignature> getAllPoolsInWorld(World world) {
return new ArrayList();
return new ArrayList<>();
}
}
@@ -20,7 +20,7 @@ public final class VanillaPacketDispatcher {
public static void dispatchTEToNearbyPlayers(TileEntity tile) {
World world = tile.getWorldObj();
List players = world.playerEntities;
List<?> players = world.playerEntities;
for(Object player : players)
if(player instanceof EntityPlayerMP) {
EntityPlayerMP mp = (EntityPlayerMP) player;
@@ -20,7 +20,7 @@ public class LexiconCategory implements Comparable<LexiconCategory> {
private static int count = 0;
public final String unlocalizedName;
public final List<LexiconEntry> entries = new ArrayList<LexiconEntry>();
public final List<LexiconEntry> entries = new ArrayList<>();
private final int sortingId;
private ResourceLocation icon;
private int priority = 5;
@@ -27,11 +27,11 @@ public class LexiconEntry implements Comparable<LexiconEntry> {
private KnowledgeType type = BotaniaAPI.basicKnowledge;
public List<LexiconPage> pages = new ArrayList<LexiconPage>();
public List<LexiconPage> pages = new ArrayList<>();
private boolean priority = false;
private ItemStack icon = null;
private List<ItemStack> extraDisplayedRecipes = new ArrayList();
private List<ItemStack> extraDisplayedRecipes = new ArrayList<>();
/**
* @param unlocalizedName The unlocalized name of this entry. This will be localized by the client display.
@@ -126,12 +126,12 @@ public class LexiconEntry implements Comparable<LexiconEntry> {
}
public List<ItemStack> getDisplayedRecipes() {
ArrayList<ItemStack> list = new ArrayList();
ArrayList<ItemStack> list = new ArrayList<>();
for(LexiconPage page : pages) {
List<ItemStack> l = page.getDisplayedRecipes();
if(l != null) {
ArrayList<ItemStack> itemsAddedThisPage = new ArrayList();
ArrayList<ItemStack> itemsAddedThisPage = new ArrayList<>();
for(ItemStack s : l) {
addItem: {
@@ -23,7 +23,7 @@ import vazkii.botania.api.mana.IManaItem;
*/
public final class LexiconRecipeMappings {
private static Map<String, EntryData> mappings = new HashMap();
private static Map<String, EntryData> mappings = new HashMap<>();
/**
* Maps the given stack to the given page of the entry.
@@ -23,7 +23,7 @@ import vazkii.botania.api.lexicon.multiblock.component.MultiblockComponent;
*/
public interface IMultiblockRenderHook {
public static Map<Block, IMultiblockRenderHook> renderHooks = new HashMap();
public static Map<Block, IMultiblockRenderHook> renderHooks = new HashMap<>();
public void renderBlockForMultiblock(IBlockAccess world, Multiblock mb, Block block, int meta, RenderBlocks renderBlocks, MultiblockComponent comp, float alpha);
@@ -27,12 +27,12 @@ import vazkii.botania.api.lexicon.multiblock.component.MultiblockComponent;
*/
public class Multiblock {
public List<MultiblockComponent> components = new ArrayList();
public List<ItemStack> materials = new ArrayList();
public List<MultiblockComponent> components = new ArrayList<>();
public List<ItemStack> materials = new ArrayList<>();
public int minX, minY, minZ, maxX, maxY, maxZ, offX, offY, offZ;
public HashMap<List<Integer>, MultiblockComponent> locationCache = new HashMap<List<Integer>, MultiblockComponent>();
public HashMap<List<Integer>, MultiblockComponent> locationCache = new HashMap<>();
/**
* Adds a multiblock component to this multiblock. The component's x y z
@@ -39,7 +39,7 @@ public class MultiblockComponent {
}
public MultiblockComponent(ChunkCoordinates relPos, Block block, int meta, TileEntity tileEntity) {
this(relPos, block, meta, block.hasTileEntity() == (tileEntity != null), tileEntity);
this(relPos, block, meta, block.hasTileEntity(0) == (tileEntity != null), tileEntity);
}
public MultiblockComponent(ChunkCoordinates relPos, Block block, int meta, boolean doFancyRender, TileEntity tileEntity) {
@@ -28,7 +28,7 @@ public class RecipeBrew {
public RecipeBrew(Brew brew, Object... inputs) {
this.brew = brew;
List<Object> inputsToSet = new ArrayList();
List<Object> inputsToSet = new ArrayList<>();
for(Object obj : inputs) {
if(obj instanceof String || obj instanceof ItemStack)
inputsToSet.add(obj);
@@ -39,7 +39,7 @@ public class RecipeBrew {
}
public boolean matches(IInventory inv) {
List<Object> inputsMissing = new ArrayList(inputs);
List<Object> inputsMissing = new ArrayList<>(inputs);
for(int i = 0; i < inv.getSizeInventory(); i++) {
ItemStack stack = inv.getStackInSlot(i);
@@ -92,7 +92,7 @@ public class RecipeBrew {
}
public List<Object> getInputs() {
return new ArrayList(inputs);
return new ArrayList<>(inputs);
}
public Brew getBrew() {
@@ -14,7 +14,7 @@ public class RecipeElvenTrade {
public RecipeElvenTrade(ItemStack output, Object... inputs) {
this.output = output;
List<Object> inputsToSet = new ArrayList();
List<Object> inputsToSet = new ArrayList<>();
for(Object obj : inputs) {
if(obj instanceof String || obj instanceof ItemStack)
inputsToSet.add(obj);
@@ -25,8 +25,8 @@ public class RecipeElvenTrade {
}
public boolean matches(List<ItemStack> stacks, boolean remove) {
List<Object> inputsMissing = new ArrayList(inputs);
List<ItemStack> stacksToRemove = new ArrayList();
List<Object> inputsMissing = new ArrayList<>(inputs);
List<ItemStack> stacksToRemove = new ArrayList<>();
for(ItemStack stack : stacks) {
if(stack == null) {
@@ -80,7 +80,7 @@ public class RecipeElvenTrade {
}
public List<Object> getInputs() {
return new ArrayList(inputs);
return new ArrayList<>(inputs);
}
public ItemStack getOutput() {
@@ -25,7 +25,7 @@ public class RecipePetals {
public RecipePetals(ItemStack output, Object... inputs) {
this.output = output;
List<Object> inputsToSet = new ArrayList();
List<Object> inputsToSet = new ArrayList<>();
for(Object obj : inputs) {
if(obj instanceof String || obj instanceof ItemStack)
inputsToSet.add(obj);
@@ -36,7 +36,7 @@ public class RecipePetals {
}
public boolean matches(IInventory inv) {
List<Object> inputsMissing = new ArrayList(inputs);
List<Object> inputsMissing = new ArrayList<>(inputs);
for(int i = 0; i < inv.getSizeInventory(); i++) {
ItemStack stack = inv.getStackInSlot(i);
@@ -86,7 +86,7 @@ public class RecipePetals {
}
public List<Object> getInputs() {
return new ArrayList(inputs);
return new ArrayList<>(inputs);
}
public ItemStack getOutput() {
@@ -21,7 +21,7 @@ public class WikiHooks {
private static final IWikiProvider FALLBACK_PROVIDER = new SimpleWikiProvider("FTB Wiki", "http://ftb.gamepedia.com/%s");
private static final Map<String, IWikiProvider> modWikis = new HashMap();
private static final Map<String, IWikiProvider> modWikis = new HashMap<>();
public static IWikiProvider getWikiFor(Block block) {
UniqueIdentifier mod = GameRegistry.findUniqueIdentifierFor(block);
@@ -25,12 +25,12 @@ import vazkii.botania.common.lib.LibBlockNames;
public final class ModChallenges {
public static final EnumMap<EnumChallengeLevel, List<Challenge>> challenges = new EnumMap(EnumChallengeLevel.class);
public static final HashMap<String, Challenge> challengeLookup = new HashMap();
public static final EnumMap<EnumChallengeLevel, List<Challenge>> challenges = new EnumMap<>(EnumChallengeLevel.class);
public static final HashMap<String, Challenge> challengeLookup = new HashMap<>();
public static void init() {
for(EnumChallengeLevel level : EnumChallengeLevel.class.getEnumConstants())
challenges.put(level, new ArrayList());
challenges.put(level, new ArrayList<>());
addChallenge(EnumChallengeLevel.EASY, "flowerFarm", new ItemStack(ModBlocks.flower, 1, 6));
addChallenge(EnumChallengeLevel.EASY, "recordFarm", new ItemStack(Items.record_13));
@@ -78,7 +78,7 @@ public class ClientTickHandler {
if(player != null) {
ItemStack stack = player.getCurrentEquippedItem();
if(stack != null && stack.getItem() instanceof ItemTwigWand) {
List<TileSignature> list = new ArrayList(ManaNetworkHandler.instance.getAllCollectorsInWorld(Minecraft.getMinecraft().theWorld));
List<TileSignature> list = new ArrayList<>(ManaNetworkHandler.instance.getAllCollectorsInWorld(Minecraft.getMinecraft().theWorld));
for(TileSignature sig : list) {
if(!sig.remoteWorld)
continue;
@@ -68,7 +68,7 @@ public final class ContributorFancinessHandler {
}
public static void load(Properties props) {
flowerMap = new HashMap();
flowerMap = new HashMap<>();
for(String key : props.stringPropertyNames()) {
String value = props.getProperty(key);
@@ -39,10 +39,10 @@ public class CorporeaAutoCompleteHandler {
boolean isAutoCompleted = false;
String originalString = "";
List<CompletionData> completions = new ArrayList<CompletionData>();
List<CompletionData> completions = new ArrayList<>();
int position;
static TreeSet<String> itemNames = new TreeSet<String>(
static TreeSet<String> itemNames = new TreeSet<>(
new Comparator<String>() {
@Override
public int compare(String arg0, String arg1) {
@@ -55,7 +55,7 @@ public class CorporeaAutoCompleteHandler {
public static void updateItemList() {
itemNames.clear();
Iterator<Item> iterator = Item.itemRegistry.iterator();
ArrayList<ItemStack> curList = new ArrayList<ItemStack>();
ArrayList<ItemStack> curList = new ArrayList<>();
while(iterator.hasNext()) {
Item item = iterator.next();
@@ -144,9 +144,9 @@ public class CorporeaAutoCompleteHandler {
private ArrayList<CompletionData> getNames(String prefix) {
String s = prefix.trim();
if(s.isEmpty())
return new ArrayList();
return new ArrayList<>();
TreeSet<CompletionData> result = new TreeSet<CompletionData>();
TreeSet<CompletionData> result = new TreeSet<>();
String[] words = s.split(" ");
int i = words.length - 1;
String curPrefix = words[i];
@@ -156,11 +156,11 @@ public class CorporeaAutoCompleteHandler {
if(i >= 0)
curPrefix = words[i] + " " + curPrefix;
}
return new ArrayList<CompletionData>(result);
return new ArrayList<>(result);
}
private List<CompletionData> getNamesStartingWith(String prefix) {
ArrayList<CompletionData> result = new ArrayList<CompletionData>();
ArrayList<CompletionData> result = new ArrayList<>();
int length = prefix.length();
SortedSet<String> after = itemNames.tailSet(prefix);
for(String str : after) {
@@ -35,7 +35,7 @@ public final class DebugHandler {
@SubscribeEvent
public void onDrawDebugText(RenderGameOverlayEvent.Text event) {
World world = Minecraft.getMinecraft().theWorld;
if(Minecraft.getMinecraft().gameSettings.showDebugInfo) {
if(Minecraft.getMinecraft().gameSettings.showDebugInfo && ConfigHandler.showF3Debug) {
event.left.add(null);
String version = LibMisc.VERSION;
if(version.contains("GRADLE"))
@@ -128,7 +128,7 @@ public final class HUDHandler {
renderCrystalCubeHUD(event.resolution, (TileCorporeaCrystalCube) tile);
}
if(!TileCorporeaIndex.getInputHandler().getNearbyIndexes(mc.thePlayer).isEmpty() && mc.currentScreen != null && mc.currentScreen instanceof GuiChat) {
if(!TileCorporeaIndex.InputHandler.getNearbyIndexes(mc.thePlayer).isEmpty() && mc.currentScreen != null && mc.currentScreen instanceof GuiChat) {
profiler.startSection("nearIndex");
renderNearIndexDisplay(event.resolution);
profiler.endSection();
@@ -28,10 +28,6 @@ public class KeyHandler {
@SideOnly(Side.CLIENT)
@SubscribeEvent
public void key(InputEvent.KeyInputEvent event){
checkAndPerformKeyActions();
}
private void checkAndPerformKeyActions(){
if (keyToggleRingOfLoki.isPressed()){
toggleRingLoki();
}
@@ -174,11 +174,11 @@ public class LightningHandler {
public static class LightningBolt {
public ArrayList<Segment> segments = new ArrayList<Segment>();
public ArrayList<Segment> segments = new ArrayList<>();
public Vector3 start;
public Vector3 end;
ChunkCoordinates target;
HashMap<Integer, Integer> splitparents = new HashMap<Integer, Integer>();
HashMap<Integer, Integer> splitparents = new HashMap<>();
public double length;
public int numsegments0;
@@ -195,7 +195,7 @@ public class LightningHandler {
private World world;
private Entity source;
public static ConcurrentLinkedQueue<LightningBolt> boltlist = new ConcurrentLinkedQueue<LightningBolt>();
public static ConcurrentLinkedQueue<LightningBolt> boltlist = new ConcurrentLinkedQueue<>();
public float speed = 1.5F;
public static final int fadetime = 20;
@@ -347,7 +347,7 @@ public class LightningHandler {
return;
ArrayList<Segment> oldsegments = segments;
segments = new ArrayList<Segment>();
segments = new ArrayList<>();
Segment prev = null;
@@ -428,7 +428,7 @@ public class LightningHandler {
}
private void calculateCollisionAndDiffs() {
HashMap<Integer, Integer> lastactivesegment = new HashMap<Integer, Integer>();
HashMap<Integer, Integer> lastactivesegment = new HashMap<>();
Collections.sort(segments, new SegmentSorter());
@@ -29,7 +29,7 @@ import vazkii.botania.common.item.ModItems;
public final class RedStringRenderer {
public static final Queue<TileRedString> redStringTiles = new ArrayDeque();
public static final Queue<TileRedString> redStringTiles = new ArrayDeque<>();
static float sizeAlpha = 0F;
public static void renderAll() {
@@ -64,7 +64,7 @@ public final class TooltipAdditionDisplayHandler {
try {
tooltip = stack.getTooltip(mc.thePlayer, mc.gameSettings.advancedItemTooltips);
} catch(Exception e) {
tooltip = new ArrayList();
tooltip = new ArrayList<>();
}
int width = 0;
for(String s : tooltip)
@@ -124,7 +124,6 @@ import vazkii.botania.client.render.tile.RenderTileTerraPlate;
import vazkii.botania.client.render.tile.RenderTileTeruTeruBozu;
import vazkii.botania.client.render.tile.RenderTileTinyPotato;
import vazkii.botania.client.render.world.SkyblockRenderEvents;
import vazkii.botania.common.Botania;
import vazkii.botania.common.block.ModBlocks;
import vazkii.botania.common.block.tile.TileAlfPortal;
import vazkii.botania.common.block.tile.TileAltar;
@@ -31,8 +31,8 @@ public class FXSparkle extends EntityFX {
public static final ResourceLocation particles = new ResourceLocation(LibResources.MISC_PARTICLES);
public static Queue<FXSparkle> queuedRenders = new ArrayDeque();
public static Queue<FXSparkle> queuedCorruptRenders = new ArrayDeque();
public static Queue<FXSparkle> queuedRenders = new ArrayDeque<>();
public static Queue<FXSparkle> queuedCorruptRenders = new ArrayDeque<>();
// Queue values
float f;
@@ -31,8 +31,8 @@ public class FXWisp extends EntityFX {
public static final ResourceLocation particles = new ResourceLocation(LibResources.MISC_WISP_LARGE);
public static Queue<FXWisp> queuedRenders = new ArrayDeque();
public static Queue<FXWisp> queuedDepthIgnoringRenders = new ArrayDeque();
public static Queue<FXWisp> queuedRenders = new ArrayDeque<>();
public static Queue<FXWisp> queuedDepthIgnoringRenders = new ArrayDeque<>();
// Queue values
float f;
@@ -20,7 +20,7 @@ import cpw.mods.fml.client.config.GuiConfig;
public class GuiBotaniaConfig extends GuiConfig {
public GuiBotaniaConfig(GuiScreen parentScreen) {
super(parentScreen, new ConfigElement(ConfigHandler.config.getCategory(Configuration.CATEGORY_GENERAL)).getChildElements(), LibMisc.MOD_ID, false, false, GuiConfig.getAbridgedConfigPath(ConfigHandler.config.toString()));
super(parentScreen, new ConfigElement<>(ConfigHandler.config.getCategory(Configuration.CATEGORY_GENERAL)).getChildElements(), LibMisc.MOD_ID, false, false, GuiConfig.getAbridgedConfigPath(ConfigHandler.config.toString()));
}
}
@@ -5,7 +5,6 @@ import net.minecraft.block.Block;
import net.minecraft.inventory.Slot;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import vazkii.botania.common.block.ModBlocks;
public abstract class SlotMagicPlant extends Slot {
@@ -70,7 +70,7 @@ public class GuiLexicon extends GuiScreen {
public static GuiLexicon currentOpenLexicon = new GuiLexicon();
public static ItemStack stackUsed;
public static HashMap<String, String> notes = new HashMap();
public static HashMap<String, String> notes = new HashMap<>();
private static final String TAG_TYPE = "type";
@@ -79,11 +79,11 @@ public class GuiLexicon extends GuiScreen {
public static final int BOOKMARK_START = 1337;
public static final int NOTES_BUTTON_ID = 1336; // random button tho
public static final int MAX_BOOKMARK_COUNT = 8;
public static List<GuiLexicon> bookmarks = new ArrayList();
public static List<String> bookmarkKeys = new ArrayList();
public static List<GuiLexicon> bookmarks = new ArrayList<>();
public static List<String> bookmarkKeys = new ArrayList<>();
boolean bookmarksNeedPopulation = false;
public static Queue<LexiconEntry> tutorial = new ArrayDeque();
public static Queue<LexiconEntry> tutorial = new ArrayDeque<>();
public static final ResourceLocation texture = new ResourceLocation(LibResources.GUI_LEXICON);
public static final ResourceLocation textureToff = new ResourceLocation(LibResources.GUI_TOFF);
@@ -130,7 +130,7 @@ public class GuiLexicon extends GuiScreen {
}
public void onInitGui() {
allCategories = new ArrayList(BotaniaAPI.getAllCategories());
allCategories = new ArrayList<>(BotaniaAPI.getAllCategories());
Collections.sort(allCategories);
lastTime = ClientTickHandler.ticksInGame;
@@ -483,7 +483,7 @@ public class GuiLexicon extends GuiScreen {
}
void populateBookmarks() {
List remove = new ArrayList();
List<GuiButton> remove = new ArrayList<>();
List<GuiButton> buttons = buttonList;
for(GuiButton button : buttons)
if(button.id >= BOOKMARK_START)
@@ -20,7 +20,7 @@ import vazkii.botania.api.lexicon.LexiconEntry;
public class GuiLexiconHistory extends GuiLexiconIndex {
public static List<LexiconEntry> history = new ArrayList();
public static List<LexiconEntry> history = new ArrayList<>();
public GuiLexiconHistory() {
super(null);
@@ -57,7 +57,7 @@ public class GuiLexiconIndex extends GuiLexicon implements IParented {
LexiconEntry currentEntry;
float infoTime;
List<LexiconEntry> entriesToDisplay = new ArrayList();
List<LexiconEntry> entriesToDisplay = new ArrayList<>();
public GuiLexiconIndex() {
parent = new GuiLexicon();
@@ -37,7 +37,7 @@ public class GuiButtonAchievement extends GuiButtonLexicon {
GL11.glColor4f(1F, 1F, 1F, 1F);
drawTexturedModalRect(xPosition, yPosition, k == 2 ? 109 : 98, 191, 11, 11);
List<String> tooltip = new ArrayList();
List<String> tooltip = new ArrayList<>();
tooltip.add(EnumChatFormatting.YELLOW + StatCollector.translateToLocal("botaniamisc.achievements"));
int tooltipY = (tooltip.size() - 1) * 10;
@@ -24,7 +24,7 @@ public class GuiButtonBookmark extends GuiButtonLexicon {
field_146123_n = par2 >= xPosition && par3 >= yPosition && par2 < xPosition + width && par3 < yPosition + height;
int k = getHoverState(field_146123_n);
List<String> tooltip = new ArrayList();
List<String> tooltip = new ArrayList<>();
if(displayString.equals("+"))
tooltip.add(StatCollector.translateToLocal("botaniamisc.clickToAdd"));
else {
@@ -52,7 +52,7 @@ public class GuiButtonChallengeIcon extends GuiButtonLexicon {
}
List<String> tooltip = new ArrayList();
List<String> tooltip = new ArrayList<>();
tooltip.add(EnumChatFormatting.AQUA + StatCollector.translateToLocal(challenge.unlocalizedName));
int tooltipY = (tooltip.size() - 1) * 10;
@@ -33,7 +33,7 @@ public class GuiButtonChallengeInfo extends GuiButtonLexicon {
field_146123_n = par2 >= xPosition && par3 >= yPosition && par2 < xPosition + width && par3 < yPosition + height;
int k = getHoverState(field_146123_n);
List<String> tooltip = new ArrayList();
List<String> tooltip = new ArrayList<>();
tooltip.add(StatCollector.translateToLocal("botaniamisc.challengeInfo"));
int tooltipY = (tooltip.size() + 1) * 5;
@@ -37,7 +37,7 @@ public class GuiButtonChallenges extends GuiButtonLexicon {
GL11.glColor4f(1F, 1F, 1F, 1F);
drawTexturedModalRect(xPosition, yPosition, k == 2 ? 131 : 120, 180, 11, 11);
List<String> tooltip = new ArrayList();
List<String> tooltip = new ArrayList<>();
tooltip.add(EnumChatFormatting.YELLOW + StatCollector.translateToLocal("botaniamisc.challenges"));
int tooltipY = (tooltip.size() - 1) * 10;
@@ -46,7 +46,7 @@ public class GuiButtonDoot extends GuiButtonLexicon {
GL11.glDisable(GL11.GL_LIGHTING);
List<String> tooltip = new ArrayList();
List<String> tooltip = new ArrayList<>();
tooltip.add(EnumChatFormatting.LIGHT_PURPLE + "Happy Birthday Vazkii!");
tooltip.add(EnumChatFormatting.GRAY + "doot doot");
@@ -34,7 +34,7 @@ public class GuiButtonHistory extends GuiButtonLexicon {
field_146123_n = par2 >= xPosition && par3 >= yPosition && par2 < xPosition + width && par3 < yPosition + height;
int k = getHoverState(field_146123_n);
List<String> tooltip = new ArrayList();
List<String> tooltip = new ArrayList<>();
tooltip.add(StatCollector.translateToLocal("botaniamisc.historyLong"));
tooltip.add(EnumChatFormatting.GRAY + StatCollector.translateToLocal("botaniamisc.historyDesc"));
@@ -40,7 +40,7 @@ public class GuiButtonNotes extends GuiButtonLexicon {
GL11.glColor4f(1F, 1F, 1F, 1F);
drawTexturedModalRect(xPosition, yPosition, k == 2 ? 130 : 120, 191, 10, 11);
List<String> tooltip = new ArrayList();
List<String> tooltip = new ArrayList<>();
if(GuiLexicon.notesEnabled)
tooltip.add(EnumChatFormatting.GREEN + StatCollector.translateToLocal("botaniamisc.hideNotes"));
else {
@@ -37,7 +37,7 @@ public class GuiButtonOptions extends GuiButtonLexicon {
GL11.glColor4f(1F, 1F, 1F, 1F);
drawTexturedModalRect(xPosition, yPosition, k == 2 ? 109 : 98, 180, 11, 11);
List<String> tooltip = new ArrayList();
List<String> tooltip = new ArrayList<>();
for(int i = 0; i < 3; i++)
tooltip.add((i == 0 ? EnumChatFormatting.RED : EnumChatFormatting.GRAY) + StatCollector.translateToLocal("botaniamisc.lexiconOptions" + i));
@@ -44,7 +44,7 @@ public class GuiButtonUpdateWarning extends GuiButtonLexicon {
GL11.glColor4f(1F, 1F, 1F, 1F);
drawTexturedModalRect(xPosition, yPosition, red ? 153 : 142, 180, 11, 11);
List<String> tooltip = new ArrayList();
List<String> tooltip = new ArrayList<>();
String version = PersistentVariableHelper.lastBotaniaVersion;
for(int i = 0; i < 6; i++) {
tooltip.add(EnumChatFormatting.GRAY + String.format(StatCollector.translateToLocal("botaniamisc.changes" + i), version).replaceAll("&", "\u00a7"));
@@ -16,7 +16,6 @@ import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.MathHelper;
import codechicken.nei.LayoutManager;
import codechicken.nei.NEIClientConfig;
import codechicken.nei.guihook.GuiContainerManager;
@@ -39,11 +38,11 @@ public class NEIInputHandler implements IContainerInputHandler {
if(stack != null && stack.getItem() != null) {
int count = 1;
int max = stack.getMaxStackSize();
if(gui.isShiftKeyDown()) {
if(GuiScreen.isShiftKeyDown()) {
count = max;
if(gui.isCtrlKeyDown())
if(GuiScreen.isCtrlKeyDown())
count /= 4;
} else if(gui.isCtrlKeyDown())
} else if(GuiScreen.isCtrlKeyDown())
count = max / 2;
if(count > 0) {
@@ -25,7 +25,7 @@ public class RecipeHandlerBrewery extends TemplateRecipeHandler {
public class CachedBreweryRecipe extends CachedRecipe {
public List<PositionedStack> inputs = new ArrayList<PositionedStack>();
public List<PositionedStack> inputs = new ArrayList<>();
public PositionedStack output;
public int mana;
@@ -28,7 +28,7 @@ public class RecipeHandlerElvenTrade extends TemplateRecipeHandler {
public class CachedElvenTradeRecipe extends CachedRecipe {
public List<PositionedStack> inputs = new ArrayList<PositionedStack>();
public List<PositionedStack> inputs = new ArrayList<>();
public PositionedStack output;
public CachedElvenTradeRecipe(RecipeElvenTrade recipe) {
@@ -19,7 +19,7 @@ public class RecipeHandlerFloatingFlowers extends TemplateRecipeHandler {
public class CachedFloatingFlowerRecipe extends CachedRecipe {
public List<PositionedStack> inputs = new ArrayList<PositionedStack>();
public List<PositionedStack> inputs = new ArrayList<>();
public PositionedStack output;
public CachedFloatingFlowerRecipe(ItemStack floatingFlower, ItemStack specialFlower, ItemStack output) {
@@ -18,36 +18,19 @@ import java.util.List;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.FontRenderer;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.StatCollector;
import net.minecraftforge.oredict.OreDictionary;
import org.lwjgl.opengl.GL11;
import vazkii.botania.api.BotaniaAPI;
import vazkii.botania.api.lexicon.KnowledgeType;
import vazkii.botania.api.lexicon.LexiconEntry;
import vazkii.botania.api.lexicon.LexiconRecipeMappings;
import vazkii.botania.api.recipe.RecipeManaInfusion;
import vazkii.botania.client.core.handler.HUDHandler;
import vazkii.botania.client.integration.nei.recipe.RecipeHandlerManaPool.CachedManaPoolRecipe;
import vazkii.botania.client.lib.LibResources;
import vazkii.botania.client.render.tile.RenderTilePool;
import vazkii.botania.common.block.ModBlocks;
import vazkii.botania.common.block.tile.mana.TilePool;
import vazkii.botania.common.core.helper.InventoryHelper;
import vazkii.botania.common.item.ModItems;
import vazkii.botania.common.lexicon.LexiconData;
import vazkii.botania.common.lexicon.page.PageRecipe;
import vazkii.botania.common.lexicon.page.PageText;
import codechicken.lib.gui.GuiDraw;
import codechicken.nei.NEIServerUtils;
import codechicken.nei.PositionedStack;
import codechicken.nei.recipe.TemplateRecipeHandler;
import codechicken.nei.recipe.TemplateRecipeHandler.CachedRecipe;
import codechicken.nei.recipe.TemplateRecipeHandler.RecipeTransferRect;
public class RecipeHandlerLexicaBotania extends TemplateRecipeHandler {
@@ -55,7 +38,7 @@ public class RecipeHandlerLexicaBotania extends TemplateRecipeHandler {
public LexiconEntry entry;
public PositionedStack item;
public List<PositionedStack> otherStacks = new ArrayList<PositionedStack>();
public List<PositionedStack> otherStacks = new ArrayList<>();
public CachedLexicaBotaniaRecipe(ItemStack stack, LexiconEntry entry) {
otherStacks.add(new PositionedStack(new ItemStack(ModItems.lexicon), 51, 5));
@@ -2,7 +2,6 @@ package vazkii.botania.client.integration.nei.recipe;
import java.awt.Rectangle;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import net.minecraft.client.Minecraft;
@@ -23,7 +22,6 @@ import vazkii.botania.client.render.tile.RenderTilePool;
import vazkii.botania.common.block.ModBlocks;
import vazkii.botania.common.block.tile.mana.TilePool;
import codechicken.lib.gui.GuiDraw;
import codechicken.nei.NEIServerUtils;
import codechicken.nei.PositionedStack;
import codechicken.nei.recipe.TemplateRecipeHandler;
import vazkii.botania.common.core.helper.ItemNBTHelper;
@@ -32,9 +30,9 @@ public class RecipeHandlerManaPool extends TemplateRecipeHandler {
public class CachedManaPoolRecipe extends CachedRecipe {
public List<PositionedStack> inputs = new ArrayList<PositionedStack>();
public List<PositionedStack> inputs = new ArrayList<>();
public PositionedStack output;
public List<PositionedStack> otherStacks = new ArrayList<PositionedStack>();
public List<PositionedStack> otherStacks = new ArrayList<>();
public int mana;
public CachedManaPoolRecipe(RecipeManaInfusion recipe) {
@@ -25,7 +25,7 @@ public class RecipeHandlerPetalApothecary extends TemplateRecipeHandler {
public class CachedPetalApothecaryRecipe extends CachedRecipe {
public List<PositionedStack> inputs = new ArrayList<PositionedStack>();
public List<PositionedStack> inputs = new ArrayList<>();
public PositionedStack output;
public CachedPetalApothecaryRecipe(RecipePetals recipe, boolean addCenterItem) {
@@ -2,7 +2,6 @@ package vazkii.botania.client.integration.nei.recipe;
import java.awt.Rectangle;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import net.minecraft.block.Block;
@@ -19,7 +18,6 @@ import vazkii.botania.common.core.helper.ItemNBTHelper;
import vazkii.botania.common.item.block.ItemBlockSpecialFlower;
import vazkii.botania.common.lib.LibBlockNames;
import codechicken.lib.gui.GuiDraw;
import codechicken.nei.NEIServerUtils;
import codechicken.nei.PositionedStack;
import codechicken.nei.recipe.TemplateRecipeHandler;
@@ -27,9 +25,9 @@ public class RecipeHandlerPureDaisy extends TemplateRecipeHandler {
public class CachedPureDaisyRecipe extends CachedRecipe {
public List<PositionedStack> inputs = new ArrayList<PositionedStack>();
public List<PositionedStack> inputs = new ArrayList<>();
public PositionedStack output;
public List<PositionedStack> otherStacks = new ArrayList<PositionedStack>();
public List<PositionedStack> otherStacks = new ArrayList<>();
public CachedPureDaisyRecipe(RecipePureDaisy recipe) {
if(recipe == null)
@@ -17,10 +17,10 @@ import net.minecraft.client.model.ModelRenderer;
public class ModelPump extends ModelBase{
private ArrayList<ModelRenderer> parts = new ArrayList<ModelRenderer>();
private ArrayList<ModelRenderer> parts = new ArrayList<>();
private ArrayList<ModelRenderer> innerRing = new ArrayList<ModelRenderer>();
private ArrayList<ModelRenderer> outerRing = new ArrayList<ModelRenderer>();
private ArrayList<ModelRenderer> innerRing = new ArrayList<>();
private ArrayList<ModelRenderer> outerRing = new ArrayList<>();
public ModelPump() {
textureWidth = 64;
@@ -46,7 +46,7 @@ public class RenderTileSkullOverride extends TileEntitySkullRenderer {
if(gaia)
resourcelocation = minecraft.thePlayer.getLocationSkin();
else if(gameProfile != null) {
Map map = minecraft.func_152342_ad().func_152788_a(gameProfile);
Map<MinecraftProfileTexture.Type, MinecraftProfileTexture> map = minecraft.func_152342_ad().func_152788_a(gameProfile);
if (map.containsKey(MinecraftProfileTexture.Type.SKIN)) {
resourcelocation = minecraft.func_152342_ad().func_152792_a((MinecraftProfileTexture)map.get(MinecraftProfileTexture.Type.SKIN), MinecraftProfileTexture.Type.SKIN);
@@ -16,7 +16,6 @@ import net.minecraftforge.client.event.RenderWorldLastEvent;
import vazkii.botania.common.core.handler.ConfigHandler;
import vazkii.botania.common.world.WorldTypeSkyblock;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import java.util.stream.IntStream;
public final class SkyblockRenderEvents {
@@ -52,7 +52,6 @@ public class SkyblockSkyRenderer extends IRenderHandler {
return;
int glSkyList = ReflectionHelper.getPrivateValue(RenderGlobal.class, mc.renderGlobal, LibObfuscation.GL_SKY_LIST);
int glSkyList2 = ReflectionHelper.getPrivateValue(RenderGlobal.class, mc.renderGlobal, LibObfuscation.GL_SKY_LIST2); // Horizon line. We don't have it here
int starGLCallList = ReflectionHelper.getPrivateValue(RenderGlobal.class, mc.renderGlobal, LibObfuscation.STAR_GL_CALL_LIST);
GL11.glDisable(GL11.GL_TEXTURE_2D);
@@ -181,8 +180,6 @@ public class SkyblockSkyRenderer extends IRenderHandler {
GL11.glRotatef(220F, 1F, 0F, 0F);
GL11.glColor4f(1F, 1F, 1F, a);
int angles = 90;
float s = 3F;
float m = 1F;
float y = 2F;
float y0 = 0F;
float uPer = 1F / 360F;
@@ -5,8 +5,7 @@ import vazkii.botania.api.recipe.IFlowerComponent;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class CustomBotaniaAPI {
public static Map<Item, IFlowerComponent> extraFlowerComponents = new HashMap<Item, IFlowerComponent>();
public static Map<Item, IFlowerComponent> extraFlowerComponents = new HashMap<>();
}
@@ -21,7 +21,7 @@ import vazkii.botania.api.item.IRelic;
public class AchievementMod extends Achievement {
public static List<Achievement> achievements = new ArrayList();
public static List<Achievement> achievements = new ArrayList<>();
public AchievementMod(String name, int x, int y, ItemStack icon, Achievement parent) {
super("achievement.botania:" + name, "botania:" + name, x, y, icon, parent);
@@ -14,7 +14,6 @@ import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
@@ -27,7 +26,7 @@ import vazkii.botania.common.block.tile.TileAlfPortal;
import vazkii.botania.common.lexicon.LexiconData;
import vazkii.botania.common.lib.LibBlockNames;
public class BlockAlfPortal extends BlockModContainer implements IWandable, ILexiconable {
public class BlockAlfPortal extends BlockModContainer<TileAlfPortal> implements IWandable, ILexiconable {
IIcon iconOff, iconOn;
public static IIcon portalTex;
@@ -52,7 +51,7 @@ public class BlockAlfPortal extends BlockModContainer implements IWandable, ILex
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
public TileAlfPortal createNewTileEntity(World world, int meta) {
return new TileAlfPortal();
}
@@ -48,7 +48,7 @@ import vazkii.botania.common.lexicon.LexiconData;
import vazkii.botania.common.lib.LibBlockNames;
import cpw.mods.fml.common.registry.GameRegistry;
public class BlockAltar extends BlockModContainer implements ILexiconable {
public class BlockAltar extends BlockModContainer<TileAltar> implements ILexiconable {
Random random;
@@ -230,7 +230,7 @@ public class BlockAltar extends BlockModContainer implements ILexiconable {
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
public TileAltar createNewTileEntity(World world, int meta) {
return new TileAltar();
}
@@ -21,7 +21,6 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraft.util.MathHelper;
import net.minecraft.world.IBlockAccess;
@@ -37,7 +36,7 @@ import vazkii.botania.common.block.tile.TileSimpleInventory;
import vazkii.botania.common.lexicon.LexiconData;
import vazkii.botania.common.lib.LibBlockNames;
public class BlockAvatar extends BlockModContainer implements ILexiconable {
public class BlockAvatar extends BlockModContainer<TileAvatar> implements ILexiconable {
private static final int[] META_ROTATIONS = new int[] { 2, 5, 3, 4 };
@@ -166,7 +165,7 @@ public class BlockAvatar extends BlockModContainer implements ILexiconable {
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
public TileAvatar createNewTileEntity(World world, int meta) {
return new TileAvatar();
}
@@ -18,7 +18,6 @@ import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
@@ -35,7 +34,7 @@ import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class BlockBifrost extends BlockModContainer implements ILexiconable {
public class BlockBifrost extends BlockModContainer<TileBifrost> implements ILexiconable {
public BlockBifrost() {
super(Material.glass);
@@ -44,7 +43,7 @@ public class BlockBifrost extends BlockModContainer implements ILexiconable {
setLightLevel(1F);
setBlockUnbreakable();
setStepSound(soundTypeGlass);
MinecraftForge.EVENT_BUS.register(this);
MinecraftForge.EVENT_BUS.register(new EventHandler());
}
@Override
@@ -83,16 +82,6 @@ public class BlockBifrost extends BlockModContainer implements ILexiconable {
return 0;
}
@SubscribeEvent
@SideOnly(Side.CLIENT)
public void loadTextures(TextureStitchEvent.Pre event) {
if(event.map.getTextureType() == 0) {
TextureAtlasSprite icon = new InterpolatedIcon("botania:bifrost");
if(event.map.setTextureEntry("botania:bifrost", icon))
blockIcon = icon;
}
}
@Override
@SideOnly(Side.CLIENT)
public void registerBlockIcons(IIconRegister par1IconRegister) {
@@ -100,7 +89,7 @@ public class BlockBifrost extends BlockModContainer implements ILexiconable {
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
public TileBifrost createNewTileEntity(World world, int meta) {
return new TileBifrost();
}
@@ -109,4 +98,15 @@ public class BlockBifrost extends BlockModContainer implements ILexiconable {
return LexiconData.rainbowRod;
}
public class EventHandler {
@SubscribeEvent
@SideOnly(Side.CLIENT)
public void loadTextures(TextureStitchEvent.Pre event) {
if(event.map.getTextureType() == 0) {
TextureAtlasSprite icon = new InterpolatedIcon("botania:bifrost");
if(event.map.setTextureEntry("botania:bifrost", icon))
blockIcon = icon;
}
}
}
}
@@ -25,7 +25,7 @@ import vazkii.botania.client.core.helper.IconHelper;
import vazkii.botania.common.block.tile.TileCacophonium;
import vazkii.botania.common.lib.LibBlockNames;
public class BlockCacophonium extends BlockModContainer {
public class BlockCacophonium extends BlockModContainer<TileCacophonium> {
IIcon top;
@@ -79,7 +79,7 @@ public class BlockCacophonium extends BlockModContainer {
@Override
public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int metadata, int fortune) {
ArrayList<ItemStack> stacks = new ArrayList();
ArrayList<ItemStack> stacks = new ArrayList<>();
TileEntity tile = world.getTileEntity(x, y, z);
if(tile != null && tile instanceof TileCacophonium) {
@@ -93,7 +93,7 @@ public class BlockCacophonium extends BlockModContainer {
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
public TileCacophonium createNewTileEntity(World world, int meta) {
return new TileCacophonium();
}
@@ -15,7 +15,6 @@ import java.util.ArrayList;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import vazkii.botania.api.lexicon.ILexiconable;
import vazkii.botania.api.lexicon.LexiconEntry;
@@ -23,7 +22,7 @@ import vazkii.botania.common.block.tile.TileCell;
import vazkii.botania.common.lexicon.LexiconData;
import vazkii.botania.common.lib.LibBlockNames;
public class BlockCell extends BlockModContainer implements ILexiconable {
public class BlockCell extends BlockModContainer<TileCell> implements ILexiconable {
public BlockCell() {
super(Material.gourd);
@@ -33,11 +32,11 @@ public class BlockCell extends BlockModContainer implements ILexiconable {
@Override
public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int metadata, int fortune) {
return new ArrayList();
return new ArrayList<>();
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
public TileCell createNewTileEntity(World world, int meta) {
return new TileCell();
}
@@ -18,7 +18,6 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;
import vazkii.botania.api.lexicon.ILexiconable;
@@ -28,7 +27,7 @@ import vazkii.botania.common.block.tile.TileCocoon;
import vazkii.botania.common.lexicon.LexiconData;
import vazkii.botania.common.lib.LibBlockNames;
public class BlockCocoon extends BlockModContainer implements ILexiconable {
public class BlockCocoon extends BlockModContainer<TileCocoon> implements ILexiconable {
protected BlockCocoon() {
super(Material.cloth);
@@ -81,7 +80,7 @@ public class BlockCocoon extends BlockModContainer implements ILexiconable {
@Override
public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int metadata, int fortune) {
return new ArrayList();
return new ArrayList<>();
}
@Override
@@ -90,7 +89,7 @@ public class BlockCocoon extends BlockModContainer implements ILexiconable {
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
public TileCocoon createNewTileEntity(World world, int meta) {
return new TileCocoon();
}
@@ -45,7 +45,7 @@ public class BlockEnchantedSoil extends BlockMod implements ILexiconable {
setHardness(0.6F);
setStepSound(soundTypeGrass);
setBlockName(LibBlockNames.ENCHANTED_SOIL);
MinecraftForge.EVENT_BUS.register(this);
MinecraftForge.EVENT_BUS.register(new EventHandler());
}
@Override
@@ -59,20 +59,6 @@ public class BlockEnchantedSoil extends BlockMod implements ILexiconable {
// NO-OP
}
@SubscribeEvent
@SideOnly(Side.CLIENT)
public void loadTextures(TextureStitchEvent.Pre event) {
if(event.map.getTextureType() == 0) {
TextureAtlasSprite icon = new InterpolatedIcon("botania:enchantedSoil0");
if(event.map.setTextureEntry("botania:enchantedSoil0", icon))
blockIcon = icon;
icon = new InterpolatedIcon("botania:enchantedSoil1");
if(event.map.setTextureEntry("botania:enchantedSoil1", icon))
iconSide = icon;
}
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(int side, int meta) {
@@ -99,4 +85,19 @@ public class BlockEnchantedSoil extends BlockMod implements ILexiconable {
return LexiconData.overgrowthSeed;
}
public class EventHandler{
@SubscribeEvent
@SideOnly(Side.CLIENT)
public void loadTextures(TextureStitchEvent.Pre event) {
if(event.map.getTextureType() == 0) {
TextureAtlasSprite icon = new InterpolatedIcon("botania:enchantedSoil0");
if(event.map.setTextureEntry("botania:enchantedSoil0", icon))
blockIcon = icon;
icon = new InterpolatedIcon("botania:enchantedSoil1");
if(event.map.setTextureEntry("botania:enchantedSoil1", icon))
iconSide = icon;
}
}
}
}
@@ -14,7 +14,6 @@ import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
@@ -25,7 +24,7 @@ import vazkii.botania.common.block.tile.TileEnderEye;
import vazkii.botania.common.lexicon.LexiconData;
import vazkii.botania.common.lib.LibBlockNames;
public class BlockEnderEye extends BlockModContainer implements ILexiconable {
public class BlockEnderEye extends BlockModContainer<TileEnderEye> implements ILexiconable {
IIcon iconOff, iconOn;
@@ -59,7 +58,7 @@ public class BlockEnderEye extends BlockModContainer implements ILexiconable {
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
public TileEnderEye createNewTileEntity(World world, int meta) {
return new TileEnderEye();
}
@@ -18,7 +18,6 @@ import net.minecraft.block.material.Material;
import net.minecraft.entity.Entity;
import net.minecraft.init.Blocks;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.Explosion;
import net.minecraft.world.IBlockAccess;
@@ -26,7 +25,7 @@ import net.minecraft.world.World;
import vazkii.botania.common.block.tile.TileFakeAir;
import vazkii.botania.common.lib.LibBlockNames;
public class BlockFakeAir extends BlockModContainer {
public class BlockFakeAir extends BlockModContainer<TileFakeAir> {
public BlockFakeAir() {
super(Material.air);
@@ -93,7 +92,7 @@ public class BlockFakeAir extends BlockModContainer {
@Override
public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int metadata, int fortune) {
return new ArrayList(); // Empty List
return new ArrayList<>(); // Empty List
}
@Override
@@ -107,7 +106,7 @@ public class BlockFakeAir extends BlockModContainer {
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
public TileFakeAir createNewTileEntity(World world, int meta) {
return new TileFakeAir();
}
@@ -44,7 +44,7 @@ public class BlockFelPumpkin extends BlockMod implements ILexiconable {
setBlockName(LibBlockNames.FEL_PUMPKIN);
setHardness(1F);
setStepSound(soundTypeWood);
MinecraftForge.EVENT_BUS.register(this);
MinecraftForge.EVENT_BUS.register(new EventHandler());
}
@Override
@@ -85,21 +85,22 @@ public class BlockFelPumpkin extends BlockMod implements ILexiconable {
blockIcon = Blocks.pumpkin.getIcon(2, 0);
}
@SubscribeEvent
public void onDrops(LivingDropsEvent event) {
if(event.entity instanceof EntityBlaze && event.entity.getEntityData().getBoolean(TAG_FEL_SPAWNED))
if(event.drops.isEmpty())
event.drops.add(new EntityItem(event.entity.worldObj, event.entity.posX, event.entity.posY, event.entity.posZ, new ItemStack(Items.blaze_powder, 6)));
else for(EntityItem item : event.drops) {
ItemStack stack = item.getEntityItem();
if(stack.getItem() == Items.blaze_rod)
item.setEntityItemStack(new ItemStack(Items.blaze_powder, stack.stackSize * 10));
}
}
@Override
public LexiconEntry getEntry(World world, int x, int y, int z, EntityPlayer player, ItemStack lexicon) {
return LexiconData.gardenOfGlass;
}
public static class EventHandler {
@SubscribeEvent
public void onDrops(LivingDropsEvent event) {
if(event.entity instanceof EntityBlaze && event.entity.getEntityData().getBoolean(TAG_FEL_SPAWNED))
if(event.drops.isEmpty())
event.drops.add(new EntityItem(event.entity.worldObj, event.entity.posX, event.entity.posY, event.entity.posZ, new ItemStack(Items.blaze_powder, 6)));
else for(EntityItem item : event.drops) {
ItemStack stack = item.getEntityItem();
if(stack.getItem() == Items.blaze_rod)
item.setEntityItemStack(new ItemStack(Items.blaze_powder, stack.stackSize * 10));
}
}
}
}
@@ -35,6 +35,7 @@ import vazkii.botania.api.wand.IWandHUD;
import vazkii.botania.api.wand.IWandable;
import vazkii.botania.common.block.decor.BlockFloatingFlower;
import vazkii.botania.common.block.tile.TileFloatingSpecialFlower;
import vazkii.botania.common.block.tile.TileMod;
import vazkii.botania.common.block.tile.TileSpecialFlower;
import vazkii.botania.common.crafting.recipe.SpecialFloatingFlowerRecipe;
import vazkii.botania.common.integration.coloredlights.LightHelper;
@@ -115,7 +116,7 @@ public class BlockFloatingSpecialFlower extends BlockFloatingFlower implements I
@Override
public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int metadata, int fortune) {
ArrayList<ItemStack> list = new ArrayList();
ArrayList<ItemStack> list = new ArrayList<>();
TileEntity tile = world.getTileEntity(x, y, z);
if(tile != null) {
@@ -165,7 +166,7 @@ public class BlockFloatingSpecialFlower extends BlockFloatingFlower implements I
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
public TileMod createNewTileEntity(World world, int meta) {
return new TileFloatingSpecialFlower();
}
@@ -14,7 +14,6 @@ import net.minecraft.block.material.Material;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;
import vazkii.botania.api.lexicon.ILexiconable;
@@ -24,7 +23,7 @@ import vazkii.botania.common.block.tile.TileForestEye;
import vazkii.botania.common.lexicon.LexiconData;
import vazkii.botania.common.lib.LibBlockNames;
public class BlockForestEye extends BlockModContainer implements ILexiconable {
public class BlockForestEye extends BlockModContainer<TileForestEye> implements ILexiconable {
IIcon[] icons;
@@ -71,7 +70,7 @@ public class BlockForestEye extends BlockModContainer implements ILexiconable {
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
public TileForestEye createNewTileEntity(World world, int meta) {
return new TileForestEye();
}
@@ -57,7 +57,7 @@ public class BlockGaiaHead extends BlockSkull {
@Override
public ArrayList<ItemStack> getDrops(World p_149749_1_, int p_149749_2_, int p_149749_3_, int p_149749_4_, int p_149749_6_, int fortune) {
ArrayList<ItemStack> ret = new ArrayList<ItemStack>();
ArrayList<ItemStack> ret = new ArrayList<>();
if((p_149749_6_ & 8) == 0) {
ItemStack itemstack = new ItemStack(ModItems.gaiaHead, 1);
@@ -38,7 +38,7 @@ public class BlockGhostRail extends BlockRailBase implements ILexiconable {
public BlockGhostRail() {
super(true);
setCreativeTab(BotaniaCreativeTab.INSTANCE);
MinecraftForge.EVENT_BUS.register(this);
MinecraftForge.EVENT_BUS.register(new EventHandler());
setBlockName(LibBlockNames.GHOST_RAIL);
}
@@ -54,40 +54,42 @@ public class BlockGhostRail extends BlockRailBase implements ILexiconable {
blockIcon = IconHelper.forBlock(par1IconRegister, this);
}
@SubscribeEvent
public void onMinecartUpdate(MinecartUpdateEvent event) {
int x = MathHelper.floor_double(event.entity.posX);
int y = MathHelper.floor_double(event.entity.posY);
int z = MathHelper.floor_double(event.entity.posZ);
Block block = event.entity.worldObj.getBlock(x, y, z);
boolean air = block.isAir(event.entity.worldObj, x, y, z);
int floatTicks = event.entity.getEntityData().getInteger(TAG_FLOAT_TICKS);
if(block == this)
event.entity.getEntityData().setInteger(TAG_FLOAT_TICKS, 20);
else if(block instanceof BlockRailBase || block == ModBlocks.dreamwood) {
event.entity.getEntityData().setInteger(TAG_FLOAT_TICKS, 0);
if(floatTicks > 0)
event.entity.worldObj.playAuxSFX(2003, x, y, z, 0);
}
floatTicks = event.entity.getEntityData().getInteger(TAG_FLOAT_TICKS);
if(floatTicks > 0) {
Block blockBelow = event.entity.worldObj.getBlock(x, y - 1, z);
boolean airBelow = blockBelow.isAir(event.entity.worldObj, x, y - 1, z);
if(air && airBelow || !air && !airBelow)
event.entity.noClip = true;
event.entity.motionY = 0.2;
event.entity.motionX *= 1.4;
event.entity.motionZ *= 1.4;
event.entity.getEntityData().setInteger(TAG_FLOAT_TICKS, floatTicks - 1);
event.entity.worldObj.playAuxSFX(2000, x, y, z, 0);
} else event.entity.noClip = false;
}
@Override
public LexiconEntry getEntry(World world, int x, int y, int z, EntityPlayer player, ItemStack lexicon) {
return LexiconData.ghostRail;
}
public class EventHandler {
@SubscribeEvent
public void onMinecartUpdate(MinecartUpdateEvent event) {
int x = MathHelper.floor_double(event.entity.posX);
int y = MathHelper.floor_double(event.entity.posY);
int z = MathHelper.floor_double(event.entity.posZ);
Block block = event.entity.worldObj.getBlock(x, y, z);
boolean air = block.isAir(event.entity.worldObj, x, y, z);
int floatTicks = event.entity.getEntityData().getInteger(TAG_FLOAT_TICKS);
if(block == BlockGhostRail.this)
event.entity.getEntityData().setInteger(TAG_FLOAT_TICKS, 20);
else if(block instanceof BlockRailBase || block == ModBlocks.dreamwood) {
event.entity.getEntityData().setInteger(TAG_FLOAT_TICKS, 0);
if(floatTicks > 0)
event.entity.worldObj.playAuxSFX(2003, x, y, z, 0);
}
floatTicks = event.entity.getEntityData().getInteger(TAG_FLOAT_TICKS);
if(floatTicks > 0) {
Block blockBelow = event.entity.worldObj.getBlock(x, y - 1, z);
boolean airBelow = blockBelow.isAir(event.entity.worldObj, x, y - 1, z);
if(air && airBelow || !air && !airBelow)
event.entity.noClip = true;
event.entity.motionY = 0.2;
event.entity.motionX *= 1.4;
event.entity.motionZ *= 1.4;
event.entity.getEntityData().setInteger(TAG_FLOAT_TICKS, floatTicks - 1);
event.entity.worldObj.playAuxSFX(2000, x, y, z, 0);
} else event.entity.noClip = false;
}
}
}
@@ -21,7 +21,6 @@ import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ChatComponentTranslation;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
@@ -40,7 +39,7 @@ import vazkii.botania.common.item.ModItems;
import vazkii.botania.common.lexicon.LexiconData;
import vazkii.botania.common.lib.LibBlockNames;
public class BlockHourglass extends BlockModContainer implements IManaTrigger, IWandable, IWandHUD, ILexiconable {
public class BlockHourglass extends BlockModContainer<TileHourglass> implements IManaTrigger, IWandable, IWandHUD, ILexiconable {
Random random;
@@ -173,7 +172,7 @@ public class BlockHourglass extends BlockModContainer implements IManaTrigger, I
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
public TileHourglass createNewTileEntity(World world, int meta) {
return new TileHourglass();
}
@@ -17,7 +17,6 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraft.util.MathHelper;
import net.minecraft.world.IBlockAccess;
@@ -32,7 +31,7 @@ import vazkii.botania.common.block.tile.TileIncensePlate;
import vazkii.botania.common.lexicon.LexiconData;
import vazkii.botania.common.lib.LibBlockNames;
public class BlockIncensePlate extends BlockModContainer implements ILexiconable {
public class BlockIncensePlate extends BlockModContainer<TileIncensePlate> implements ILexiconable {
private static final int[] META_ROTATIONS = new int[] { 2, 5, 3, 4 };
@@ -142,7 +141,7 @@ public class BlockIncensePlate extends BlockModContainer implements ILexiconable
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
public TileIncensePlate createNewTileEntity(World world, int meta) {
return new TileIncensePlate();
}
@@ -71,7 +71,7 @@ public class BlockLightLauncher extends BlockMod implements ILexiconable {
}
public void pickUpEntities(World world, int x, int y, int z) {
List<TileLightRelay> relays = new ArrayList();
List<TileLightRelay> relays = new ArrayList<>();
for(ForgeDirection dir : LibMisc.CARDINAL_DIRECTIONS) {
TileEntity tile = world.getTileEntity(x + dir.offsetX, y, z + dir.offsetZ);
if(tile instanceof TileLightRelay) {
@@ -20,7 +20,6 @@ import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
@@ -36,7 +35,7 @@ import vazkii.botania.common.lexicon.LexiconData;
import vazkii.botania.common.lib.LibBlockNames;
import cpw.mods.fml.common.registry.GameRegistry;
public class BlockLightRelay extends BlockModContainer implements IWandable, ILexiconable {
public class BlockLightRelay extends BlockModContainer<TileLightRelay> implements IWandable, ILexiconable {
public static IIcon invIcon, worldIcon, invIconRed, worldIconRed;
@@ -139,7 +138,7 @@ public class BlockLightRelay extends BlockModContainer implements IWandable, ILe
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
public TileLightRelay createNewTileEntity(World world, int meta) {
return new TileLightRelay();
}
@@ -114,7 +114,7 @@ public class BlockModDoubleFlower extends BlockDoublePlant implements ILexiconab
p_149636_2_.addExhaustion(0.025F);
if(this.canSilkHarvest(p_149636_1_, p_149636_2_, p_149636_3_, p_149636_4_, p_149636_5_, p_149636_6_) && EnchantmentHelper.getSilkTouchModifier(p_149636_2_)) {
ArrayList<ItemStack> items = new ArrayList<ItemStack>();
ArrayList<ItemStack> items = new ArrayList<>();
ItemStack itemstack = createStackedBlock(p_149636_6_);
if(itemstack != null)
@@ -164,14 +164,14 @@ public class BlockModDoubleFlower extends BlockDoublePlant implements ILexiconab
@Override
public ArrayList<ItemStack> onSheared(ItemStack item, IBlockAccess world, int x, int y, int z, int fortune) {
ArrayList<ItemStack> ret = new ArrayList<ItemStack>();
ArrayList<ItemStack> ret = new ArrayList<>();
ret.add(new ItemStack(this, 1, world.getBlockMetadata(x, y, z) & 7));
return ret;
}
@Override
public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int meta, int fortune) {
return new ArrayList();
return new ArrayList<>();
}
@Override
@@ -47,7 +47,7 @@ import vazkii.botania.common.lexicon.LexiconData;
import vazkii.botania.common.lib.LibBlockNames;
import cpw.mods.fml.common.registry.GameRegistry;
public class BlockOpenCrate extends BlockModContainer implements ILexiconable, IWandable, IWandHUD {
public class BlockOpenCrate extends BlockModContainer<TileOpenCrate> implements ILexiconable, IWandable, IWandHUD {
IIcon iconSide;
IIcon iconBottom;
@@ -168,7 +168,7 @@ public class BlockOpenCrate extends BlockModContainer implements ILexiconable, I
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
public TileOpenCrate createNewTileEntity(World world, int meta) {
return meta == 0 ? new TileOpenCrate() : new TileCraftCrate();
}
@@ -46,12 +46,12 @@ import cpw.mods.fml.common.gameevent.TickEvent.Type;
public class BlockPistonRelay extends BlockMod implements IWandable, ILexiconable {
public static Map<String, String> playerPositions = new HashMap();
public static Map<String, String> mappedPositions = new HashMap();
public static Map<String, String> playerPositions = new HashMap<>();
public static Map<String, String> mappedPositions = new HashMap<>();
static List<String> removeThese = new ArrayList();
static List<String> checkedCoords = new ArrayList();
static Map<String, Integer> coordsToCheck = new HashMap();
static List<String> removeThese = new ArrayList<>();
static List<String> checkedCoords = new ArrayList<>();
static Map<String, Integer> coordsToCheck = new HashMap<>();
public BlockPistonRelay() {
super(Material.gourd);
@@ -60,8 +60,9 @@ public class BlockPistonRelay extends BlockMod implements IWandable, ILexiconabl
setResistance(10F);
setStepSound(soundTypeMetal);
MinecraftForge.EVENT_BUS.register(this);
FMLCommonHandler.instance().bus().register(this);
EventHandler handler = new EventHandler();
MinecraftForge.EVENT_BUS.register(handler);
FMLCommonHandler.instance().bus().register(handler);
}
@Override
@@ -140,16 +141,6 @@ public class BlockPistonRelay extends BlockMod implements IWandable, ILexiconabl
return true;
}
@SubscribeEvent
public void onWorldLoad(WorldEvent.Load event) {
WorldData.get(event.world);
}
@SubscribeEvent
public void onWorldUnload(WorldEvent.Unload event) {
WorldData.get(event.world).markDirty();
}
public static class WorldData extends WorldSavedData {
private static final String ID = "PistonRelayPairs";
@@ -194,80 +185,6 @@ public class BlockPistonRelay extends BlockMod implements IWandable, ILexiconabl
}
}
@SubscribeEvent
public void tickEnd(TickEvent event) {
if(event.type == Type.SERVER && event.phase == Phase.END) {
List<String> coordsToCheckCopy = new ArrayList(coordsToCheck.keySet());
for(String s : coordsToCheckCopy) {
decrCoords(s);
if(checkedCoords.contains(s))
continue;
Block block = getBlockAt(s);
if(block == Blocks.piston_extension) {
int meta = getBlockMetaAt(s);
boolean sticky = (meta & 8) == 8;
ForgeDirection dir = ForgeDirection.getOrientation(meta & ~8);
MinecraftServer server = MinecraftServer.getServer();
if(server != null && getTimeInCoords(s) == 0) {
String newPos;
{
String[] tokens = s.split(":");
int worldId = Integer.parseInt(tokens[0]), x = Integer.parseInt(tokens[1]), y = Integer.parseInt(tokens[2]), z = Integer.parseInt(tokens[3]);
World world = server.worldServerForDimension(worldId);
if(world.isAirBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ))
world.setBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, ModBlocks.pistonRelay);
else if(!world.isRemote) {
ItemStack stack = new ItemStack(ModBlocks.pistonRelay);
world.spawnEntityInWorld(new EntityItem(world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, stack));
}
checkedCoords.add(s);
newPos = getCoordsAsString(world.provider.dimensionId, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ);
}
if(mappedPositions.containsKey(s)) {
String pos = mappedPositions.get(s);
String[] tokens = pos.split(":");
int worldId = Integer.parseInt(tokens[0]), x = Integer.parseInt(tokens[1]), y = Integer.parseInt(tokens[2]), z = Integer.parseInt(tokens[3]);
World world = server.worldServerForDimension(worldId);
Block srcBlock = world.getBlock(x, y, z);
int srcMeta = world.getBlockMetadata(x, y, z);
TileEntity tile = world.getTileEntity(x, y, z);
Material mat = srcBlock.getMaterial();
if(!sticky && tile == null && mat.getMaterialMobility() == 0 && srcBlock.getBlockHardness(world, x, y, z) != -1 && !srcBlock.isAir(world, x, y, z)) {
Material destMat = world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ).getMaterial();
if(world.isAirBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ) || destMat.isReplaceable()) {
world.setBlock(x, y, z, Blocks.air);
world.setBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, srcBlock, srcMeta, 1 | 2);
mappedPositions.put(s, getCoordsAsString(world.provider.dimensionId, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ));
}
}
pos = mappedPositions.get(s);
mappedPositions.remove(s);
mappedPositions.put(newPos, pos);
save(world);
}
}
}
}
}
// ConcurrentModificationException failsafe
ArrayList<String> remove = new ArrayList(removeThese);
for(String s : remove) {
coordsToCheck.remove(s);
if(checkedCoords.contains(s))
checkedCoords.remove(s);
}
removeThese.clear();
}
public void save(World world) {
WorldData data = WorldData.get(world);
if(data != null)
@@ -278,4 +195,90 @@ public class BlockPistonRelay extends BlockMod implements IWandable, ILexiconabl
public LexiconEntry getEntry(World world, int x, int y, int z, EntityPlayer player, ItemStack lexicon) {
return LexiconData.pistonRelay;
}
public class EventHandler {
@SubscribeEvent
public void onWorldLoad(WorldEvent.Load event) {
WorldData.get(event.world);
}
@SubscribeEvent
public void onWorldUnload(WorldEvent.Unload event) {
WorldData.get(event.world).markDirty();
}
@SubscribeEvent
public void tickEnd(TickEvent event) {
if(event.type == Type.SERVER && event.phase == Phase.END) {
List<String> coordsToCheckCopy = new ArrayList<>(coordsToCheck.keySet());
for(String s : coordsToCheckCopy) {
decrCoords(s);
if(checkedCoords.contains(s))
continue;
Block block = getBlockAt(s);
if(block == Blocks.piston_extension) {
int meta = getBlockMetaAt(s);
boolean sticky = (meta & 8) == 8;
ForgeDirection dir = ForgeDirection.getOrientation(meta & ~8);
MinecraftServer server = MinecraftServer.getServer();
if(server != null && getTimeInCoords(s) == 0) {
String newPos;
{
String[] tokens = s.split(":");
int worldId = Integer.parseInt(tokens[0]), x = Integer.parseInt(tokens[1]), y = Integer.parseInt(tokens[2]), z = Integer.parseInt(tokens[3]);
World world = server.worldServerForDimension(worldId);
if(world.isAirBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ))
world.setBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, ModBlocks.pistonRelay);
else if(!world.isRemote) {
ItemStack stack = new ItemStack(ModBlocks.pistonRelay);
world.spawnEntityInWorld(new EntityItem(world, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, stack));
}
checkedCoords.add(s);
newPos = getCoordsAsString(world.provider.dimensionId, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ);
}
if(mappedPositions.containsKey(s)) {
String pos = mappedPositions.get(s);
String[] tokens = pos.split(":");
int worldId = Integer.parseInt(tokens[0]), x = Integer.parseInt(tokens[1]), y = Integer.parseInt(tokens[2]), z = Integer.parseInt(tokens[3]);
World world = server.worldServerForDimension(worldId);
Block srcBlock = world.getBlock(x, y, z);
int srcMeta = world.getBlockMetadata(x, y, z);
TileEntity tile = world.getTileEntity(x, y, z);
Material mat = srcBlock.getMaterial();
if(!sticky && tile == null && mat.getMaterialMobility() == 0 && srcBlock.getBlockHardness(world, x, y, z) != -1 && !srcBlock.isAir(world, x, y, z)) {
Material destMat = world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ).getMaterial();
if(world.isAirBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ) || destMat.isReplaceable()) {
world.setBlock(x, y, z, Blocks.air);
world.setBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, srcBlock, srcMeta, 1 | 2);
mappedPositions.put(s, getCoordsAsString(world.provider.dimensionId, x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ));
}
}
pos = mappedPositions.get(s);
mappedPositions.remove(s);
mappedPositions.put(newPos, pos);
save(world);
}
}
}
}
}
// ConcurrentModificationException failsafe
ArrayList<String> remove = new ArrayList<>(removeThese);
for(String s : remove) {
coordsToCheck.remove(s);
if(checkedCoords.contains(s))
checkedCoords.remove(s);
}
removeThese.clear();
}
}
}
@@ -20,7 +20,6 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;
import thaumcraft.api.crafting.IInfusionStabiliser;
@@ -36,7 +35,7 @@ import cpw.mods.fml.common.Optional;
import cpw.mods.fml.common.registry.GameRegistry;
@Optional.Interface(modid = "Thaumcraft", iface = "thaumcraft.api.crafting.IInfusionStabiliser", striprefs = true)
public class BlockPylon extends BlockModContainer implements ILexiconable, IInfusionStabiliser {
public class BlockPylon extends BlockModContainer<TilePylon> implements ILexiconable, IInfusionStabiliser {
public BlockPylon() {
super(Material.iron);
@@ -101,7 +100,7 @@ public class BlockPylon extends BlockModContainer implements ILexiconable, IInfu
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
public TilePylon createNewTileEntity(World world, int meta) {
return new TilePylon();
}
@@ -19,7 +19,6 @@ import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
@@ -32,7 +31,7 @@ import vazkii.botania.common.item.ModItems;
import vazkii.botania.common.lexicon.LexiconData;
import vazkii.botania.common.lib.LibBlockNames;
public class BlockSparkChanger extends BlockModContainer implements ILexiconable {
public class BlockSparkChanger extends BlockModContainer<TileSparkChanger> implements ILexiconable {
IIcon[] icons;
Random random;
@@ -168,7 +167,7 @@ public class BlockSparkChanger extends BlockModContainer implements ILexiconable
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
public TileSparkChanger createNewTileEntity(World world, int meta) {
return new TileSparkChanger();
}
@@ -51,8 +51,8 @@ import cpw.mods.fml.common.registry.GameRegistry;
public class BlockSpecialFlower extends BlockFlower implements ITileEntityProvider, ISpecialFlower, IWandable, ILexiconable, IWandHUD {
public static Map<String, IIcon> icons = new HashMap();
public static Map<String, IIcon> iconsAlt = new HashMap();
public static Map<String, IIcon> icons = new HashMap<>();
public static Map<String, IIcon> iconsAlt = new HashMap<>();
static {
BotaniaAPI.subtilesForCreativeMenu.addAll(Arrays.asList(new String[] {
@@ -207,7 +207,7 @@ public class BlockSpecialFlower extends BlockFlower implements ITileEntityProvid
@Override
public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int metadata, int fortune) {
ArrayList<ItemStack> list = new ArrayList();
ArrayList<ItemStack> list = new ArrayList<>();
TileEntity tile = world.getTileEntity(x, y, z);
if(tile != null) {
@@ -18,7 +18,6 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;
import vazkii.botania.api.lexicon.ILexiconable;
@@ -28,7 +27,7 @@ import vazkii.botania.common.block.tile.TileTeruTeruBozu;
import vazkii.botania.common.lexicon.LexiconData;
import vazkii.botania.common.lib.LibBlockNames;
public class BlockTeruTeruBozu extends BlockModContainer implements ILexiconable {
public class BlockTeruTeruBozu extends BlockModContainer<TileTeruTeruBozu> implements ILexiconable {
public BlockTeruTeruBozu() {
super(Material.cloth);
@@ -122,7 +121,7 @@ public class BlockTeruTeruBozu extends BlockModContainer implements ILexiconable
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
public TileTeruTeruBozu createNewTileEntity(World world, int meta) {
return new TileTeruTeruBozu();
}
@@ -13,7 +13,6 @@ package vazkii.botania.common.block;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import vazkii.botania.api.lexicon.ILexiconable;
import vazkii.botania.api.lexicon.LexiconEntry;
@@ -21,7 +20,7 @@ import vazkii.botania.common.block.tile.TileTinyPlanet;
import vazkii.botania.common.lexicon.LexiconData;
import vazkii.botania.common.lib.LibBlockNames;
public class BlockTinyPlanet extends BlockModContainer implements ILexiconable {
public class BlockTinyPlanet extends BlockModContainer<TileTinyPlanet> implements ILexiconable {
protected BlockTinyPlanet() {
super(Material.rock);
@@ -44,7 +43,7 @@ public class BlockTinyPlanet extends BlockModContainer implements ILexiconable {
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
public TileTinyPlanet createNewTileEntity(World world, int meta) {
return new TileTinyPlanet();
}
@@ -516,7 +516,7 @@ public final class ModBlocks {
public static void registerMultiparts() {
if(Loader.isModLoaded("ForgeMultipart")) {
try {
Class clazz = Class.forName("vazkii.botania.common.integration.multipart.MultipartHandler");
Class<?> clazz = Class.forName("vazkii.botania.common.integration.multipart.MultipartHandler");
clazz.newInstance();
} catch(Throwable e) {}
}
@@ -16,7 +16,6 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.stats.Achievement;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import vazkii.botania.api.lexicon.ILexiconable;
import vazkii.botania.api.lexicon.LexiconEntry;
@@ -27,7 +26,7 @@ import vazkii.botania.common.block.tile.corporea.TileCorporeaRetainer;
import vazkii.botania.common.lexicon.LexiconData;
import vazkii.botania.common.lib.LibBlockNames;
public class BlockCorporeaRetainer extends BlockModContainer implements ILexiconable, ICraftAchievement {
public class BlockCorporeaRetainer extends BlockModContainer<TileCorporeaRetainer> implements ILexiconable, ICraftAchievement {
public BlockCorporeaRetainer() {
super(Material.iron);
@@ -60,7 +59,7 @@ public class BlockCorporeaRetainer extends BlockModContainer implements ILexicon
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
public TileCorporeaRetainer createNewTileEntity(World world, int meta) {
return new TileCorporeaRetainer();
}
@@ -22,7 +22,6 @@ import net.minecraft.init.Blocks;
import net.minecraft.init.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
@@ -35,6 +34,7 @@ import vazkii.botania.common.Botania;
import vazkii.botania.common.block.BlockModContainer;
import vazkii.botania.common.block.decor.IFloatingFlower.IslandType;
import vazkii.botania.common.block.tile.TileFloatingFlower;
import vazkii.botania.common.block.tile.TileMod;
import vazkii.botania.common.core.handler.ConfigHandler;
import vazkii.botania.common.integration.coloredlights.ColoredLightHelper;
import vazkii.botania.common.item.IFloatingFlowerVariant;
@@ -46,7 +46,7 @@ import java.util.List;
import java.util.Random;
@Optional.Interface(modid = "Thaumcraft", iface = "thaumcraft.api.crafting.IInfusionStabiliser", striprefs = true)
public class BlockFloatingFlower extends BlockModContainer implements ILexiconable, IInfusionStabiliser {
public class BlockFloatingFlower extends BlockModContainer<TileMod> implements ILexiconable, IInfusionStabiliser {
public BlockFloatingFlower() {
this(LibBlockNames.MINI_ISLAND);
@@ -158,7 +158,7 @@ public class BlockFloatingFlower extends BlockModContainer implements ILexiconab
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
public TileMod createNewTileEntity(World world, int meta) {
return new TileFloatingFlower();
}
@@ -21,7 +21,6 @@ import net.minecraft.entity.passive.EntitySheep;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
@@ -35,7 +34,7 @@ import vazkii.botania.common.lexicon.LexiconData;
import vazkii.botania.common.lib.LibBlockNames;
import cpw.mods.fml.common.registry.GameRegistry;
public class BlockManaBeacon extends BlockModContainer implements ILexiconable {
public class BlockManaBeacon extends BlockModContainer<TileManaBeacon> implements ILexiconable {
IIcon[] icons;
@@ -110,7 +109,7 @@ public class BlockManaBeacon extends BlockModContainer implements ILexiconable {
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
public TileManaBeacon createNewTileEntity(World world, int meta) {
return new TileManaBeacon();
}
}
@@ -18,7 +18,6 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Blocks;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.IIcon;
import net.minecraft.world.IBlockAccess;
@@ -33,7 +32,7 @@ import vazkii.botania.common.lib.LibBlockNames;
import vazkii.botania.common.world.WorldTypeSkyblock;
import cpw.mods.fml.common.Optional;
public class BlockManaFlame extends BlockModContainer implements ILexiconable {
public class BlockManaFlame extends BlockModContainer<TileManaFlame> implements ILexiconable {
public BlockManaFlame() {
super(Material.cloth);
@@ -108,11 +107,11 @@ public class BlockManaFlame extends BlockModContainer implements ILexiconable {
@Override
public ArrayList<ItemStack> getDrops(World world, int x, int y, int z, int metadata, int fortune) {
return new ArrayList();
return new ArrayList<>();
}
@Override
public TileEntity createNewTileEntity(World world, int meta) {
public TileManaFlame createNewTileEntity(World world, int meta) {
return new TileManaFlame();
}
@@ -49,7 +49,7 @@ public class BlockPrismarine extends BlockMod implements ILexiconable {
setResistance(10.0F);
setStepSound(soundTypeStone);
setBlockName(LibBlockNames.PRISMARINE);
MinecraftForge.EVENT_BUS.register(this);
MinecraftForge.EVENT_BUS.register(new EventHandler());
}
@Override
@@ -82,16 +82,6 @@ public class BlockPrismarine extends BlockMod implements ILexiconable {
icons[i] = IconHelper.forBlock(par1IconRegister, this, i);
}
@SubscribeEvent
@SideOnly(Side.CLIENT)
public void loadTextures(TextureStitchEvent.Pre event) {
if(event.map.getTextureType() == 0) {
TextureAtlasSprite icon = new InterpolatedIcon("botania:prismarine0");
if(event.map.setTextureEntry("botania:prismarine0", icon))
icons[0] = icon;
}
}
@Override
public IIcon getIcon(int par1, int par2) {
return icons[Math.min(TYPES - 1, par2)];
@@ -107,4 +97,16 @@ public class BlockPrismarine extends BlockMod implements ILexiconable {
public LexiconEntry getEntry(World world, int x, int y, int z, EntityPlayer player, ItemStack lexicon) {
return LexiconData.prismarine;
}
public class EventHandler {
@SubscribeEvent
@SideOnly(Side.CLIENT)
public void loadTextures(TextureStitchEvent.Pre event) {
if(event.map.getTextureType() == 0) {
TextureAtlasSprite icon = new InterpolatedIcon("botania:prismarine0");
if(event.map.setTextureEntry("botania:prismarine0", icon))
icons[0] = icon;
}
}
}
}
@@ -36,17 +36,7 @@ public class BlockShimmerrock extends BlockMod implements ILexiconable {
setResistance(10.0F);
setStepSound(soundTypeStone);
setBlockName(LibBlockNames.SHIMMERROCK);
MinecraftForge.EVENT_BUS.register(this);
}
@SubscribeEvent
@SideOnly(Side.CLIENT)
public void loadTextures(TextureStitchEvent.Pre event) {
if(event.map.getTextureType() == 0) {
TextureAtlasSprite icon = new InterpolatedIcon("botania:shimmerrock");
if(event.map.setTextureEntry("botania:shimmerrock", icon))
blockIcon = icon;
}
MinecraftForge.EVENT_BUS.register(new EventHandler());
}
@Override
@@ -60,4 +50,15 @@ public class BlockShimmerrock extends BlockMod implements ILexiconable {
return LexiconData.rainbowRod;
}
public class EventHandler {
@SubscribeEvent
@SideOnly(Side.CLIENT)
public void loadTextures(TextureStitchEvent.Pre event) {
if(event.map.getTextureType() == 0) {
TextureAtlasSprite icon = new InterpolatedIcon("botania:shimmerrock");
if(event.map.setTextureEntry("botania:shimmerrock", icon))
blockIcon = icon;
}
}
}
}
Loaded 100 of 241 files, more files were not shown because too many files have changed in this diff. Show more