mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-08-10 17:55:44 +00:00
Merge branch 'HbmMods:master' into rulang
This commit is contained in:
commit
047bd45de4
@ -1,3 +1,10 @@
|
||||
## Changed
|
||||
* All RoR panels now have basic item descriptions informing about the screwdriver requirement for configuration
|
||||
* EMP grenades now deal 5x damage against anything with powered armor
|
||||
* Decreased base damage to compensate
|
||||
* EMP grenades now destroy machines in a small radius like an EMP missile would
|
||||
|
||||
## Fixed
|
||||
* Fixed the grenade crafting handler not checking if a shell/filling combination is even valid, allowing weird combos
|
||||
* Fixed dispenser fired laser grenades crashing the game
|
||||
* Fixed dispenser fired laser grenades crashing the game
|
||||
* Fixed schrabidium grenade being obscenely powerful for no reason
|
||||
@ -1096,6 +1096,7 @@ public class ModBlocks {
|
||||
public static Block rbmk_gauge;
|
||||
public static Block rbmk_numitron;
|
||||
public static Block rbmk_graph;
|
||||
public static Block rbmk_lever;
|
||||
public static Block rbmk_autoloader;
|
||||
public static Block rbmk_loader;
|
||||
public static Block rbmk_steam_inlet;
|
||||
@ -2118,6 +2119,7 @@ public class ModBlocks {
|
||||
rbmk_gauge = new RBMKGauge().setBlockName("rbmk_gauge").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_display");
|
||||
rbmk_numitron = new RBMKNumitron().setBlockName("rbmk_numitron").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_display");
|
||||
rbmk_graph = new RBMKGraph().setBlockName("rbmk_graph").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_display");
|
||||
rbmk_lever = new RBMKLever().setBlockName("rbmk_lever").setCreativeTab(MainRegistry.machineTab).setBlockTextureName(RefStrings.MODID + ":rbmk/rbmk_display");
|
||||
rbmk_autoloader = new RBMKAutoloader().setBlockName("rbmk_autoloader").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":rbmk_autoloader");
|
||||
rbmk_loader = new RBMKLoader(Material.iron).setBlockName("rbmk_loader").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":rbmk_loader");
|
||||
rbmk_steam_inlet = new RBMKInlet(Material.iron).setBlockName("rbmk_steam_inlet").setCreativeTab(MainRegistry.machineTab).setHardness(50.0F).setResistance(60.0F).setBlockTextureName(RefStrings.MODID + ":rbmk_steam_inlet");
|
||||
@ -3107,6 +3109,7 @@ public class ModBlocks {
|
||||
register(rbmk_display_blank);
|
||||
register(rbmk_display);
|
||||
register(rbmk_key_pad);
|
||||
register(rbmk_lever);
|
||||
register(rbmk_gauge);
|
||||
register(rbmk_numitron);
|
||||
register(rbmk_graph);
|
||||
|
||||
49
src/main/java/com/hbm/blocks/machine/rbmk/RBMKLever.java
Normal file
49
src/main/java/com/hbm/blocks/machine/rbmk/RBMKLever.java
Normal file
@ -0,0 +1,49 @@
|
||||
package com.hbm.blocks.machine.rbmk;
|
||||
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.tileentity.machine.rbmk.TileEntityRBMKLever;
|
||||
|
||||
import api.hbm.block.IToolable;
|
||||
import cpw.mods.fml.common.network.internal.FMLNetworkHandler;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class RBMKLever extends RBMKMiniPanelBase implements IToolable {
|
||||
|
||||
@Override
|
||||
public TileEntity createNewTileEntity(World world, int meta) {
|
||||
return new TileEntityRBMKLever();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onScrew(World world, EntityPlayer player, int x, int y, int z, int side, float fX, float fY, float fZ, ToolType tool) {
|
||||
if(tool != ToolType.SCREWDRIVER) return false;
|
||||
if(world.isRemote) FMLNetworkHandler.openGui(player, MainRegistry.instance, 0, world, x, y, z);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
|
||||
if(world.isRemote) return true;
|
||||
if(player.isSneaking()) return false;
|
||||
|
||||
if(hitX != 0 && hitX != 1 && hitZ != 0 && hitZ != 1 && side != 0 && side != 1) {
|
||||
|
||||
TileEntityRBMKLever tile = (TileEntityRBMKLever) world.getTileEntity(x, y, z);
|
||||
int meta = world.getBlockMetadata(x, y, z);
|
||||
|
||||
int indexHit = 0;
|
||||
|
||||
if(meta == 2 && hitX < 0.5) indexHit = 1;
|
||||
if(meta == 3 && hitX > 0.5) indexHit = 1;
|
||||
if(meta == 4 && hitZ > 0.5) indexHit = 1;
|
||||
if(meta == 5 && hitZ < 0.5) indexHit = 1;
|
||||
|
||||
if(!tile.levers[indexHit].active) return false;
|
||||
tile.levers[indexHit].click();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@ -1,7 +1,10 @@
|
||||
package com.hbm.blocks.machine.rbmk;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.blocks.ITooltipProvider;
|
||||
import com.hbm.lib.Library;
|
||||
import com.hbm.render.block.ISBRHUniversal;
|
||||
import com.hbm.render.util.RenderBlocksNT;
|
||||
@ -14,13 +17,14 @@ import net.minecraft.block.material.Material;
|
||||
import net.minecraft.client.renderer.RenderBlocks;
|
||||
import net.minecraft.client.renderer.Tessellator;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class RBMKMiniPanelBase extends BlockContainer implements ISBRHUniversal {
|
||||
public class RBMKMiniPanelBase extends BlockContainer implements ISBRHUniversal, ITooltipProvider {
|
||||
|
||||
public RBMKMiniPanelBase() {
|
||||
super(Material.iron);
|
||||
@ -92,4 +96,9 @@ public class RBMKMiniPanelBase extends BlockContainer implements ISBRHUniversal
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean ext) {
|
||||
this.addStandardInfo(stack, player, list, ext);
|
||||
}
|
||||
}
|
||||
|
||||
@ -21,7 +21,7 @@ public class GrenadeCraftingHandler implements IRecipe {
|
||||
if(hasForeignObject(inv)) return false; // can't be non-grenade items and can't be more than 4 items total
|
||||
EnumGrenadeShell shell = getFirst(inv, ModItems.grenade_shell, EnumGrenadeShell.class); // only one shell, null otherwise
|
||||
EnumGrenadeFilling filling = getFirst(inv, ModItems.grenade_filling, EnumGrenadeFilling.class); // only one filling, null otherwise
|
||||
if(!filling.compatibleShells.contains(shell)) return false;
|
||||
if(filling != null && shell != null && !filling.compatibleShells.contains(shell)) return false;
|
||||
EnumGrenadeFuze fuze = getFirst(inv, ModItems.grenade_fuze, EnumGrenadeFuze.class); // only one fuze, null otherwise
|
||||
// this leaves the extra unaccounted for, but the restrictions we put in place will allow exactly one without dedicated check
|
||||
return shell != null && filling != null && fuze != null;
|
||||
|
||||
125
src/main/java/com/hbm/inventory/gui/GUIScreenRBMKLever.java
Normal file
125
src/main/java/com/hbm/inventory/gui/GUIScreenRBMKLever.java
Normal file
@ -0,0 +1,125 @@
|
||||
package com.hbm.inventory.gui;
|
||||
|
||||
import org.lwjgl.input.Keyboard;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.lib.RefStrings;
|
||||
import com.hbm.packet.PacketDispatcher;
|
||||
import com.hbm.packet.toserver.NBTControlPacket;
|
||||
import com.hbm.tileentity.machine.rbmk.TileEntityRBMKLever;
|
||||
import com.hbm.util.i18n.I18nUtil;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.audio.PositionedSoundRecord;
|
||||
import net.minecraft.client.gui.GuiScreen;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
|
||||
public class GUIScreenRBMKLever extends GuiScreen {
|
||||
|
||||
private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/machine/gui_rbmk_lever.png");
|
||||
public TileEntityRBMKLever lever;
|
||||
protected int xSize;
|
||||
protected int ySize;
|
||||
protected int guiLeft;
|
||||
protected int guiTop;
|
||||
|
||||
protected boolean[] active = new boolean[2];
|
||||
protected boolean[] polling = new boolean[2];
|
||||
|
||||
public GUIScreenRBMKLever(TileEntityRBMKLever lever) {
|
||||
this.lever = lever;
|
||||
|
||||
this.xSize = 256;
|
||||
this.ySize = 150;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initGui() {
|
||||
super.initGui();
|
||||
this.guiLeft = (this.width - this.xSize) / 2;
|
||||
this.guiTop = (this.height - this.ySize) / 2;
|
||||
|
||||
Keyboard.enableRepeatEvents(true);
|
||||
|
||||
int oX = 4;
|
||||
int oY = 4;
|
||||
|
||||
for(int i = 0; i < 2; i++) {
|
||||
|
||||
active[i] = lever.levers[i].active;
|
||||
polling[i] = lever.levers[i].polling;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void drawScreen(int mouseX, int mouseY, float f) {
|
||||
this.drawDefaultBackground();
|
||||
this.drawGuiContainerBackgroundLayer(f, mouseX, mouseY);
|
||||
GL11.glDisable(GL11.GL_LIGHTING);
|
||||
this.drawGuiContainerForegroundLayer(mouseX, mouseY);
|
||||
GL11.glEnable(GL11.GL_LIGHTING);
|
||||
}
|
||||
|
||||
private void drawGuiContainerForegroundLayer(int x, int y) {
|
||||
String name = I18nUtil.resolveKey("container.rbmkLever");
|
||||
this.fontRendererObj.drawString(name, this.guiLeft + this.xSize / 2 - this.fontRendererObj.getStringWidth(name) / 2, this.guiTop + 6, 4210752);
|
||||
}
|
||||
|
||||
private void drawGuiContainerBackgroundLayer(float f, int mouseX, int mouseY) {
|
||||
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
|
||||
Minecraft.getMinecraft().getTextureManager().bindTexture(texture);
|
||||
drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize);
|
||||
|
||||
for(int i = 0; i < 2; i++) {
|
||||
if(this.active[i]) drawTexturedModalRect(guiLeft + 111, guiTop + i * 54 + 54, 18, 150, 16, 16);
|
||||
if(this.polling[i]) drawTexturedModalRect(guiLeft + 128, guiTop + i * 54 + 53, 0, 150, 18, 18);
|
||||
}
|
||||
|
||||
for(int i = 0; i < 2; i++) {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void mouseClicked(int x, int y, int b) {
|
||||
super.mouseClicked(x, y, b);
|
||||
|
||||
for(int i = 0; i < 2; i++) {
|
||||
if(guiLeft + 111 <= x && guiLeft + 111 + 16 > x && guiTop + i * 54 + 54 < y && guiTop + i * 54 + 54 + 16 >= y) {
|
||||
this.active[i] = !this.active[i];
|
||||
mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 0.5F + (this.active[i] ? 0.25F : 0F)));
|
||||
return;
|
||||
}
|
||||
|
||||
if(guiLeft + 128 <= x && guiLeft + 128 + 18 > x && guiTop + i * 54 + 53 < y && guiTop + i * 54 + 53 + 18 >= y) {
|
||||
this.polling[i] = !this.polling[i];
|
||||
mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 0.5F + (this.polling[i] ? 0.25F : 0F)));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if(guiLeft + 209 <= x && guiLeft + 209 + 18 > x && guiTop + 17 < y && guiTop + 17 + 18 >= y) {
|
||||
mc.getSoundHandler().playSound(PositionedSoundRecord.func_147674_a(new ResourceLocation("gui.button.press"), 1.0F));
|
||||
NBTTagCompound data = new NBTTagCompound();
|
||||
byte active = 0;
|
||||
byte polling = 0;
|
||||
for(int i = 0; i < 2; i++) {
|
||||
if(this.active[i]) active |= 1 << i;
|
||||
if(this.polling[i]) polling |= 1 << i;
|
||||
}
|
||||
data.setByte("active", active);
|
||||
data.setByte("polling", polling);
|
||||
|
||||
for(int i = 0; i < 2; i++) {
|
||||
/*data.setString("label" + i, this.label[i].getText());
|
||||
data.setString("rtty" + i, this.rtty[i].getText());
|
||||
data.setString("cmd" + i, this.cmd[i].getText());*/
|
||||
}
|
||||
PacketDispatcher.wrapper.sendToServer(new NBTControlPacket(data, lever.xCoord, lever.yCoord, lever.zCoord));
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@Override public void onGuiClosed() { Keyboard.enableRepeatEvents(false); }
|
||||
@Override public boolean doesGuiPauseGame() { return false; }
|
||||
}
|
||||
@ -13,6 +13,7 @@ import com.hbm.entity.grenade.EntityGrenadeUniversal;
|
||||
import com.hbm.entity.logic.EntityNukeExplosionMK3;
|
||||
import com.hbm.entity.projectile.EntityBulletBaseMK4;
|
||||
import com.hbm.entity.projectile.EntityBulletBeamBase;
|
||||
import com.hbm.explosion.ExplosionNukeGeneric;
|
||||
import com.hbm.explosion.vanillant.ExplosionVNT;
|
||||
import com.hbm.explosion.vanillant.standard.BlockAllocatorStandard;
|
||||
import com.hbm.explosion.vanillant.standard.BlockMutatorFire;
|
||||
@ -168,7 +169,8 @@ public class ItemGrenadeFilling extends ItemEnumMulti {
|
||||
};
|
||||
|
||||
public static Consumer<EntityGrenadeUniversal> EXPLODE_EMP = (grenade) -> {
|
||||
explodeStandardEnergy(grenade, 30F, 3F, DamageClass.ELECTRIC, 0.5F, 0.5F, 1F, 3F);
|
||||
explodeStandardEnergy(grenade, 15F, 3F, DamageClass.ELECTRIC, 0.5F, 0.5F, 1F, 3F);
|
||||
ExplosionNukeGeneric.empBlast(grenade.worldObj, (int) Math.floor(grenade.posX), (int) Math.floor(grenade.posY), (int) Math.floor(grenade.posZ), 5);
|
||||
};
|
||||
|
||||
public static Consumer<EntityGrenadeUniversal> EXPLODE_PLASMA = (grenade) -> {
|
||||
@ -223,11 +225,11 @@ public class ItemGrenadeFilling extends ItemEnumMulti {
|
||||
};
|
||||
|
||||
public static Consumer<EntityGrenadeUniversal> EXPLODE_SCHRAB = (grenade) -> {
|
||||
EntityNukeExplosionMK3 ex = EntityNukeExplosionMK3.statFacFleija(grenade.worldObj, grenade.posX, grenade.posY, grenade.posZ, 50);
|
||||
EntityNukeExplosionMK3 ex = EntityNukeExplosionMK3.statFacFleija(grenade.worldObj, grenade.posX, grenade.posY, grenade.posZ, 20);
|
||||
if(!ex.isDead) {
|
||||
grenade.worldObj.playSoundEffect(grenade.posX, grenade.posY, grenade.posZ, "random.explode", 100.0F, grenade.worldObj.rand.nextFloat() * 0.1F + 0.9F);
|
||||
grenade.worldObj.spawnEntityInWorld(ex);
|
||||
EntityCloudFleija cloud = new EntityCloudFleija(grenade.worldObj, 50);
|
||||
EntityCloudFleija cloud = new EntityCloudFleija(grenade.worldObj, 20);
|
||||
cloud.setPosition(grenade.posX, grenade.posY, grenade.posZ);
|
||||
grenade.worldObj.spawnEntityInWorld(cloud);
|
||||
}
|
||||
|
||||
@ -415,6 +415,7 @@ public class ClientProxy extends ServerProxy {
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKGauge.class, new RenderRBMKGauge());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKNumitron.class, new RenderRBMKNumitron());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKGraph.class, new RenderRBMKGraph());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKLever.class, new RenderRBMKLever());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKRod.class, new RenderRBMKFuelChannel());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKRodReaSim.class, new RenderRBMKFuelChannel());
|
||||
ClientRegistry.bindTileEntitySpecialRenderer(TileEntityRBMKAutoloader.class, new RenderRBMKAutoloader());
|
||||
|
||||
@ -1643,6 +1643,7 @@ public class ResourceManager {
|
||||
public static final HFRWavefrontObjectVBO rbmk_button = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/rbmk/button.obj")).asVBO();
|
||||
public static final HFRWavefrontObjectVBO rbmk_gauge = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/rbmk/gauge.obj")).asVBO();
|
||||
public static final HFRWavefrontObjectVBO rbmk_numitron = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/rbmk/numitron.obj")).asVBO();
|
||||
public static final HFRWavefrontObjectVBO rbmk_lever = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/rbmk/lever.obj")).asVBO();
|
||||
public static final HFRWavefrontObject rbmk_debris = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/rbmk/debris.obj")).noSmooth();
|
||||
public static final ResourceLocation rbmk_crane_console_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/crane_console.png");
|
||||
public static final ResourceLocation rbmk_crane_tex = new ResourceLocation(RefStrings.MODID, "textures/models/machines/rbmk_crane.png");
|
||||
@ -1652,6 +1653,7 @@ public class ResourceManager {
|
||||
public static final ResourceLocation rbmk_gauge_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/gauge.png");
|
||||
public static final ResourceLocation rbmk_numitron_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/numitron.png");
|
||||
public static final ResourceLocation rbmk_numitron_lights_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/numitron_lights.png");
|
||||
public static final ResourceLocation rbmk_lever_tex = new ResourceLocation(RefStrings.MODID, "textures/models/network/lever.png");
|
||||
public static final HFRWavefrontObject hev_battery = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/battery.obj")).noSmooth();
|
||||
public static final HFRWavefrontObject anvil = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/anvil.obj")).noSmooth();
|
||||
public static final HFRWavefrontObject crystal_power = new HFRWavefrontObject(new ResourceLocation(RefStrings.MODID, "models/blocks/crystals_power.obj")).noSmooth();
|
||||
|
||||
73
src/main/java/com/hbm/render/tileentity/RenderRBMKLever.java
Normal file
73
src/main/java/com/hbm/render/tileentity/RenderRBMKLever.java
Normal file
@ -0,0 +1,73 @@
|
||||
package com.hbm.render.tileentity;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.hbm.main.ResourceManager;
|
||||
import com.hbm.tileentity.machine.rbmk.TileEntityRBMKLever;
|
||||
import com.hbm.tileentity.machine.rbmk.TileEntityRBMKLever.LeverUnit;
|
||||
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.FontRenderer;
|
||||
import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
|
||||
public class RenderRBMKLever extends TileEntitySpecialRenderer {
|
||||
|
||||
@Override
|
||||
public void renderTileEntityAt(TileEntity te, double x, double y, double z, float interp) {
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(x + 0.5, y, z + 0.5);
|
||||
GL11.glEnable(GL11.GL_CULL_FACE);
|
||||
GL11.glEnable(GL11.GL_LIGHTING);
|
||||
|
||||
switch(te.getBlockMetadata()) {
|
||||
case 2: GL11.glRotatef(90, 0F, 1F, 0F); break;
|
||||
case 4: GL11.glRotatef(180, 0F, 1F, 0F); break;
|
||||
case 3: GL11.glRotatef(270, 0F, 1F, 0F); break;
|
||||
case 5: GL11.glRotatef(0, 0F, 1F, 0F); break;
|
||||
}
|
||||
|
||||
TileEntityRBMKLever keypad = (TileEntityRBMKLever) te;
|
||||
|
||||
for(int i = 0; i < 2; i++) {
|
||||
LeverUnit key = keypad.levers[i];
|
||||
if(!key.active) continue;
|
||||
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslated(0.25, 0, i * -0.5 + 0.25);
|
||||
|
||||
GL11.glColor3f(1F, 1F, 1F);
|
||||
this.bindTexture(ResourceManager.rbmk_lever_tex);
|
||||
ResourceManager.rbmk_lever.renderPart("Base");
|
||||
|
||||
GL11.glPushMatrix();
|
||||
|
||||
GL11.glTranslated(0.125, 0.5625, 0);
|
||||
GL11.glRotated(-180 * i, 0, 0, 1);
|
||||
GL11.glTranslated(-0.125, -0.5625, 0);
|
||||
ResourceManager.rbmk_lever.renderPart("Lever");
|
||||
|
||||
GL11.glPopMatrix();
|
||||
|
||||
FontRenderer font = Minecraft.getMinecraft().fontRenderer;
|
||||
int height = font.FONT_HEIGHT;
|
||||
if(key.label != null && !key.label.isEmpty()) {
|
||||
|
||||
GL11.glTranslated(0.01, 0.3125, 0);
|
||||
int width = font.getStringWidth(key.label);
|
||||
float f3 = Math.min(0.0125F, 0.4F / Math.max(width, 1));
|
||||
GL11.glScalef(f3, -f3, f3);
|
||||
GL11.glNormal3f(0.0F, 0.0F, -1.0F);
|
||||
GL11.glRotatef(90, 0, 1, 0);
|
||||
|
||||
RenderArcFurnace.fullbright(true);
|
||||
font.drawString(key.label, - width / 2, - height / 2, 0x00ff00);
|
||||
RenderArcFurnace.fullbright(false);
|
||||
}
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
}
|
||||
@ -407,6 +407,7 @@ public class TileMappings {
|
||||
put(TileEntityRBMKGauge.class, "tileentity_rbmk_gauge");
|
||||
put(TileEntityRBMKNumitron.class, "tileentity_rbmk_numitron");
|
||||
put(TileEntityRBMKGraph.class, "tileentity_rbmk_graph");
|
||||
put(TileEntityRBMKLever.class, "tileentity_rbmk_lever");
|
||||
put(TileEntityRBMKInlet.class, "tileentity_rbmk_inlet");
|
||||
put(TileEntityRBMKOutlet.class, "tileentity_rbmk_outlet");
|
||||
put(TileEntityRBMKAutoloader.class, "tileentity_rbmk_autoloader");
|
||||
|
||||
@ -209,14 +209,14 @@ public class TileEntityRBMKControlManual extends TileEntityRBMKControl implement
|
||||
|
||||
if((PREFIX_FUNCTION + "setrods").equals(name) && params.length > 0) {
|
||||
int percent = IRORInteractive.parseInt(params[0], 0, 100);
|
||||
this.targetLevel = percent / 100D;
|
||||
this.setTarget(percent / 100D);
|
||||
this.markDirty();
|
||||
return null;
|
||||
}
|
||||
|
||||
if((PREFIX_FUNCTION + "extendrods").equals(name) && params.length > 0) {
|
||||
int percent = IRORInteractive.parseInt(params[0], -100, 100);
|
||||
this.targetLevel = MathHelper.clamp_double(this.targetLevel + percent / 100D, 0D, 1D);
|
||||
this.setTarget(MathHelper.clamp_double(this.targetLevel + percent / 100D, 0D, 1D));
|
||||
this.markDirty();
|
||||
return null;
|
||||
}
|
||||
|
||||
@ -0,0 +1,187 @@
|
||||
package com.hbm.tileentity.machine.rbmk;
|
||||
|
||||
import com.hbm.interfaces.IControlReceiver;
|
||||
import com.hbm.inventory.gui.GUIScreenRBMKLever;
|
||||
import com.hbm.tileentity.IGUIProvider;
|
||||
import com.hbm.tileentity.TileEntityLoadedBase;
|
||||
import com.hbm.tileentity.network.RTTYSystem;
|
||||
import com.hbm.util.BufferUtil;
|
||||
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class TileEntityRBMKLever extends TileEntityLoadedBase implements IGUIProvider, IControlReceiver {
|
||||
|
||||
/* __________
|
||||
* / /|
|
||||
* /________ / |
|
||||
* | __ __ | |
|
||||
* ||/\| |/\|| |
|
||||
* ||--| |--|| |
|
||||
* ||__| |__|| /
|
||||
* |_________|/
|
||||
*/
|
||||
|
||||
public LeverUnit[] levers = new LeverUnit[2];
|
||||
|
||||
public TileEntityRBMKLever() {
|
||||
for(int i = 0; i < 2; i++) this.levers[i] = new LeverUnit(i);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateEntity() {
|
||||
|
||||
if(!worldObj.isRemote) {
|
||||
|
||||
for(int i = 0; i < 2; i++) this.levers[i].update();
|
||||
|
||||
this.networkPackNT(50);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void serialize(ByteBuf buf) {
|
||||
super.serialize(buf);
|
||||
for(int i = 0; i < 2; i++) this.levers[i].serialize(buf);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deserialize(ByteBuf buf) {
|
||||
super.deserialize(buf);
|
||||
for(int i = 0; i < 2; i++) this.levers[i].deserialize(buf);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readFromNBT(NBTTagCompound nbt) {
|
||||
super.readFromNBT(nbt);
|
||||
|
||||
for(int i = 0; i < 2; i++) this.levers[i].readFromNBT(nbt, i);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToNBT(NBTTagCompound nbt) {
|
||||
super.writeToNBT(nbt);
|
||||
|
||||
for(int i = 0; i < 2; i++) this.levers[i].writeToNBT(nbt, i);
|
||||
}
|
||||
|
||||
public class LeverUnit {
|
||||
|
||||
/** If the output should be per tick, allows the lever to lock in place */
|
||||
public boolean polling;
|
||||
/** If the lever is flipped, assuming polling is enabled */
|
||||
public boolean isFlipped;
|
||||
/** Label on the lever as rendered on the panel */
|
||||
public String label = "";
|
||||
/** What channel to send the command over */
|
||||
public String rtty = "";
|
||||
/** What to send when pressed */
|
||||
public String command = "";
|
||||
/** Whether this lever is enabled and can be pressed */
|
||||
public boolean active;
|
||||
/** For non-polling levers, the time until the lever returns */
|
||||
public int holdTimer;
|
||||
|
||||
public LeverUnit(int initialIndex) {
|
||||
label = "Lever " + (initialIndex + 1);
|
||||
}
|
||||
|
||||
public void click() {
|
||||
if(!active) return;
|
||||
|
||||
if(!polling) {
|
||||
if(canSend()) RTTYSystem.broadcast(worldObj, rtty, command);
|
||||
this.isFlipped = true;
|
||||
this.holdTimer = 10;
|
||||
} else {
|
||||
this.isFlipped = !this.isFlipped;
|
||||
TileEntityRBMKLever.this.markDirty();
|
||||
}
|
||||
|
||||
worldObj.playSoundEffect(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, "random.click", 1F, this.isFlipped ? 1F : 0.75F);
|
||||
}
|
||||
|
||||
public void update() {
|
||||
if(!active) return;
|
||||
|
||||
if(polling && isFlipped) {
|
||||
if(canSend()) RTTYSystem.broadcast(worldObj, rtty, command);
|
||||
}
|
||||
|
||||
if(!polling && isFlipped) {
|
||||
if(this.holdTimer-- <= 0) {
|
||||
this.isFlipped = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public boolean canSend() {
|
||||
return rtty != null && !rtty.isEmpty() && command != null && !command.isEmpty();
|
||||
}
|
||||
|
||||
public void serialize(ByteBuf buf) {
|
||||
buf.writeBoolean(active);
|
||||
buf.writeBoolean(polling);
|
||||
buf.writeBoolean(isFlipped);
|
||||
BufferUtil.writeString(buf, label);
|
||||
BufferUtil.writeString(buf, rtty);
|
||||
BufferUtil.writeString(buf, command);
|
||||
}
|
||||
|
||||
public void deserialize(ByteBuf buf) {
|
||||
active = buf.readBoolean();
|
||||
polling = buf.readBoolean();
|
||||
isFlipped = buf.readBoolean();
|
||||
label = BufferUtil.readString(buf);
|
||||
rtty = BufferUtil.readString(buf);
|
||||
command = BufferUtil.readString(buf);
|
||||
}
|
||||
|
||||
public void readFromNBT(NBTTagCompound nbt, int index) {
|
||||
this.active = nbt.getBoolean("active" + index);
|
||||
this.polling = nbt.getBoolean("polling" + index);
|
||||
this.isFlipped = nbt.getBoolean("isFlipped" + index);
|
||||
this.label = nbt.getString("label" + index);
|
||||
this.rtty = nbt.getString("rtty" + index);
|
||||
this.command = nbt.getString("command" + index);
|
||||
}
|
||||
|
||||
public void writeToNBT(NBTTagCompound nbt, int index) {
|
||||
nbt.setBoolean("active" + index, active);
|
||||
nbt.setBoolean("polling" + index, polling);
|
||||
nbt.setBoolean("isFlipped" + index, isFlipped);
|
||||
nbt.setString("label" + index, label);
|
||||
nbt.setString("rtty" + index, rtty);
|
||||
nbt.setString("command" + index, command);
|
||||
}
|
||||
}
|
||||
|
||||
@Override public Container provideContainer(int ID, EntityPlayer player, World world, int x, int y, int z) { return null; }
|
||||
@Override public Object provideGUI(int ID, EntityPlayer player, World world, int x, int y, int z) { return new GUIScreenRBMKLever(this); }
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(EntityPlayer player) {
|
||||
return player.getDistanceSq(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5) < 15 * 15;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void receiveControl(NBTTagCompound data) {
|
||||
|
||||
int active = data.getByte("active");
|
||||
int polling = data.getByte("polling");
|
||||
for(int i = 0; i < 2; i++) {
|
||||
this.levers[i].active = (active & (1 << i)) != 0;
|
||||
this.levers[i].polling = (polling & (1 << i)) != 0;
|
||||
}
|
||||
|
||||
for(int i = 0; i < 2; i++) {
|
||||
LeverUnit lever = this.levers[i];
|
||||
lever.label = data.getString("label" + i);
|
||||
lever.rtty = data.getString("rtty" + i);
|
||||
lever.command = data.getString("cmd" + i);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -18,6 +18,7 @@ import com.google.gson.JsonObject;
|
||||
import com.google.gson.stream.JsonWriter;
|
||||
import com.hbm.entity.mob.EntityCreeperNuclear;
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.items.armor.ArmorFSBPowered;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.util.Tuple.Quartet;
|
||||
import com.hbm.util.i18n.I18nUtil;
|
||||
@ -446,10 +447,18 @@ public class DamageResistanceHandler {
|
||||
@SubscribeEvent
|
||||
public void onEntityDamaged(LivingHurtEvent event) {
|
||||
|
||||
event.ammount = calculateDamage(event.entityLiving, event.source, event.ammount, currentPDT, currentPDR);
|
||||
DamageSource source = event.source;
|
||||
if(source.damageType.toLowerCase(Locale.US).equals(DamageClass.ELECTRIC.name().toLowerCase(Locale.US))) {
|
||||
ItemStack chest = event.entityLiving.getEquipmentInSlot(3);
|
||||
if(chest != null && chest.getItem() instanceof ArmorFSBPowered) {
|
||||
event.ammount *= 5;
|
||||
}
|
||||
}
|
||||
|
||||
event.ammount = calculateDamage(event.entityLiving, source, event.ammount, currentPDT, currentPDR);
|
||||
if(event.entityLiving instanceof IResistanceProvider) {
|
||||
IResistanceProvider irp = (IResistanceProvider) event.entityLiving;
|
||||
irp.onDamageDealt(event.source, event.ammount);
|
||||
irp.onDamageDealt(source, event.ammount);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -6158,15 +6158,21 @@ tile.rbmk_control_reasim.name=RBMK Control Rods (ReaSim)
|
||||
tile.rbmk_control_reasim_auto.name=RBMK Automatic Control Rods (ReaSim)
|
||||
tile.rbmk_crane_console.name=RBMK Crane Console
|
||||
tile.rbmk_display.name=RBMK Display Panel
|
||||
tile.rbmk_display.desc=Can be linked with the RBMK console linking device.$Shows a 7x7 segment of the RBMK.$View can be rotated with a screwdriver.
|
||||
tile.rbmk_display_blank.name=Blank Redstone-over-Radio Panel
|
||||
tile.rbmk_display_blank.desc=Cheap panel for extending RoR control panels.
|
||||
tile.rbmk_gauge.name=Redstone-over-Radio Gauge
|
||||
tile.rbmk_gauge.desc=Can be configured with a screwdriver.$Displays up to four numeric values from different$RoR signal sources.
|
||||
tile.rbmk_graph.name=Redstone-over-Radio Graph
|
||||
tile.rbmk_graph.desc=Can be configured with a screwdriver.$Logs and displays up to two numeric values$from different RoR signal sources.
|
||||
tile.rbmk_heater.name=RBMK Fluid Heater
|
||||
tile.rbmk_key_pad.name=Redstone-over-Radio Keypad
|
||||
tile.rbmk_key_pad.desc=Can be configured with a screwdriver.$Allows up to four different buttons which can$send RoR signals when pressed.
|
||||
tile.rbmk_loader.name=RBMK Steam Connector
|
||||
tile.rbmk_loader.desc=Allows RBMKs to have both water and steam connections at the bottom$Place one water pipe below the RBMK column, then the connector,$then connect the steam duct to the connector.
|
||||
tile.rbmk_moderator.name=RBMK Graphite Moderator
|
||||
tile.rbmk_numitron.name=Redstone-over-Radio Numeric Display
|
||||
tile.rbmk_numitron.desc=Can be configured with a screwdriver.$Displays up to two numeric values$from different RoR signal sources.
|
||||
tile.rbmk_outgasser.name=RBMK Irradiation Channel
|
||||
tile.rbmk_reflector.name=RBMK Tungsten Carbide Neutron Reflector
|
||||
tile.rbmk_rod.name=RBMK Fuel Channel
|
||||
|
||||
647
src/main/resources/assets/hbm/models/rbmk/lever.obj
Normal file
647
src/main/resources/assets/hbm/models/rbmk/lever.obj
Normal file
@ -0,0 +1,647 @@
|
||||
# Blender v2.79 (sub 0) OBJ File: ''
|
||||
# www.blender.org
|
||||
o Lever
|
||||
v 0.093750 0.812500 -0.062500
|
||||
v 0.093750 0.500000 -0.062500
|
||||
v 0.156250 0.812500 -0.062500
|
||||
v 0.156250 0.500000 -0.062500
|
||||
v 0.093750 0.500000 -0.125000
|
||||
v 0.093750 0.875000 -0.125000
|
||||
v 0.156250 0.500000 -0.125000
|
||||
v 0.156250 0.875000 -0.125000
|
||||
v 0.093750 0.875000 0.125000
|
||||
v 0.093750 0.500000 0.125000
|
||||
v 0.156250 0.875000 0.125000
|
||||
v 0.156250 0.500000 0.125000
|
||||
v 0.093750 0.500000 0.062500
|
||||
v 0.093750 0.812500 0.062500
|
||||
v 0.156250 0.500000 0.062500
|
||||
v 0.156250 0.812500 0.062500
|
||||
v 0.093750 0.875000 0.031250
|
||||
v 0.156250 0.875000 0.031250
|
||||
v 0.093750 0.875000 -0.031250
|
||||
v 0.156250 0.875000 -0.031250
|
||||
v 0.093750 1.062500 0.031250
|
||||
v 0.156250 1.062500 0.031250
|
||||
v 0.093750 1.062500 -0.031250
|
||||
v 0.156250 1.062500 -0.031250
|
||||
v 0.093750 0.593750 -0.156250
|
||||
v 0.093750 0.531250 -0.156250
|
||||
v 0.156250 0.593750 -0.156250
|
||||
v 0.156250 0.531250 -0.156250
|
||||
v 0.093750 0.531250 -0.187500
|
||||
v 0.093750 0.593750 -0.187500
|
||||
v 0.156250 0.531250 -0.187500
|
||||
v 0.156250 0.593750 -0.187500
|
||||
v 0.093750 0.593750 0.187500
|
||||
v 0.093750 0.531250 0.187500
|
||||
v 0.156250 0.593750 0.187500
|
||||
v 0.156250 0.531250 0.187500
|
||||
v 0.093750 0.531250 0.156250
|
||||
v 0.093750 0.593750 0.156250
|
||||
v 0.156250 0.531250 0.156250
|
||||
v 0.156250 0.593750 0.156250
|
||||
vt 0.600000 0.066667
|
||||
vt 0.550000 0.400000
|
||||
vt 0.550000 0.066667
|
||||
vt 0.700000 0.466667
|
||||
vt 0.650000 0.066667
|
||||
vt 0.700000 0.066667
|
||||
vt 0.500000 0.400000
|
||||
vt 0.650000 0.466667
|
||||
vt 0.450000 0.466667
|
||||
vt 0.450000 0.066667
|
||||
vt 0.500000 0.066667
|
||||
vt 0.600000 0.000000
|
||||
vt 0.600000 0.400000
|
||||
vt 0.650000 0.466667
|
||||
vt 0.450000 0.066667
|
||||
vt 0.400000 0.466667
|
||||
vt 0.400000 0.066667
|
||||
vt 0.550000 0.400000
|
||||
vt 0.500000 0.066667
|
||||
vt 0.550000 0.066667
|
||||
vt 0.500000 0.400000
|
||||
vt 0.600000 0.333333
|
||||
vt 0.650000 0.066667
|
||||
vt 0.600000 0.400000
|
||||
vt 0.600000 0.066667
|
||||
vt 0.450000 0.000000
|
||||
vt 0.450000 0.466667
|
||||
vt 0.650000 0.533333
|
||||
vt 0.900000 0.200000
|
||||
vt 0.850000 0.000000
|
||||
vt 0.900000 0.000000
|
||||
vt 0.850000 0.200000
|
||||
vt 0.800000 0.000000
|
||||
vt 0.750000 0.200000
|
||||
vt 0.700000 0.000000
|
||||
vt 0.750000 0.000000
|
||||
vt 0.800000 0.200000
|
||||
vt 0.750000 0.266667
|
||||
vt 0.800000 0.266667
|
||||
vt 0.400000 0.533333
|
||||
vt 0.450000 0.466667
|
||||
vt 0.450000 0.533333
|
||||
vt 0.450000 0.600000
|
||||
vt 0.400000 0.533333
|
||||
vt 0.450000 0.533333
|
||||
vt 0.450000 0.466667
|
||||
vt 0.400000 0.466667
|
||||
vt 0.350000 0.533333
|
||||
vt 0.400000 0.600000
|
||||
vt 0.350000 0.600000
|
||||
vt 0.400000 0.666667
|
||||
vt 0.450000 0.666667
|
||||
vt 0.500000 0.600000
|
||||
vt 0.500000 0.533333
|
||||
vt 0.500000 0.600000
|
||||
vt 0.450000 0.600000
|
||||
vt 0.400000 0.666667
|
||||
vt 0.400000 0.600000
|
||||
vt 0.350000 0.533333
|
||||
vt 0.650000 0.000000
|
||||
vt 0.500000 0.333333
|
||||
vt 0.500000 0.000000
|
||||
vt 0.450000 0.533333
|
||||
vt 0.700000 0.200000
|
||||
vt 0.400000 0.466667
|
||||
vt 0.500000 0.533333
|
||||
vt 0.450000 0.666667
|
||||
vt 0.350000 0.600000
|
||||
vn 0.0000 0.0000 1.0000
|
||||
vn 0.0000 0.0000 -1.0000
|
||||
vn -1.0000 0.0000 0.0000
|
||||
vn 0.0000 -1.0000 0.0000
|
||||
vn 1.0000 0.0000 0.0000
|
||||
vn 0.0000 1.0000 0.0000
|
||||
s off
|
||||
f 4/1/1 1/2/1 2/3/1
|
||||
f 6/4/2 7/5/2 5/6/2
|
||||
f 1/7/3 9/8/3 6/9/3
|
||||
f 1/7/3 5/10/3 2/11/3
|
||||
f 2/12/4 7/5/4 4/1/4
|
||||
f 3/13/5 7/5/5 8/14/5
|
||||
f 12/15/1 9/16/1 10/17/1
|
||||
f 14/18/2 15/19/2 13/20/2
|
||||
f 16/21/4 1/22/4 3/13/4
|
||||
f 10/23/3 14/24/3 13/25/3
|
||||
f 10/26/4 15/19/4 12/15/4
|
||||
f 12/15/5 16/21/5 11/27/5
|
||||
f 6/28/6 11/27/6 8/14/6
|
||||
f 8/14/5 16/21/5 3/13/5
|
||||
f 21/29/3 19/30/3 17/31/3
|
||||
f 23/32/2 20/33/2 19/30/2
|
||||
f 22/34/1 17/35/1 18/36/1
|
||||
f 24/37/5 18/36/5 20/33/5
|
||||
f 21/38/6 24/37/6 23/39/6
|
||||
f 34/40/4 39/41/4 36/42/4
|
||||
f 30/43/2 31/44/2 29/45/2
|
||||
f 26/46/4 31/44/4 28/47/4
|
||||
f 28/48/5 32/49/5 27/50/5
|
||||
f 27/51/6 30/43/6 25/52/6
|
||||
f 25/53/3 29/45/3 26/54/3
|
||||
f 36/42/5 40/55/5 35/56/5
|
||||
f 35/56/6 38/57/6 33/58/6
|
||||
f 33/58/3 37/59/3 34/40/3
|
||||
f 34/40/1 35/56/1 33/58/1
|
||||
f 4/1/1 3/13/1 1/2/1
|
||||
f 6/4/2 8/14/2 7/5/2
|
||||
f 1/7/3 14/24/3 9/8/3
|
||||
f 1/7/3 6/9/3 5/10/3
|
||||
f 2/12/4 5/60/4 7/5/4
|
||||
f 3/13/5 4/1/5 7/5/5
|
||||
f 12/15/1 11/27/1 9/16/1
|
||||
f 14/18/2 16/21/2 15/19/2
|
||||
f 16/21/4 14/61/4 1/22/4
|
||||
f 10/23/3 9/8/3 14/24/3
|
||||
f 10/26/4 13/62/4 15/19/4
|
||||
f 12/15/5 15/19/5 16/21/5
|
||||
f 6/28/6 9/63/6 11/27/6
|
||||
f 8/14/5 11/27/5 16/21/5
|
||||
f 21/29/3 23/32/3 19/30/3
|
||||
f 23/32/2 24/37/2 20/33/2
|
||||
f 22/34/1 21/64/1 17/35/1
|
||||
f 24/37/5 22/34/5 18/36/5
|
||||
f 21/38/6 22/34/6 24/37/6
|
||||
f 34/40/4 37/65/4 39/41/4
|
||||
f 30/43/2 32/49/2 31/44/2
|
||||
f 26/46/4 29/45/4 31/44/4
|
||||
f 28/48/5 31/44/5 32/49/5
|
||||
f 27/51/6 32/49/6 30/43/6
|
||||
f 25/53/3 30/43/3 29/45/3
|
||||
f 36/42/5 39/66/5 40/55/5
|
||||
f 35/56/6 40/67/6 38/57/6
|
||||
f 33/58/3 38/68/3 37/59/3
|
||||
f 34/40/1 36/42/1 35/56/1
|
||||
o Base
|
||||
v 0.000000 0.968750 0.156250
|
||||
v 0.000000 0.156250 0.156250
|
||||
v 0.000000 0.968750 -0.156250
|
||||
v 0.000000 0.156250 -0.156250
|
||||
v 0.062500 0.968750 -0.156250
|
||||
v 0.062500 0.968750 0.156250
|
||||
v 0.062500 0.156250 0.156250
|
||||
v 0.062500 0.156250 -0.156250
|
||||
v 0.062500 0.625000 0.062500
|
||||
v 0.062500 0.500000 0.062500
|
||||
v 0.062500 0.625000 -0.062500
|
||||
v 0.062500 0.500000 -0.062500
|
||||
v 0.187500 0.625000 -0.062500
|
||||
v 0.187500 0.625000 0.062500
|
||||
v 0.187500 0.500000 0.062500
|
||||
v 0.187500 0.500000 -0.062500
|
||||
v 0.062500 0.437500 0.156250
|
||||
v 0.062500 0.375000 0.156250
|
||||
v 0.062500 0.437500 0.031250
|
||||
v 0.062500 0.375000 0.031250
|
||||
v 0.156250 0.437500 0.031250
|
||||
v 0.156250 0.437500 0.156250
|
||||
v 0.156250 0.375000 0.156250
|
||||
v 0.156250 0.375000 0.031250
|
||||
v 0.156250 0.437500 0.062500
|
||||
v 0.093750 0.437500 0.125000
|
||||
v 0.156250 0.437500 0.125000
|
||||
v 0.156250 0.375000 0.125000
|
||||
v 0.093750 0.437500 0.062500
|
||||
v 0.156250 0.375000 0.062500
|
||||
v 0.093750 0.375000 0.125000
|
||||
v 0.093750 0.375000 0.062500
|
||||
v 0.062500 0.625000 0.156250
|
||||
v 0.062500 0.500000 0.156250
|
||||
v 0.062500 0.625000 0.125000
|
||||
v 0.062500 0.500000 0.125000
|
||||
v 0.187500 0.625000 0.125000
|
||||
v 0.187500 0.625000 0.156250
|
||||
v 0.187500 0.500000 0.156250
|
||||
v 0.187500 0.500000 0.125000
|
||||
v 0.062500 0.625000 -0.125000
|
||||
v 0.062500 0.500000 -0.125000
|
||||
v 0.062500 0.625000 -0.156250
|
||||
v 0.062500 0.500000 -0.156250
|
||||
v 0.187500 0.625000 -0.156250
|
||||
v 0.187500 0.625000 -0.125000
|
||||
v 0.187500 0.500000 -0.125000
|
||||
v 0.187500 0.500000 -0.156250
|
||||
v 0.062500 0.437500 -0.031250
|
||||
v 0.062500 0.375000 -0.031250
|
||||
v 0.062500 0.437500 -0.156250
|
||||
v 0.062500 0.375000 -0.156250
|
||||
v 0.156250 0.437500 -0.156250
|
||||
v 0.156250 0.437500 -0.031250
|
||||
v 0.156250 0.375000 -0.031250
|
||||
v 0.156250 0.375000 -0.156250
|
||||
v 0.156250 0.437500 -0.125000
|
||||
v 0.093750 0.437500 -0.062500
|
||||
v 0.156250 0.437500 -0.062500
|
||||
v 0.156250 0.375000 -0.062500
|
||||
v 0.093750 0.437500 -0.125000
|
||||
v 0.156250 0.375000 -0.125000
|
||||
v 0.093750 0.375000 -0.062500
|
||||
v 0.093750 0.375000 -0.125000
|
||||
v 0.062500 0.750000 0.156250
|
||||
v 0.062500 0.687500 0.156250
|
||||
v 0.062500 0.750000 0.031250
|
||||
v 0.062500 0.687500 0.031250
|
||||
v 0.156250 0.750000 0.031250
|
||||
v 0.156250 0.750000 0.156250
|
||||
v 0.156250 0.687500 0.156250
|
||||
v 0.156250 0.687500 0.031250
|
||||
v 0.156250 0.750000 0.062500
|
||||
v 0.093750 0.750000 0.125000
|
||||
v 0.156250 0.750000 0.125000
|
||||
v 0.156250 0.687500 0.125000
|
||||
v 0.093750 0.750000 0.062500
|
||||
v 0.156250 0.687500 0.062500
|
||||
v 0.093750 0.687500 0.125000
|
||||
v 0.093750 0.687500 0.062500
|
||||
v 0.062500 0.750000 -0.031250
|
||||
v 0.062500 0.687500 -0.031250
|
||||
v 0.062500 0.750000 -0.156250
|
||||
v 0.062500 0.687500 -0.156250
|
||||
v 0.156250 0.750000 -0.156250
|
||||
v 0.156250 0.750000 -0.031250
|
||||
v 0.156250 0.687500 -0.031250
|
||||
v 0.156250 0.687500 -0.156250
|
||||
v 0.156250 0.750000 -0.125000
|
||||
v 0.093750 0.750000 -0.062500
|
||||
v 0.156250 0.750000 -0.062500
|
||||
v 0.156250 0.687500 -0.062500
|
||||
v 0.093750 0.750000 -0.125000
|
||||
v 0.156250 0.687500 -0.125000
|
||||
v 0.093750 0.687500 -0.062500
|
||||
v 0.093750 0.687500 -0.125000
|
||||
vt 0.050000 0.066667
|
||||
vt 0.300000 0.933333
|
||||
vt 0.050000 0.933333
|
||||
vt 0.300000 0.000000
|
||||
vt 0.050000 0.000000
|
||||
vt 0.050000 1.000000
|
||||
vt 0.300000 1.000000
|
||||
vt 0.350000 0.933333
|
||||
vt 0.300000 0.066667
|
||||
vt 0.350000 0.066667
|
||||
vt 0.000000 0.066667
|
||||
vt 0.000000 0.933333
|
||||
vt 0.450000 0.733333
|
||||
vt 0.550000 0.866667
|
||||
vt 0.450000 0.866667
|
||||
vt 0.650000 0.866667
|
||||
vt 0.550000 0.733333
|
||||
vt 0.650000 0.733333
|
||||
vt 0.350000 0.733333
|
||||
vt 0.350000 0.866667
|
||||
vt 0.550000 0.600000
|
||||
vt 0.450000 0.600000
|
||||
vt 0.450000 1.000000
|
||||
vt 0.550000 1.000000
|
||||
vt 0.875000 0.533333
|
||||
vt 0.900000 0.600000
|
||||
vt 0.875000 0.600000
|
||||
vt 1.000000 0.600000
|
||||
vt 0.925000 0.533333
|
||||
vt 1.000000 0.533333
|
||||
vt 0.700000 0.533333
|
||||
vt 0.775000 0.600000
|
||||
vt 0.700000 0.600000
|
||||
vt 0.975000 0.600000
|
||||
vt 0.925000 0.533333
|
||||
vt 0.975000 0.533333
|
||||
vt 0.825000 0.533333
|
||||
vt 0.875000 0.600000
|
||||
vt 0.825000 0.600000
|
||||
vt 0.800000 0.533333
|
||||
vt 0.825000 0.600000
|
||||
vt 0.800000 0.600000
|
||||
vt 0.825000 0.700000
|
||||
vt 0.900000 0.733333
|
||||
vt 0.800000 0.733333
|
||||
vt 0.725000 0.533333
|
||||
vt 0.775000 0.600000
|
||||
vt 0.725000 0.600000
|
||||
vt 0.800000 0.633333
|
||||
vt 0.825000 0.633333
|
||||
vt 0.875000 0.700000
|
||||
vt 0.900000 0.633333
|
||||
vt 0.875000 0.433333
|
||||
vt 0.900000 0.500000
|
||||
vt 0.875000 0.500000
|
||||
vt 0.800000 0.500000
|
||||
vt 0.825000 0.433333
|
||||
vt 0.825000 0.500000
|
||||
vt 0.800000 0.400000
|
||||
vt 0.900000 0.400000
|
||||
vt 0.750000 0.733333
|
||||
vt 0.800000 0.866667
|
||||
vt 0.750000 0.866667
|
||||
vt 0.900000 0.866667
|
||||
vt 0.800000 0.733333
|
||||
vt 0.900000 0.733333
|
||||
vt 0.650000 0.733333
|
||||
vt 0.650000 0.866667
|
||||
vt 0.800000 0.600000
|
||||
vt 0.750000 0.600000
|
||||
vt 0.750000 1.000000
|
||||
vt 0.800000 1.000000
|
||||
vt 0.750000 0.733333
|
||||
vt 0.800000 0.866667
|
||||
vt 0.750000 0.866667
|
||||
vt 0.900000 0.866667
|
||||
vt 0.800000 0.733333
|
||||
vt 0.900000 0.733333
|
||||
vt 0.650000 0.733333
|
||||
vt 0.650000 0.866667
|
||||
vt 0.800000 0.600000
|
||||
vt 0.750000 0.600000
|
||||
vt 0.750000 1.000000
|
||||
vt 0.800000 1.000000
|
||||
vt 0.875000 0.533333
|
||||
vt 0.900000 0.600000
|
||||
vt 0.875000 0.600000
|
||||
vt 1.000000 0.600000
|
||||
vt 0.925000 0.533333
|
||||
vt 1.000000 0.533333
|
||||
vt 0.700000 0.533333
|
||||
vt 0.775000 0.600000
|
||||
vt 0.700000 0.600000
|
||||
vt 0.975000 0.600000
|
||||
vt 0.925000 0.533333
|
||||
vt 0.975000 0.533333
|
||||
vt 0.825000 0.533333
|
||||
vt 0.875000 0.600000
|
||||
vt 0.825000 0.600000
|
||||
vt 0.800000 0.533333
|
||||
vt 0.825000 0.600000
|
||||
vt 0.800000 0.600000
|
||||
vt 0.825000 0.700000
|
||||
vt 0.900000 0.733333
|
||||
vt 0.800000 0.733333
|
||||
vt 0.725000 0.533333
|
||||
vt 0.775000 0.600000
|
||||
vt 0.725000 0.600000
|
||||
vt 0.800000 0.633333
|
||||
vt 0.825000 0.633333
|
||||
vt 0.875000 0.700000
|
||||
vt 0.900000 0.633333
|
||||
vt 0.875000 0.433333
|
||||
vt 0.900000 0.500000
|
||||
vt 0.875000 0.500000
|
||||
vt 0.800000 0.500000
|
||||
vt 0.825000 0.433333
|
||||
vt 0.825000 0.500000
|
||||
vt 0.800000 0.400000
|
||||
vt 0.900000 0.400000
|
||||
vt 0.875000 0.533333
|
||||
vt 0.900000 0.600000
|
||||
vt 0.875000 0.600000
|
||||
vt 1.000000 0.600000
|
||||
vt 0.925000 0.533333
|
||||
vt 1.000000 0.533333
|
||||
vt 0.700000 0.533333
|
||||
vt 0.775000 0.600000
|
||||
vt 0.700000 0.600000
|
||||
vt 0.975000 0.600000
|
||||
vt 0.925000 0.533333
|
||||
vt 0.975000 0.533333
|
||||
vt 0.825000 0.533333
|
||||
vt 0.875000 0.600000
|
||||
vt 0.825000 0.600000
|
||||
vt 0.800000 0.533333
|
||||
vt 0.825000 0.600000
|
||||
vt 0.800000 0.600000
|
||||
vt 0.825000 0.700000
|
||||
vt 0.900000 0.733333
|
||||
vt 0.800000 0.733333
|
||||
vt 0.725000 0.533333
|
||||
vt 0.775000 0.600000
|
||||
vt 0.725000 0.600000
|
||||
vt 0.800000 0.633333
|
||||
vt 0.825000 0.633333
|
||||
vt 0.875000 0.700000
|
||||
vt 0.900000 0.633333
|
||||
vt 0.875000 0.433333
|
||||
vt 0.900000 0.500000
|
||||
vt 0.875000 0.500000
|
||||
vt 0.800000 0.500000
|
||||
vt 0.825000 0.433333
|
||||
vt 0.825000 0.500000
|
||||
vt 0.800000 0.400000
|
||||
vt 0.900000 0.400000
|
||||
vt 0.875000 0.533333
|
||||
vt 0.900000 0.600000
|
||||
vt 0.875000 0.600000
|
||||
vt 1.000000 0.600000
|
||||
vt 0.925000 0.533333
|
||||
vt 1.000000 0.533333
|
||||
vt 0.700000 0.533333
|
||||
vt 0.775000 0.600000
|
||||
vt 0.700000 0.600000
|
||||
vt 0.975000 0.600000
|
||||
vt 0.925000 0.533333
|
||||
vt 0.975000 0.533333
|
||||
vt 0.825000 0.533333
|
||||
vt 0.875000 0.600000
|
||||
vt 0.825000 0.600000
|
||||
vt 0.800000 0.533333
|
||||
vt 0.825000 0.600000
|
||||
vt 0.800000 0.600000
|
||||
vt 0.825000 0.700000
|
||||
vt 0.900000 0.733333
|
||||
vt 0.800000 0.733333
|
||||
vt 0.725000 0.533333
|
||||
vt 0.775000 0.600000
|
||||
vt 0.725000 0.600000
|
||||
vt 0.800000 0.633333
|
||||
vt 0.825000 0.633333
|
||||
vt 0.875000 0.700000
|
||||
vt 0.900000 0.633333
|
||||
vt 0.875000 0.433333
|
||||
vt 0.900000 0.500000
|
||||
vt 0.875000 0.500000
|
||||
vt 0.800000 0.500000
|
||||
vt 0.825000 0.433333
|
||||
vt 0.825000 0.500000
|
||||
vt 0.800000 0.400000
|
||||
vt 0.900000 0.400000
|
||||
vt 0.900000 0.533333
|
||||
vt 0.925000 0.600000
|
||||
vt 0.775000 0.533333
|
||||
vt 0.925000 0.600000
|
||||
vt 0.875000 0.533333
|
||||
vt 0.825000 0.533333
|
||||
vt 0.775000 0.533333
|
||||
vt 0.875000 0.633333
|
||||
vt 0.900000 0.533333
|
||||
vt 0.925000 0.600000
|
||||
vt 0.775000 0.533333
|
||||
vt 0.925000 0.600000
|
||||
vt 0.875000 0.533333
|
||||
vt 0.825000 0.533333
|
||||
vt 0.775000 0.533333
|
||||
vt 0.875000 0.633333
|
||||
vt 0.900000 0.533333
|
||||
vt 0.925000 0.600000
|
||||
vt 0.775000 0.533333
|
||||
vt 0.925000 0.600000
|
||||
vt 0.875000 0.533333
|
||||
vt 0.825000 0.533333
|
||||
vt 0.775000 0.533333
|
||||
vt 0.875000 0.633333
|
||||
vt 0.900000 0.533333
|
||||
vt 0.925000 0.600000
|
||||
vt 0.775000 0.533333
|
||||
vt 0.925000 0.600000
|
||||
vt 0.875000 0.533333
|
||||
vt 0.825000 0.533333
|
||||
vt 0.775000 0.533333
|
||||
vt 0.875000 0.633333
|
||||
vn 1.0000 0.0000 0.0000
|
||||
vn 0.0000 -1.0000 0.0000
|
||||
vn 0.0000 1.0000 0.0000
|
||||
vn 0.0000 0.0000 -1.0000
|
||||
vn 0.0000 0.0000 1.0000
|
||||
s off
|
||||
f 47/69/7 45/70/7 46/71/7
|
||||
f 44/72/8 47/69/8 42/73/8
|
||||
f 41/74/9 45/70/9 43/75/9
|
||||
f 43/76/10 48/77/10 44/78/10
|
||||
f 42/79/11 46/71/11 41/80/11
|
||||
f 55/81/7 53/82/7 54/83/7
|
||||
f 51/84/10 56/85/10 52/86/10
|
||||
f 50/87/11 54/83/11 49/88/11
|
||||
f 52/89/8 55/81/8 50/90/8
|
||||
f 49/91/9 53/82/9 51/92/9
|
||||
f 70/93/7 61/94/7 65/95/7
|
||||
f 59/96/10 64/97/10 60/98/10
|
||||
f 58/99/11 62/100/11 57/101/11
|
||||
f 65/102/11 72/103/11 70/104/11
|
||||
f 71/105/7 69/106/7 66/107/7
|
||||
f 63/108/7 67/109/7 62/110/7
|
||||
f 66/111/9 59/112/9 57/113/9
|
||||
f 68/114/10 66/115/10 67/116/10
|
||||
f 66/111/9 62/117/9 67/118/9
|
||||
f 69/119/9 61/120/9 59/112/9
|
||||
f 72/121/8 64/122/8 70/123/8
|
||||
f 63/124/8 71/125/8 68/126/8
|
||||
f 72/121/8 58/127/8 60/128/8
|
||||
f 79/129/7 77/130/7 78/131/7
|
||||
f 75/132/10 80/133/10 76/134/10
|
||||
f 74/135/11 78/131/11 73/136/11
|
||||
f 76/137/8 79/129/8 74/138/8
|
||||
f 73/139/9 77/130/9 75/140/9
|
||||
f 87/141/7 85/142/7 86/143/7
|
||||
f 83/144/10 88/145/10 84/146/10
|
||||
f 82/147/11 86/143/11 81/148/11
|
||||
f 84/149/8 87/141/8 82/150/8
|
||||
f 81/151/9 85/142/9 83/152/9
|
||||
f 102/153/7 93/154/7 97/155/7
|
||||
f 91/156/10 96/157/10 92/158/10
|
||||
f 90/159/11 94/160/11 89/161/11
|
||||
f 97/162/11 104/163/11 102/164/11
|
||||
f 103/165/7 101/166/7 98/167/7
|
||||
f 95/168/7 99/169/7 94/170/7
|
||||
f 98/171/9 91/172/9 89/173/9
|
||||
f 100/174/10 98/175/10 99/176/10
|
||||
f 98/171/9 94/177/9 99/178/9
|
||||
f 101/179/9 93/180/9 91/172/9
|
||||
f 104/181/8 96/182/8 102/183/8
|
||||
f 95/184/8 103/185/8 100/186/8
|
||||
f 104/181/8 90/187/8 92/188/8
|
||||
f 118/189/7 109/190/7 113/191/7
|
||||
f 107/192/10 112/193/10 108/194/10
|
||||
f 106/195/11 110/196/11 105/197/11
|
||||
f 113/198/11 120/199/11 118/200/11
|
||||
f 119/201/7 117/202/7 114/203/7
|
||||
f 111/204/7 115/205/7 110/206/7
|
||||
f 114/207/9 107/208/9 105/209/9
|
||||
f 116/210/10 114/211/10 115/212/10
|
||||
f 114/207/9 110/213/9 115/214/9
|
||||
f 117/215/9 109/216/9 107/208/9
|
||||
f 120/217/8 112/218/8 118/219/8
|
||||
f 111/220/8 119/221/8 116/222/8
|
||||
f 120/217/8 106/223/8 108/224/8
|
||||
f 134/225/7 125/226/7 129/227/7
|
||||
f 123/228/10 128/229/10 124/230/10
|
||||
f 122/231/11 126/232/11 121/233/11
|
||||
f 129/234/11 136/235/11 134/236/11
|
||||
f 135/237/7 133/238/7 130/239/7
|
||||
f 127/240/7 131/241/7 126/242/7
|
||||
f 130/243/9 123/244/9 121/245/9
|
||||
f 132/246/10 130/247/10 131/248/10
|
||||
f 130/243/9 126/249/9 131/250/9
|
||||
f 133/251/9 125/252/9 123/244/9
|
||||
f 136/253/8 128/254/8 134/255/8
|
||||
f 127/256/8 135/257/8 132/258/8
|
||||
f 136/253/8 122/259/8 124/260/8
|
||||
f 47/69/7 48/77/7 45/70/7
|
||||
f 44/72/8 48/77/8 47/69/8
|
||||
f 41/74/9 46/71/9 45/70/9
|
||||
f 43/76/10 45/70/10 48/77/10
|
||||
f 42/79/11 47/69/11 46/71/11
|
||||
f 55/81/7 56/85/7 53/82/7
|
||||
f 51/84/10 53/82/10 56/85/10
|
||||
f 50/87/11 55/81/11 54/83/11
|
||||
f 52/89/8 56/85/8 55/81/8
|
||||
f 49/91/9 54/83/9 53/82/9
|
||||
f 70/93/7 64/261/7 61/94/7
|
||||
f 59/96/10 61/262/10 64/97/10
|
||||
f 58/99/11 63/263/11 62/100/11
|
||||
f 65/102/11 69/264/11 72/103/11
|
||||
f 71/105/7 72/265/7 69/106/7
|
||||
f 63/108/7 68/266/7 67/109/7
|
||||
f 66/111/9 69/119/9 59/112/9
|
||||
f 68/114/10 71/267/10 66/115/10
|
||||
f 66/111/9 57/113/9 62/117/9
|
||||
f 69/119/9 65/268/9 61/120/9
|
||||
f 72/121/8 60/128/8 64/122/8
|
||||
f 63/124/8 58/127/8 71/125/8
|
||||
f 72/121/8 71/125/8 58/127/8
|
||||
f 79/129/7 80/133/7 77/130/7
|
||||
f 75/132/10 77/130/10 80/133/10
|
||||
f 74/135/11 79/129/11 78/131/11
|
||||
f 76/137/8 80/133/8 79/129/8
|
||||
f 73/139/9 78/131/9 77/130/9
|
||||
f 87/141/7 88/145/7 85/142/7
|
||||
f 83/144/10 85/142/10 88/145/10
|
||||
f 82/147/11 87/141/11 86/143/11
|
||||
f 84/149/8 88/145/8 87/141/8
|
||||
f 81/151/9 86/143/9 85/142/9
|
||||
f 102/153/7 96/269/7 93/154/7
|
||||
f 91/156/10 93/270/10 96/157/10
|
||||
f 90/159/11 95/271/11 94/160/11
|
||||
f 97/162/11 101/272/11 104/163/11
|
||||
f 103/165/7 104/273/7 101/166/7
|
||||
f 95/168/7 100/274/7 99/169/7
|
||||
f 98/171/9 101/179/9 91/172/9
|
||||
f 100/174/10 103/275/10 98/175/10
|
||||
f 98/171/9 89/173/9 94/177/9
|
||||
f 101/179/9 97/276/9 93/180/9
|
||||
f 104/181/8 92/188/8 96/182/8
|
||||
f 95/184/8 90/187/8 103/185/8
|
||||
f 104/181/8 103/185/8 90/187/8
|
||||
f 118/189/7 112/277/7 109/190/7
|
||||
f 107/192/10 109/278/10 112/193/10
|
||||
f 106/195/11 111/279/11 110/196/11
|
||||
f 113/198/11 117/280/11 120/199/11
|
||||
f 119/201/7 120/281/7 117/202/7
|
||||
f 111/204/7 116/282/7 115/205/7
|
||||
f 114/207/9 117/215/9 107/208/9
|
||||
f 116/210/10 119/283/10 114/211/10
|
||||
f 114/207/9 105/209/9 110/213/9
|
||||
f 117/215/9 113/284/9 109/216/9
|
||||
f 120/217/8 108/224/8 112/218/8
|
||||
f 111/220/8 106/223/8 119/221/8
|
||||
f 120/217/8 119/221/8 106/223/8
|
||||
f 134/225/7 128/285/7 125/226/7
|
||||
f 123/228/10 125/286/10 128/229/10
|
||||
f 122/231/11 127/287/11 126/232/11
|
||||
f 129/234/11 133/288/11 136/235/11
|
||||
f 135/237/7 136/289/7 133/238/7
|
||||
f 127/240/7 132/290/7 131/241/7
|
||||
f 130/243/9 133/251/9 123/244/9
|
||||
f 132/246/10 135/291/10 130/247/10
|
||||
f 130/243/9 121/245/9 126/249/9
|
||||
f 133/251/9 129/292/9 125/252/9
|
||||
f 136/253/8 124/260/8 128/254/8
|
||||
f 127/256/8 122/259/8 135/257/8
|
||||
f 136/253/8 135/257/8 122/259/8
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 2.8 KiB |
BIN
src/main/resources/assets/hbm/textures/models/network/lever.png
Normal file
BIN
src/main/resources/assets/hbm/textures/models/network/lever.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 394 B |
Loading…
x
Reference in New Issue
Block a user