fixes, starting to replace redstone
This commit is contained in:
parent
92b7214c69
commit
13b6a4e280
34 changed files with 109 additions and 209 deletions
|
@ -241,6 +241,12 @@ public class Client implements IThreadListener {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class ItemRedrawFunction implements BoolFunction {
|
||||||
|
public void apply(BoolVar cv, boolean value) {
|
||||||
|
Client.CLIENT.rescale();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static class LevelFunction implements EnumFunction<LogLevel> {
|
public static class LevelFunction implements EnumFunction<LogLevel> {
|
||||||
public void apply(EnumVar cv, LogLevel value) {
|
public void apply(EnumVar cv, LogLevel value) {
|
||||||
Log.setLevel(value);
|
Log.setLevel(value);
|
||||||
|
@ -443,6 +449,8 @@ public class Client implements IThreadListener {
|
||||||
|
|
||||||
@Variable(name = "gui_scale", category = CVarCategory.GUI, min = 1, max = 5, display = "Skalierung", unit = "x", callback = RedrawFunction.class)
|
@Variable(name = "gui_scale", category = CVarCategory.GUI, min = 1, max = 5, display = "Skalierung", unit = "x", callback = RedrawFunction.class)
|
||||||
private int scaleVar = 2;
|
private int scaleVar = 2;
|
||||||
|
@Variable(name = "gui_scale_items", category = CVarCategory.GUI, display = "Gegenstände vergrößern", callback = ItemRedrawFunction.class)
|
||||||
|
public boolean scaleItems = true;
|
||||||
@Variable(name = "phy_sensitivity", category = CVarCategory.INPUT, min = 0.01f, max = 10.0f, display = "Mausempfindlichkeit", precision = 2, unit = "%")
|
@Variable(name = "phy_sensitivity", category = CVarCategory.INPUT, min = 0.01f, max = 10.0f, display = "Mausempfindlichkeit", precision = 2, unit = "%")
|
||||||
private float sensitivity = 1.0f;
|
private float sensitivity = 1.0f;
|
||||||
@Variable(name = "gui_dclick_delay", category = CVarCategory.INPUT, min = 150, max = 750, display = "Doppelklick bei", unit = "ms")
|
@Variable(name = "gui_dclick_delay", category = CVarCategory.INPUT, min = 150, max = 750, display = "Doppelklick bei", unit = "ms")
|
||||||
|
@ -1101,7 +1109,7 @@ public class Client implements IThreadListener {
|
||||||
ItemStack itemstack = this.player.inventory.mainInventory[index];
|
ItemStack itemstack = this.player.inventory.mainInventory[index];
|
||||||
if(itemstack != null) {
|
if(itemstack != null) {
|
||||||
GuiContainer.renderItemOverlay(itemstack,
|
GuiContainer.renderItemOverlay(itemstack,
|
||||||
this.fbX / 2 - 180 + 4 + 1 + index * 40, this.fbY - 40 + 1, null, index == this.player.inventory.currentItem ? this.controller.getUseCooldown() : 0, this.controller.getUseCooldownMax());
|
this.fbX / 2 - 180 + 4 + 1 + index * 40, this.fbY - 40 + 1, null, index == this.player.inventory.currentItem ? this.controller.getUseCooldown() : 0, this.controller.getUseCooldownMax(), 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,6 +10,7 @@ import java.util.Map.Entry;
|
||||||
import org.lwjgl.opengl.GL11;
|
import org.lwjgl.opengl.GL11;
|
||||||
import org.lwjgl.opengl.GL13;
|
import org.lwjgl.opengl.GL13;
|
||||||
|
|
||||||
|
import client.Client;
|
||||||
import client.gui.Font;
|
import client.gui.Font;
|
||||||
import client.gui.Gui;
|
import client.gui.Gui;
|
||||||
import client.gui.element.ActButton;
|
import client.gui.element.ActButton;
|
||||||
|
@ -84,6 +85,7 @@ public abstract class GuiContainer extends Gui
|
||||||
protected int container_y;
|
protected int container_y;
|
||||||
protected int container_w;
|
protected int container_w;
|
||||||
protected int container_h;
|
protected int container_h;
|
||||||
|
protected int container_scale;
|
||||||
|
|
||||||
private int hover_x;
|
private int hover_x;
|
||||||
private int hover_y;
|
private int hover_y;
|
||||||
|
@ -192,41 +194,41 @@ public abstract class GuiContainer extends Gui
|
||||||
}
|
}
|
||||||
|
|
||||||
public Label label(String text, int x, int y) {
|
public Label label(String text, int x, int y) {
|
||||||
x = x * 2 + this.container_x;
|
x = x * this.container_scale + this.container_x;
|
||||||
y = y * 2 + this.container_y;
|
y = y * this.container_scale + this.container_y;
|
||||||
return this.add(new Label(x, y, 300, 0, text, true));
|
return this.add(new Label(x, y, 300, 0, text, true));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void rect(int x, int y, int width, int height, int color) {
|
public void rect(int x, int y, int width, int height, int color) {
|
||||||
Drawing.drawRect(this.container_x + x * 2, this.container_y + y * 2, width * 2, height * 2, 0xff000000 | color);
|
Drawing.drawRect(this.container_x + x * this.container_scale, this.container_y + y * this.container_scale, width * this.container_scale, height * this.container_scale, 0xff000000 | color);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void grad(int x, int y, int width, int height, int top, int bottom, int topleft, int btmright) {
|
public void grad(int x, int y, int width, int height, int top, int bottom, int topleft, int btmright) {
|
||||||
Drawing.drawGradient(this.container_x + x * 2, this.container_y + y * 2, width * 2, height * 2, 0xff000000 | top, 0xff000000 | bottom, 0xff000000 | topleft, 0xff000000 | btmright);
|
Drawing.drawGradient(this.container_x + x * this.container_scale, this.container_y + y * this.container_scale, width * this.container_scale, height * this.container_scale, 0xff000000 | top, 0xff000000 | bottom, 0xff000000 | topleft, 0xff000000 | btmright);
|
||||||
}
|
}
|
||||||
|
|
||||||
public InventoryButton slot(int x, int y, int w, int h) {
|
public InventoryButton slot(int x, int y, int w, int h) {
|
||||||
return this.add(new InventoryButton(this.container_x + x * 2, this.container_y + y * 2, w * 2, h * 2));
|
return this.add(new InventoryButton(this.container_x + x * this.container_scale, this.container_y + y * this.container_scale, w * this.container_scale, h * this.container_scale));
|
||||||
}
|
}
|
||||||
|
|
||||||
public ActButton button(int x, int y, int w, int h, ButtonCallback callback, String text) {
|
public ActButton button(int x, int y, int w, int h, ButtonCallback callback, String text) {
|
||||||
return this.add(new ActButton(this.container_x + x * 2, this.container_y + y * 2, w * 2, h * 2, callback, text));
|
return this.add(new ActButton(this.container_x + x * this.container_scale, this.container_y + y * this.container_scale, w * this.container_scale, h * this.container_scale, callback, text));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void mouse(Button btn, int x, int y, boolean ctrl, boolean shift) {
|
public void mouse(Button btn, int x, int y, boolean ctrl, boolean shift) {
|
||||||
super.mouse(btn, x, y, ctrl, shift);
|
super.mouse(btn, x, y, ctrl, shift);
|
||||||
this.mouseClicked((x - this.container_x) / 2, (y - this.container_y) / 2, btn.ordinal()); //TODO: enum
|
this.mouseClicked((x - this.container_x) / this.container_scale, (y - this.container_y) / this.container_scale, btn.ordinal()); //TODO: enum
|
||||||
}
|
}
|
||||||
|
|
||||||
public void mouserel(Button btn, int x, int y) {
|
public void mouserel(Button btn, int x, int y) {
|
||||||
super.mouserel(btn, x, y);
|
super.mouserel(btn, x, y);
|
||||||
this.mouseReleased((x - this.container_x) / 2, (y - this.container_y) / 2, btn.ordinal()); //TODO: enum
|
this.mouseReleased((x - this.container_x) / this.container_scale, (y - this.container_y) / this.container_scale, btn.ordinal()); //TODO: enum
|
||||||
}
|
}
|
||||||
|
|
||||||
public void drag(int x, int y) {
|
public void drag(int x, int y) {
|
||||||
super.drag(x, y);
|
super.drag(x, y);
|
||||||
if(Button.MOUSE_LEFT.isDown() || Button.MOUSE_RIGHT.isDown() || Button.MOUSE_MIDDLE.isDown())
|
if(Button.MOUSE_LEFT.isDown() || Button.MOUSE_RIGHT.isDown() || Button.MOUSE_MIDDLE.isDown())
|
||||||
this.mouseDragged((x - this.container_x) / 2, (y - this.container_y) / 2);
|
this.mouseDragged((x - this.container_x) / this.container_scale, (y - this.container_y) / this.container_scale);
|
||||||
}
|
}
|
||||||
|
|
||||||
public GuiContainer(Container container)
|
public GuiContainer(Container container)
|
||||||
|
@ -239,8 +241,9 @@ public abstract class GuiContainer extends Gui
|
||||||
this.itemRender = this.gm.getRenderItem();
|
this.itemRender = this.gm.getRenderItem();
|
||||||
this.tooltip = null;
|
this.tooltip = null;
|
||||||
this.cheatStack = null;
|
this.cheatStack = null;
|
||||||
this.container_x = (width - (this.container_w = (this.xSize * 2))) / 2;
|
this.container_scale = this.gm.scaleItems && this.xSize * 2 <= Client.MIN_WIDTH && this.ySize * 2 <= Client.MIN_HEIGHT ? 2 : 1;
|
||||||
this.container_y = (height - (this.container_h = (this.ySize * 2))) / 2;
|
this.container_x = (width - (this.container_w = (this.xSize * this.container_scale))) / 2;
|
||||||
|
this.container_y = (height - (this.container_h = (this.ySize * this.container_scale))) / 2;
|
||||||
this.initGui();
|
this.initGui();
|
||||||
this.addButtons();
|
this.addButtons();
|
||||||
this.addElements();
|
this.addElements();
|
||||||
|
@ -248,8 +251,8 @@ public abstract class GuiContainer extends Gui
|
||||||
|
|
||||||
public void hover(String text, int x, int y) {
|
public void hover(String text, int x, int y) {
|
||||||
this.tooltip = text;
|
this.tooltip = text;
|
||||||
this.hover_x = x * 2 + this.container_x + 16;
|
this.hover_x = x * this.container_scale + this.container_x + 16;
|
||||||
this.hover_y = y * 2 + this.container_y + 16;
|
this.hover_y = y * this.container_scale + this.container_y + 16;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getTitle() {
|
public String getTitle() {
|
||||||
|
@ -302,8 +305,9 @@ public abstract class GuiContainer extends Gui
|
||||||
|
|
||||||
if(this.gm.itemCheat) {
|
if(this.gm.itemCheat) {
|
||||||
GL11.glPushMatrix();
|
GL11.glPushMatrix();
|
||||||
GL11.glTranslatef(-(float)((this.gm.fbX - this.xSize * 2) / 2) * 0.5f, -(float)((this.gm.fbY - this.ySize * 2) / 2) * 0.5f, 0.0f);
|
GL11.glTranslatef(-(float)((this.gm.fbX - this.xSize * this.container_scale) / 2) * (1.0f / (float)this.container_scale), -(float)((this.gm.fbY - this.ySize * this.container_scale) / 2) * (1.0f / (float)this.container_scale), 0.0f);
|
||||||
GL11.glScalef(0.5f, 0.5f, 0.5f);
|
if(this.container_scale != 1)
|
||||||
|
GL11.glScalef(1.0f / (float)this.container_scale, 1.0f / (float)this.container_scale, 1.0f / (float)this.container_scale);
|
||||||
int i = (ITEM_LIST.size() + this.cheatWidth - 1) / this.cheatWidth - this.cheatHeight;
|
int i = (ITEM_LIST.size() + this.cheatWidth - 1) / this.cheatWidth - this.cheatHeight;
|
||||||
int j = (int)((double)(this.currentScroll * (float)i) + 0.5D);
|
int j = (int)((double)(this.currentScroll * (float)i) + 0.5D);
|
||||||
|
|
||||||
|
@ -496,9 +500,10 @@ public abstract class GuiContainer extends Gui
|
||||||
|
|
||||||
public void drawPost() {
|
public void drawPost() {
|
||||||
GL11.glPushMatrix();
|
GL11.glPushMatrix();
|
||||||
GL11.glTranslatef((float)((this.gm.fbX - this.xSize * 2) / 2), (float)((this.gm.fbY - this.ySize * 2) / 2), 0.0f);
|
GL11.glTranslatef((float)((this.gm.fbX - this.xSize * this.container_scale) / 2), (float)((this.gm.fbY - this.ySize * this.container_scale) / 2), 0.0f);
|
||||||
GL11.glScalef(2.0f, 2.0f, 2.0f);
|
if(this.container_scale != 1)
|
||||||
this.drawScreen((this.gm.mouseX - this.container_x) / 2, (this.gm.mouseY - this.container_y) / 2);
|
GL11.glScalef((float)this.container_scale, (float)this.container_scale, (float)this.container_scale);
|
||||||
|
this.drawScreen((this.gm.mouseX - this.container_x) / this.container_scale, (this.gm.mouseY - this.container_y) / this.container_scale);
|
||||||
GL11.glPopMatrix();
|
GL11.glPopMatrix();
|
||||||
ItemRenderer.disableStandardItemLighting();
|
ItemRenderer.disableStandardItemLighting();
|
||||||
}
|
}
|
||||||
|
@ -862,10 +867,10 @@ public abstract class GuiContainer extends Gui
|
||||||
|
|
||||||
public void renderItemOverlayIntoGUI(ItemStack stack, int xPosition, int yPosition, String text)
|
public void renderItemOverlayIntoGUI(ItemStack stack, int xPosition, int yPosition, String text)
|
||||||
{
|
{
|
||||||
renderItemOverlay(stack, this.container_x + xPosition * 2, this.container_y + yPosition * 2, text, 0, 0);
|
renderItemOverlay(stack, this.container_x + xPosition * this.container_scale, this.container_y + yPosition * this.container_scale, text, 0, 0, this.container_scale);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void renderItemOverlay(ItemStack stack, int xPosition, int yPosition, String text, int bar2, int bar2max)
|
public static void renderItemOverlay(ItemStack stack, int xPosition, int yPosition, String text, int bar2, int bar2max, int scale)
|
||||||
{
|
{
|
||||||
if (stack != null)
|
if (stack != null)
|
||||||
{
|
{
|
||||||
|
@ -877,25 +882,25 @@ public abstract class GuiContainer extends Gui
|
||||||
{
|
{
|
||||||
s = TextColor.RED + formatAmount(stack.getSize());
|
s = TextColor.RED + formatAmount(stack.getSize());
|
||||||
}
|
}
|
||||||
Drawing.drawTextRight(s, xPosition + 32, yPosition + 33 - Font.YGLYPH, 0xffffffff);
|
Drawing.drawTextRight(s, xPosition + scale * 16, yPosition + scale * 16 + 1 - Font.YGLYPH, 0xffffffff);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (stack.isItemDamaged())
|
if (stack.isItemDamaged())
|
||||||
{
|
{
|
||||||
int j = (int)Math.round(28.0D - (double)stack.getItemDamage() * 28.0D / (double)stack.getMaxDamage());
|
int j = (int)Math.round(14.0D * (double)scale - (double)stack.getItemDamage() * (14.0D * (double)scale) / (double)stack.getMaxDamage());
|
||||||
int i = (int)Math.round(255.0D - (double)stack.getItemDamage() * 255.0D / (double)stack.getMaxDamage());
|
int i = (int)Math.round(255.0D - (double)stack.getItemDamage() * 255.0D / (double)stack.getMaxDamage());
|
||||||
draw(xPosition + 2, yPosition + 26, 28, 4, 0, 0, 0);
|
draw(xPosition + scale, yPosition + 13 * scale, 14 * scale, scale * 2, 0, 0, 0);
|
||||||
draw(xPosition + 2, yPosition + 26, 26, 2, (255 - i) / 4, 64, 0);
|
draw(xPosition + scale, yPosition + 13 * scale, 13 * scale, scale, (255 - i) / 4, 64, 0);
|
||||||
draw(xPosition + 2, yPosition + 26, j, 2, 255 - i, i, 0);
|
draw(xPosition + scale, yPosition + 13 * scale, j, scale, 255 - i, i, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (bar2 > 0)
|
if (bar2 > 0)
|
||||||
{
|
{
|
||||||
int j = (int)Math.round(28.0D - (double)bar2 * 28.0D / (double)bar2max);
|
int j = (int)Math.round(14.0D * (double)scale - (double)bar2 * (14.0D * (double)scale) / (double)bar2max);
|
||||||
int i = (int)Math.round(255.0D - (double)bar2 * 255.0D / (double)bar2max);
|
int i = (int)Math.round(255.0D - (double)bar2 * 255.0D / (double)bar2max);
|
||||||
draw(xPosition + 2, yPosition + 4, 28, 4, 0, 0, 0);
|
draw(xPosition + scale, yPosition + scale * 2, 14 * scale, scale * 2, 0, 0, 0);
|
||||||
draw(xPosition + 2, yPosition + 4, 26, 2, (255 - i) / 8, (255 - i) / 16, i / 4);
|
draw(xPosition + scale, yPosition + scale * 2, 13 * scale, scale, (255 - i) / 8, (255 - i) / 16, i / 4);
|
||||||
draw(xPosition + 2 + 28 - j, yPosition + 4, j, 2, (255 - i) / 2, (255 - i) / 4, i);
|
draw(xPosition + scale + 14 * scale - j, yPosition + scale * 2, j, scale, (255 - i) / 2, (255 - i) / 4, i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -76,6 +76,7 @@ public class GuiStyle extends GuiOptions {
|
||||||
|
|
||||||
this.addSelector("gui_scale", 0, 3 * 34 + 20, 240, 0);
|
this.addSelector("gui_scale", 0, 3 * 34 + 20, 240, 0);
|
||||||
this.addSelector("gui_font", 242, 3 * 34 + 20, 240, 0);
|
this.addSelector("gui_font", 242, 3 * 34 + 20, 240, 0);
|
||||||
|
this.addSelector("gui_scale_items", 0, 3 * 34 + 40, 240, 0);
|
||||||
super.init(width, height);
|
super.init(width, height);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 395 B |
Binary file not shown.
Before Width: | Height: | Size: 356 B |
Binary file not shown.
Before Width: | Height: | Size: 395 B |
|
@ -861,21 +861,29 @@ public class Block {
|
||||||
return this.colorMultiplier(worldIn, pos, 0);
|
return this.colorMultiplier(worldIn, pos, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getWeakPower(IWorldAccess worldIn, BlockPos pos, State state, Facing side) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean canProvidePower() {
|
public boolean canProvidePower() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onEntityCollidedWithBlock(World worldIn, BlockPos pos, State state, Entity entityIn) {
|
public int getWeakPower(IWorldAccess worldIn, BlockPos pos, State state, Facing side) {
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getStrongPower(IWorldAccess worldIn, BlockPos pos, State state, Facing side) {
|
public int getStrongPower(IWorldAccess worldIn, BlockPos pos, State state, Facing side) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean hasSignalProcessing() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getSignal(World worldIn, BlockPos pos, int input) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onEntityCollidedWithBlock(World worldIn, BlockPos pos, State state, Entity entityIn) {
|
||||||
|
}
|
||||||
|
|
||||||
public void setBlockBoundsForItemRender() {
|
public void setBlockBoundsForItemRender() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -926,10 +934,6 @@ public class Block {
|
||||||
return this.material.getMobility();
|
return this.material.getMobility();
|
||||||
}
|
}
|
||||||
|
|
||||||
public float getAmbientOcclusionLightValue() {
|
|
||||||
return this.isBlockNormalCube() ? 0.2F : 1.0F;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onFallenUpon(World worldIn, BlockPos pos, Entity entityIn, float fallDistance) {
|
public void onFallenUpon(World worldIn, BlockPos pos, Entity entityIn, float fallDistance) {
|
||||||
entityIn.fall(fallDistance, 1.0F);
|
entityIn.fall(fallDistance, 1.0F);
|
||||||
}
|
}
|
||||||
|
@ -972,14 +976,6 @@ public class Block {
|
||||||
return blockIn != null && other != null ? (blockIn == other ? true : blockIn.isAssociatedBlock(other)) : false;
|
return blockIn != null && other != null ? (blockIn == other ? true : blockIn.isAssociatedBlock(other)) : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasComparatorInputOverride() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getComparatorInputOverride(World worldIn, BlockPos pos) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
public State getStateForEntityRender(State state) {
|
public State getStateForEntityRender(State state) {
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|
|
@ -219,12 +219,12 @@ public class BlockCake extends Block
|
||||||
return new Property[] {BITES};
|
return new Property[] {BITES};
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getComparatorInputOverride(World worldIn, BlockPos pos)
|
public int getSignal(World worldIn, BlockPos pos, int input)
|
||||||
{
|
{
|
||||||
return (7 - ((Integer)worldIn.getState(pos).getValue(BITES)).intValue()) * 2;
|
return (7 - ((Integer)worldIn.getState(pos).getValue(BITES)).intValue()) * 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasComparatorInputOverride()
|
public boolean hasSignalProcessing()
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -97,12 +97,12 @@ public class BlockPortalFrame extends Block implements Rotatable
|
||||||
return this.getState().withProperty(FACING, placer.getHorizontalFacing().getOpposite()).withProperty(ORB, Boolean.valueOf(false));
|
return this.getState().withProperty(FACING, placer.getHorizontalFacing().getOpposite()).withProperty(ORB, Boolean.valueOf(false));
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasComparatorInputOverride()
|
public boolean hasSignalProcessing()
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getComparatorInputOverride(World worldIn, BlockPos pos)
|
public int getSignal(World worldIn, BlockPos pos, int input)
|
||||||
{
|
{
|
||||||
return ((Boolean)worldIn.getState(pos).getValue(ORB)).booleanValue() ? 15 : 0;
|
return ((Boolean)worldIn.getState(pos).getValue(ORB)).booleanValue() ? 15 : 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -468,12 +468,12 @@ public class BlockBrewingStand extends BlockContainer
|
||||||
return Items.brewing_stand;
|
return Items.brewing_stand;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasComparatorInputOverride()
|
public boolean hasSignalProcessing()
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getComparatorInputOverride(World worldIn, BlockPos pos)
|
public int getSignal(World worldIn, BlockPos pos, int input)
|
||||||
{
|
{
|
||||||
return Container.calcRedstone(worldIn.getTileEntity(pos));
|
return Container.calcRedstone(worldIn.getTileEntity(pos));
|
||||||
}
|
}
|
||||||
|
|
|
@ -585,12 +585,12 @@ public class BlockCauldron extends Block
|
||||||
return Items.cauldron;
|
return Items.cauldron;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasComparatorInputOverride()
|
public boolean hasSignalProcessing()
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getComparatorInputOverride(World worldIn, BlockPos pos)
|
public int getSignal(World worldIn, BlockPos pos, int input)
|
||||||
{
|
{
|
||||||
return ((Integer)worldIn.getState(pos).getValue(LEVEL)).intValue();
|
return ((Integer)worldIn.getState(pos).getValue(LEVEL)).intValue();
|
||||||
}
|
}
|
||||||
|
|
|
@ -239,12 +239,12 @@ public class BlockChest extends BlockContainer implements Rotatable
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasComparatorInputOverride()
|
public boolean hasSignalProcessing()
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getComparatorInputOverride(World worldIn, BlockPos pos)
|
public int getSignal(World worldIn, BlockPos pos, int input)
|
||||||
{
|
{
|
||||||
return Container.calcRedstoneFromInventory(this.getChest(worldIn, pos));
|
return Container.calcRedstoneFromInventory(this.getChest(worldIn, pos));
|
||||||
}
|
}
|
||||||
|
|
|
@ -230,12 +230,12 @@ public class BlockDispenser extends BlockContainer implements Directional
|
||||||
return Facing.getFront(meta & 7);
|
return Facing.getFront(meta & 7);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasComparatorInputOverride()
|
public boolean hasSignalProcessing()
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getComparatorInputOverride(World worldIn, BlockPos pos)
|
public int getSignal(World worldIn, BlockPos pos, int input)
|
||||||
{
|
{
|
||||||
return Container.calcRedstone(worldIn.getTileEntity(pos));
|
return Container.calcRedstone(worldIn.getTileEntity(pos));
|
||||||
}
|
}
|
||||||
|
|
|
@ -197,12 +197,12 @@ public class BlockFurnace extends BlockContainer implements Rotatable
|
||||||
super.onBlockRemoved(worldIn, pos, state);
|
super.onBlockRemoved(worldIn, pos, state);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasComparatorInputOverride()
|
public boolean hasSignalProcessing()
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getComparatorInputOverride(World worldIn, BlockPos pos)
|
public int getSignal(World worldIn, BlockPos pos, int input)
|
||||||
{
|
{
|
||||||
return Container.calcRedstone(worldIn.getTileEntity(pos));
|
return Container.calcRedstone(worldIn.getTileEntity(pos));
|
||||||
}
|
}
|
||||||
|
|
|
@ -237,12 +237,12 @@ public class BlockHopper extends BlockContainer implements DirectionalDown
|
||||||
return (meta & 8) != 8;
|
return (meta & 8) != 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasComparatorInputOverride()
|
public boolean hasSignalProcessing()
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getComparatorInputOverride(World worldIn, BlockPos pos)
|
public int getSignal(World worldIn, BlockPos pos, int input)
|
||||||
{
|
{
|
||||||
return Container.calcRedstone(worldIn.getTileEntity(pos));
|
return Container.calcRedstone(worldIn.getTileEntity(pos));
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,30 +0,0 @@
|
||||||
package common.block.tech;
|
|
||||||
|
|
||||||
import common.block.Block;
|
|
||||||
import common.block.Material;
|
|
||||||
import common.entity.npc.EntityNPC;
|
|
||||||
import common.init.SoundEvent;
|
|
||||||
import common.item.CheatTab;
|
|
||||||
import common.model.Model;
|
|
||||||
import common.model.ModelProvider;
|
|
||||||
import common.util.BlockPos;
|
|
||||||
import common.util.Facing;
|
|
||||||
import common.world.State;
|
|
||||||
import common.world.World;
|
|
||||||
|
|
||||||
public class BlockJukebox extends Block {
|
|
||||||
public BlockJukebox() {
|
|
||||||
super(Material.WOOD);
|
|
||||||
this.setTab(CheatTab.TECHNOLOGY);
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean onBlockActivated(World worldIn, BlockPos pos, State state, EntityNPC playerIn, Facing side, float hitX, float hitY, float hitZ) {
|
|
||||||
if(!worldIn.client)
|
|
||||||
worldIn.playSound(worldIn.rand.pick(SoundEvent.values()), pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5, 1.0f);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Model getModel(ModelProvider provider, String name, State state) {
|
|
||||||
return provider.getModel("jukebox_side").add().dnswe().u("jukebox_top");
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -63,11 +63,11 @@ public abstract class BlockMachine extends Block implements Rotatable, ITileEnti
|
||||||
worldIn.removeTileEntity(pos);
|
worldIn.removeTileEntity(pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasComparatorInputOverride() {
|
public boolean hasSignalProcessing() {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getComparatorInputOverride(World worldIn, BlockPos pos) {
|
public int getSignal(World worldIn, BlockPos pos, int input) {
|
||||||
return Container.calcRedstone(worldIn.getTileEntity(pos));
|
return Container.calcRedstone(worldIn.getTileEntity(pos));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,44 +0,0 @@
|
||||||
package common.block.tech;
|
|
||||||
|
|
||||||
import common.block.Block;
|
|
||||||
import common.block.Material;
|
|
||||||
import common.entity.npc.EntityNPC;
|
|
||||||
import common.init.Blocks;
|
|
||||||
import common.init.SoundEvent;
|
|
||||||
import common.item.CheatTab;
|
|
||||||
import common.util.BlockPos;
|
|
||||||
import common.util.Facing;
|
|
||||||
import common.world.State;
|
|
||||||
import common.world.World;
|
|
||||||
|
|
||||||
public class BlockNote extends Block {
|
|
||||||
public BlockNote() {
|
|
||||||
super(Material.WOOD);
|
|
||||||
this.setTab(CheatTab.TECHNOLOGY);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onNeighborBlockChange(World worldIn, BlockPos pos, State state, Block neighborBlock) {
|
|
||||||
if(worldIn.isBlockPowered(pos))
|
|
||||||
worldIn.addBlockEvent(pos, Blocks.noteblock, 0, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean onBlockActivated(World worldIn, BlockPos pos, State state, EntityNPC playerIn, Facing side, float hitX, float hitY, float hitZ) {
|
|
||||||
if(!worldIn.client)
|
|
||||||
worldIn.addBlockEvent(pos, Blocks.noteblock, 0, 0);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void onBlockClicked(World worldIn, BlockPos pos, EntityNPC playerIn) {
|
|
||||||
if(!worldIn.client)
|
|
||||||
worldIn.addBlockEvent(pos, Blocks.noteblock, 0, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean onBlockEventReceived(World worldIn, BlockPos pos, State state, int eventID, int eventParam) {
|
|
||||||
worldIn.playSound(SoundEvent.NOTE, (double)pos.getX() + 0.5D, (double)pos.getY() + 0.5D, (double)pos.getZ() + 0.5D, 3.0F);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isMagnetic() {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -133,12 +133,12 @@ public class BlockRailDetector extends BlockRailBase
|
||||||
return SHAPE;
|
return SHAPE;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasComparatorInputOverride()
|
public boolean hasSignalProcessing()
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getComparatorInputOverride(World worldIn, BlockPos pos)
|
public int getSignal(World worldIn, BlockPos pos, int input)
|
||||||
{
|
{
|
||||||
if (((Boolean)worldIn.getState(pos).getValue(POWERED)).booleanValue())
|
if (((Boolean)worldIn.getState(pos).getValue(POWERED)).booleanValue())
|
||||||
{
|
{
|
||||||
|
|
|
@ -123,28 +123,19 @@ public class BlockRedstoneComparator extends BlockRedstoneDiode implements ITile
|
||||||
BlockPos blockpos = pos.offset(enumfacing);
|
BlockPos blockpos = pos.offset(enumfacing);
|
||||||
Block block = worldIn.getState(blockpos).getBlock();
|
Block block = worldIn.getState(blockpos).getBlock();
|
||||||
|
|
||||||
if (block.hasComparatorInputOverride())
|
if (block.hasSignalProcessing())
|
||||||
{
|
{
|
||||||
i = block.getComparatorInputOverride(worldIn, blockpos);
|
i = block.getSignal(worldIn, blockpos, 0);
|
||||||
}
|
}
|
||||||
else if (i < 15 && block.isNormalCube())
|
else if (i < 15 && block.isNormalCube())
|
||||||
{
|
{
|
||||||
blockpos = blockpos.offset(enumfacing);
|
blockpos = blockpos.offset(enumfacing);
|
||||||
block = worldIn.getState(blockpos).getBlock();
|
block = worldIn.getState(blockpos).getBlock();
|
||||||
|
|
||||||
if (block.hasComparatorInputOverride())
|
if (block.hasSignalProcessing())
|
||||||
{
|
{
|
||||||
i = block.getComparatorInputOverride(worldIn, blockpos);
|
i = block.getSignal(worldIn, blockpos, 0);
|
||||||
}
|
}
|
||||||
// else if (block == Blocks.air)
|
|
||||||
// {
|
|
||||||
// EntityFrame entityitemframe = this.findItemFrame(worldIn, enumfacing, blockpos);
|
|
||||||
//
|
|
||||||
// if (entityitemframe != null)
|
|
||||||
// {
|
|
||||||
// i = entityitemframe.getItemRotation();
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return i;
|
return i;
|
||||||
|
|
|
@ -49,29 +49,6 @@ public class BlockTNT extends Block
|
||||||
return this.power;
|
return this.power;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onBlockAdded(AWorldServer worldIn, BlockPos pos, State state)
|
|
||||||
{
|
|
||||||
super.onBlockAdded(worldIn, pos, state);
|
|
||||||
|
|
||||||
if (worldIn.isBlockPowered(pos))
|
|
||||||
{
|
|
||||||
this.onBlockDestroyedByPlayer(worldIn, pos, state.withProperty(EXPLODE, Boolean.valueOf(true)));
|
|
||||||
worldIn.setBlockToAir(pos);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Called when a neighboring block changes.
|
|
||||||
*/
|
|
||||||
public void onNeighborBlockChange(World worldIn, BlockPos pos, State state, Block neighborBlock)
|
|
||||||
{
|
|
||||||
if (worldIn.isBlockPowered(pos))
|
|
||||||
{
|
|
||||||
this.onBlockDestroyedByPlayer(worldIn, pos, state.withProperty(EXPLODE, Boolean.valueOf(true)));
|
|
||||||
worldIn.setBlockToAir(pos);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called when this Block is destroyed by an Explosion
|
* Called when this Block is destroyed by an Explosion
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -4496,7 +4496,6 @@ public abstract class EntityNPC extends EntityLiving
|
||||||
this.removeEffect(Effect.FIRE_RESISTANCE);
|
this.removeEffect(Effect.FIRE_RESISTANCE);
|
||||||
this.removeEffect(Effect.FLYING);
|
this.removeEffect(Effect.FLYING);
|
||||||
this.removeEffect(Effect.MANA_GENERATION);
|
this.removeEffect(Effect.MANA_GENERATION);
|
||||||
this.removeEffect(Effect.ITEM_REGENERATION);
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
this.extinguish();
|
this.extinguish();
|
||||||
|
@ -4508,7 +4507,6 @@ public abstract class EntityNPC extends EntityLiving
|
||||||
this.addEffect(new StatusEffect(Effect.FIRE_RESISTANCE, Integer.MAX_VALUE, 0));
|
this.addEffect(new StatusEffect(Effect.FIRE_RESISTANCE, Integer.MAX_VALUE, 0));
|
||||||
this.addEffect(new StatusEffect(Effect.FLYING, Integer.MAX_VALUE, 1));
|
this.addEffect(new StatusEffect(Effect.FLYING, Integer.MAX_VALUE, 1));
|
||||||
this.addEffect(new StatusEffect(Effect.MANA_GENERATION, Integer.MAX_VALUE, 255));
|
this.addEffect(new StatusEffect(Effect.MANA_GENERATION, Integer.MAX_VALUE, 255));
|
||||||
this.addEffect(new StatusEffect(Effect.ITEM_REGENERATION, Integer.MAX_VALUE, 255));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -297,4 +297,8 @@ public class EntityBullet extends Entity implements IProjectile, IObjectData {
|
||||||
public EntityType getType() {
|
public EntityType getType() {
|
||||||
return EntityType.PROJECTILE;
|
return EntityType.PROJECTILE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Entity getShooter() {
|
||||||
|
return this.shooter;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,7 +46,7 @@ public class EntityMissile extends EntityBullet {
|
||||||
|
|
||||||
protected void explode() {
|
protected void explode() {
|
||||||
this.setDead();
|
this.setDead();
|
||||||
this.worldObj.newExplosion(this.shooter == null ? this : this.shooter, this.posX, this.posY, this.posZ, (float)this.damage, this.flames, true, false);
|
this.worldObj.newExplosion(this, this.posX, this.posY, this.posZ, (float)this.damage, this.flames, true, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void onHitBlock(BlockPos pos) {
|
protected void onHitBlock(BlockPos pos) {
|
||||||
|
|
|
@ -107,10 +107,8 @@ import common.block.tech.BlockEnchantmentTable;
|
||||||
import common.block.tech.BlockFurnace;
|
import common.block.tech.BlockFurnace;
|
||||||
import common.block.tech.BlockHopper;
|
import common.block.tech.BlockHopper;
|
||||||
import common.block.tech.BlockInactiveDisplay;
|
import common.block.tech.BlockInactiveDisplay;
|
||||||
import common.block.tech.BlockJukebox;
|
|
||||||
import common.block.tech.BlockLever;
|
import common.block.tech.BlockLever;
|
||||||
import common.block.tech.BlockMobSpawner;
|
import common.block.tech.BlockMobSpawner;
|
||||||
import common.block.tech.BlockNote;
|
|
||||||
import common.block.tech.BlockNuke;
|
import common.block.tech.BlockNuke;
|
||||||
import common.block.tech.BlockPistonBase;
|
import common.block.tech.BlockPistonBase;
|
||||||
import common.block.tech.BlockPistonHead;
|
import common.block.tech.BlockPistonHead;
|
||||||
|
@ -618,8 +616,6 @@ public abstract class BlockRegistry {
|
||||||
register("brewing_stand", (new BlockBrewingStand()).setHardness(0.5F).setLightLevel(0.125F).setDisplay("Braustand"));
|
register("brewing_stand", (new BlockBrewingStand()).setHardness(0.5F).setLightLevel(0.125F).setDisplay("Braustand"));
|
||||||
register("cauldron", (new BlockCauldron()).setHardness(2.0F).setDisplay("Kessel"));
|
register("cauldron", (new BlockCauldron()).setHardness(2.0F).setDisplay("Kessel"));
|
||||||
register("effect_generator", (new BlockEffectGenerator()).setDisplay("Effektgenerator").setLightLevel(1.0F));
|
register("effect_generator", (new BlockEffectGenerator()).setDisplay("Effektgenerator").setLightLevel(1.0F));
|
||||||
register("noteblock", (new BlockNote()).setHardness(0.8F).setDisplay("Notenblock"));
|
|
||||||
register("jukebox", (new BlockJukebox()).setHardness(2.0F).setResistance(10.0F).setStepSound(SoundType.STONE).setDisplay("Plattenspieler"));
|
|
||||||
register("construction_table", (new BlockWorkbench(4)).setHardness(2.5F).setStepSound(SoundType.WOOD).setDisplay("Konstruktionstisch"));
|
register("construction_table", (new BlockWorkbench(4)).setHardness(2.5F).setStepSound(SoundType.WOOD).setDisplay("Konstruktionstisch"));
|
||||||
register("assembly_unit", (new BlockWorkbench(5)).setHardness(2.5F).setStepSound(SoundType.WOOD).setDisplay("Fertigungseinheit"));
|
register("assembly_unit", (new BlockWorkbench(5)).setHardness(2.5F).setStepSound(SoundType.WOOD).setDisplay("Fertigungseinheit"));
|
||||||
|
|
||||||
|
@ -629,8 +625,8 @@ public abstract class BlockRegistry {
|
||||||
register("xxlarge_chest", new BlockChest(16, 10).setDisplay("Große Truhe"));
|
register("xxlarge_chest", new BlockChest(16, 10).setDisplay("Große Truhe"));
|
||||||
register("xxxlarge_chest", new BlockChest(18, 14).setDisplay("Große Truhe"));
|
register("xxxlarge_chest", new BlockChest(18, 14).setDisplay("Große Truhe"));
|
||||||
register("huge_chest", new BlockChest(22, 18).setDisplay("Große Truhe"));
|
register("huge_chest", new BlockChest(22, 18).setDisplay("Große Truhe"));
|
||||||
register("giant_chest", new BlockChest(24, 20).setDisplay("Große Truhe"));
|
register("giant_chest", new BlockChest(28, 18).setDisplay("Große Truhe"));
|
||||||
register("toolarge_chest", new BlockChest(24, 24).setDisplay("Große Truhe"));
|
register("toolarge_chest", new BlockChest(32, 18).setDisplay("Große Truhe"));
|
||||||
register("warp_chest", (new BlockWarpChest()).setHardness(22.5F).setResistance(1000.0F).setStepSound(SoundType.STONE)
|
register("warp_chest", (new BlockWarpChest()).setHardness(22.5F).setResistance(1000.0F).setStepSound(SoundType.STONE)
|
||||||
.setDisplay("Warptruhe").setLightLevel(0.5F));
|
.setDisplay("Warptruhe").setLightLevel(0.5F));
|
||||||
|
|
||||||
|
|
|
@ -277,7 +277,6 @@ public abstract class Blocks {
|
||||||
public static final BlockDoor iron_door = get("iron_door");
|
public static final BlockDoor iron_door = get("iron_door");
|
||||||
public static final BlockOre iron_ore = get("iron_ore");
|
public static final BlockOre iron_ore = get("iron_ore");
|
||||||
public static final BlockTrapDoor iron_trapdoor = get("iron_trapdoor");
|
public static final BlockTrapDoor iron_trapdoor = get("iron_trapdoor");
|
||||||
public static final BlockJukebox jukebox = get("jukebox");
|
|
||||||
public static final BlockDoor jungle_door = get("jungle_door");
|
public static final BlockDoor jungle_door = get("jungle_door");
|
||||||
public static final BlockFence jungle_fence = get("jungle_fence");
|
public static final BlockFence jungle_fence = get("jungle_fence");
|
||||||
public static final BlockFenceGate jungle_fence_gate = get("jungle_fence_gate");
|
public static final BlockFenceGate jungle_fence_gate = get("jungle_fence_gate");
|
||||||
|
@ -359,7 +358,6 @@ public abstract class Blocks {
|
||||||
public static final BlockOre nichun_ore = get("nichun_ore");
|
public static final BlockOre nichun_ore = get("nichun_ore");
|
||||||
public static final Block nickel_block = get("nickel_block");
|
public static final Block nickel_block = get("nickel_block");
|
||||||
public static final BlockOre nickel_ore = get("nickel_ore");
|
public static final BlockOre nickel_ore = get("nickel_ore");
|
||||||
public static final BlockNote noteblock = get("noteblock");
|
|
||||||
public static final BlockStaticLiquid nukage = get("nukage");
|
public static final BlockStaticLiquid nukage = get("nukage");
|
||||||
public static final BlockNuke nuke = get("nuke");
|
public static final BlockNuke nuke = get("nuke");
|
||||||
public static final BlockDoor oak_door = get("oak_door");
|
public static final BlockDoor oak_door = get("oak_door");
|
||||||
|
|
|
@ -226,8 +226,6 @@ public abstract class CraftingRegistry
|
||||||
add(new ItemStack(Items.assembly_unit), "----", "XXXX", "X##X", '#', Items.construction_table, '-', Items.titanium_ingot, 'X', planks);
|
add(new ItemStack(Items.assembly_unit), "----", "XXXX", "X##X", '#', Items.construction_table, '-', Items.titanium_ingot, 'X', planks);
|
||||||
|
|
||||||
|
|
||||||
add(new ItemStack(Items.jukebox, 1), "###", "#X#", "###", '#', planks, 'X', Items.diamond);
|
|
||||||
add(new ItemStack(Items.noteblock, 1), "###", "#X#", "###", '#', planks, 'X', Items.redstone);
|
|
||||||
add(new ItemStack(Items.bookshelf, 1), "###", "XXX", "###", '#', planks, 'X', Items.book);
|
add(new ItemStack(Items.bookshelf, 1), "###", "XXX", "###", '#', planks, 'X', Items.book);
|
||||||
add(new ItemStack(Items.trapdoor, 2), "###", "###", '#', planks);
|
add(new ItemStack(Items.trapdoor, 2), "###", "###", '#', planks);
|
||||||
add(new ItemStack(Items.sign, 3), "###", "###", " X ", '#', planks, 'X', Items.stick);
|
add(new ItemStack(Items.sign, 3), "###", "###", " X ", '#', planks, 'X', Items.stick);
|
||||||
|
|
|
@ -458,7 +458,6 @@ public abstract class Items {
|
||||||
public static final ItemShovel iron_shovel = get("iron_shovel");
|
public static final ItemShovel iron_shovel = get("iron_shovel");
|
||||||
public static final ItemSword iron_sword = get("iron_sword");
|
public static final ItemSword iron_sword = get("iron_sword");
|
||||||
public static final ItemBlock iron_trapdoor = get("iron_trapdoor");
|
public static final ItemBlock iron_trapdoor = get("iron_trapdoor");
|
||||||
public static final ItemBlock jukebox = get("jukebox");
|
|
||||||
public static final ItemDoor jungle_door = get("jungle_door");
|
public static final ItemDoor jungle_door = get("jungle_door");
|
||||||
public static final ItemFence jungle_fence = get("jungle_fence");
|
public static final ItemFence jungle_fence = get("jungle_fence");
|
||||||
public static final ItemBlock jungle_fence_gate = get("jungle_fence_gate");
|
public static final ItemBlock jungle_fence_gate = get("jungle_fence_gate");
|
||||||
|
@ -575,7 +574,6 @@ public abstract class Items {
|
||||||
public static final ItemMetal nickel_ingot = get("nickel_ingot");
|
public static final ItemMetal nickel_ingot = get("nickel_ingot");
|
||||||
public static final ItemMetalBlock nickel_ore = get("nickel_ore");
|
public static final ItemMetalBlock nickel_ore = get("nickel_ore");
|
||||||
public static final Item nieh_fragment = get("nieh_fragment");
|
public static final Item nieh_fragment = get("nieh_fragment");
|
||||||
public static final ItemBlock noteblock = get("noteblock");
|
|
||||||
public static final ItemBucket nukage_bucket = get("nukage_bucket");
|
public static final ItemBucket nukage_bucket = get("nukage_bucket");
|
||||||
public static final ItemBlock nuke = get("nuke");
|
public static final ItemBlock nuke = get("nuke");
|
||||||
public static final ItemDoor oak_door = get("oak_door");
|
public static final ItemDoor oak_door = get("oak_door");
|
||||||
|
|
|
@ -26,7 +26,7 @@ public class ContainerChest extends Container
|
||||||
{
|
{
|
||||||
for (int k = 0; k < this.width; ++k)
|
for (int k = 0; k < this.width; ++k)
|
||||||
{
|
{
|
||||||
this.addSlotToContainer(new Slot(chest, k + j * 9, 8 + k * 18, 18 + j * 18));
|
this.addSlotToContainer(new Slot(chest, k + j * this.width, 8 + k * 18, 18 + j * 18));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@ package common.tileentity;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import common.effect.StatusEffect;
|
import common.effect.StatusEffect;
|
||||||
import common.entity.types.EntityLiving;
|
import common.entity.npc.EntityNPC;
|
||||||
import common.init.Items;
|
import common.init.Items;
|
||||||
import common.inventory.ContainerTile;
|
import common.inventory.ContainerTile;
|
||||||
import common.item.ItemStack;
|
import common.item.ItemStack;
|
||||||
|
@ -24,7 +24,7 @@ public class DeviceEffectGenerator extends Device {
|
||||||
if(!this.hasAmount(0, 1) || !this.hasAmount(1, 1) || !(this.getStackInSlot(0).getItem() instanceof ItemPotion potion))
|
if(!this.hasAmount(0, 1) || !this.hasAmount(1, 1) || !(this.getStackInSlot(0).getItem() instanceof ItemPotion potion))
|
||||||
return false;
|
return false;
|
||||||
StatusEffect effect = potion.getEffect();
|
StatusEffect effect = potion.getEffect();
|
||||||
if(effect == null)
|
if(effect == null || !this.hasAmount(1, effect.getAmplifier() + 1))
|
||||||
return false;
|
return false;
|
||||||
int levels = 4; // TODO: energy + selector (MachineControl)
|
int levels = 4; // TODO: energy + selector (MachineControl)
|
||||||
double r = (double)(levels * 10 + 10);
|
double r = (double)(levels * 10 + 10);
|
||||||
|
@ -32,9 +32,14 @@ public class DeviceEffectGenerator extends Device {
|
||||||
double y = this.pos.getY();
|
double y = this.pos.getY();
|
||||||
double z = this.pos.getZ();
|
double z = this.pos.getZ();
|
||||||
BoundingBox bb = new BoundingBox(x + 0.5 - r, y - 16.0, z + 0.5 - r, x + 0.5 + r, (double)World.MAX_SIZE_Y, z + 0.5 + r);
|
BoundingBox bb = new BoundingBox(x + 0.5 - r, y - 16.0, z + 0.5 - r, x + 0.5 + r, (double)World.MAX_SIZE_Y, z + 0.5 + r);
|
||||||
List<EntityLiving> list = this.worldObj.<EntityLiving>getEntitiesWithinAABB(EntityLiving.class, bb);
|
List<EntityNPC> list = this.worldObj.<EntityNPC>getEntitiesWithinAABB(EntityNPC.class, bb);
|
||||||
for(EntityLiving entity : list) {
|
for(EntityNPC entity : list) {
|
||||||
entity.addEffect(new StatusEffect(effect.getPotion(), 180, effect.getAmplifier()));
|
if(!entity.hasEffect(effect.getPotion()) || entity.getEffect(effect.getPotion()).getAmplifier() < effect.getAmplifier() || entity.getEffect(effect.getPotion()).getRemaining() < 40) {
|
||||||
|
entity.addEffect(new StatusEffect(effect.getPotion(), 180, effect.getAmplifier()));
|
||||||
|
this.decrStackSize(1, effect.getAmplifier() + 1);
|
||||||
|
if(!this.hasAmount(1, effect.getAmplifier() + 1))
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -136,7 +136,7 @@ public class TileEntityChest extends TileEntity implements ITickable, IInventory
|
||||||
for (int i = 0; i < nbttaglist.size(); ++i)
|
for (int i = 0; i < nbttaglist.size(); ++i)
|
||||||
{
|
{
|
||||||
TagObject nbttagcompound = nbttaglist.get(i);
|
TagObject nbttagcompound = nbttaglist.get(i);
|
||||||
int j = nbttagcompound.getByte("Slot") & 255;
|
int j = nbttagcompound.getShort("Slot");
|
||||||
|
|
||||||
if (j >= 0 && j < this.chestContents.length)
|
if (j >= 0 && j < this.chestContents.length)
|
||||||
{
|
{
|
||||||
|
@ -157,7 +157,7 @@ public class TileEntityChest extends TileEntity implements ITickable, IInventory
|
||||||
if (this.chestContents[i] != null)
|
if (this.chestContents[i] != null)
|
||||||
{
|
{
|
||||||
TagObject nbttagcompound = new TagObject();
|
TagObject nbttagcompound = new TagObject();
|
||||||
nbttagcompound.setByte("Slot", (byte)i);
|
nbttagcompound.setShort("Slot", (short)i);
|
||||||
this.chestContents[i].writeTags(nbttagcompound);
|
this.chestContents[i].writeTags(nbttagcompound);
|
||||||
nbttaglist.add(nbttagcompound);
|
nbttaglist.add(nbttagcompound);
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,7 @@ import common.entity.DamageSource;
|
||||||
import common.entity.Entity;
|
import common.entity.Entity;
|
||||||
import common.entity.item.EntityTnt;
|
import common.entity.item.EntityTnt;
|
||||||
import common.entity.npc.EntityNPC;
|
import common.entity.npc.EntityNPC;
|
||||||
|
import common.entity.projectile.EntityMissile;
|
||||||
import common.entity.types.EntityLiving;
|
import common.entity.types.EntityLiving;
|
||||||
import common.init.Blocks;
|
import common.init.Blocks;
|
||||||
import common.init.SoundEvent;
|
import common.init.SoundEvent;
|
||||||
|
@ -355,12 +356,10 @@ public class Explosion
|
||||||
return this.playerKnockbackMap;
|
return this.playerKnockbackMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns either the entity that placed the explosive block, the entity that caused the explosion or null.
|
|
||||||
*/
|
|
||||||
public EntityLiving getExplosivePlacedBy()
|
public EntityLiving getExplosivePlacedBy()
|
||||||
{
|
{
|
||||||
return this.exploder == null ? null : (this.exploder instanceof EntityTnt ? ((EntityTnt)this.exploder).getTntPlacedBy() : (this.exploder instanceof EntityLiving ? (EntityLiving)this.exploder : null));
|
return this.exploder == null ? null : (this.exploder instanceof EntityTnt ? ((EntityTnt)this.exploder).getTntPlacedBy() :
|
||||||
|
(this.exploder instanceof EntityMissile missile && missile.getShooter() instanceof EntityLiving shooter ? shooter :(this.exploder instanceof EntityLiving ? (EntityLiving)this.exploder : null)));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void clearAffectedBlockPositions()
|
public void clearAffectedBlockPositions()
|
||||||
|
|
|
@ -238,7 +238,7 @@ public abstract class World implements IWorldAccess {
|
||||||
if(!this.client && (flags & 1) != 0) {
|
if(!this.client && (flags & 1) != 0) {
|
||||||
this.notifyNeighborsOfStateChange(pos, iblockstate.getBlock());
|
this.notifyNeighborsOfStateChange(pos, iblockstate.getBlock());
|
||||||
|
|
||||||
if(block.hasComparatorInputOverride()) {
|
if(block.hasSignalProcessing()) {
|
||||||
this.updateComparatorOutputLevel(pos, block);
|
this.updateComparatorOutputLevel(pos, block);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1840,7 +1840,7 @@ public abstract class World implements IWorldAccess {
|
||||||
return iblockstate.getBlock().getStrongPower(this, pos, iblockstate, direction);
|
return iblockstate.getBlock().getStrongPower(this, pos, iblockstate, direction);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getStrongPower(BlockPos pos) {
|
private int getStrongPower(BlockPos pos) {
|
||||||
int i = 0;
|
int i = 0;
|
||||||
i = Math.max(i, this.getStrongPower(pos.down(), Facing.DOWN));
|
i = Math.max(i, this.getStrongPower(pos.down(), Facing.DOWN));
|
||||||
|
|
||||||
|
|
|
@ -494,7 +494,7 @@ public abstract class Converter {
|
||||||
mapBlock(Blocks.sandstone, 24);
|
mapBlock(Blocks.sandstone, 24);
|
||||||
mapBlock(Blocks.carved_sandstone, 24, 1);
|
mapBlock(Blocks.carved_sandstone, 24, 1);
|
||||||
mapBlock(Blocks.smooth_sandstone, 24, 2);
|
mapBlock(Blocks.smooth_sandstone, 24, 2);
|
||||||
mapBlock(Blocks.noteblock, 25);
|
mapBlock(Blocks.spruce_planks, 25);
|
||||||
mapBlock(Blocks.red_bed.getState().withProperty(BlockBed.FACING, Facing.SOUTH).withProperty(BlockBed.PART, EnumPartType.FOOT), 26, 0, 4);
|
mapBlock(Blocks.red_bed.getState().withProperty(BlockBed.FACING, Facing.SOUTH).withProperty(BlockBed.PART, EnumPartType.FOOT), 26, 0, 4);
|
||||||
mapBlock(Blocks.red_bed.getState().withProperty(BlockBed.FACING, Facing.WEST).withProperty(BlockBed.PART, EnumPartType.FOOT), 26, 1, 5);
|
mapBlock(Blocks.red_bed.getState().withProperty(BlockBed.FACING, Facing.WEST).withProperty(BlockBed.PART, EnumPartType.FOOT), 26, 1, 5);
|
||||||
mapBlock(Blocks.red_bed.getState().withProperty(BlockBed.FACING, Facing.NORTH).withProperty(BlockBed.PART, EnumPartType.FOOT), 26, 2, 6);
|
mapBlock(Blocks.red_bed.getState().withProperty(BlockBed.FACING, Facing.NORTH).withProperty(BlockBed.PART, EnumPartType.FOOT), 26, 2, 6);
|
||||||
|
@ -841,7 +841,7 @@ public abstract class Converter {
|
||||||
mapBlock(Blocks.reeds.getState().withProperty(BlockReed.AGE, 13), 83, 13);
|
mapBlock(Blocks.reeds.getState().withProperty(BlockReed.AGE, 13), 83, 13);
|
||||||
mapBlock(Blocks.reeds.getState().withProperty(BlockReed.AGE, 14), 83, 14);
|
mapBlock(Blocks.reeds.getState().withProperty(BlockReed.AGE, 14), 83, 14);
|
||||||
mapBlock(Blocks.reeds.getState().withProperty(BlockReed.AGE, 15), 83, 15);
|
mapBlock(Blocks.reeds.getState().withProperty(BlockReed.AGE, 15), 83, 15);
|
||||||
mapBlock(Blocks.jukebox, 84);
|
mapBlock(Blocks.spruce_planks, 84);
|
||||||
mapBlock(Blocks.oak_fence, 85);
|
mapBlock(Blocks.oak_fence, 85);
|
||||||
mapBlock(Blocks.pumpkin.getState().withProperty(BlockPumpkin.FACING, Facing.SOUTH), 86, 0, 4, 8, 12);
|
mapBlock(Blocks.pumpkin.getState().withProperty(BlockPumpkin.FACING, Facing.SOUTH), 86, 0, 4, 8, 12);
|
||||||
mapBlock(Blocks.pumpkin.getState().withProperty(BlockPumpkin.FACING, Facing.WEST), 86, 1, 5, 9, 13);
|
mapBlock(Blocks.pumpkin.getState().withProperty(BlockPumpkin.FACING, Facing.WEST), 86, 1, 5, 9, 13);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue