mirror of
https://github.com/GTNewHorizons/Draconic-Evolution.git
synced 2026-10-26 14:24:14 +00:00
Compare commits
13
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cdc57215e3 | ||
|
|
9f42531f37 | ||
|
|
95453b430e | ||
|
|
3635266bd5 | ||
|
|
fedee1ba43 | ||
|
|
6f183b615e | ||
|
|
15b257d120 | ||
|
|
4ead9f53fb | ||
|
|
305e09ae4f | ||
|
|
9009b1372a | ||
|
|
8dc27474ec | ||
|
|
4c016707a4 | ||
|
|
abbe4c1017 |
No files matched your search
+9
-7
@@ -2,20 +2,22 @@
|
||||
|
||||
dependencies {
|
||||
api("curse.maven:cofh-lib-220333:2388748")
|
||||
api("com.github.GTNewHorizons:GTNHLib:0.9.47:dev")
|
||||
api("com.github.GTNewHorizons:GTNHLib:0.9.53:dev")
|
||||
|
||||
compileOnly("com.github.GTNewHorizons:ForestryMC:4.11.12:api") {transitive = false}
|
||||
compileOnly("com.github.GTNewHorizons:OpenComputers:1.12.22-GTNH:api") {transitive = false}
|
||||
compileOnly("com.github.GTNewHorizons:NotEnoughItems:2.8.84-GTNH:dev") {transitive = false}
|
||||
compileOnly("com.github.GTNewHorizons:ForestryMC:4.11.14:api") {transitive = false}
|
||||
compileOnly("com.github.GTNewHorizons:OpenComputers:1.12.38-GTNH:api") {transitive = false}
|
||||
compileOnly("com.github.GTNewHorizons:NotEnoughItems:2.8.93-GTNH:dev") {transitive = false}
|
||||
compileOnly("com.github.GTNewHorizons:CodeChickenCore:1.4.12:dev") {transitive = false}
|
||||
compileOnly("com.github.GTNewHorizons:inventory-tweaks:1.7.1:dev") {transitive = false}
|
||||
compileOnly('com.github.GTNewHorizons:Baubles-Expanded:2.2.11-GTNH:dev') {transitive = false}
|
||||
compileOnly("com.github.GTNewHorizons:GT5-Unofficial:5.09.52.398:dev") {transitive = false}
|
||||
compileOnly("com.github.GTNewHorizons:Backhand:1.8.6:dev") {transitive = false}
|
||||
compileOnly("com.github.GTNewHorizons:Botania:1.13.36-GTNH:dev") {transitive = false}
|
||||
compileOnly("com.github.GTNewHorizons:GT5-Unofficial:5.09.52.461:dev") {transitive = false}
|
||||
compileOnly("com.github.GTNewHorizons:Backhand:1.8.8:dev") {transitive = false}
|
||||
|
||||
compileOnly("thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev") {transitive = false}
|
||||
compileOnly("curse.maven:computercraft-67504:2269339") {transitive = false}
|
||||
|
||||
compileOnly('curse.maven:automagy-222153:2285272')
|
||||
compileOnly('com.github.GTNewHorizons:EnderIO:2.10.22:dev')
|
||||
compileOnly('com.github.GTNewHorizons:EnderIO:2.10.25:dev')
|
||||
runtimeOnly("com.github.GTNewHorizons:NotEnoughItems:2.8.118-GTNH:dev")
|
||||
}
|
||||
@@ -186,6 +186,11 @@ modrinthRelations =
|
||||
# Leave this empty if you don't want to publish on CurseForge.
|
||||
curseForgeProjectId =
|
||||
|
||||
# Comma-separated supported CurseForge environments: client, server (case-insensitive).
|
||||
# Use client or server for mods that only support one environment. Defaults to client,server.
|
||||
# These tags describe where the mod can run, not whether installation is required on both sides.
|
||||
curseForgeEnvironments = client,server
|
||||
|
||||
# The project's relations on CurseForge. You can use this to refer to other projects on CurseForge.
|
||||
# Syntax: type1:name1;type2:name2;...
|
||||
# Where type can be one of [requiredDependency, embeddedLibrary, optionalDependency, tool, incompatible],
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
#This file is generated by updateDaemonJvm
|
||||
toolchainUrl.FREE_BSD.AARCH64=https\://api.foojay.io/disco/v3.0/ids/1630f7ebef05444cb27a2709ea0249b3/redirect
|
||||
toolchainUrl.FREE_BSD.X86_64=https\://api.foojay.io/disco/v3.0/ids/cd495626d2ee49a75447e3fdc6afb287/redirect
|
||||
toolchainUrl.LINUX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/1630f7ebef05444cb27a2709ea0249b3/redirect
|
||||
toolchainUrl.LINUX.X86_64=https\://api.foojay.io/disco/v3.0/ids/cd495626d2ee49a75447e3fdc6afb287/redirect
|
||||
toolchainUrl.MAC_OS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/d4fd992c9557644e637ebe98263e0ae7/redirect
|
||||
toolchainUrl.MAC_OS.X86_64=https\://api.foojay.io/disco/v3.0/ids/faa12903720d410b387cc69ccafb1a74/redirect
|
||||
toolchainUrl.UNIX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/1630f7ebef05444cb27a2709ea0249b3/redirect
|
||||
toolchainUrl.UNIX.X86_64=https\://api.foojay.io/disco/v3.0/ids/cd495626d2ee49a75447e3fdc6afb287/redirect
|
||||
toolchainUrl.WINDOWS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/a4c09dd2e2d7079373d30e524bbc2829/redirect
|
||||
toolchainUrl.WINDOWS.X86_64=https\://api.foojay.io/disco/v3.0/ids/8e1d9ee5d0f13e442218f6884a306da1/redirect
|
||||
toolchainUrl.FREE_BSD.AARCH64=https\://api.foojay.io/disco/v3.0/ids/539ea72837c6244075f8ee037babc29e/redirect
|
||||
toolchainUrl.FREE_BSD.X86_64=https\://api.foojay.io/disco/v3.0/ids/876dbbf00bf4ef6190f7da074cee903a/redirect
|
||||
toolchainUrl.LINUX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/539ea72837c6244075f8ee037babc29e/redirect
|
||||
toolchainUrl.LINUX.X86_64=https\://api.foojay.io/disco/v3.0/ids/876dbbf00bf4ef6190f7da074cee903a/redirect
|
||||
toolchainUrl.MAC_OS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/9064f22734b42ac03e85df04b632e167/redirect
|
||||
toolchainUrl.MAC_OS.X86_64=https\://api.foojay.io/disco/v3.0/ids/4d0277c49991306ac78048580fe34bcf/redirect
|
||||
toolchainUrl.UNIX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/539ea72837c6244075f8ee037babc29e/redirect
|
||||
toolchainUrl.UNIX.X86_64=https\://api.foojay.io/disco/v3.0/ids/876dbbf00bf4ef6190f7da074cee903a/redirect
|
||||
toolchainUrl.WINDOWS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/a9fa3b809e484a1e1ac4308a5dda661a/redirect
|
||||
toolchainUrl.WINDOWS.X86_64=https\://api.foojay.io/disco/v3.0/ids/aa99913fa6d767d899ffc96082da01ca/redirect
|
||||
toolchainVersion=25
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.0-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-9.7.1-bin.zip
|
||||
networkTimeout=10000
|
||||
validateDistributionUrl=true
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@ pluginManagement {
|
||||
}
|
||||
|
||||
plugins {
|
||||
id 'com.gtnewhorizons.gtnhsettingsconvention' version '2.0.24'
|
||||
id 'com.gtnewhorizons.gtnhsettingsconvention' version '2.0.34'
|
||||
}
|
||||
|
||||
|
||||
@@ -26,7 +26,9 @@ import cpw.mods.fml.common.network.simpleimpl.SimpleNetworkWrapper;
|
||||
version = References.VERSION,
|
||||
canBeDeactivated = false,
|
||||
guiFactory = References.GUIFACTORY,
|
||||
dependencies = "after:NotEnoughItems;" + "after:ThermalExpansion;" + "after:ThermalFoundation;")
|
||||
dependencies = "after:NotEnoughItems;" + "after:ThermalExpansion;"
|
||||
+ "after:ThermalFoundation;"
|
||||
+ "required-after:gtnhlib@[0.9.47,);")
|
||||
public class DraconicEvolution {
|
||||
|
||||
@Mod.Instance(References.MODID)
|
||||
|
||||
@@ -2,8 +2,12 @@ package com.brandon3055.draconicevolution.api;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import net.minecraft.util.ChunkCoordinates;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import com.brandon3055.draconicevolution.common.handler.ConfigHandler;
|
||||
import com.brandon3055.draconicevolution.common.utils.DataUtils;
|
||||
import com.brandon3055.draconicevolution.common.world.ChaosWorldGenHandler;
|
||||
import com.brandon3055.draconicevolution.common.world.DraconicWorldGenerator;
|
||||
@@ -67,4 +71,25 @@ public class GeneratorOverride {
|
||||
public static void setOreEnabledInEnd(boolean cometsEnabled) {
|
||||
DraconicWorldGenerator.oreEnabledInEnd = cometsEnabled;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns coordinates of the nearest chaos island for the given chunk, or {@code null}
|
||||
* <p>
|
||||
* This is for mods who need to know where chaos islands generate, for example to avoid overlapping their own world
|
||||
* features.
|
||||
*
|
||||
* @param chunkX chunk X position
|
||||
* @param chunkZ chunk Z position
|
||||
* @return Chaos Island Center coordinates, or {@code null} if none generates for that cell
|
||||
*/
|
||||
public static @Nullable ChunkCoordinates getNearestChaosIslandCenter(int chunkX, int chunkZ) {
|
||||
if (!DraconicWorldGenerator.chaosIslandsEnabled || !ConfigHandler.generateChaosIslands) return null;
|
||||
|
||||
DataUtils.XZPair<Integer, Integer> center = ChaosWorldGenHandler.getClosestChaosSpawn(chunkX, chunkZ);
|
||||
|
||||
// tHe island in (0, 0) is never generated
|
||||
if (center.x == 0 && center.z == 0) return null;
|
||||
|
||||
return new ChunkCoordinates(center.x, 80, center.z);
|
||||
}
|
||||
}
|
||||
@@ -393,6 +393,7 @@ public final class ClientProxy extends CommonProxy {
|
||||
return this.clientHandler.getEnergyCrystalAlpha();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void tryRepositionPlayerOnMount(int entityId) {
|
||||
this.clientHandler.tryRepositionPlayerOnMount(entityId);
|
||||
}
|
||||
|
||||
+8
-6
@@ -66,11 +66,8 @@ public class GUIDislocatorInhibitor extends GuiContainer implements INEIGuiHandl
|
||||
|
||||
@Override
|
||||
protected void drawGuiContainerForegroundLayer(int x, int y) {
|
||||
fontRendererObj.drawString(
|
||||
StatCollector.translateToLocal("tile.draconicevolution:dislocatorInhibitor.name"),
|
||||
7,
|
||||
5,
|
||||
0x222222);
|
||||
fontRendererObj
|
||||
.drawString(StatCollector.translateToLocal("gui.de.dislocatorInhibitor.main.title"), 7, 5, 0x222222);
|
||||
drawGuiText();
|
||||
drawGreyOutSlots();
|
||||
drawButtonIcons();
|
||||
@@ -200,7 +197,12 @@ public class GUIDislocatorInhibitor extends GuiContainer implements INEIGuiHandl
|
||||
25,
|
||||
0x000000,
|
||||
false);
|
||||
fontRendererObj.drawString(String.valueOf(range), range < 10 ? 78 : 75, 25, 0x000000, false);
|
||||
fontRendererObj.drawString(
|
||||
StatCollector.translateToLocalFormatted("gui.de.numbers", range),
|
||||
range < 10 ? 78 : 75,
|
||||
25,
|
||||
0x000000,
|
||||
false);
|
||||
}
|
||||
|
||||
private void drawButtonIcons() {
|
||||
|
||||
@@ -52,13 +52,18 @@ public class GUIDissEnchanter extends GuiContainer {
|
||||
protected void drawGuiContainerForegroundLayer(int x, int y) {
|
||||
drawCenteredString(
|
||||
fontRendererObj,
|
||||
StatCollector.translateToLocal("tile.draconicevolution:dissEnchanter.name"),
|
||||
StatCollector.translateToLocal("gui.de.dissEnchanter.main.title"),
|
||||
88,
|
||||
4,
|
||||
0x00FFFF);
|
||||
|
||||
fontRendererObj.drawString("Item", 5, 40, 0x0000ff);
|
||||
fontRendererObj.drawString("Damage: " + (40 - tile.bookPower) + "%", 5, 49, 0x0000ff);
|
||||
fontRendererObj.drawString(StatCollector.translateToLocal("gui.de.dissEnchanter.itemDamage1"), 5, 40, 0x0000ff);
|
||||
fontRendererObj.drawString(
|
||||
StatCollector
|
||||
.translateToLocalFormatted("gui.de.dissEnchanter.itemDamage2", (40 - tile.bookPower) + "%"),
|
||||
5,
|
||||
49,
|
||||
0x0000ff);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -94,6 +99,7 @@ public class GUIDissEnchanter extends GuiContainer {
|
||||
if (flag && player.experienceLevel < tile.dissenchantCost && !player.capabilities.isCreativeMode) flag = false;
|
||||
((GuiButtonAHeight) buttonList.get(0)).enabled = flag;
|
||||
((GuiButtonAHeight) buttonList.get(0)).packedFGColour = cachRecipeValid ? 0x000000 : 0xdf0000;
|
||||
((GuiButtonAHeight) buttonList.get(0)).displayString = "Cost: " + tile.dissenchantCost;
|
||||
((GuiButtonAHeight) buttonList.get(0)).displayString = StatCollector
|
||||
.translateToLocalFormatted("gui.de.dissEnchanter.cost", tile.dissenchantCost);
|
||||
}
|
||||
}
|
||||
@@ -95,7 +95,7 @@ public class GUIDraconiumChest extends GuiContainer implements INEIGuiHandler {
|
||||
|
||||
@Override
|
||||
protected void drawGuiContainerForegroundLayer(int x, int y) {
|
||||
fontRendererObj.drawString(tile.getInventoryName(), 4, 4, 0x222222);
|
||||
fontRendererObj.drawString(StatCollector.translateToLocal("gui.de.draconiumChest.main.title"), 4, 4, 0x222222);
|
||||
// fontRendererObj.drawStringWithShadow(StatCollector.translateToLocal("button.de.chestAutoFeed.txt"), 4, 180,
|
||||
// 0x00FFFF);
|
||||
|
||||
|
||||
@@ -83,7 +83,11 @@ public class GUIEnergyInfuser extends GuiContainer {
|
||||
|
||||
@Override
|
||||
protected void drawGuiContainerForegroundLayer(int x, int y) {
|
||||
fontRendererObj.drawStringWithShadow("Energy Infuser", 49, -9, 0x00FFFF);
|
||||
fontRendererObj.drawStringWithShadow(
|
||||
StatCollector.translateToLocal("gui.de.energyInfuser.main.title"),
|
||||
49,
|
||||
-9,
|
||||
0x00FFFF);
|
||||
|
||||
// bindTexture(texture);
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ public class GUIFlowGate extends GuiScreen {
|
||||
|
||||
drawDefaultBackground();
|
||||
ResourceHandler.bindResource("textures/gui/ToolConfig.png");
|
||||
drawTexturedModalRect(guiLeft, guiTop, 0, 0, 197, 88);
|
||||
drawTexturedModalRect(guiLeft, guiTop, 0, 0, 198, 89);
|
||||
fontRendererObj.drawString(
|
||||
StatCollector.translateToLocal("gui.de.flowGate.name"),
|
||||
guiCrt - (fontRendererObj.getStringWidth(StatCollector.translateToLocal("gui.de.flowGate.name")) / 2),
|
||||
|
||||
@@ -76,7 +76,7 @@ public class GUIGenerator extends GuiContainer {
|
||||
18 - (int) (fuel * 13)); // Power bar
|
||||
|
||||
fontRendererObj.drawStringWithShadow(
|
||||
StatCollector.translateToLocal("tile.draconicevolution:generator.name"),
|
||||
StatCollector.translateToLocal("gui.de.generator.main.title"),
|
||||
guiLeft + 64,
|
||||
guiTop,
|
||||
0x00FFFF);
|
||||
|
||||
@@ -10,6 +10,7 @@ import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.util.StatCollector;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
@@ -82,7 +83,11 @@ public class GUIGrinder extends GuiContainer {
|
||||
18 - (int) (fuel * 13)); // Power bar
|
||||
if (tile.isExternallyPowered()) drawTexturedModalRect(guiLeft + 100, guiTop + 37, xSize, 66, 13, 13);
|
||||
|
||||
fontRendererObj.drawStringWithShadow("Grinder", guiLeft + 71, guiTop, 0x00FFFF);
|
||||
fontRendererObj.drawStringWithShadow(
|
||||
StatCollector.translateToLocal("gui.de.grinder.main.title"),
|
||||
guiLeft + 71,
|
||||
guiTop,
|
||||
0x00FFFF);
|
||||
|
||||
int x = X - guiLeft;
|
||||
int y = Y - guiTop;
|
||||
|
||||
+7
-2
@@ -86,7 +86,8 @@ public class GUIParticleGenerator extends GuiScreen {
|
||||
@Override
|
||||
public void drawLabel(FontRenderer fontRenderer, int x, int y) {
|
||||
fontRenderer.drawString(label, x, y, 0x000000);
|
||||
fontRenderer.drawString(String.valueOf(value), x, y + 10, 0x000000);
|
||||
fontRenderer
|
||||
.drawString(StatCollector.translateToLocalFormatted("gui.de.numbers", value), x, y + 10, 0x000000);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -141,7 +142,11 @@ public class GUIParticleGenerator extends GuiScreen {
|
||||
public void drawLabel(FontRenderer fontRenderer, int x, int y) {
|
||||
float roundedValue = Math.round(value * scale) / scale;
|
||||
fontRenderer.drawString(label, x, y, 0x000000);
|
||||
fontRenderer.drawString(String.valueOf(roundedValue), x, y + 10, 0x000000);
|
||||
fontRenderer.drawString(
|
||||
StatCollector.translateToLocalFormatted("gui.de.numbers", roundedValue),
|
||||
x,
|
||||
y + 10,
|
||||
0x000000);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@ import net.minecraft.client.gui.GuiTextField;
|
||||
import net.minecraft.client.gui.inventory.GuiContainer;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.util.StatCollector;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
@@ -75,7 +76,7 @@ public class GUIPlayerDetector extends GuiContainer {
|
||||
public void drawScreen(int x, int y, float partialTicks) {
|
||||
super.drawScreen(x, y, partialTicks);
|
||||
ArrayList<String> lines = new ArrayList<>();
|
||||
lines.add("Camouflage");
|
||||
lines.add(StatCollector.translateToLocal("gui.de.playerDetector.camouflage"));
|
||||
if ((x - guiLeft > 142 && x - guiLeft < 160) && (y - guiTop > 19 && y - guiTop < 37)
|
||||
&& container.shouldShowInventory()) {
|
||||
drawHoveringText(lines, x, y, fontRendererObj);
|
||||
@@ -88,15 +89,30 @@ public class GUIPlayerDetector extends GuiContainer {
|
||||
super.initGui();
|
||||
buttonList.clear();
|
||||
if (!isInEditMode) {
|
||||
String mode = isInWhitelistMode ? "White List" : "Black List";
|
||||
String mode = isInWhitelistMode ? StatCollector.translateToLocal("gui.de.playerDetector.whiteList")
|
||||
: StatCollector.translateToLocal("gui.de.playerDetector.blackList");
|
||||
int center = width / 2;
|
||||
buttonList.add(new GuiButton(0, center - 20 - 20, guiTop + 20, 20, 20, "+"));
|
||||
buttonList.add(new GuiButton(1, center + 20, guiTop + 20, 20, 20, "-"));
|
||||
buttonList.add(new GuiButton(3, center - 40, guiTop + 45, 60, 20, mode));
|
||||
buttonList.add(new GuiButton(4, center + 20, guiTop + 45, 20, 20, "!"));
|
||||
buttonList.add(new GuiButton(6, center - 40, guiTop + 70, 80, 20, "Invert Output"));
|
||||
buttonList.add(
|
||||
new GuiButton(
|
||||
6,
|
||||
center - 40,
|
||||
guiTop + 70,
|
||||
80,
|
||||
20,
|
||||
StatCollector.translateToLocal("gui.de.playerDetector.invertOutput")));
|
||||
} else {
|
||||
buttonList.add(new GuiButton(5, guiLeft - 40, guiTop + ySize - 20, 40, 20, "Back"));
|
||||
buttonList.add(
|
||||
new GuiButton(
|
||||
5,
|
||||
guiLeft - 40,
|
||||
guiTop + ySize - 20,
|
||||
40,
|
||||
20,
|
||||
StatCollector.translateToLocal("gui.de.playerDetector.back")));
|
||||
}
|
||||
|
||||
selectedNameText = new GuiTextField(fontRendererObj, 4, -12, 168, 12);
|
||||
@@ -186,7 +202,12 @@ public class GUIPlayerDetector extends GuiContainer {
|
||||
private void drawGuiText() {
|
||||
if (isInEditMode) {
|
||||
if (selectedMameIndex != -1) {
|
||||
drawCenteredString(fontRendererObj, "Press Enter to save", xSize / 2, -22, 0xFF0000);
|
||||
drawCenteredString(
|
||||
fontRendererObj,
|
||||
StatCollector.translateToLocal("gui.de.playerDetector.pressEnter"),
|
||||
xSize / 2,
|
||||
-22,
|
||||
0xFF0000);
|
||||
}
|
||||
for (int row = 0; row < 21; row++) {
|
||||
for (int column = 0; column < 2; column++) {
|
||||
@@ -200,11 +221,31 @@ public class GUIPlayerDetector extends GuiContainer {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
drawCenteredString(fontRendererObj, "Advanced Player Detector", xSize / 2, 5, 0x00FFFF);
|
||||
drawCenteredString(
|
||||
fontRendererObj,
|
||||
StatCollector.translateToLocal("gui.de.playerDetector.main.title"),
|
||||
xSize / 2,
|
||||
5,
|
||||
0x00FFFF);
|
||||
|
||||
fontRendererObj.drawString("Range:", 73, 21, 0x000000, false);
|
||||
fontRendererObj.drawString("Output Inverted: " + isOutputInverted, 33, 97, 0x000000, false);
|
||||
fontRendererObj.drawString(String.valueOf(range), range < 10 ? 85 : 82, 31, 0x000000, false);
|
||||
fontRendererObj.drawString(
|
||||
StatCollector.translateToLocal("gui.de.playerDetector.range") + ":",
|
||||
73,
|
||||
21,
|
||||
0x000000,
|
||||
false);
|
||||
fontRendererObj.drawString(
|
||||
StatCollector.translateToLocalFormatted("gui.de.playerDetector.outputInvert", isOutputInverted),
|
||||
33,
|
||||
97,
|
||||
0x000000,
|
||||
false);
|
||||
fontRendererObj.drawString(
|
||||
StatCollector.translateToLocalFormatted("gui.de.numbers", range),
|
||||
range < 10 ? 85 : 82,
|
||||
31,
|
||||
0x000000,
|
||||
false);
|
||||
}
|
||||
selectedNameText.drawTextBox();
|
||||
}
|
||||
|
||||
@@ -86,7 +86,12 @@ public class GUIUpgradeModifier extends GuiContainer {
|
||||
|
||||
@Override
|
||||
protected void drawGuiContainerForegroundLayer(int x, int y) {
|
||||
drawCenteredString(fontRendererObj, tile.getBlockType().getLocalizedName(), xSize / 2, -9, 0x00FFFF);
|
||||
drawCenteredString(
|
||||
fontRendererObj,
|
||||
StatCollector.translateToLocal("gui.de.upgradeModifier.main.title"),
|
||||
xSize / 2,
|
||||
-9,
|
||||
0x00FFFF);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -238,13 +243,25 @@ public class GUIUpgradeModifier extends GuiContainer {
|
||||
0x00ff00);
|
||||
fontRendererObj
|
||||
.drawString(StatCollector.translateToLocal("gui.de.cap.txt"), guiLeft + 4, guiTop + 16, 0x000000);
|
||||
fontRendererObj.drawString(">" + coreSlots, guiLeft + 4, guiTop + 25, 0x000000);
|
||||
fontRendererObj.drawString(
|
||||
StatCollector.translateToLocalFormatted("gui.de.numbers", ">" + coreSlots),
|
||||
guiLeft + 4,
|
||||
guiTop + 25,
|
||||
0x000000);
|
||||
fontRendererObj
|
||||
.drawString(StatCollector.translateToLocal("gui.de.installed.txt"), guiLeft + 4, guiTop + 37, 0x000000);
|
||||
fontRendererObj.drawString(">" + usedSlots, guiLeft + 4, guiTop + 46, 0x000000);
|
||||
fontRendererObj.drawString(
|
||||
StatCollector.translateToLocalFormatted("gui.de.numbers", ">" + usedSlots),
|
||||
guiLeft + 4,
|
||||
guiTop + 46,
|
||||
0x000000);
|
||||
fontRendererObj
|
||||
.drawString(StatCollector.translateToLocal("gui.de.free.txt"), guiLeft + 4, guiTop + 58, 0x000000);
|
||||
fontRendererObj.drawString(">" + (coreSlots - usedSlots), guiLeft + 4, guiTop + 67, 0x000000);
|
||||
fontRendererObj.drawString(
|
||||
StatCollector.translateToLocalFormatted("gui.de.numbers", ">" + (coreSlots - usedSlots)),
|
||||
guiLeft + 4,
|
||||
guiTop + 67,
|
||||
0x000000);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+20
-11
@@ -6,6 +6,7 @@ import net.minecraft.client.gui.inventory.GuiContainer;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.InventoryPlayer;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraft.util.StatCollector;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
@@ -53,23 +54,32 @@ public class GUIWeatherController extends GuiContainer {
|
||||
|
||||
@Override
|
||||
protected void drawGuiContainerForegroundLayer(int p_146979_1_, int p_146979_2_) {
|
||||
fontRendererObj.drawString("Charges: " + charges, 90, 25, 0x000000);
|
||||
fontRendererObj.drawString(StatCollector.translateToLocal("gui.de.charges") + ": " + charges, 90, 25, 0x000000);
|
||||
// drawCenteredString(fontRendererObj, "Charges: " + charges, 117, 25, 0x000000);
|
||||
drawCenteredString(fontRendererObj, "Weather Controller", xSize / 2, -15, 0x2a4ed0);
|
||||
drawCenteredString(
|
||||
fontRendererObj,
|
||||
StatCollector.translateToLocal("gui.de.weatherController.main.title"),
|
||||
xSize / 2,
|
||||
-15,
|
||||
0x2a4ed0);
|
||||
}
|
||||
|
||||
public static final String RAIN_ON_TEXT = "Turn rain on";
|
||||
public static final String RAIN_OFF_TEXT = "Turn rain off";
|
||||
public static final String STORM_TEXT = "Thunder Storm";
|
||||
public static final String RAIN_ON_TEXT = "gui.de.rain.on";
|
||||
public static final String RAIN_OFF_TEXT = "gui.de.rain.off";
|
||||
public static final String STORM_TEXT = "gui.de.rain.storm";
|
||||
public static String text;
|
||||
|
||||
private String getModeText(int mode) {
|
||||
if (mode == 0) return StatCollector.translateToLocal(RAIN_OFF_TEXT);
|
||||
else if (mode == 1) return StatCollector.translateToLocal(RAIN_ON_TEXT);
|
||||
else return StatCollector.translateToLocal(STORM_TEXT);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initGui() {
|
||||
super.initGui();
|
||||
buttonList.clear();
|
||||
if (tileWC.mode == 0) text = RAIN_OFF_TEXT;
|
||||
else if (tileWC.mode == 1) text = RAIN_ON_TEXT;
|
||||
else text = STORM_TEXT;
|
||||
text = getModeText(tileWC.mode);
|
||||
// ID
|
||||
buttonList.add(new GuiButton(0, guiLeft + 85, guiTop, 85, 20, text));
|
||||
}
|
||||
@@ -78,9 +88,8 @@ public class GUIWeatherController extends GuiContainer {
|
||||
protected void actionPerformed(GuiButton button) {
|
||||
if (button.id == 0) {
|
||||
DraconicEvolution.network.sendToServer(new ButtonPacket((byte) 0, true));
|
||||
if (button.displayString.equals(STORM_TEXT)) button.displayString = RAIN_OFF_TEXT;
|
||||
else if (button.displayString.equals(RAIN_OFF_TEXT)) button.displayString = RAIN_ON_TEXT;
|
||||
else button.displayString = STORM_TEXT;
|
||||
tileWC.mode = (tileWC.mode + 1) % 3;
|
||||
button.displayString = getModeText(tileWC.mode);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+3
-2
@@ -28,6 +28,7 @@ import com.brandon3055.draconicevolution.client.utils.guicomponents.GUIBase;
|
||||
import com.brandon3055.draconicevolution.common.container.ContainerAdvTool;
|
||||
import com.brandon3055.draconicevolution.common.handler.ContributorHandler;
|
||||
import com.brandon3055.draconicevolution.common.items.weapons.BowHandler;
|
||||
import com.brandon3055.draconicevolution.common.items.weapons.IEnergyContainerBowItem;
|
||||
import com.brandon3055.draconicevolution.common.lib.References;
|
||||
import com.brandon3055.draconicevolution.common.network.ContributorPacket;
|
||||
import com.brandon3055.draconicevolution.common.network.ItemConfigPacket;
|
||||
@@ -310,11 +311,11 @@ public class GUIToolConfig extends GUIBase {
|
||||
super.drawGuiContainerForegroundLayer(mouseX, mouseY);
|
||||
|
||||
if (slot > -1) editingItem = player.inventory.getStackInSlot(slot);
|
||||
if (slot > -1 && editingItem != null && editingItem.getUnlocalizedName().toLowerCase().contains("bow")) {
|
||||
if (slot > -1 && editingItem != null && editingItem.getItem() instanceof IEnergyContainerBowItem) {
|
||||
BowHandler.BowProperties properties = new BowHandler.BowProperties(editingItem, player);
|
||||
|
||||
if (!properties.canFire() && properties.cantFireMessage != null
|
||||
&& !properties.cantFireMessage.equals("msg.de.outOfArrows.name")) {
|
||||
&& !properties.cantFireMessage.equals("msg.de.outOfArrows.txt")) {
|
||||
fontRendererObj.drawSplitString(
|
||||
StatCollector.translateToLocal(properties.cantFireMessage),
|
||||
0,
|
||||
|
||||
@@ -139,6 +139,17 @@ public final class HudHandler {
|
||||
showShieldHud = false;
|
||||
return;
|
||||
}
|
||||
if (!shouldDisplayArmorHud(summary)) {
|
||||
showShieldHud = false;
|
||||
armorStatsFadeOut = 0F;
|
||||
maxShieldPoints = 0F;
|
||||
shieldPoints = 0F;
|
||||
shieldPercentCharge = 0;
|
||||
shieldEntropy = 0F;
|
||||
rfCharge = 0;
|
||||
rfTotal = 0;
|
||||
return;
|
||||
}
|
||||
showShieldHud = armorStatsFadeOut > 0F;
|
||||
|
||||
if (maxShieldPoints != summary.maxProtectionPoints || shieldPoints != summary.protectionPoints
|
||||
@@ -155,6 +166,10 @@ public final class HudHandler {
|
||||
rfTotal = summary.totalEnergyStored;
|
||||
}
|
||||
|
||||
private boolean shouldDisplayArmorHud(ArmorSummary summary) {
|
||||
return summary.maxProtectionPoints > 0F || summary.maxTotalEnergyStorage > 0;
|
||||
}
|
||||
|
||||
private void drawArmorHUD(int x, int y, boolean rotated, double scale) {
|
||||
GL11.glPushMatrix();
|
||||
GL11.glEnable(GL11.GL_ALPHA_TEST);
|
||||
|
||||
@@ -15,6 +15,7 @@ import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import javax.imageio.ImageIO;
|
||||
|
||||
@@ -48,7 +49,7 @@ public class ResourceHandler {
|
||||
private static ResourceLocation particles = new ResourceLocation(
|
||||
References.RESOURCESPREFIX + "textures/particle/particles.png");
|
||||
private static Map<String, ResourceLocation> cachedResources = new HashMap<String, ResourceLocation>();
|
||||
public static Map<String, CustomResourceLocation> downloadedImages = new HashMap<String, CustomResourceLocation>();
|
||||
public static Map<String, CustomResourceLocation> downloadedImages = new ConcurrentHashMap<>();
|
||||
|
||||
private static String savePath;
|
||||
private static File saveFolder;
|
||||
@@ -64,7 +65,6 @@ public class ResourceHandler {
|
||||
if (downloadThread.isReloadRequired()) LogHelper.info("Image Download Finished");
|
||||
downloadStatus = downloadThread.wasSuccessful ? 1 : 2;
|
||||
FMLCommonHandler.instance().bus().unregister(this);
|
||||
addRSPack(event != null);
|
||||
downloadThread = null;
|
||||
}
|
||||
}
|
||||
@@ -74,6 +74,10 @@ public class ResourceHandler {
|
||||
|
||||
if (event != null) savePath = event.getModConfigurationDirectory().getParentFile().getAbsolutePath()
|
||||
+ "/config/draconicevolution";
|
||||
|
||||
// Register the namespace before FML's final reload; folder-pack files are resolved on demand.
|
||||
getImagesFolder();
|
||||
addRSPack();
|
||||
GUIManual.loadPages();
|
||||
|
||||
downloadThread = new DownloadThread(GUIManual.imageURLs);
|
||||
@@ -83,7 +87,7 @@ public class ResourceHandler {
|
||||
public static class DownloadThread extends Thread {
|
||||
|
||||
private List<String> imageURLs;
|
||||
private boolean isFinished = false;
|
||||
private volatile boolean isFinished = false;
|
||||
private boolean wasSuccessful = true;
|
||||
private boolean reloadRequired = false;
|
||||
|
||||
@@ -171,7 +175,7 @@ public class ResourceHandler {
|
||||
}
|
||||
}
|
||||
|
||||
private static void addRSPack(boolean refreash) {
|
||||
private static void addRSPack() {
|
||||
File rspack = new File(getConfigFolder(), "/resources");
|
||||
if (!rspack.exists()) return;
|
||||
|
||||
@@ -200,7 +204,6 @@ public class ResourceHandler {
|
||||
|
||||
f.set(Minecraft.getMinecraft(), defaultResourcePacks);
|
||||
LogHelper.info("RS Added");
|
||||
if (refreash) Minecraft.getMinecraft().refreshResources();
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
+3
@@ -16,6 +16,8 @@ import com.brandon3055.draconicevolution.common.utils.DataUtils;
|
||||
|
||||
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
|
||||
import cpw.mods.fml.common.gameevent.TickEvent;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
public final class ShieldRenderHandler {
|
||||
|
||||
@@ -31,6 +33,7 @@ public final class ShieldRenderHandler {
|
||||
}
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@SubscribeEvent
|
||||
public void tickEnd(TickEvent.ClientTickEvent event) {
|
||||
if (event.phase == TickEvent.Phase.END && !shieldStatus.isEmpty()) {
|
||||
|
||||
@@ -35,6 +35,7 @@ public class ModelRenderOBJ extends ModelRenderer {
|
||||
this.compileDisplayList(scale);
|
||||
}
|
||||
|
||||
ResourceHandler.bindTexture(texture);
|
||||
GL11.glTranslatef(this.offsetX, this.offsetY, this.offsetZ);
|
||||
|
||||
if (this.rotateAngleX == 0.0F && this.rotateAngleY == 0.0F && this.rotateAngleZ == 0.0F) {
|
||||
@@ -84,7 +85,6 @@ public class ModelRenderOBJ extends ModelRenderer {
|
||||
GL11.glNewList(this.displayList, GL11.GL_COMPILE);
|
||||
|
||||
GL11.glPushMatrix();
|
||||
ResourceHandler.bindTexture(texture);
|
||||
// scale = 1F/15F;
|
||||
GL11.glScalef(scale, scale, scale);
|
||||
GL11.glRotatef(180, -1, 0, 1);
|
||||
@@ -102,6 +102,7 @@ public class ModelRenderOBJ extends ModelRenderer {
|
||||
this.compileDisplayList(scale);
|
||||
}
|
||||
|
||||
ResourceHandler.bindTexture(texture);
|
||||
GL11.glPushMatrix();
|
||||
GL11.glTranslatef(this.rotationPointX * scale, this.rotationPointY * scale, this.rotationPointZ * scale);
|
||||
if (this.rotateAngleY != 0.0F) {
|
||||
|
||||
+10
-4
@@ -15,6 +15,12 @@ import com.brandon3055.draconicevolution.common.utils.LogHelper;
|
||||
|
||||
public class RenderMobSoul implements IItemRenderer {
|
||||
|
||||
public static volatile boolean applyTimeRotation = true;
|
||||
|
||||
public static float getRotationAngle() {
|
||||
return (float) (Minecraft.getSystemTime() / -10);
|
||||
}
|
||||
|
||||
private final Minecraft mc;
|
||||
private final String[] randomEntities = new String[] { "Pig", "Sheep", "Enderman", "Zombie", "Creeper", "Cow",
|
||||
"Chicken", "Ozelot", "Witch", "Wolf", "MushroomCow", "Squid", "EntityHorse", "Spider", "Skeleton", "Blaze",
|
||||
@@ -58,7 +64,7 @@ public class RenderMobSoul implements IItemRenderer {
|
||||
GL11.glScalef(13F, 13F, 13F);
|
||||
GL11.glTranslated(1.2, 2.2, 0);
|
||||
GL11.glRotatef(180F, 1F, 0F, 0F);
|
||||
GL11.glRotatef(mc.getSystemTime() / -10, 0F, 1F, 0F);
|
||||
if (applyTimeRotation) GL11.glRotatef(getRotationAngle(), 0F, 1F, 0F);
|
||||
GL11.glRotatef(-20F, 1F, 0F, 0F);
|
||||
RenderManager.instance.renderEntityWithPosYaw(mob, 0, 0, 0, 0F, 1F);
|
||||
GL11.glPopMatrix();
|
||||
@@ -67,7 +73,7 @@ public class RenderMobSoul implements IItemRenderer {
|
||||
GL11.glScalef(0.8F, 0.8F, 0.8F);
|
||||
GL11.glTranslated(2, 0.5, 0);
|
||||
GL11.glRotatef(20F, 0F, 0F, 1F);
|
||||
GL11.glRotatef(mc.getSystemTime() / -10, 0F, 1F, 0F);
|
||||
if (applyTimeRotation) GL11.glRotatef(getRotationAngle(), 0F, 1F, 0F);
|
||||
GL11.glRotatef(-20F, 1F, 0F, 0F);
|
||||
RenderManager.instance.renderEntityWithPosYaw(mob, 0, 0, 0, 0F, 1F);
|
||||
GL11.glPopMatrix();
|
||||
@@ -76,14 +82,14 @@ public class RenderMobSoul implements IItemRenderer {
|
||||
GL11.glScalef(0.8F, 0.8F, 0.8F);
|
||||
GL11.glTranslated(1, 0.5, 0);
|
||||
GL11.glRotatef(20F, 0F, 0F, 1F);
|
||||
GL11.glRotatef(mc.getSystemTime() / -10, 0F, 1F, 0F);
|
||||
if (applyTimeRotation) GL11.glRotatef(getRotationAngle(), 0F, 1F, 0F);
|
||||
GL11.glRotatef(-20F, 1F, 0F, 0F);
|
||||
RenderManager.instance.renderEntityWithPosYaw(mob, 0, 0, 0, 0F, 1F);
|
||||
GL11.glPopMatrix();
|
||||
} else {
|
||||
GL11.glPushMatrix();
|
||||
GL11.glScalef(1.5F, 1.5F, 1.5F);
|
||||
GL11.glRotatef(mc.getSystemTime() / -10, 0F, 1F, 0F);
|
||||
if (applyTimeRotation) GL11.glRotatef(getRotationAngle(), 0F, 1F, 0F);
|
||||
GL11.glRotatef(-20F, 1F, 0F, 0F);
|
||||
GL11.glEnable(GL11.GL_BLEND);
|
||||
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
|
||||
|
||||
+10
-8
@@ -22,24 +22,28 @@ import com.brandon3055.draconicevolution.common.tileentities.TilePlacedItem;
|
||||
*/
|
||||
public class RenderTilePlacedItem extends TileEntitySpecialRenderer {
|
||||
|
||||
private static final float MOBSOUL_CENTER_X = 0.5F;
|
||||
private static final float MOBSOUL_CENTER_Y = 0.3F;
|
||||
private static final float MOBSOUL_CENTER_Z = 0.5F;
|
||||
|
||||
private final EntityItem cachedEntity = new EntityItem(null, 0, 0, 0, new ItemStack(Items.apple));
|
||||
|
||||
@Override
|
||||
public void renderTileEntityAt(TileEntity te, double x, double y, double z, float timeSinceLastTick) {
|
||||
if (!(te instanceof TilePlacedItem tile)) return;
|
||||
if (tile.getStack() == null) return;
|
||||
ItemStack stack = tile.getStack();
|
||||
// I think without this check it could have thrown a NPE if an item being displayed was removed
|
||||
if (stack == null || stack.getItem() == null) return;
|
||||
if (tile.getWorldObj() == null) return;
|
||||
GL11.glPushMatrix();
|
||||
GL11.glPushAttrib(GL11.GL_ENABLE_BIT);
|
||||
GL11.glTranslated(x, y, z);
|
||||
renderItem(tile);
|
||||
GL11.glPopAttrib();
|
||||
GL11.glPopMatrix();
|
||||
}
|
||||
|
||||
public void renderItem(TilePlacedItem tile) {
|
||||
ItemStack stack = tile.getStack();
|
||||
int meta = tile.getWorldObj().getBlockMetadata(tile.xCoord, tile.yCoord, tile.zCoord);
|
||||
// itemEntity.getEntityItem().stackSize = 1;
|
||||
final Item item = stack.getItem();
|
||||
boolean is3D = item.isFull3D();
|
||||
boolean isBlock = item instanceof ItemBlock;
|
||||
@@ -58,7 +62,7 @@ public class RenderTilePlacedItem extends TileEntitySpecialRenderer {
|
||||
GL11.glRotatef(tile.rotation, 0F, 0F, 1F);
|
||||
GL11.glTranslatef(0.0F, -0.21F, 0.0F);
|
||||
} else if (item instanceof MobSoul) {
|
||||
GL11.glTranslatef(0.5F, 0.3F, 0.5F);
|
||||
GL11.glTranslatef(MOBSOUL_CENTER_X, MOBSOUL_CENTER_Y, MOBSOUL_CENTER_Z);
|
||||
} else {
|
||||
GL11.glRotatef(90F, -1F, 0F, 0F);
|
||||
GL11.glTranslatef(0.5F, -0.65F, 0.02F);
|
||||
@@ -68,7 +72,6 @@ public class RenderTilePlacedItem extends TileEntitySpecialRenderer {
|
||||
GL11.glTranslatef(0.0F, -0.18F, 0.0F);
|
||||
}
|
||||
|
||||
GL11.glPushAttrib(GL11.GL_COLOR_BUFFER_BIT);
|
||||
RenderItem.renderInFrame = true;
|
||||
try {
|
||||
this.cachedEntity.setEntityItemStack(stack);
|
||||
@@ -78,9 +81,8 @@ public class RenderTilePlacedItem extends TileEntitySpecialRenderer {
|
||||
} finally {
|
||||
this.cachedEntity.setEntityItemStack(null);
|
||||
this.cachedEntity.setWorld(null);
|
||||
RenderItem.renderInFrame = false;
|
||||
}
|
||||
RenderItem.renderInFrame = false;
|
||||
GL11.glPopAttrib();
|
||||
}
|
||||
|
||||
private void metaAdjustItemTool(int meta) {
|
||||
|
||||
@@ -335,6 +335,8 @@ public class CommonProxy {
|
||||
return dragonChunkLoader;
|
||||
}
|
||||
|
||||
public void tryRepositionPlayerOnMount(int entityId) {}
|
||||
|
||||
public void registerInhibitor(TileDislocatorInhibitor tile) {
|
||||
if (tile.hasWorldObj()) {
|
||||
registerInhibitor(this.serverInhibitorsMap, tile);
|
||||
|
||||
@@ -8,6 +8,9 @@ import net.minecraft.world.World;
|
||||
import com.brandon3055.draconicevolution.DraconicEvolution;
|
||||
import com.brandon3055.draconicevolution.client.render.particle.Particles;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
/**
|
||||
* Created by brandon3055 on 30/9/2015.
|
||||
*/
|
||||
@@ -62,18 +65,14 @@ public class EntityChaosBolt extends Entity {
|
||||
|
||||
if (ticks == 10 && !burst) {
|
||||
if (worldObj.isRemote) {
|
||||
DraconicEvolution.clientProxy().spawnParticle(
|
||||
new Particles.ChaosBoltParticle(worldObj, posX, posY, posZ, shardX, shardY, shardZ, 10),
|
||||
32);
|
||||
spawnParticles(10);
|
||||
}
|
||||
setDead();
|
||||
} else if (ticks > 10) {
|
||||
if (ticks < 25) {
|
||||
for (int i = 0; i < 20; i++) {
|
||||
if (worldObj.isRemote) {
|
||||
DraconicEvolution.clientProxy().spawnParticle(
|
||||
new Particles.ChaosBoltParticle(worldObj, posX, posY, posZ, shardX, shardY, shardZ, 0),
|
||||
32);
|
||||
spawnParticles(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -86,6 +85,13 @@ public class EntityChaosBolt extends Entity {
|
||||
ticks++;
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
private void spawnParticles(int mode) {
|
||||
DraconicEvolution.clientProxy().spawnParticle(
|
||||
new Particles.ChaosBoltParticle(worldObj, posX, posY, posZ, shardX, shardY, shardZ, mode),
|
||||
32);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void readEntityFromNBT(NBTTagCompound compound) {
|
||||
// if (compound.hasKey("ShardPos")){
|
||||
|
||||
+18
-7
@@ -13,6 +13,8 @@ import com.brandon3055.draconicevolution.common.network.GenericParticlePacket;
|
||||
import com.brandon3055.draconicevolution.common.utils.handlers.ProcessHandler;
|
||||
|
||||
import cpw.mods.fml.common.network.NetworkRegistry;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
/**
|
||||
* Created by brandon3055 on 3/10/2015.
|
||||
@@ -41,12 +43,10 @@ public class EntityChaosVortex extends Entity {
|
||||
else ticksExisted = dataWatcher.getWatchableObjectInt(20);
|
||||
|
||||
if (ticksExisted < 30 && ticksExisted % 5 == 0 && worldObj.isRemote) {
|
||||
DraconicEvolution.clientProxy()
|
||||
.spawnParticle(new Particles.ChaosExpansionParticle(worldObj, posX, posY, posZ, false), 512);
|
||||
spawnChaosParticles(false);
|
||||
}
|
||||
if (ticksExisted >= 100 && ticksExisted < 130 && ticksExisted % 5 == 0 && worldObj.isRemote) {
|
||||
DraconicEvolution.clientProxy()
|
||||
.spawnParticle(new Particles.ChaosExpansionParticle(worldObj, posX, posY, posZ, true), 512);
|
||||
spawnChaosParticles(true);
|
||||
}
|
||||
if (ticksExisted < 100) return;
|
||||
|
||||
@@ -55,9 +55,7 @@ public class EntityChaosVortex extends Entity {
|
||||
double y = posY - 8 + rand.nextDouble() * 16;
|
||||
double z = posZ - 18 + rand.nextDouble() * 36;
|
||||
if (worldObj.isRemote) {
|
||||
DraconicEvolution.clientProxy().spawnParticle(
|
||||
new Particles.AdvancedSeekerParticle(worldObj, x, y, z, posX, posY, posZ, 2, 1f, 1f, 1f, 100),
|
||||
128);
|
||||
spawnSeekerParticles(x, y, z);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -73,6 +71,19 @@ public class EntityChaosVortex extends Entity {
|
||||
if (ticksExisted > 620) setDead();
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
private void spawnChaosParticles(boolean shrink) {
|
||||
DraconicEvolution.clientProxy()
|
||||
.spawnParticle(new Particles.ChaosExpansionParticle(worldObj, posX, posY, posZ, shrink), 512);
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
private void spawnSeekerParticles(double x, double y, double z) {
|
||||
DraconicEvolution.clientProxy().spawnParticle(
|
||||
new Particles.AdvancedSeekerParticle(worldObj, x, y, z, posX, posY, posZ, 2, 1f, 1f, 1f, 100),
|
||||
128);
|
||||
}
|
||||
|
||||
private void shakeScreen() {
|
||||
double intensity = (ticksExisted - 130) / 100D;
|
||||
if (intensity > 1D) intensity = 1D;
|
||||
|
||||
@@ -39,9 +39,11 @@ import com.gtnewhorizon.gtnhlib.GTNHLib;
|
||||
|
||||
import baubles.api.BaubleType;
|
||||
import baubles.api.IBauble;
|
||||
import cpw.mods.fml.common.Loader;
|
||||
import cpw.mods.fml.common.Optional;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import vazkii.botania.common.block.subtile.functional.SubTileSolegnolia;
|
||||
|
||||
/**
|
||||
* Created by brandon3055 on 9/3/2016.
|
||||
@@ -50,6 +52,8 @@ import cpw.mods.fml.relauncher.SideOnly;
|
||||
@Optional.Interface(iface = "baubles.api.IBauble", modid = "Baubles")
|
||||
public class Magnet extends ItemDE implements IBauble, IConfigurableItem {
|
||||
|
||||
private static final boolean BOTANIA_LOADED = Loader.isModLoaded("Botania");
|
||||
|
||||
private IIcon draconium;
|
||||
private IIcon awakened;
|
||||
|
||||
@@ -61,8 +65,10 @@ public class Magnet extends ItemDE implements IBauble, IConfigurableItem {
|
||||
DELAY,
|
||||
NEVER;
|
||||
|
||||
public static final SelfPickUpMode[] VALUES = values();
|
||||
|
||||
public SelfPickUpMode next() {
|
||||
final SelfPickUpMode[] values = SelfPickUpMode.values();
|
||||
final SelfPickUpMode[] values = SelfPickUpMode.VALUES;
|
||||
return values[(this.ordinal() + 1) % values.length];
|
||||
}
|
||||
}
|
||||
@@ -118,6 +124,9 @@ public class Magnet extends ItemDE implements IBauble, IConfigurableItem {
|
||||
if (IConfigurableItem.ProfileHelper.getBoolean(stack, References.MAGNET_SNEAK, true) && entity.isSneaking()) {
|
||||
return;
|
||||
}
|
||||
if (BOTANIA_LOADED && SubTileSolegnolia.hasSolegnoliaAround(player)) {
|
||||
return;
|
||||
}
|
||||
|
||||
int range = stack.getItemDamage() == 0 ? 8 : 32;
|
||||
List<EntityItem> items = world.getEntitiesWithinAABB(
|
||||
@@ -265,7 +274,7 @@ public class Magnet extends ItemDE implements IBauble, IConfigurableItem {
|
||||
|
||||
private static SelfPickUpMode getSelfPickupStatus(ItemStack itemStack) {
|
||||
final short mode = getSelfPickupStatusShort(itemStack);
|
||||
return SelfPickUpMode.values()[mode];
|
||||
return SelfPickUpMode.VALUES[mode];
|
||||
}
|
||||
|
||||
public static void toggleSelfPickupStatus(ItemStack itemStack) {
|
||||
|
||||
+5
-5
@@ -158,8 +158,8 @@ public class BowHandler {
|
||||
|
||||
public int calculateEnergyCost() {
|
||||
updateValues();
|
||||
double rfCost = (bow.getItem() instanceof IEnergyContainerWeaponItem)
|
||||
? ((IEnergyContainerWeaponItem) bow.getItem()).getEnergyPerAttack()
|
||||
double rfCost = (bow.getItem() instanceof IEnergyContainerBowItem)
|
||||
? ((IEnergyContainerBowItem) bow.getItem()).getEnergyPerAttack()
|
||||
: 80;
|
||||
|
||||
rfCost *= 1 + arrowDamage;
|
||||
@@ -175,7 +175,7 @@ public class BowHandler {
|
||||
updateValues();
|
||||
|
||||
if (player == null) return false;
|
||||
if (!(bow.getItem() instanceof IEnergyContainerWeaponItem)) {
|
||||
if (!(bow.getItem() instanceof IEnergyContainerBowItem)) {
|
||||
cantFireMessage = "[Error] This bow is not a valid energy container (This is a bug, Please report on the Draconic Evolution github)";
|
||||
return false;
|
||||
} else if (!energyBolt && shockWavePower > 0) {
|
||||
@@ -184,7 +184,7 @@ public class BowHandler {
|
||||
} else if (energyBolt && explosionPower > 0) {
|
||||
cantFireMessage = "msg.de.explosiveNotForEnergyBolts.txt";
|
||||
return false;
|
||||
} else if (calculateEnergyCost() > ((IEnergyContainerWeaponItem) bow.getItem()).getEnergyStored(bow)
|
||||
} else if (calculateEnergyCost() > ((IEnergyContainerBowItem) bow.getItem()).getEnergyStored(bow)
|
||||
&& !player.capabilities.isCreativeMode) {
|
||||
cantFireMessage = "msg.de.insufficientPowerToFire.txt";
|
||||
return false;
|
||||
@@ -223,7 +223,7 @@ public class BowHandler {
|
||||
public boolean consumeArrowAndEnergy() {
|
||||
|
||||
if (!player.capabilities.isCreativeMode)
|
||||
((IEnergyContainerWeaponItem) bow.getItem()).extractEnergy(bow, calculateEnergyCost(), false);
|
||||
((IEnergyContainerBowItem) bow.getItem()).extractEnergy(bow, calculateEnergyCost(), false);
|
||||
|
||||
if (!energyBolt && EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, bow) == 0
|
||||
&& !player.capabilities.isCreativeMode) {
|
||||
|
||||
+1
-1
@@ -39,7 +39,7 @@ import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
public class DraconicBow extends ItemBow
|
||||
implements IInventoryTool, IUpgradableItem, IEnergyContainerWeaponItem, IHudDisplayItem {
|
||||
implements IInventoryTool, IUpgradableItem, IEnergyContainerBowItem, IHudDisplayItem {
|
||||
|
||||
public static final String[] bowPullIconNameArray = new String[] { "pulling_0", "pulling_1", "pulling_2" };
|
||||
|
||||
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
package com.brandon3055.draconicevolution.common.items.weapons;
|
||||
|
||||
public interface IEnergyContainerBowItem extends IEnergyContainerWeaponItem {
|
||||
}
|
||||
@@ -39,7 +39,7 @@ import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
public class WyvernBow extends ItemBow
|
||||
implements IInventoryTool, IUpgradableItem, IEnergyContainerWeaponItem, IHudDisplayItem {
|
||||
implements IInventoryTool, IUpgradableItem, IEnergyContainerBowItem, IHudDisplayItem {
|
||||
|
||||
public static final String[] bowPullIconNameArray = new String[] { "pulling_0", "pulling_1", "pulling_2" };
|
||||
|
||||
|
||||
+1
-1
@@ -45,7 +45,7 @@ public class MountUpdatePacket implements IMessage {
|
||||
return null;
|
||||
}
|
||||
|
||||
DraconicEvolution.clientProxy().tryRepositionPlayerOnMount(message.entityID);
|
||||
DraconicEvolution.proxy.tryRepositionPlayerOnMount(message.entityID);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -55,9 +55,9 @@ public class TileChaosShard extends TileEntity {
|
||||
|
||||
public void detonate() {
|
||||
if (!worldObj.isRemote
|
||||
&& locationHash != getLocationHash(xCoord, yCoord, zCoord, worldObj.provider.dimensionId))
|
||||
&& locationHash != getLocationHash(xCoord, yCoord, zCoord, worldObj.provider.dimensionId)) {
|
||||
worldObj.setBlockToAir(xCoord, yCoord, zCoord);
|
||||
else {
|
||||
} else {
|
||||
EntityChaosVortex vortex = new EntityChaosVortex(worldObj);
|
||||
vortex.setPosition(xCoord + 0.5, yCoord + 0.5, zCoord + 0.5);
|
||||
worldObj.spawnEntityInWorld(vortex);
|
||||
|
||||
+11
@@ -7,6 +7,7 @@ import net.minecraft.network.NetworkManager;
|
||||
import net.minecraft.network.Packet;
|
||||
import net.minecraft.network.play.server.S35PacketUpdateTileEntity;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.util.Vec3;
|
||||
|
||||
import com.brandon3055.draconicevolution.common.ModBlocks;
|
||||
@@ -20,6 +21,16 @@ public class TilePlacedItem extends TileEntity {
|
||||
public ItemStack stack;
|
||||
public float rotation = 0F;
|
||||
private boolean hasUpdated = false;
|
||||
private AxisAlignedBB renderBoundingBox;
|
||||
|
||||
@Override
|
||||
public AxisAlignedBB getRenderBoundingBox() {
|
||||
if (renderBoundingBox == null) {
|
||||
renderBoundingBox = AxisAlignedBB
|
||||
.getBoundingBox(xCoord - 2, yCoord - 2, zCoord - 2, xCoord + 2, yCoord + 2, zCoord + 2);
|
||||
}
|
||||
return renderBoundingBox;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateEntity() {
|
||||
|
||||
+7
-10
@@ -47,19 +47,16 @@ public class TileEnergyRelay extends TileRemoteEnergyBase {
|
||||
super.updateEntity();
|
||||
|
||||
if (worldObj.isRemote) {
|
||||
ring = DraconicEvolution.clientProxy().energyField(
|
||||
worldObj,
|
||||
xCoord + 0.5,
|
||||
yCoord + 0.5,
|
||||
zCoord + 0.5,
|
||||
0,
|
||||
powerTier == 1,
|
||||
ring,
|
||||
inView > 0);
|
||||
return;
|
||||
spawnEnergyField();
|
||||
}
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
private void spawnEnergyField() {
|
||||
ring = DraconicEvolution.clientProxy()
|
||||
.energyField(worldObj, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, 0, powerTier == 1, ring, inView > 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToNBT(NBTTagCompound compound) {
|
||||
super.writeToNBT(compound);
|
||||
|
||||
+8
-1
@@ -78,7 +78,14 @@ public class TileEnergyTransceiver extends TileRemoteEnergyBase {
|
||||
}
|
||||
}
|
||||
|
||||
if (worldObj.isRemote) particle = DraconicEvolution.clientProxy()
|
||||
if (worldObj.isRemote) {
|
||||
spawnParticle();
|
||||
}
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
private void spawnParticle() {
|
||||
particle = DraconicEvolution.clientProxy()
|
||||
.energyField(worldObj, getBeamX(), getBeamY(), getBeamZ(), 1, powerTier == 1, particle, inView > 0);
|
||||
}
|
||||
|
||||
|
||||
+18
-13
@@ -100,19 +100,7 @@ public abstract class TileRemoteEnergyBase extends TileObjectSync implements IRe
|
||||
rType = 1;
|
||||
else rType = 0;
|
||||
}
|
||||
device.beam = DraconicEvolution.clientProxy().energyBeam(
|
||||
worldObj,
|
||||
getBeamX(),
|
||||
getBeamY(),
|
||||
getBeamZ(),
|
||||
remoteTile.getBeamX(),
|
||||
remoteTile.getBeamY(),
|
||||
remoteTile.getBeamZ(),
|
||||
(int) device.energyFlow,
|
||||
getPowerTier() == 1,
|
||||
device.beam,
|
||||
true,
|
||||
rType);
|
||||
updateBeam(device, remoteTile, rType);
|
||||
} else {
|
||||
double difference = getCapacity() - remoteTile.getCapacity();
|
||||
double energyToEqual = Math
|
||||
@@ -137,6 +125,23 @@ public abstract class TileRemoteEnergyBase extends TileObjectSync implements IRe
|
||||
}
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
private void updateBeam(LinkedEnergyDevice device, IRemoteEnergyHandler remoteTile, int rType) {
|
||||
device.beam = DraconicEvolution.clientProxy().energyBeam(
|
||||
worldObj,
|
||||
getBeamX(),
|
||||
getBeamY(),
|
||||
getBeamZ(),
|
||||
remoteTile.getBeamX(),
|
||||
remoteTile.getBeamY(),
|
||||
remoteTile.getBeamZ(),
|
||||
(int) device.energyFlow,
|
||||
getPowerTier() == 1,
|
||||
device.beam,
|
||||
true,
|
||||
rType);
|
||||
}
|
||||
|
||||
protected void detectAndSendChanges(int index) {
|
||||
if (worldObj.isRemote) return;
|
||||
|
||||
|
||||
+23
-21
@@ -62,32 +62,13 @@ public class TileWirelessEnergyTransceiver extends TileRemoteEnergyBase {
|
||||
super.updateEntity();
|
||||
|
||||
if (worldObj.isRemote) {
|
||||
ring = DraconicEvolution.clientProxy().energyField(
|
||||
worldObj,
|
||||
xCoord + 0.5,
|
||||
yCoord + 0.5,
|
||||
zCoord + 0.5,
|
||||
2,
|
||||
powerTier == 1,
|
||||
ring,
|
||||
inView > 0);
|
||||
spawnEnergyField();
|
||||
|
||||
for (LinkedReceiver receiver : receiverList) {
|
||||
int particleValue = 200;
|
||||
if (receiver.particleEnergyCounter > particleValue) {
|
||||
receiver.particleEnergyCounter -= particleValue;
|
||||
|
||||
// todo detect box size
|
||||
DraconicEvolution.clientProxy().spawnParticle(
|
||||
new Particles.TransceiverParticle(
|
||||
worldObj,
|
||||
xCoord + 0.5,
|
||||
yCoord + 0.3 + (worldObj.rand.nextDouble() * 0.4),
|
||||
zCoord + 0.5,
|
||||
receiver.xCoord + worldObj.rand.nextDouble(),
|
||||
receiver.yCoord + worldObj.rand.nextDouble(),
|
||||
receiver.zCoord + worldObj.rand.nextDouble()),
|
||||
64);
|
||||
spawnParticles(receiver);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -120,6 +101,27 @@ public class TileWirelessEnergyTransceiver extends TileRemoteEnergyBase {
|
||||
}
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
private void spawnEnergyField() {
|
||||
ring = DraconicEvolution.clientProxy()
|
||||
.energyField(worldObj, xCoord + 0.5, yCoord + 0.5, zCoord + 0.5, 2, powerTier == 1, ring, inView > 0);
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
private void spawnParticles(LinkedReceiver receiver) {
|
||||
// todo detect box size
|
||||
DraconicEvolution.clientProxy().spawnParticle(
|
||||
new Particles.TransceiverParticle(
|
||||
worldObj,
|
||||
xCoord + 0.5,
|
||||
yCoord + 0.3 + (worldObj.rand.nextDouble() * 0.4),
|
||||
zCoord + 0.5,
|
||||
receiver.xCoord + worldObj.rand.nextDouble(),
|
||||
receiver.yCoord + worldObj.rand.nextDouble(),
|
||||
receiver.zCoord + worldObj.rand.nextDouble()),
|
||||
64);
|
||||
}
|
||||
|
||||
@SideOnly(Side.CLIENT)
|
||||
@Override
|
||||
public void receiveObjectFromServer(int index, Object object) {
|
||||
|
||||
@@ -547,6 +547,36 @@ button.de.rotate.txt=Rotate
|
||||
button.de.numeric.txt=Numeric:
|
||||
|
||||
//Gui ----------------------------------------------------------------------------------------------------------------------------------------
|
||||
gui.de.numbers=%s
|
||||
|
||||
gui.de.charges=Charges
|
||||
gui.de.rain.on=Turn rain on
|
||||
gui.de.rain.off=Turn rain off
|
||||
gui.de.rain.storm=Thunder Storm
|
||||
|
||||
gui.de.weatherController.main.title=Weather Controller
|
||||
gui.de.playerDetector.main.title=Advanced Player Detector
|
||||
gui.de.grinder.main.title=Grinder
|
||||
gui.de.energyInfuser.main.title=Energy Infuser
|
||||
gui.de.generator.main.title=Generator
|
||||
gui.de.dissEnchanter.main.title=Disenchanter
|
||||
gui.de.draconiumChest.main.title=Draconic Chest
|
||||
gui.de.upgradeModifier.main.title=Upgrade Modifier
|
||||
gui.de.dislocatorInhibitor.main.title=Dislocator Inhibitor
|
||||
|
||||
gui.de.playerDetector.whiteList=White List
|
||||
gui.de.playerDetector.blackList=Black List
|
||||
gui.de.playerDetector.camouflage=Camouflage
|
||||
gui.de.playerDetector.invertOutput=Invert Output
|
||||
gui.de.playerDetector.back=Back
|
||||
gui.de.playerDetector.pressEnter=Press Enter to save
|
||||
gui.de.playerDetector.range=Range
|
||||
gui.de.playerDetector.outputInvert=Output Inverted: %s
|
||||
|
||||
gui.de.dissEnchanter.itemDamage1=Item
|
||||
gui.de.dissEnchanter.itemDamage2=Damage: %s
|
||||
gui.de.dissEnchanter.cost=Cost: %s
|
||||
|
||||
gui.de.flowGate.name=Flow Control
|
||||
gui.de.flowGatePartialSignal.name=The actual flow will vary between the two given values depending on the strength of the redstone signal being supplied to the block.
|
||||
gui.de.flowGateCurrentFlow.name=Flow
|
||||
|
||||
@@ -10,7 +10,7 @@ tile.draconicevolution:particleGenerator.name=粒子发生器
|
||||
tile.draconicevolution:playerDetector.name=玩家探测器
|
||||
tile.draconicevolution:playerDetectorAdvanced.name=高级玩家探测器
|
||||
tile.draconicevolution:energyInfuser.name=能量注入器
|
||||
tile.draconicevolution:earth.name=地
|
||||
tile.draconicevolution:earth.name=地球
|
||||
tile.draconicevolution:customSpawner.name=稳定刷怪笼
|
||||
tile.draconicevolution:longRangeDislocator.name=长距离错位宝石
|
||||
tile.draconicevolution:longRangeDislocator1.name=创造错位宝石
|
||||
@@ -31,7 +31,7 @@ tile.draconicevolution:draconicBlock.name=觉醒龙块
|
||||
tile.draconicevolution:infusedObsidian.name=注入龙力的黑曜石
|
||||
tile.draconicevolution:dislocatorReceptacle.name=错位容器
|
||||
tile.draconicevolution:portal.name=门
|
||||
tile.draconicevolution:flowGate.name=门
|
||||
tile.draconicevolution:flowGate.name=阀门
|
||||
tile.draconicevolution:flowGateFlux.name=能量阀门
|
||||
tile.draconicevolution:flowGateFluid.name=流体阀门
|
||||
tile.draconicevolution:reactorCore.name=反应堆核心
|
||||
@@ -50,7 +50,7 @@ tile.draconicevolution:energyCrystal2.name=能量收发器
|
||||
tile.draconicevolution:energyCrystal3.name=高级能量收发器
|
||||
tile.draconicevolution:energyCrystal4.name=无线能量收发器
|
||||
tile.draconicevolution:energyCrystal5.name=高级无线收发器
|
||||
tile.draconicevolution:dislocatorInhibitor.name=错位宝石抑制器
|
||||
tile.draconicevolution:dislocatorInhibitor.name=磁力屏蔽器
|
||||
|
||||
|
||||
//Item Information ----------------------------------------------------------------------------------------------------------------------------------------
|
||||
@@ -147,7 +147,7 @@ msg.teleporterUnSet.txt=§c你在传送之前必须首先设置目的地(Shift +
|
||||
msg.teleporterBound.txt=§a传送器绑定到:
|
||||
msg.teleporterLowHealth.txt= 你生命值低
|
||||
msg.teleporterSentMob.txt=实体已被送到
|
||||
msg.teleporterEntityDimensional.txt=§c你不能把生物跨纬度传送!
|
||||
msg.teleporterEntityDimensional.txt=§c你不能跨维度传送生物!
|
||||
msg.teleporterAlreadySet.txt=§c[错误]传送石只能被绑定到一个位置!
|
||||
msg.teleporterOutOfFuel.txt=§c燃料耗尽! ! !
|
||||
msg.teleporterOutOfPearls.txt=§c末影珍珠耗尽! ! !
|
||||
@@ -247,9 +247,9 @@ info.de.obliterationMode.txt=删除模式
|
||||
info.de.obliterationModetrue.txt=激活
|
||||
info.de.obliterationModefalse.txt=未激活
|
||||
info.de.miningMode.txt=挖掘模式
|
||||
info.de.changeMiningMode.txt=按Shift并右键来改变挖掘模式
|
||||
info.de.changeMiningMode.txt=按住Shift并右键来改变挖掘模式
|
||||
info.de.toggleOblit.txt=右键切换 删除模式
|
||||
info.de.oblitInfo.txt=删除模式 破坏不重要的方块
|
||||
info.de.oblitInfo.txt=删除模式会销毁不重要的方块
|
||||
info.de.attackDamage.txt=攻击伤害
|
||||
info.de.bonusHealthDamage.txt=生物生命值
|
||||
info.de.press.txt=按下
|
||||
|
||||
Reference in new issue
Block a user