mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
some fixes, smeltable diamonds and emeralds
This commit is contained in:
parent
664dbd6657
commit
17a9d824aa
21
README.md
21
README.md
@ -94,6 +94,21 @@ If you want to make some changes to the mod, follow this guide:
|
||||
## Compatibility notice
|
||||
NTM has certain behaviors intended to fix vanilla code or to increase compatibility in certain cases where it otherwise would not be possible. These behaviors have the potential of not playing well with other mods, and while no such cases are currently known, here's a list of them.
|
||||
|
||||
### Thermos
|
||||
Thermos servers (along with its forks such as Crucible) have a "performance" feature that causes all tile entity ticking to slow down if there's no player present in the same chunk. For obvious reasons, this will heavily impact machines and cause phantom issues that, not having knowledge of this "performance" feature, are near impossible to diagnose. By default, NTM will crash on servers running the Thermos base code and print a lengthy message informing server owners about this "performance" feature as well as how to fix the issues it causes. The error message is printed in plain English on the top of the crash log, failure to read (as well as understand) it will leave the server inoperable.
|
||||
|
||||
### Optifine
|
||||
One of the most common "performance" mods on 1.7.10, Optifine, achieves an increase in performance by breaking small things in spots that are usually hard to notice, although this can cause severe issues with NTM. A short list of problems, along with some solutions, follows:
|
||||
* Get rid of Optifine and use one of the many [other, less intrusive performance mods](https://gist.github.com/makamys/7cb74cd71d93a4332d2891db2624e17c).
|
||||
* Blocks with connected textures may become invisible. This can be fixed by toggling triangulation (I do not know what or where this setting is, I just have been told that it exists and that it can fix the problem) or multicore chunk rendering (same here).
|
||||
* Entity "optimization" has a tendency to break chunkloading, this is especially noticeable with missiles which rely heavily on chunkloading to work, causing them to freeze mid-air. It's unclear what setting might fix this, and analysis of Optifine's source code (or rather, lack thereof) has not proven useful either.
|
||||
|
||||
### Angelica
|
||||
Like most performance mods, Angelica also does deep-rooted changes to the game's rendering to improve performance, changes which have unintended side effects with mods that otherwise rely on the vanilla functionality that was changed. Unlike with Optifine, Angelica's source code is accessible and the mod is still in active development, so the list of issues might be outdated:
|
||||
* 3D models in inventories might render with no texture, this issue apparently also breaks font rendering for item tooltips
|
||||
* 3D models for tile entities have a tendency to render with blend enabled (i.e. semi-transparent), especially models that are separated into multiple parts which use display lists (i.e. an older system for rendering larger models more efficiently)
|
||||
* Blocks with connected textures once again become invisible (exact fix for Angelica is unknown)
|
||||
|
||||
### Skybox chainloader
|
||||
NTM adds a few small things to the skybox using a custom skybox renderer. Minecraft can only have a single skybox renderer loaded, so setting the skybox to the NTM custom one would break compatibility with other mods' skyboxes. To mend this, NTM employs a **chainloader**. This chainloader will detect if a different skybox is loaded, save a reference to that skybox and then use NTM's skybox, which when used will also make sure to run the previous modded skybox renderer. In the event that NTM's skybox were to cause trouble, it can be disabled with the config option `1.31_enableSkyboxes`.
|
||||
|
||||
@ -106,5 +121,11 @@ An often overlooked aspect of Minecraft is its stats, the game keeps track of ho
|
||||
### Keybind overlap
|
||||
An often annoying aspect of modded Minecraft is its keybinds. Even though multiple binds can be assigned the same key, all but one will show up as "conflicting" and only the non-conflicting one will work. Which one this is is usually arbitrary, and there is no reason to have such limitation. Often times keybinds are only applicable in certain scenarios, and a commonly found degree of overlap is within reason. Therefore, NTM will run its own key handling code which allows conflicting keybinds to work. If there should be any issues with this behavior, it can be disabled with the config option `1.34_enableKeybindOverlap`.
|
||||
|
||||
### Render distance capping
|
||||
There is a common crash caused by Minecraft's render distance slider going out of bounds, this usually happens when uninstalling a mod that extends the render distance (like Optifine) or when downgrading the Minecraft version (newer versions have higher render distance caps). To prevent crashes, the mod will attempt to decrease the render distance if it's above 16 unless Optifine is installed. If this behavior is not desired (for example, because another mod that allows higher render distance is being used), it can be disabled with the config option `1.25_enableRenderDistCheck`.
|
||||
|
||||
### Log spam caused by ComparableStack
|
||||
In some modpacks (exact mods needed to replicate this are unknown), it's possible that invalid registered items may cause problems for NEI handlers. To prevent crashes, the ComparableStack class used to represent stacks will default to a safe registered item, and print a log message. In certain situations, this may cause dozens of errors to be printed at once, potentially even lagging the game. If that happens, the log message (but not the error handling) can be disabled with the config option `1.28_enableSilentCompStackErrors`.
|
||||
|
||||
# License
|
||||
This software is licensed under the GNU Lesser General Public License version 3. In short: This software is free, you may run the software freely, create modified versions, distribute this software and distribute modified versions, as long as the modified software too has a free software license (with an exception for linking to this software, as stated by the "Lesser" part of the LGPL, where this may not be required). You win this round, Stallman. The full license can be found in the `LICENSE` and `LICENSE.LESSER` files.
|
||||
|
||||
16
changelog
16
changelog
@ -1,3 +1,17 @@
|
||||
## Changed
|
||||
* All pylons and electrical connectors are now dyeable, using any dye (even modded ones, based on ore dict) to change the color of the cable
|
||||
* Colors are based on the connecting pylon, not the cables themselves, meaning that using one dye will change all wires connected to that pylon right up to the half way point
|
||||
* Colors are based on the connecting pylon, not the cables themselves, meaning that using one dye will change all wires connected to that pylon right up to the half way point
|
||||
* Glyphid behemoths now spew sulfuric acid instead of hydrogen peroxide
|
||||
* Glyphid brawlers can now leap at nearby players
|
||||
* The structure config has changed
|
||||
* Instead of a central toggle for enabling/disabling structures, there's now three possible settings, enabling structures, disabling structures or making structure spawn respect the setting from the world creation menu
|
||||
* Pressurized gauges like for the vacuum refinery and hydrotreater no longer have slots for item barrels (as those would logically not work), instead they show a pressure symbol
|
||||
* Auditory geiger counters in armors will now click based on the radiation level *inside* the suit, i.e. the effective exposure for the player
|
||||
* Diamonds are now a valid crucible material, turning into carbon at a 1:1 ratio (like graphite)
|
||||
* Emerald is also a valid crucible material now, turning into beryllium at a 4:3 ratio
|
||||
* Emeralds can now be mined as bedrock ores with a weight of 50 (half as common as iron, as common as redstone)
|
||||
|
||||
## Fixed
|
||||
* Fixed rocket artillery turret not saving loaded ammo type/count
|
||||
* Fixed crash caused by custom missile launchers operating without designator
|
||||
* Fixed meltdown elementals rendering their beam in the NEI spawner screen, causing extreme lag or the game to freeze
|
||||
@ -6,10 +6,8 @@ import com.hbm.tileentity.machine.TileEntityFoundrySlagtap;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.client.event.RenderGameOverlayEvent.Pre;
|
||||
|
||||
public class FoundrySlagtap extends FoundryOutlet {
|
||||
|
||||
|
||||
@ -7,7 +7,6 @@ import com.hbm.blocks.ILookOverlay;
|
||||
import com.hbm.handler.MultiblockHandlerXR;
|
||||
import com.hbm.inventory.material.Mats;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.machine.ItemMold;
|
||||
import com.hbm.items.machine.ItemScraps;
|
||||
import com.hbm.tileentity.TileEntityProxyCombo;
|
||||
import com.hbm.tileentity.machine.TileEntityMachineStrandCaster;
|
||||
|
||||
@ -26,7 +26,6 @@ public class GeneralConfig {
|
||||
public static boolean enableRenderDistCheck = true;
|
||||
public static boolean enableReEval = true;
|
||||
public static boolean enableSilentCompStackErrors = true;
|
||||
public static boolean enableChunkyNEIHandler = true;
|
||||
public static boolean enableSkyboxes = true;
|
||||
public static boolean enableImpactWorldProvider = true;
|
||||
public static boolean enableStatReRegistering = true;
|
||||
@ -94,7 +93,6 @@ public class GeneralConfig {
|
||||
enableReEval = config.get(CATEGORY_GENERAL, "1.27_enableReEval", true, "Allows re-evaluating power networks on link remove instead of destroying and recreating").getBoolean(true);
|
||||
enableSilentCompStackErrors = config.get(CATEGORY_GENERAL, "1.28_enableSilentCompStackErrors", false, "Enabling this will disable log spam created by unregistered items in ComparableStack instances.").getBoolean(false);
|
||||
hintPos = CommonConfig.createConfigInt(config, CATEGORY_GENERAL, "1.29_hudOverlayPosition", "0: Top left\n1: Top right\n2: Center right\n3: Center Left", 0);
|
||||
enableChunkyNEIHandler = config.get(CATEGORY_GENERAL, "1.30_enableChunkyNEIHandler", true, "If enabled, registers a NEI handler that will show the chosen item in a larger view.").getBoolean(true);
|
||||
enableSkyboxes = config.get(CATEGORY_GENERAL, "1.31_enableSkyboxes", true, "If enabled, will try to use NTM's custom skyboxes.").getBoolean(true);
|
||||
enableImpactWorldProvider = config.get(CATEGORY_GENERAL, "1.32_enableImpactWorldProvider", true, "If enabled, registers custom world provider which modifies lighting and sky colors for post impact effects.").getBoolean(true);
|
||||
enableStatReRegistering = config.get(CATEGORY_GENERAL, "1.33_enableStatReRegistering", true, "If enabled, will re-register item crafting/breaking/usage stats in order to fix a forge bug where modded items just won't show up.").getBoolean(true);
|
||||
|
||||
@ -51,6 +51,7 @@ public class WorldConfig {
|
||||
public static int bedrockRedstoneSpawn = 50;
|
||||
public static int bedrockRareEarthSpawn = 50;
|
||||
public static int bedrockBauxiteSpawn = 100;
|
||||
public static int bedrockEmeraldSpawn = 50;
|
||||
public static int bedrockGlowstoneSpawn = 100;
|
||||
public static int bedrockPhosphorusSpawn = 50;
|
||||
public static int bedrockQuartzSpawn = 100;
|
||||
@ -171,6 +172,7 @@ public class WorldConfig {
|
||||
bedrockNeodymiumSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B15_bedrockNeodymiumWeight", "Spawn weight for neodymium bedrock ore", 50);
|
||||
bedrockRareEarthSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B16_bedrockRareEarthWeight", "Spawn weight for rare earth bedrock ore", 50);
|
||||
bedrockBauxiteSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B17_bedrockBauxiteWeight", "Spawn weight for bauxite bedrock ore", 100);
|
||||
bedrockEmeraldSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.B18_bedrockEmeraldWeight", "Spawn weight for emerald bedrock ore", 50);
|
||||
|
||||
bedrockGlowstoneSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.BN00_bedrockGlowstoneWeight", "Spawn weight for glowstone bedrock ore", 100);
|
||||
bedrockPhosphorusSpawn = CommonConfig.createConfigInt(config, CATEGORY_OREGEN, "2.BN01_bedrockPhosphorusWeight", "Spawn weight for phosphorus bedrock ore", 50);
|
||||
|
||||
@ -1,79 +0,0 @@
|
||||
package com.hbm.handler.nei;
|
||||
|
||||
import static codechicken.lib.gui.GuiDraw.drawTexturedModalRect;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.config.GeneralConfig;
|
||||
import com.hbm.lib.RefStrings;
|
||||
|
||||
import codechicken.nei.PositionedStack;
|
||||
import codechicken.nei.guihook.GuiContainerManager;
|
||||
import codechicken.nei.recipe.TemplateRecipeHandler;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.FontRenderer;
|
||||
import net.minecraft.client.renderer.RenderHelper;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public class ChunkyHandler extends TemplateRecipeHandler {
|
||||
|
||||
public class RecipeSet extends TemplateRecipeHandler.CachedRecipe {
|
||||
|
||||
ItemStack stack;
|
||||
|
||||
public RecipeSet(ItemStack stack) {
|
||||
this.stack = stack.copy();
|
||||
this.stack.stackSize = 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PositionedStack getResult() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getRecipeName() {
|
||||
return "";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getGuiTexture() {
|
||||
return RefStrings.MODID + ":textures/gui/nei/gui_nei.png";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadCraftingRecipes(ItemStack result) {
|
||||
if(GeneralConfig.enableChunkyNEIHandler)
|
||||
this.arecipes.add(new RecipeSet(result));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadUsageRecipes(ItemStack ingredient) {
|
||||
if(GeneralConfig.enableChunkyNEIHandler)
|
||||
this.arecipes.add(new RecipeSet(ingredient));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void drawExtras(int recipe) {
|
||||
RecipeSet rec = (RecipeSet) this.arecipes.get(recipe);
|
||||
drawTexturedModalRect(145, 0, 20, 20, 20, 20);
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(83, 50, 0);
|
||||
double scale = 5D;
|
||||
GL11.glScaled(scale, scale, scale);
|
||||
RenderHelper.enableGUIStandardItemLighting();
|
||||
GL11.glTranslated(-8, -8, 0);
|
||||
GuiContainerManager.drawItem(0, 0, rec.stack);
|
||||
GL11.glPopMatrix();
|
||||
RenderHelper.enableGUIStandardItemLighting();
|
||||
|
||||
FontRenderer font = Minecraft.getMinecraft().fontRenderer;
|
||||
|
||||
int w = 83;
|
||||
String top = "The same thing but in big";
|
||||
String bottom = "so you can really stare at it";
|
||||
font.drawString(top, w - font.getStringWidth(top) / 2, 100, 0x404040);
|
||||
font.drawString(bottom, w - font.getStringWidth(bottom) / 2, 110, 0x404040);
|
||||
}
|
||||
}
|
||||
@ -33,6 +33,7 @@ public class GUIMachineBattery extends GuiInfoContainer {
|
||||
this.ySize = 166;
|
||||
}
|
||||
|
||||
@SuppressWarnings("incomplete-switch")
|
||||
@Override
|
||||
public void drawScreen(int mouseX, int mouseY, float f) {
|
||||
super.drawScreen(mouseX, mouseY, f);
|
||||
|
||||
@ -54,6 +54,7 @@ public class Mats {
|
||||
public static final NTMMaterial MAT_PETCOKE = make( 1411, PETCOKE) .setConversion(MAT_CARBON, 4, 3);
|
||||
public static final NTMMaterial MAT_LIGCOKE = make( 1412, LIGCOKE) .setConversion(MAT_CARBON, 4, 3);
|
||||
public static final NTMMaterial MAT_GRAPHITE = make( 1420, GRAPHITE) .setConversion(MAT_CARBON, 1, 1);
|
||||
public static final NTMMaterial MAT_DIAMOND = make( 1430, DIAMOND) .setConversion(MAT_CARBON, 1, 1);
|
||||
public static final NTMMaterial MAT_IRON = makeSmeltable(2600, IRON, 0xFFFFFF, 0x353535, 0xFFA259).setShapes(PIPE, CASTPLATE, WELDEDPLATE);
|
||||
public static final NTMMaterial MAT_GOLD = makeSmeltable(7900, GOLD, 0xFFFF8B, 0xC26E00, 0xE8D754).setShapes(DENSEWIRE, CASTPLATE);
|
||||
public static final NTMMaterial MAT_REDSTONE = makeSmeltable(_VS + 01, REDSTONE, 0xE3260C, 0x700E06, 0xFF1000);
|
||||
@ -105,6 +106,7 @@ public class Mats {
|
||||
public static final NTMMaterial MAT_NEODYMIUM = makeSmeltable(6000, ND, 0xE6E6B6, 0x1C1C00, 0x8F8F5F).setShapes(NUGGET, DUSTTINY, INGOT, DUST, DENSEWIRE, BLOCK);
|
||||
public static final NTMMaterial MAT_NIOBIUM = makeSmeltable(4100, NB, 0xB76EC9, 0x2F2D42, 0xD576B1).setShapes(NUGGET, DUSTTINY, INGOT, DUST, BLOCK);
|
||||
public static final NTMMaterial MAT_BERYLLIUM = makeSmeltable(400, BE, 0xB2B2A6, 0x0F0F03, 0xAE9572).setShapes(NUGGET, INGOT, DUST, BLOCK);
|
||||
public static final NTMMaterial MAT_EMERALD = make( 401, EMERALD) .setConversion(MAT_BERYLLIUM, 4, 3);
|
||||
public static final NTMMaterial MAT_COBALT = makeSmeltable(2700, CO, 0xC2D1EE, 0x353554, 0x8F72AE).setShapes(NUGGET, DUSTTINY, BILLET, INGOT, DUST, BLOCK);
|
||||
public static final NTMMaterial MAT_BORON = makeSmeltable(500, B, 0xBDC8D2, 0x29343E, 0xAD72AE).setShapes(DUSTTINY, INGOT, DUST, BLOCK);
|
||||
public static final NTMMaterial MAT_ZIRCONIUM = makeSmeltable(4000, ZR, 0xE3DCBE, 0x3E3719, 0xADA688).setShapes(NUGGET, DUSTTINY, BILLET, INGOT, DUST, CASTPLATE, WELDEDPLATE, BLOCK);
|
||||
|
||||
@ -20,95 +20,86 @@ import net.minecraft.util.Vec3;
|
||||
|
||||
public class RenderRADBeast extends RenderLiving {
|
||||
|
||||
private static final ResourceLocation blazeTextures = new ResourceLocation(RefStrings.MODID, "textures/entity/radbeast.png");
|
||||
private static final ResourceLocation mask = new ResourceLocation(RefStrings.MODID, "textures/models/ModelM65Blaze.png");
|
||||
private int field_77068_a;
|
||||
private static final ResourceLocation blazeTextures = new ResourceLocation(RefStrings.MODID, "textures/entity/radbeast.png");
|
||||
private static final ResourceLocation mask = new ResourceLocation(RefStrings.MODID, "textures/models/ModelM65Blaze.png");
|
||||
private int blazeModel;
|
||||
|
||||
public RenderRADBeast()
|
||||
{
|
||||
super(new ModelBlaze(), 0.5F);
|
||||
this.field_77068_a = ((ModelBlaze)this.mainModel).func_78104_a();
|
||||
}
|
||||
|
||||
public void doRender(EntityRADBeast entity, double x, double y, double z, float r0, float r1)
|
||||
{
|
||||
int i = ((ModelBlaze)this.mainModel).func_78104_a();
|
||||
public RenderRADBeast() {
|
||||
super(new ModelBlaze(), 0.5F);
|
||||
this.blazeModel = ((ModelBlaze) this.mainModel).func_78104_a();
|
||||
}
|
||||
|
||||
if (i != this.field_77068_a)
|
||||
{
|
||||
this.field_77068_a = i;
|
||||
this.mainModel = new ModelBlaze();
|
||||
}
|
||||
|
||||
Entity victim = entity.getUnfortunateSoul();
|
||||
|
||||
if(victim != null) {
|
||||
public void doRender(EntityRADBeast entity, double x, double y, double z, float r0, float r1) {
|
||||
int i = ((ModelBlaze) this.mainModel).func_78104_a();
|
||||
|
||||
GL11.glPushMatrix();
|
||||
|
||||
GL11.glTranslated(x, y + 1.25, z);
|
||||
|
||||
double sx = entity.posX;
|
||||
double sy = entity.posY + 1.25;
|
||||
double sz = entity.posZ;
|
||||
|
||||
double tX = victim.posX;
|
||||
double tY = victim.posY + victim.height / 2;
|
||||
double tZ = victim.posZ;
|
||||
|
||||
if(victim == Minecraft.getMinecraft().thePlayer)
|
||||
tY -= 1.5;
|
||||
|
||||
double length = Math.sqrt(Math.pow(tX - sx, 2) + Math.pow(tY - sy, 2) + Math.pow(tZ - sz, 2));
|
||||
BeamPronter.prontBeam(Vec3.createVectorHelper(tX - sx, tY - sy, tZ - sz), EnumWaveType.RANDOM, EnumBeamType.SOLID, 0x004000, 0x004000, (int) (entity.worldObj.getTotalWorldTime() % 1000 + 1), (int) (length * 5), 0.125F, 2, 0.03125F);
|
||||
|
||||
GL11.glPopMatrix();
|
||||
if(i != this.blazeModel) {
|
||||
this.blazeModel = i;
|
||||
this.mainModel = new ModelBlaze();
|
||||
}
|
||||
|
||||
super.doRender((EntityLiving)entity, x, y, z, r0, r1);
|
||||
}
|
||||
|
||||
protected ResourceLocation getEntityTexture(EntityRADBeast p_110775_1_)
|
||||
{
|
||||
return blazeTextures;
|
||||
}
|
||||
|
||||
public void doRender(EntityLiving p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_)
|
||||
{
|
||||
this.doRender((EntityRADBeast)p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_);
|
||||
}
|
||||
|
||||
public void doRender(EntityLivingBase p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_)
|
||||
{
|
||||
this.doRender((EntityRADBeast)p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_);
|
||||
}
|
||||
|
||||
protected ResourceLocation getEntityTexture(Entity p_110775_1_)
|
||||
{
|
||||
return this.getEntityTexture((EntityRADBeast)p_110775_1_);
|
||||
}
|
||||
|
||||
public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_)
|
||||
{
|
||||
this.doRender((EntityRADBeast)p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_);
|
||||
}
|
||||
Entity victim = entity.getUnfortunateSoul();
|
||||
|
||||
if(victim != null && entity.posY > 0.1) {
|
||||
|
||||
GL11.glPushMatrix();
|
||||
|
||||
GL11.glTranslated(x, y + 1.25, z);
|
||||
|
||||
double sx = entity.posX;
|
||||
double sy = entity.posY + 1.25;
|
||||
double sz = entity.posZ;
|
||||
|
||||
double tX = victim.posX;
|
||||
double tY = victim.posY + victim.height / 2;
|
||||
double tZ = victim.posZ;
|
||||
|
||||
if(victim == Minecraft.getMinecraft().thePlayer)
|
||||
tY -= 1.5;
|
||||
|
||||
double length = Math.sqrt(Math.pow(tX - sx, 2) + Math.pow(tY - sy, 2) + Math.pow(tZ - sz, 2));
|
||||
if(length < 200) BeamPronter.prontBeam(Vec3.createVectorHelper(tX - sx, tY - sy, tZ - sz), EnumWaveType.RANDOM, EnumBeamType.SOLID, 0x004000, 0x004000, (int) (entity.worldObj.getTotalWorldTime() % 1000 + 1), (int) (length * 5), 0.125F, 2, 0.03125F);
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
super.doRender((EntityLiving) entity, x, y, z, r0, r1);
|
||||
}
|
||||
|
||||
protected ResourceLocation getEntityTexture(EntityRADBeast p_110775_1_) {
|
||||
return blazeTextures;
|
||||
}
|
||||
|
||||
public void doRender(EntityLiving p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) {
|
||||
this.doRender((EntityRADBeast) p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_);
|
||||
}
|
||||
|
||||
public void doRender(EntityLivingBase p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) {
|
||||
this.doRender((EntityRADBeast) p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_);
|
||||
}
|
||||
|
||||
protected ResourceLocation getEntityTexture(Entity p_110775_1_) {
|
||||
return this.getEntityTexture((EntityRADBeast) p_110775_1_);
|
||||
}
|
||||
|
||||
public void doRender(Entity p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) {
|
||||
this.doRender((EntityRADBeast) p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_);
|
||||
}
|
||||
|
||||
private ModelM65Blaze modelM65;
|
||||
|
||||
protected int shouldRenderPass(EntityLivingBase p_77032_1_, int p_77032_2_, float p_77032_3_)
|
||||
{
|
||||
|
||||
if(p_77032_2_ == 0) {
|
||||
this.bindTexture(mask);
|
||||
|
||||
if (this.modelM65 == null) {
|
||||
protected int shouldRenderPass(EntityLivingBase p_77032_1_, int p_77032_2_, float p_77032_3_) {
|
||||
|
||||
if(p_77032_2_ == 0) {
|
||||
this.bindTexture(mask);
|
||||
|
||||
if(this.modelM65 == null) {
|
||||
this.modelM65 = new ModelM65Blaze();
|
||||
}
|
||||
|
||||
this.setRenderPassModel(modelM65);
|
||||
return 1;
|
||||
}
|
||||
|
||||
return super.shouldRenderPass(p_77032_1_, p_77032_2_, p_77032_3_);
|
||||
}
|
||||
|
||||
this.setRenderPassModel(modelM65);
|
||||
return 1;
|
||||
}
|
||||
|
||||
return super.shouldRenderPass(p_77032_1_, p_77032_2_, p_77032_3_);
|
||||
}
|
||||
}
|
||||
|
||||
@ -284,10 +284,17 @@ public class TileEntityCompactLauncher extends TileEntityLoadedBase implements I
|
||||
|
||||
public void launchFromDesignator() {
|
||||
|
||||
int tX = slots[1].stackTagCompound.getInteger("xCoord");
|
||||
int tZ = slots[1].stackTagCompound.getInteger("zCoord");
|
||||
|
||||
this.launchTo(tX, tZ);
|
||||
if(slots[1] != null && slots[1].getItem() instanceof IDesignatorItem) {
|
||||
IDesignatorItem designator = (IDesignatorItem) slots[1].getItem();
|
||||
|
||||
if(designator.isReady(worldObj, slots[1], xCoord, yCoord, zCoord)) {
|
||||
Vec3 coords = designator.getCoords(worldObj, slots[1], xCoord, yCoord, zCoord);
|
||||
int tX = (int) Math.floor(coords.xCoord);
|
||||
int tZ = (int) Math.floor(coords.zCoord);
|
||||
|
||||
this.launchTo(tX, tZ);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void launchTo(int tX, int tZ) {
|
||||
|
||||
@ -279,10 +279,17 @@ public class TileEntityLaunchTable extends TileEntityLoadedBase implements ISide
|
||||
|
||||
public void launchFromDesignator() {
|
||||
|
||||
int tX = slots[1].stackTagCompound.getInteger("xCoord");
|
||||
int tZ = slots[1].stackTagCompound.getInteger("zCoord");
|
||||
|
||||
this.launchTo(tX, tZ);
|
||||
if(slots[1] != null && slots[1].getItem() instanceof IDesignatorItem) {
|
||||
IDesignatorItem designator = (IDesignatorItem) slots[1].getItem();
|
||||
|
||||
if(designator.isReady(worldObj, slots[1], xCoord, yCoord, zCoord)) {
|
||||
Vec3 coords = designator.getCoords(worldObj, slots[1], xCoord, yCoord, zCoord);
|
||||
int tX = (int) Math.floor(coords.xCoord);
|
||||
int tZ = (int) Math.floor(coords.zCoord);
|
||||
|
||||
this.launchTo(tX, tZ);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void launchTo(int tX, int tZ) {
|
||||
|
||||
@ -11,7 +11,6 @@ import api.hbm.block.ICrucibleAcceptor;
|
||||
import cpw.mods.fml.common.network.NetworkRegistry.TargetPoint;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraft.util.Vec3;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
@ -350,6 +350,8 @@ public class TileEntityTurretHIMARS extends TileEntityTurretBaseArtillery implem
|
||||
super.readFromNBT(nbt);
|
||||
|
||||
this.mode = nbt.getShort("mode");
|
||||
this.typeLoaded = nbt.getShort("type");
|
||||
this.ammo = nbt.getInteger("ammo");
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -357,6 +359,8 @@ public class TileEntityTurretHIMARS extends TileEntityTurretBaseArtillery implem
|
||||
super.writeToNBT(nbt);
|
||||
|
||||
nbt.setShort("mode", this.mode);
|
||||
nbt.setInteger("type", this.typeLoaded);
|
||||
nbt.setInteger("ammo", this.ammo);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -46,6 +46,7 @@ public class BedrockOre {
|
||||
registerBedrockOre(weightedOres, new BedrockOreDefinition(new ItemStack(Items.coal, 8), 1, 0x202020), WorldConfig.bedrockCoalSpawn);
|
||||
registerBedrockOre(weightedOres, new BedrockOreDefinition(new ItemStack(ModItems.niter, 4), 2, 0x808080, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockNiterSpawn);
|
||||
registerBedrockOre(weightedOres, new BedrockOreDefinition(new ItemStack(Items.redstone, 4), 1, 0xd01010), WorldConfig.bedrockRedstoneSpawn);
|
||||
registerBedrockOre(weightedOres, new BedrockOreDefinition(new ItemStack(Items.emerald, 4), 1, 0x3FDD85), WorldConfig.bedrockEmeraldSpawn);
|
||||
registerBedrockOre(weightedOres, new BedrockOreDefinition(DictFrame.fromOne(ModItems.chunk_ore, EnumChunkType.RARE), 2, 0x8F9999, new FluidStack(Fluids.ACID, 500)), WorldConfig.bedrockRareEarthSpawn);
|
||||
registerBedrockOre(weightedOres, new BedrockOreDefinition(DictFrame.fromOne(ModBlocks.stone_resource, EnumStoneType.BAUXITE, 2),1, 0xEF7213), WorldConfig.bedrockBauxiteSpawn);
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user