Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a614038a18 | ||
|
|
cd58ee6866 | ||
|
|
88ac45d6b6 | ||
|
|
187ba74826 | ||
|
|
10a05d75bc | ||
|
|
b9d405312d | ||
|
|
067d602a9d | ||
|
|
9b54770785 | ||
|
|
51d553d6a0 | ||
|
|
a2da1c4832 | ||
|
|
a40e48f5d8 | ||
|
|
0e7bf1c530 | ||
|
|
81ac330ec8 | ||
|
|
c08af8ef02 | ||
|
|
15ed039813 | ||
|
|
a217fd3699 | ||
|
|
246a6d8f0a | ||
|
|
b652b79e61 | ||
|
|
27a0a443a2 | ||
|
|
c7a334c913 | ||
|
|
f512b210a5 | ||
|
|
e2b41a49c3 | ||
|
|
7f89eba8b5 | ||
|
|
76dabdf493 | ||
|
|
41c51754bb | ||
|
|
472b3649e1 | ||
|
|
806d162b19 | ||
|
|
ad1f98b03e | ||
|
|
f9bc80ef91 | ||
|
|
8807be5887 | ||
|
|
026a36d51d | ||
|
|
c6c539ea13 | ||
|
|
983a76dd1d | ||
|
|
f492c45f50 | ||
|
|
3093ea6180 | ||
|
|
ea5786c266 | ||
|
|
2c714d4321 | ||
|
|
40462a06fd | ||
|
|
eb83e72c74 | ||
|
|
6ed29e1ae1 | ||
|
|
a388c7ed2d | ||
|
|
d7080d356e | ||
|
|
f7c2a36e36 | ||
|
|
3f57c1ba79 | ||
|
|
1e30b56d65 | ||
|
|
bace7f93fe | ||
|
|
dfd194159f | ||
|
|
15d7f7405b | ||
|
|
364f833b55 | ||
|
|
36eaeeb615 | ||
|
|
49c17652cd | ||
|
|
6abe5ea4a9 | ||
|
|
be44112161 | ||
|
|
88d90c2d07 | ||
|
|
7da7525257 | ||
|
|
3d40b4aae9 | ||
|
|
1b610403b3 | ||
|
|
7d239bd2ab | ||
|
|
d325af0a96 | ||
|
|
4735800f6c | ||
|
|
a0be2aac7f | ||
|
|
5716fb0d21 | ||
|
|
c64025e8ca | ||
|
|
bc46a1f198 | ||
|
|
88c32a6a63 | ||
|
|
5a0728e920 | ||
|
|
4e9b00702a |
No files matched your search
@@ -38,3 +38,4 @@
|
||||
resources/assets/enderio/lang/*.lang.txt
|
||||
*.bat
|
||||
libs/
|
||||
options.txt
|
||||
@@ -0,0 +1,24 @@
|
||||
|
||||
# EnderIO
|
||||
|
||||
Changelog of EnderIO.
|
||||
|
||||
|
||||
### [#28 Fix Burn Time tooltip](https://github.com/GTNewHorizons/EnderIO/pull/28)
|
||||
**Merge pull request #28 from GTNewHorizons/fix_burn_time_tooltip**
|
||||
* Fix Burn Time tooltip
|
||||
|
||||
[a40e48f5d87b0be](https://github.com/GTNewHorizons/EnderIO/commit/a40e48f5d87b0be)
|
||||
by Martin Robertz *2021-01-24 21:37:43*
|
||||
### No issue
|
||||
**bump version**
|
||||
|
||||
[a2da1c4832993a3](https://github.com/GTNewHorizons/EnderIO/commit/a2da1c4832993a3)
|
||||
by DreamMasterXXL *2021-01-29 18:56:32*
|
||||
|
||||
**Revert "Update TooltipHandlerBurnTime.java"**
|
||||
* This reverts commit 3093ea6180beec8329087a1f91bda448683331d8.
|
||||
|
||||
[0e7bf1c530797f8](https://github.com/GTNewHorizons/EnderIO/commit/0e7bf1c530797f8)
|
||||
by Jason Mitchell *2021-01-24 21:02:17*
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
EnderIO [](http://ci.tterrag.com/job/EnderIO/)
|
||||
EnderIO-Unofficial
|
||||
=======
|
||||
[](http://jenkins.usrv.eu:8080/job/Ender-IO/)
|
||||
This is a unofficial version of EndeIO for 1.7.10, in case of any bugs or problems please do not contact the original developers of EnderIO!
|
||||
|
||||
All code (excluding the bundled APIs from other mods, which are covered by their respective licenses) are released without restriction into the public domain under the CC0 1.0 license (http://creativecommons.org/publicdomain/zero/1.0/legalcode) FAQ (https://wiki.creativecommons.org/CC0_FAQ).
|
||||
Do what you want with it, as long as you smile while doing so. While it is not a requirement, it would be nice to know if it is being used and how, so send me hello to **crazypants.mc at gmail.com**.
|
||||
Do what you want with it, as long as you smile while doing so.
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,16 +1,30 @@
|
||||
buildscript {
|
||||
repositories {
|
||||
mavenCentral()
|
||||
maven { url = "http://files.minecraftforge.net/maven" }
|
||||
maven { url = "https://oss.sonatype.org/content/repositories/snapshots/" }
|
||||
maven { url = "https://jitpack.io" }
|
||||
maven { url = "https://gregtech.overminddl1.com/" }
|
||||
}
|
||||
dependencies { classpath 'net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT' }
|
||||
dependencies { classpath 'com.github.GTNH2:ForgeGradle:FG_1.2-SNAPSHOT' }
|
||||
}
|
||||
plugins {
|
||||
id 'idea'
|
||||
id 'java'
|
||||
}
|
||||
|
||||
|
||||
apply plugin: 'forge'
|
||||
apply plugin: 'maven-publish'
|
||||
apply plugin: 'curseforge'
|
||||
|
||||
idea.module.downloadJavadoc = true
|
||||
idea.module.downloadSources = true
|
||||
|
||||
sourceCompatibility = JavaVersion.VERSION_1_8
|
||||
targetCompatibility = JavaVersion.VERSION_1_8
|
||||
sourceCompatibility = 1.8
|
||||
targetCompatibility = 1.8
|
||||
compileJava.options.encoding = 'UTF-8'
|
||||
|
||||
ext.buildnumber = 0
|
||||
if (System.getenv('BUILD_NUMBER') != null)
|
||||
project.buildnumber = System.getenv('BUILD_NUMBER')
|
||||
@@ -46,6 +60,7 @@ configurations {
|
||||
}
|
||||
|
||||
repositories {
|
||||
mavenLocal()
|
||||
mavenCentral()
|
||||
maven { url = "http://mobiusstrip.eu/maven" }
|
||||
maven { url = "http://chickenbones.net/maven/" }
|
||||
@@ -65,15 +80,26 @@ dependencies {
|
||||
compile "com.mod-buildcraft:buildcraft:${buildcraft_version}:api"
|
||||
compile "mcp.mobius.waila:Waila:${waila_version}_${minecraft_version}:dev"
|
||||
compile "net.sengir.forestry:${forestry_version}:api"
|
||||
compile ("com.pahimar.ee3:EquivalentExchange3:${ee3_version}:dev") {
|
||||
compileOnly ("com.pahimar.ee3:EquivalentExchange3:${ee3_version}:dev") {
|
||||
transitive = false
|
||||
}
|
||||
|
||||
// WAILA ships really old CCC/CCL versions, so we force the new versions
|
||||
compile "codechicken:CodeChickenLib:${minecraft_version}-${ccl_version}:dev"
|
||||
compile "codechicken:CodeChickenCore:${minecraft_version}-${ccc_version}:dev"
|
||||
|
||||
compile "li.cil.oc:OpenComputers:${opencomputers_version}:api"
|
||||
|
||||
compileOnly "li.cil.oc:OpenComputers:${opencomputers_version}:api"
|
||||
|
||||
// Missing Libs -_-' -bart
|
||||
compileOnly "mekanism:MekanismAll:1.7.10-9.1.1.283:dev"
|
||||
compileOnly "appeng:appliedenergistics2:rv3-beta-6:dev"
|
||||
compileOnly "powercrystals:MineFactoryReloaded:[1.7.10]2.8.2B1-201:dev"
|
||||
compileOnly "thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev"
|
||||
compileOnly "dan200.computercraft:ComputerCraft:1.75"
|
||||
compileOnly "com.azanor.baubles:Baubles:1.7.10-1.0.1.10:deobf"
|
||||
compileOnly "mods.railcraft:Railcraft_1.7.10:9.12.3.0:dev"
|
||||
compileOnly "codechicken:ForgeMultipart:1.7.10-1.2.0.347:dev"
|
||||
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
|
||||
@@ -2,7 +2,7 @@ minecraft_version=1.7.10
|
||||
forge_version=10.13.4.1614-1.7.10
|
||||
forgeDep_version=10.13.4.1614
|
||||
|
||||
mod_version=2.3.1.3_beta
|
||||
mod_version=2.3.1.17
|
||||
|
||||
#Comment out this line to get rid of the appendix
|
||||
#mod_appendix=beta
|
||||
@@ -10,7 +10,7 @@ mod_version=2.3.1.3_beta
|
||||
buildcraft_version=6.1.5
|
||||
waila_version=1.5.10
|
||||
ccc_version=1.0.7.46
|
||||
ccl_version=1.1.3.138
|
||||
ccl_version=1.1.3.140
|
||||
ae2_version=rv3-stable-24
|
||||
endercore_version=1.7.10-0.2.0.35_beta
|
||||
ee3_version=1.7.10-0.3.507
|
||||
@@ -19,4 +19,4 @@ opencomputers_version=MC1.7.10-1.5.+
|
||||
|
||||
toReplace=after:endercore;after:MineFactoryReloaded;after:Waila@[1.5.8,);after:Thaumcraft;after:appliedenergistics2@[rv3-beta-24,)
|
||||
|
||||
curse_projectId=64578
|
||||
curse_projectId=379275
|
||||
@@ -0,0 +1,118 @@
|
||||
invertYMouse:false
|
||||
mouseSensitivity:0.5
|
||||
fov:0.0
|
||||
gamma:0.0
|
||||
saturation:0.0
|
||||
renderDistance:12
|
||||
guiScale:3
|
||||
particles:0
|
||||
bobView:true
|
||||
anaglyph3d:false
|
||||
advancedOpengl:false
|
||||
maxFps:120
|
||||
fboEnable:true
|
||||
difficulty:2
|
||||
fancyGraphics:true
|
||||
ao:2
|
||||
clouds:true
|
||||
resourcePacks:[]
|
||||
lastServer:
|
||||
lang:en_US
|
||||
chatVisibility:0
|
||||
chatColors:true
|
||||
chatLinks:true
|
||||
chatLinksPrompt:true
|
||||
chatOpacity:1.0
|
||||
snooperEnabled:true
|
||||
fullscreen:false
|
||||
enableVsync:true
|
||||
hideServerAddress:false
|
||||
advancedItemTooltips:true
|
||||
pauseOnLostFocus:true
|
||||
showCape:true
|
||||
touchscreen:false
|
||||
overrideWidth:0
|
||||
overrideHeight:0
|
||||
heldItemTooltips:true
|
||||
chatHeightFocused:1.0
|
||||
chatHeightUnfocused:0.44366196
|
||||
chatScale:1.0
|
||||
chatWidth:1.0
|
||||
showInventoryAchievementHint:false
|
||||
mipmapLevels:4
|
||||
anisotropicFiltering:1
|
||||
streamBytesPerPixel:0.5
|
||||
streamMicVolume:1.0
|
||||
streamSystemVolume:1.0
|
||||
streamKbps:0.5412844
|
||||
streamFps:0.31690142
|
||||
streamCompression:1
|
||||
streamSendMetadata:true
|
||||
streamPreferredServer:
|
||||
streamChatEnabled:0
|
||||
streamChatUserFilter:0
|
||||
streamMicToggleBehavior:0
|
||||
forceUnicodeFont:false
|
||||
key_key.attack:-100
|
||||
key_key.use:-99
|
||||
key_key.forward:17
|
||||
key_key.left:30
|
||||
key_key.back:31
|
||||
key_key.right:32
|
||||
key_key.jump:57
|
||||
key_key.sneak:42
|
||||
key_key.drop:16
|
||||
key_key.inventory:18
|
||||
key_key.chat:20
|
||||
key_key.playerlist:15
|
||||
key_key.pickItem:-98
|
||||
key_key.command:53
|
||||
key_key.screenshot:60
|
||||
key_key.togglePerspective:63
|
||||
key_key.smoothCamera:0
|
||||
key_key.sprint:29
|
||||
key_key.streamStartStop:64
|
||||
key_key.streamPauseUnpause:65
|
||||
key_key.streamCommercial:0
|
||||
key_key.streamToggleMic:0
|
||||
key_key.fullscreen:87
|
||||
key_key.hotbar.1:2
|
||||
key_key.hotbar.2:3
|
||||
key_key.hotbar.3:4
|
||||
key_key.hotbar.4:5
|
||||
key_key.hotbar.5:6
|
||||
key_key.hotbar.6:7
|
||||
key_key.hotbar.7:8
|
||||
key_key.hotbar.8:9
|
||||
key_key.hotbar.9:10
|
||||
key_key.charge:47
|
||||
key_key.extra:46
|
||||
key_key.release:19
|
||||
key_key.toggle:34
|
||||
key_waila.keybind.wailaconfig:82
|
||||
key_waila.keybind.wailadisplay:79
|
||||
key_waila.keybind.liquid:80
|
||||
key_waila.keybind.recipe:81
|
||||
key_waila.keybind.usage:75
|
||||
key_Baubles Inventory:48
|
||||
key_Change Wand Focus:33
|
||||
key_Activate Hover Harness:35
|
||||
key_Misc Wand Toggle:34
|
||||
key_Glider Toggle:34
|
||||
key_Sound Locator:38
|
||||
key_Night Vision:25
|
||||
key_Goggles of Revealing:19
|
||||
key_Step Assist:0
|
||||
key_Speed:0
|
||||
key_Jump:0
|
||||
key_Yeta Wrench Mode:21
|
||||
key_Toggle Electromagnet:0
|
||||
soundCategory_master:0.0
|
||||
soundCategory_music:0.0
|
||||
soundCategory_record:1.0
|
||||
soundCategory_weather:0.0
|
||||
soundCategory_block:1.0
|
||||
soundCategory_hostile:1.0
|
||||
soundCategory_neutral:1.0
|
||||
soundCategory_player:1.0
|
||||
soundCategory_ambient:1.0
|
||||
@@ -389,6 +389,75 @@
|
||||
</recipe>
|
||||
</recipeGroup>
|
||||
|
||||
<recipeGroup name="Endergy" >
|
||||
<recipe name="Crude Steel" energyCost="5000" >
|
||||
<input>
|
||||
<itemStack oreDictionary="gravel" />
|
||||
<itemStack oreDictionary="itemClay" />
|
||||
<itemStack oreDictionary="cobblestone" />
|
||||
</input>
|
||||
<output>
|
||||
<itemStack oreDictionary="ingotCrudeSteel" number="1" exp="0.1" />
|
||||
</output>
|
||||
</recipe>
|
||||
<recipe name="Crystalline Alloy" energyCost="10000" >
|
||||
<input>
|
||||
<itemStack oreDictionary="ingotGold" />
|
||||
<itemStack oreDictionary="itemPulsatingPowder" />
|
||||
</input>
|
||||
<output>
|
||||
<itemStack oreDictionary="ingotCrystallineAlloy" number="1" exp="0.5" />
|
||||
</output>
|
||||
</recipe>
|
||||
<recipe name="Melodic Alloy" energyCost="20000" >
|
||||
<input>
|
||||
<itemStack oreDictionary="ingotEndSteel" />
|
||||
<itemStack oreDictionary="pearlEnderEye" />
|
||||
</input>
|
||||
<output>
|
||||
<itemStack oreDictionary="ingotMelodicAlloy" number="1" exp="1" />
|
||||
</output>
|
||||
</recipe>
|
||||
<recipe name="Stellar Alloy" energyCost="20000" >
|
||||
<input>
|
||||
<itemStack oreDictionary="itemNetherStar" />
|
||||
<itemStack oreDictionary="ingotMelodicAlloy" />
|
||||
<itemStack oreDictionary="itemClay" number="4" />
|
||||
</input>
|
||||
<output>
|
||||
<itemStack oreDictionary="ingotStellarAlloy" number="2" />
|
||||
</output>
|
||||
</recipe>
|
||||
<recipe name="Crystalline Pink Slime" energyCost="10000" >
|
||||
<input>
|
||||
<itemStack oreDictionary="slimeballPink" number="2" />
|
||||
<itemStack oreDictionary="itemPulsatingPowder" />
|
||||
</input>
|
||||
<output>
|
||||
<itemStack oreDictionary="ingotCrystallinePinkSlime" />
|
||||
</output>
|
||||
</recipe>
|
||||
<recipe name="Energetic Silver" energyCost="10000" >
|
||||
<input>
|
||||
<itemStack oreDictionary="ingotSilver" />
|
||||
<itemStack oreDictionary="dustRedstone" />
|
||||
<itemStack oreDictionary="dustGlowstone" />
|
||||
</input>
|
||||
<output>
|
||||
<itemStack oreDictionary="ingotEnergeticSilver" number="1" />
|
||||
</output>
|
||||
</recipe>
|
||||
<recipe name="Vivid Alloy" energyCost="10000" >
|
||||
<input>
|
||||
<itemStack oreDictionary="ingotEnergeticSilver" number="1" />
|
||||
<itemStack oreDictionary="pearlEnder" number="1" />
|
||||
</input>
|
||||
<output>
|
||||
<itemStack oreDictionary="ingotVividAlloy" number="1" />
|
||||
</output>
|
||||
</recipe>
|
||||
</recipeGroup>
|
||||
|
||||
<vanillaFurnaceRecipes enabled="true" />
|
||||
|
||||
</AlloySmelterRecipes>
|
||||
|
||||
@@ -3035,6 +3035,36 @@
|
||||
<grindingBall id="EndSteelBall" grindingMultiplier="1.4" chanceMultiplier="2.4" powerMultiplier="0.7" durationRF="75000" >
|
||||
<itemStack modID="EnderIO" itemName="itemGrindingBall" itemMeta="8" />
|
||||
</grindingBall>
|
||||
|
||||
<!-- Endergy Balls !-->
|
||||
|
||||
<grindingBall id="CrudeSteelBall" grindingMultiplier="1.2" chanceMultiplier="1.25" powerMultiplier="0.85" durationRF="24000" >
|
||||
<itemStack modID="EnderIO" itemName="itemGrindingBallEndergy" itemMeta="0" />
|
||||
</grindingBall>
|
||||
|
||||
<grindingBall id="CrystallineAlloyBall" grindingMultiplier="1.8" chanceMultiplier="1.4" powerMultiplier="1.45" durationRF="80000" >
|
||||
<itemStack modID="EnderIO" itemName="itemGrindingBallEndergy" itemMeta="1" />
|
||||
</grindingBall>
|
||||
|
||||
<grindingBall id="MelodicAlloyBall" grindingMultiplier="2.0" chanceMultiplier="1.45" powerMultiplier="1.55" durationRF="80000" >
|
||||
<itemStack modID="EnderIO" itemName="itemGrindingBallEndergy" itemMeta="2" />
|
||||
</grindingBall>
|
||||
|
||||
<grindingBall id="StellarAlloyBall" grindingMultiplier="2.3" chanceMultiplier="2.25" powerMultiplier="2.2" durationRF="160000" >
|
||||
<itemStack modID="EnderIO" itemName="itemGrindingBallEndergy" itemMeta="3" />
|
||||
</grindingBall>
|
||||
|
||||
<grindingBall id="CrystallinePinkSlimeBall" grindingMultiplier="1.75" chanceMultiplier="1.55" powerMultiplier="1.55" durationRF="80000" >
|
||||
<itemStack modID="EnderIO" itemName="itemGrindingBallEndergy" itemMeta="4" />
|
||||
</grindingBall>
|
||||
|
||||
<grindingBall id="EnergeticSilverBall" grindingMultiplier="1.6" chanceMultiplier="1.1" powerMultiplier="1.1" durationRF="80000" >
|
||||
<itemStack modID="EnderIO" itemName="itemGrindingBallEndergy" itemMeta="5" />
|
||||
</grindingBall>
|
||||
|
||||
<grindingBall id="VividAlloyBall" grindingMultiplier="1.75" chanceMultiplier="1.35" powerMultiplier="1.35" durationRF="80000" >
|
||||
<itemStack modID="EnderIO" itemName="itemGrindingBallEndergy" itemMeta="6" />
|
||||
</grindingBall>
|
||||
|
||||
<excludes>
|
||||
<itemStack modID="minecraft" itemName="glowstone" />
|
||||
|
||||
@@ -87,6 +87,19 @@
|
||||
<output>
|
||||
<itemStack modID="EnderIO" itemName="itemFrankenSkull" itemMeta="6" />
|
||||
</output>
|
||||
</recipe>
|
||||
<recipe name="Totemic Capacitor" energyCost="20000" >
|
||||
<input>
|
||||
<itemStack oreDictionary="ingotSoularium" slot="0" />
|
||||
<itemStack modID="minecraft" itemName="golden_apple" itemMeta="1" slot="1" />
|
||||
<itemStack oreDictionary="ingotSoularium" slot="2" />
|
||||
<itemStack oreDictionary="itemVibrantPowder" slot="3" />
|
||||
<itemStack oreDictionary="capacitorCrystalline" slot="4" />
|
||||
<itemStack oreDictionary="itemVibrantPowder" slot="5" />
|
||||
</input>
|
||||
<output>
|
||||
<itemStack modID="EnderIO" itemName="itemBasicCapacitor" itemMeta="6" />
|
||||
</output>
|
||||
</recipe>
|
||||
</recipeGroup>
|
||||
|
||||
|
||||
@@ -33,6 +33,19 @@ enderio.itemPowerConduit.name=Energy Conduit
|
||||
enderio.itemPowerConduitEnhanced.name=Enhanced Energy Conduit
|
||||
enderio.itemPowerConduitEnder.name=Ender Energy Conduit
|
||||
|
||||
enderio.itemPowerConduitEndergyCrude.name=Clay Compound Energy Conduit
|
||||
enderio.itemPowerConduitEndergyIron.name=Iron Energy Conduit
|
||||
enderio.itemPowerConduitEndergyAluminum.name=Aluminum Energy Conduit
|
||||
enderio.itemPowerConduitEndergyGold.name=Gold Energy Conduit
|
||||
enderio.itemPowerConduitEndergyCopper.name=Copper Energy Conduit
|
||||
enderio.itemPowerConduitEndergySilver.name=Silver Energy Conduit
|
||||
enderio.itemPowerConduitEndergyElectrum.name=Electrum Energy Conduit
|
||||
enderio.itemPowerConduitEndergyEnergeticSilver.name=Energetic Silver Energy Conduit
|
||||
enderio.itemPowerConduitEndergyCrystalline.name=Crystalline Energy Conduit
|
||||
enderio.itemPowerConduitEndergyCrystallinePinkSlime.name=Crystalline Pink Slime Energy Conduit
|
||||
enderio.itemPowerConduitEndergyMelodic.name=Melodic Energy Conduit
|
||||
enderio.itemPowerConduitEndergyStellar.name=Stellar Energy Conduit
|
||||
|
||||
enderio.itemRedstoneConduit.name=Redstone Conduit
|
||||
enderio.itemRedstoneConduitSwitch.name=Conduit Switch
|
||||
enderio.itemRedstoneConduitInsulated.name=Insulated Redstone Conduit
|
||||
@@ -58,8 +71,9 @@ enderio.itemItemConduit.name=Item Conduit
|
||||
|
||||
enderio.filterUpgradeBasic.name=Basic Item Filter
|
||||
enderio.filterUpgradeAdvanced.name=Advanced Item Filter
|
||||
enderio.filterUpgradeBig.name=Big Item Filter
|
||||
enderio.filterUpgradeBigAdvanced.name=Big Advanced Item Filter
|
||||
enderio.itemConduitFilterUpgrade=Upgrade for item conduits
|
||||
|
||||
enderio.itemConduitFilterUpgrade.configured=Configured
|
||||
enderio.itemConduitFilterUpgrade.clearConfigMethod=Place in crafting grid to clear
|
||||
enderio.itemConduitFilterUpgrade.clearConfigWarning=This will clear all stored filter settings!
|
||||
@@ -253,7 +267,7 @@ enderio.soularium.name=Soularium
|
||||
enderio.endSteel.name=End Steel
|
||||
enderio.endSteelNugget.name=End Steel Nugget
|
||||
|
||||
enderio.crudeSteel.name=Crude Steel
|
||||
enderio.crudeSteel.name=Clay Compound
|
||||
enderio.crystallineAlloy.name=Crystalline Alloy
|
||||
enderio.melodicAlloy.name=Melodic Alloy
|
||||
enderio.stellarAlloy.name=Stellar Alloy
|
||||
@@ -261,7 +275,7 @@ enderio.crystallinePinkSlime.name=Crystalline Pink Slime
|
||||
enderio.energeticSilver.name=Energetic Silver
|
||||
enderio.vividAlloy.name=Vivid Alloy
|
||||
|
||||
enderio.crudeSteelGrindingBall.name=Crude Steel Grinding Ball
|
||||
enderio.crudeSteelGrindingBall.name=Clay Compound Grinding Ball
|
||||
enderio.crystallineAlloyGrindingBall.name=Crystalline Alloy Grinding Ball
|
||||
enderio.melodicAlloyGrindingBall.name=Melodic Alloy Grinding Ball
|
||||
enderio.stellarAlloyGrindingBall.name=Stellar Alloy Grinding Ball
|
||||
@@ -299,7 +313,7 @@ tile.enderio.darkSteel.name=Dark Steel Block
|
||||
tile.enderio.soularium.name=Soularium Block
|
||||
tile.enderio.endSteel.name=End Steel Block
|
||||
|
||||
tile.enderio.crudeSteel.name=Crude Steel Block
|
||||
tile.enderio.crudeSteel.name=Clay Compound Block
|
||||
tile.enderio.crystallineAlloy.name=Crystalline Alloy Block
|
||||
tile.enderio.melodicAlloy.name=Melodic Alloy Block
|
||||
tile.enderio.stellarAlloy.name=Stellar Alloy Block
|
||||
@@ -322,7 +336,13 @@ enderio.itemBasicCapacitor.name=Capacitor
|
||||
enderio.basicCapacitor.name=Basic Capacitor
|
||||
enderio.activatedCapacitor.name=Double-Layer Capacitor
|
||||
enderio.enderCapacitor.name=Octadic Capacitor
|
||||
enderio.crystallineCapacitor.name=Crystalline Capacitor
|
||||
enderio.melodicCapacitor.name=Melodic Capacitor
|
||||
enderio.stellarCapacitor.name=Stellar Capacitor
|
||||
enderio.silverCapacitor.name=Silver Capacitor
|
||||
enderio.endergeticCapacitor.name=Endergetic Capacitor
|
||||
enderio.endergisedCapacitor.name=Endergised Capacitor
|
||||
enderio.totemicCapacitor.name=Totemic Capacitor
|
||||
|
||||
enderio.machine.tooltip.upgrade=Machine Upgrade
|
||||
enderio.machine.tooltip.upgrade.tooltip.detailed.line1=Increases energy storage and
|
||||
@@ -802,6 +822,15 @@ item.endSteel_sword.name=The Ender MKII
|
||||
item.endSteel_pickaxe.name=End Steel Pick
|
||||
item.endSteel_axe.name=End Steel Axe
|
||||
|
||||
//Stellar
|
||||
item.stellar_helmet.name=Stellar Helm
|
||||
item.stellar_chestplate.name=Stellar Plate
|
||||
item.stellar_leggings.name=Stellar Leggings
|
||||
item.stellar_boots.name=Stellar Boots
|
||||
item.stellar_sword.name=The Ender MKIV
|
||||
item.stellar_pickaxe.name=Stellar Pick
|
||||
item.stellar_axe.name=Stellar Axe
|
||||
|
||||
enderio.item.darkSteel.tooltip.lvs=lvs
|
||||
|
||||
enderio.item.darkSteel_pickaxe.tooltip.effPowered=Efficiency when powered
|
||||
@@ -812,9 +841,13 @@ enderio.item.endSteel_pickaxe.tooltip.effPowered=Efficiency when powered
|
||||
enderio.item.endSteel_pickaxe.tooltip.effObs=Efficiency breaking obsidian
|
||||
enderio.item.endSteel_pickaxe.tooltip.cost=cost
|
||||
|
||||
enderio.item.stellar_pickaxe.tooltip.effPowered=Efficiency when powered
|
||||
enderio.item.stellar_pickaxe.tooltip.effObs=Efficiency breaking obsidian
|
||||
enderio.item.stellar_pickaxe.tooltip.cost=cost
|
||||
|
||||
enderio.item.darkSteel_axe.tooltip.multiHarvest=Sneak to harvest multiple logs
|
||||
enderio.item.endSteel_axe.tooltip.multiHarvest=Sneak to harvest multiple logs
|
||||
|
||||
enderio.item.stellar_axe.tooltip.multiHarvest=Sneak to harvest multiple logs
|
||||
|
||||
enderio.item.darkSteel_shears.tooltip.multiHarvest=Shears multiple blocks/sheep when empowered
|
||||
|
||||
@@ -826,18 +859,28 @@ enderio.item.endSteel_sword.tooltip.line1=Increased skull and ender pearl drops
|
||||
enderio.item.endSteel_sword.tooltip.line2=Endermen can't teleport once hit
|
||||
enderio.item.endSteel_sword.tooltip.line3=+2 Damage when Powered
|
||||
|
||||
enderio.item.stellar_sword.tooltip.line1=Increased skull and ender pearl drops
|
||||
enderio.item.stellar_sword.tooltip.line2=Endermen can't teleport once hit
|
||||
enderio.item.stellar_sword.tooltip.line3=+2 Damage when Powered
|
||||
|
||||
enderio.item.darkSteel_armor.tooltip.line1=Diamond level protection
|
||||
enderio.item.darkSteel_armor.tooltip.line2=when powered
|
||||
|
||||
enderio.item.endSteel_armor.tooltip.line1=Diamond+ level protection
|
||||
enderio.item.endSteel_armor.tooltip.line2=when powered
|
||||
|
||||
enderio.item.stellar_armor.tooltip.line1=Diamond+ level protection
|
||||
enderio.item.stellar_armor.tooltip.line2=when powered
|
||||
|
||||
enderio.item.darkSteel_boots.tooltip.line1=Fall damage negated
|
||||
enderio.item.darkSteel_boots.tooltip.line2=when powered
|
||||
|
||||
enderio.item.endSteel_boots.tooltip.line1=Fall damage negated
|
||||
enderio.item.endSteel_boots.tooltip.line2=when powered
|
||||
|
||||
enderio.item.stellar_boots.tooltip.line1=Fall damage negated
|
||||
enderio.item.stellar_boots.tooltip.line2=when powered
|
||||
|
||||
enderio.darksteel.upgrade.empowered_one.name=Empowered
|
||||
enderio.darksteel.upgrade.empowered_one.tooltip.detailed.line1=Power: $P
|
||||
enderio.darksteel.upgrade.empowered_one.tooltip.detailed.line2=$D% damage absorbed
|
||||
@@ -1139,7 +1182,11 @@ enderio.gui.conduit.item.channel=Channel
|
||||
enderio.gui.conduit.item.ignoreMetaData=Ignore Meta Data
|
||||
enderio.gui.conduit.item.matchMetaData=Match Meta Data
|
||||
enderio.gui.conduit.item.whitelist=Whitelist
|
||||
enderio.gui.conduit.item.whitelist.tooltip.0=If item list is empty, no item
|
||||
enderio.gui.conduit.item.whitelist.tooltip.1=will be allowed to pass
|
||||
enderio.gui.conduit.item.blacklist=Blacklist
|
||||
enderio.gui.conduit.item.blacklist.tooltip.0=If item list is empty, all items
|
||||
enderio.gui.conduit.item.blacklist.tooltip.1=will be allowed to pass
|
||||
enderio.gui.conduit.item.stickyEnabled=Sticky Mode Enabled|Selected items will only|be sent to this or other|Sticky outputs.
|
||||
enderio.gui.conduit.item.stickyDisbaled=Sticky Mode Disabled
|
||||
enderio.gui.conduit.item.ignoreNBT=Ignore NBT Data
|
||||
@@ -1152,11 +1199,14 @@ enderio.gui.conduit.item.roundRobinEnabled=Round Robin Enabled
|
||||
enderio.gui.conduit.item.roundRobinDisabled=Round Robin Disabled
|
||||
enderio.gui.conduit.item.priority=Priority
|
||||
|
||||
enderio.gui.conduit.item.fuzzy.disabled=Fuzzy Mode disabled
|
||||
enderio.gui.conduit.item.fuzzy.fuzzy_25=Fuzzy match for 25% damage
|
||||
enderio.gui.conduit.item.fuzzy.fuzzy_50=Fuzzy match for 50% damage
|
||||
enderio.gui.conduit.item.fuzzy.fuzzy_75=Fuzzy match for 75% damage
|
||||
enderio.gui.conduit.item.fuzzy.fuzzy_99=Fuzzy match for any damage
|
||||
enderio.gui.conduit.item.fuzzy.disabled=Damage Mode: Disabled
|
||||
enderio.gui.conduit.item.fuzzy.fuzzy_25=Damage Mode: Damaged by 25% or more
|
||||
enderio.gui.conduit.item.fuzzy.fuzzy_50=Damage Mode: Damaged by 50% or more
|
||||
enderio.gui.conduit.item.fuzzy.fuzzy_75=Damage Mode: Damaged by 75% or more
|
||||
enderio.gui.conduit.item.fuzzy.fuzzy_99=Damage Mode: Damaged at least once
|
||||
enderio.gui.conduit.item.fuzzy.tooltip.0=Can work without items in the filter
|
||||
enderio.gui.conduit.item.fuzzy.tooltip.1=In this case its logic can be
|
||||
enderio.gui.conduit.item.fuzzy.tooltip.2=controlled by %s button
|
||||
|
||||
enderio.gui.conduit.item.filterupgrade=Insert Item Filter
|
||||
enderio.gui.conduit.item.speedupgrade=Insert Item Conduit Speed Upgrades/Downgrade
|
||||
|
||||
@@ -1009,7 +1009,11 @@ enderio.gui.conduit.item.channel=Канал
|
||||
enderio.gui.conduit.item.ignoreMetaData=Игнорировать метаданные
|
||||
enderio.gui.conduit.item.matchMetaData=Соблюдать метаданные
|
||||
enderio.gui.conduit.item.whitelist=Белый список
|
||||
enderio.gui.conduit.item.whitelist.tooltip.0=Если список предметов пуст, ни один
|
||||
enderio.gui.conduit.item.whitelist.tooltip.1=предмет не будет принят
|
||||
enderio.gui.conduit.item.blacklist=Чёрный список
|
||||
enderio.gui.conduit.item.blacklist.tooltip.0=Если список предметов пуст,
|
||||
enderio.gui.conduit.item.blacklist.tooltip.1=все предметы будут приняты
|
||||
enderio.gui.conduit.item.stickyEnabled=Включён "липкий" режим|Выбранные предметы будут|отправляться только на этот|или другие "липкие" выходы.
|
||||
enderio.gui.conduit.item.stickyDisbaled="Липкий" режим выключен
|
||||
enderio.gui.conduit.item.ignoreNBT=Игнорировать NBT
|
||||
@@ -1022,11 +1026,14 @@ enderio.gui.conduit.item.roundRobinEnabled=Цикл включён
|
||||
enderio.gui.conduit.item.roundRobinDisabled=Цикл отключен
|
||||
enderio.gui.conduit.item.priority=Приоритет
|
||||
|
||||
enderio.gui.conduit.item.fuzzy.disabled=Нечёткий режим отключен
|
||||
enderio.gui.conduit.item.fuzzy.fuzzy_25=Нечёткое совпадение на 25% урона
|
||||
enderio.gui.conduit.item.fuzzy.fuzzy_50=Нечёткое совпадение на 50% урона
|
||||
enderio.gui.conduit.item.fuzzy.fuzzy_75=Нечёткое совпадение на 75% урона
|
||||
enderio.gui.conduit.item.fuzzy.fuzzy_99=Нечёткое совпадение при любом уроне
|
||||
enderio.gui.conduit.item.fuzzy.disabled=Сравнение повреждения: Отключено
|
||||
enderio.gui.conduit.item.fuzzy.fuzzy_25=Сравнение повреждения: Повреждено на 25% или более
|
||||
enderio.gui.conduit.item.fuzzy.fuzzy_50=Сравнение повреждения: Повреждено на 50% или более
|
||||
enderio.gui.conduit.item.fuzzy.fuzzy_75=Сравнение повреждения: Повреждено на 75% или более
|
||||
enderio.gui.conduit.item.fuzzy.fuzzy_99=Сравнение повреждения: Повреждено хотя бы раз
|
||||
enderio.gui.conduit.item.fuzzy.tooltip.0=Может работать без предметов в фильтре
|
||||
enderio.gui.conduit.item.fuzzy.tooltip.1=В таком случае логика его работы
|
||||
enderio.gui.conduit.item.fuzzy.tooltip.2=контролируется кнопкой %s
|
||||
|
||||
enderio.gui.conduit.item.filterupgrade=Вставить предметный фильтр
|
||||
enderio.gui.conduit.item.speedupgrade=Вставить улучшения скорости/понижение скорости
|
||||
|
||||
@@ -33,6 +33,19 @@ enderio.itemPowerConduit.name=能量导管
|
||||
enderio.itemPowerConduitEnhanced.name=强化能量导管
|
||||
enderio.itemPowerConduitEnder.name=末影能量导管
|
||||
|
||||
enderio.itemPowerConduitEndergyCrude.name=复合粘土能量导管
|
||||
enderio.itemPowerConduitEndergyIron.name=铁制能量导管
|
||||
enderio.itemPowerConduitEndergyAluminum.name=铝制能量导管
|
||||
enderio.itemPowerConduitEndergyGold.name=金制能量导管
|
||||
enderio.itemPowerConduitEndergyCopper.name=铜制能量导管
|
||||
enderio.itemPowerConduitEndergySilver.name=银制能量导管
|
||||
enderio.itemPowerConduitEndergyElectrum.name=琥珀金能量导管
|
||||
enderio.itemPowerConduitEndergyEnergeticSilver.name=充能银能量导管
|
||||
enderio.itemPowerConduitEndergyCrystalline.name=晶化合金能量导管
|
||||
enderio.itemPowerConduitEndergyCrystallinePinkSlime.name=晶化粉红史莱姆能量导管
|
||||
enderio.itemPowerConduitEndergyMelodic.name=旋律合金能量导管
|
||||
enderio.itemPowerConduitEndergyStellar.name=恒星合金能量导管
|
||||
|
||||
enderio.itemRedstoneConduit.name=红石导管
|
||||
enderio.itemRedstoneConduitSwitch.name=导管开关
|
||||
enderio.itemRedstoneConduitInsulated.name=绝缘红石导管
|
||||
@@ -58,8 +71,9 @@ enderio.itemItemConduit.name=物品导管
|
||||
|
||||
enderio.filterUpgradeBasic.name=基础物品过滤器
|
||||
enderio.filterUpgradeAdvanced.name=高级物品过滤器
|
||||
enderio.filterUpgradeBig.name=大型物品过滤器
|
||||
enderio.filterUpgradeBigAdvanced.name=高级大型物品过滤器
|
||||
enderio.itemConduitFilterUpgrade=物品导管升级
|
||||
|
||||
enderio.itemConduitFilterUpgrade.configured=已配置
|
||||
enderio.itemConduitFilterUpgrade.clearConfigMethod=放到合成格里面清除
|
||||
enderio.itemConduitFilterUpgrade.clearConfigWarning=这会清除所有存储的数据!
|
||||
@@ -115,7 +129,7 @@ enderio.itemMEConduit.name=ME导管
|
||||
enderio.itemMEConduitDense.name=致密ME导管
|
||||
enderio.itemMEConduit.channelsUsed=第{0,number}频道, 共{1,number}频道
|
||||
|
||||
enderio.itemOCConduit.name=网络管道(OC)
|
||||
enderio.itemOCConduit.name=网络导管(OC)
|
||||
|
||||
//Entity
|
||||
entity.witherSkeleton.name=凋零骷髅
|
||||
@@ -127,6 +141,8 @@ enderio.conduitBinder.name=导管粘合剂
|
||||
enderio.binderComposite.name=粘合胚料
|
||||
enderio.phasedIronNugget.name=脉冲铁粒
|
||||
tile.blockDarkIronBars.name=玄铁栅栏
|
||||
tile.blockSoulariumBars.name=魂金栅栏
|
||||
tile.blockEndSteelBars.name=末影钢栅栏
|
||||
tile.blockEndermanSkull.name=末影人头颅
|
||||
tile.blockEndermanSkull.base.name=末影人头
|
||||
tile.blockEndermanSkull.reanimated.name=复苏末影人头
|
||||
@@ -173,6 +189,14 @@ fluid.cloud_seed_concentrated=浓缩云之精华
|
||||
tile.fluid.cloud_seed_concentrated.name=浓缩云之精华
|
||||
item.bucketCloud_seed_concentrated.name=桶装浓缩云之精华
|
||||
|
||||
fluid.ender_distillation=深渊露水
|
||||
tile.fluid.ender_distillation.name=深渊露水
|
||||
item.bucketEnder_distillation.name=桶装深渊露水
|
||||
|
||||
fluid.vapor_of_levity=轻盈之气
|
||||
tile.fluid.vapor_of_levity.name=轻盈之气
|
||||
item.bucketVapor_of_levity.name=桶装轻盈之气
|
||||
|
||||
fluid.eio.xpjuice=液态XP
|
||||
tile.fluid.eio.xpjuice.name=液态XP
|
||||
item.bucketXpjuice.name=桶装液态XP
|
||||
@@ -190,16 +214,29 @@ enderio.gas.gasTick=气体每t
|
||||
enderio.itemMachinePart.name=机器零件
|
||||
enderio.machineChassi.name=机器框架
|
||||
enderio.basicGear.name=基础齿轮
|
||||
enderio.soulMachineChassi.name=灵魂机器框架
|
||||
enderio.endSteelMachineChassi.name=末影钢机器底盘
|
||||
enderio.pulsatingCrystal.name=脉冲晶体
|
||||
enderio.vibrantCrystal.name=充能晶体
|
||||
enderio.enderCrystal.name=末影晶体
|
||||
enderio.attractorCrystal.name=诱引晶体
|
||||
enderio.weatherCrystal.name=天气晶体
|
||||
enderio.darkGrindingBall.name=玄铁钢珠
|
||||
|
||||
enderio.darkGrindingBall.name=玄铁磨球
|
||||
enderio.electricalGrindingBall.name=磁钢磨球
|
||||
enderio.energeticGrindingBall.name=充能合金磨球
|
||||
enderio.vibrantGrindingBall.name=脉冲合金磨球
|
||||
enderio.redstoneGrindingBall.name=红石合金磨球
|
||||
enderio.conductiveGrindingBall.name=导电铁磨球
|
||||
enderio.pulsatingGrindingBall.name=脉冲铁磨球
|
||||
enderio.soulariumGrindingBall.name=魂金磨球
|
||||
enderio.endSteelGrindingBall.name=末影钢磨球
|
||||
|
||||
enderio.darkGrindingBall.tooltip.detailed.line1=SAG磨粉机研磨球
|
||||
enderio.darkGrindingBall.tooltip.detailed.line2=最大输出
|
||||
enderio.darkGrindingBall.tooltip.detailed.line3=额外输出
|
||||
enderio.darkGrindingBall.tooltip.detailed.line4=功率降低
|
||||
enderio.darkSteelRod.name=玄钢杆
|
||||
|
||||
tile.blockReinforcedObsidian.name=强化黑曜石
|
||||
tile.blockReinforcedObsidian.tooltip.common.line1=能抵挡凋零
|
||||
@@ -227,6 +264,42 @@ enderio.phasedIron.name=脉冲铁锭
|
||||
enderio.vibrantNugget.name=脉冲合金粒
|
||||
enderio.darkSteel.name=玄钢锭
|
||||
enderio.soularium.name=魂金锭
|
||||
enderio.endSteel.name=末影钢锭
|
||||
enderio.endSteelNugget.name=末影钢粒
|
||||
|
||||
enderio.crudeSteel.name=复合粘土
|
||||
enderio.crystallineAlloy.name=晶化合金
|
||||
enderio.melodicAlloy.name=旋律合金
|
||||
enderio.stellarAlloy.name=恒星合金
|
||||
enderio.crystallinePinkSlime.name=晶化粉红史莱姆
|
||||
enderio.energeticSilver.name=充能银
|
||||
enderio.vividAlloy.name=生动合金
|
||||
|
||||
enderio.crudeSteelGrindingBall.name=复合粘土磨球
|
||||
enderio.crystallineAlloyGrindingBall.name=晶化合金磨球
|
||||
enderio.melodicAlloyGrindingBall.name=旋律合金磨球
|
||||
enderio.stellarAlloyGrindingBall.name=恒星合金磨球
|
||||
enderio.crystallinePinkSlimeGrindingBall.name=晶化粉红史莱姆磨球
|
||||
enderio.energeticSilverGrindingBall.name=充能银磨球
|
||||
enderio.vividAlloyGrindingBall.name=生动合金磨球
|
||||
|
||||
enderio.precientCrystal.name=预知晶体
|
||||
enderio.pulsatingPowder.name=脉冲晶体粉
|
||||
enderio.vibrantPowder.name=充能晶体粉
|
||||
enderio.enderCrystalPowder.name=末影晶体粉
|
||||
enderio.precientPowder.name=预知晶体粉
|
||||
|
||||
//Balls
|
||||
enderio.electricalSteel_ball.name=磁钢磨球
|
||||
enderio.energeticAlloy_ball.name=充能合金磨球
|
||||
enderio.phasedGold_ball.name=脉冲合金磨球
|
||||
enderio.redstoneAlloy_ball.name=红石合金磨球
|
||||
enderio.conductiveIron_ball.name=导电铁磨球
|
||||
enderio.phasedIron_ball.name=脉冲铁磨球
|
||||
enderio.vibrantNugget_ball.name=脉冲合金磨球
|
||||
enderio.darkSteel_ball.name=玄铁磨球
|
||||
enderio.soularium_ball.name=魂金磨球
|
||||
enderio.endSteel_ball.name=末影钢磨球
|
||||
|
||||
tile.blockIngotStorage.name=金属块
|
||||
tile.enderio.electricalSteel.name=磁钢块
|
||||
@@ -238,6 +311,15 @@ tile.enderio.phasedIron.name=脉冲铁块
|
||||
tile.enderio.vibrantNugget.name=脉冲合金粒块
|
||||
tile.enderio.darkSteel.name=玄钢块
|
||||
tile.enderio.soularium.name=魂金块
|
||||
tile.enderio.endSteel.name=末影钢块
|
||||
|
||||
tile.enderio.crudeSteel.name=复合粘土块
|
||||
tile.enderio.crystallineAlloy.name=晶化合金块
|
||||
tile.enderio.melodicAlloy.name=旋律合金块
|
||||
tile.enderio.stellarAlloy.name=恒星合金块
|
||||
tile.enderio.crystallinePinkSlime.name=晶化粉红史莱姆块
|
||||
tile.enderio.energeticSilver.name=充能银块
|
||||
tile.enderio.vividAlloy.name=生动合金块
|
||||
|
||||
//Powder / Ingot
|
||||
enderio.powderCoal.name=煤粉
|
||||
@@ -254,6 +336,13 @@ enderio.itemBasicCapacitor.name=电容
|
||||
enderio.basicCapacitor.name=基础电容
|
||||
enderio.activatedCapacitor.name=双层电容
|
||||
enderio.enderCapacitor.name=八位电容
|
||||
enderio.crystallineCapacitor.name=晶化合金电容
|
||||
enderio.melodicCapacitor.name=旋律合金电容
|
||||
enderio.stellarCapacitor.name=恒星合金电容
|
||||
enderio.silverCapacitor.name=银制电容
|
||||
enderio.endergeticCapacitor.name=充能银电容
|
||||
enderio.endergisedCapacitor.name=生动合金电容
|
||||
enderio.totemicCapacitor.name=不死图腾电容
|
||||
|
||||
enderio.machine.tooltip.upgrade=机器升级
|
||||
enderio.machine.tooltip.upgrade.tooltip.detailed.line1=增加机器能量存储与
|
||||
@@ -283,6 +372,7 @@ tile.blockAlloySmelter.tooltip.detailed.line5=增加速度与能量存储
|
||||
|
||||
tile.blockSolarPanel.name=光伏板
|
||||
tile.blockSolarPanel.advanced.name=高级光伏板
|
||||
tile.blockSolarPanel.vibrant.name=脉冲光伏板
|
||||
tile.blockSolarPanel.tooltip.common.line1=太阳能!
|
||||
tile.blockSolarPanel.tooltip.detailed.line1=白天产生能量
|
||||
tile.blockSolarPanel.tooltip.detailed.line2=顶部必须
|
||||
@@ -382,7 +472,7 @@ enderio.trans.item=物品
|
||||
enderio.trans.fluid=流体
|
||||
enderio.trans.rail=轨道
|
||||
|
||||
enderio.trans.recieving=接收
|
||||
enderio.trans.receiving=接收
|
||||
enderio.trans.sending=发送
|
||||
|
||||
tile.blockPowerMonitor.name=能量监控器
|
||||
@@ -398,8 +488,8 @@ tile.blockVat.tooltip.detailed.line1=用于生产末影接口中的流体
|
||||
|
||||
tile.blockEnchanter.name=附魔器
|
||||
tile.blockEnchanter.tooltip.detailed.line1=使用XP让物品与
|
||||
tile.blockEnchanter.tooltip.detailed.line2=一个书与笔结合
|
||||
tile.blockEnchanter.tooltip.detailed.line2=来制作附魔书
|
||||
tile.blockEnchanter.tooltip.detailed.line3=附魔书创造!
|
||||
|
||||
tile.blockCombustionGenerator.name=燃烧发电机
|
||||
tile.blockCombustionGenerator.tooltip.detailed.line1=燃烧液体燃料产生能量
|
||||
@@ -412,6 +502,16 @@ tile.blockZombieGenerator.tooltip.detailed.line2=来产生能量
|
||||
enderio.zombieGenerator.fuelTank=营养液水槽
|
||||
enderio.gui.fluid.minReq=激活需要 %s
|
||||
|
||||
tile.blockFrankenzombieGenerator.name=人造僵尸发电机
|
||||
tile.blockFrankenzombieGenerator.tooltip.detailed.line1=消耗营养精华液
|
||||
tile.blockFrankenzombieGenerator.tooltip.detailed.line2=产生更多能量
|
||||
enderio.frankenzombieGenerator.fuelTank=营养液槽
|
||||
|
||||
tile.blockEnderGenerator.name=末影人发电机
|
||||
tile.blockEnderGenerator.tooltip.detailed.line1=消耗深渊露水
|
||||
tile.blockEnderGenerator.tooltip.detailed.line2=来产生能量
|
||||
enderio.enderGenerator.fuelTank=深渊储罐
|
||||
|
||||
tile.blockKillerJoe.name=杀手乔
|
||||
tile.blockKillerJoe.tooltip.detailed.line1=当你提供一把剑和营养精华
|
||||
tile.blockKillerJoe.tooltip.detailed.line2=液时,这台机器就会自动攻
|
||||
@@ -698,6 +798,8 @@ skullZombieController.name=Z-逻辑控制器
|
||||
skullZombieFrankenstien.name=人造僵尸
|
||||
skullEnderResonator.name=末影谐振器
|
||||
skullSentientEnder.name=意识末影谐振器
|
||||
skullSkeletalContractor.name=骷髅契约板
|
||||
skullGuardianDiode.name=守卫者二极管
|
||||
|
||||
item.itemSpawnEggEnderIO.name=生成
|
||||
|
||||
@@ -711,13 +813,41 @@ item.darkSteel_pickaxe.name=玄钢镐
|
||||
item.darkSteel_axe.name=玄钢斧
|
||||
item.darkSteel_shears.name=玄钢剪
|
||||
|
||||
//End Steel
|
||||
item.endSteel_helmet.name=末影钢头盔
|
||||
item.endSteel_chestplate.name=末影钢胸甲
|
||||
item.endSteel_leggings.name=末影钢护腿
|
||||
item.endSteel_boots.name=末影钢靴子
|
||||
item.endSteel_sword.name=终结之剑 MK2
|
||||
item.endSteel_pickaxe.name=末影钢镐
|
||||
item.endSteel_axe.name=末影钢斧
|
||||
|
||||
//Stellar
|
||||
item.stellar_helmet.name=恒星合金头盔
|
||||
item.stellar_chestplate.name=恒星合金胸甲
|
||||
item.stellar_leggings.name=恒星合金护腿
|
||||
item.stellar_boots.name=恒星合金靴子
|
||||
item.stellar_sword.name=终结之剑 MK4
|
||||
item.stellar_pickaxe.name=恒星合金镐
|
||||
item.stellar_axe.name=恒星合金斧
|
||||
|
||||
enderio.item.darkSteel.tooltip.lvs=等级
|
||||
|
||||
enderio.item.darkSteel_pickaxe.tooltip.effPowered=充能后的效率
|
||||
enderio.item.darkSteel_pickaxe.tooltip.effObs=采集黑曜石的效率
|
||||
enderio.item.darkSteel_pickaxe.tooltip.cost=消耗
|
||||
|
||||
enderio.item.endSteel_pickaxe.tooltip.effPowered=充能后的效率
|
||||
enderio.item.endSteel_pickaxe.tooltip.effObs=采集黑曜石的效率
|
||||
enderio.item.endSteel_pickaxe.tooltip.cost=消耗
|
||||
|
||||
enderio.item.stellar_pickaxe.tooltip.effPowered=充能后的效率
|
||||
enderio.item.stellar_pickaxe.tooltip.effObs=采集黑曜石的效率
|
||||
enderio.item.stellar_pickaxe.tooltip.cost=消耗
|
||||
|
||||
enderio.item.darkSteel_axe.tooltip.multiHarvest=潜行时一次采集多个原木
|
||||
enderio.item.endSteel_axe.tooltip.multiHarvest=潜行时一次采集多个原木
|
||||
enderio.item.stellar_axe.tooltip.multiHarvest=潜行时一次采集多个原木
|
||||
|
||||
enderio.item.darkSteel_shears.tooltip.multiHarvest=激活后修剪多个方块/羊
|
||||
|
||||
@@ -725,12 +855,32 @@ enderio.item.darkSteel_sword.tooltip.line1=增加头颅与末影珍珠的掉落
|
||||
enderio.item.darkSteel_sword.tooltip.line2=击中后将阻止末影人传送
|
||||
enderio.item.darkSteel_sword.tooltip.line3=充能后伤害+2
|
||||
|
||||
enderio.item.endSteel_sword.tooltip.line1=增加头颅与末影珍珠的掉落
|
||||
enderio.item.endSteel_sword.tooltip.line2=击中后将阻止末影人传送
|
||||
enderio.item.endSteel_sword.tooltip.line3=充能后伤害+2
|
||||
|
||||
enderio.item.stellar_sword.tooltip.line1=增加头颅与末影珍珠的掉落
|
||||
enderio.item.stellar_sword.tooltip.line2=击中后将阻止末影人传送
|
||||
enderio.item.stellar_sword.tooltip.line3=充能后伤害+2
|
||||
|
||||
enderio.item.darkSteel_armor.tooltip.line1=充能后
|
||||
enderio.item.darkSteel_armor.tooltip.line2=钻石级别保护
|
||||
|
||||
enderio.item.endSteel_armor.tooltip.line1=钻石+级别保护
|
||||
enderio.item.endSteel_armor.tooltip.line2=免疫跌落伤害
|
||||
|
||||
enderio.item.stellar_armor.tooltip.line1=钻石+级别保护
|
||||
enderio.item.stellar_armor.tooltip.line2=免疫跌落伤害
|
||||
|
||||
enderio.item.darkSteel_boots.tooltip.line1=充能后
|
||||
enderio.item.darkSteel_boots.tooltip.line2=免疫跌落伤害
|
||||
|
||||
enderio.item.endSteel_boots.tooltip.line1=充能后
|
||||
enderio.item.endSteel_boots.tooltip.line2=免疫跌落伤害
|
||||
|
||||
enderio.item.stellar_boots.tooltip.line1=充能后
|
||||
enderio.item.stellar_boots.tooltip.line2=免疫跌落伤害
|
||||
|
||||
enderio.darksteel.upgrade.empowered_one.name=注能
|
||||
enderio.darksteel.upgrade.empowered_one.tooltip.detailed.line1=能量: $P
|
||||
enderio.darksteel.upgrade.empowered_one.tooltip.detailed.line2=能量将抵消
|
||||
@@ -751,6 +901,11 @@ enderio.darksteel.upgrade.empowered_four.tooltip.detailed.line1=能量: $P
|
||||
enderio.darksteel.upgrade.empowered_four.tooltip.detailed.line2=能量将抵消
|
||||
enderio.darksteel.upgrade.empowered_four.tooltip.detailed.line3=$D%耐久损耗
|
||||
|
||||
enderio.darksteel.upgrade.empowered_five.name=注能 V
|
||||
enderio.darksteel.upgrade.empowered_five.tooltip.detailed.line1=能量: $P
|
||||
enderio.darksteel.upgrade.empowered_five.tooltip.detailed.line2=能量将抵消
|
||||
enderio.darksteel.upgrade.empowered_five.tooltip.detailed.line3=$D%耐久损耗
|
||||
|
||||
enderio.darksteel.upgrade.travel.name=旅行
|
||||
enderio.darksteel.upgrade.travel.tooltip.detailed.line1=按住shift右击来传送或
|
||||
enderio.darksteel.upgrade.travel.tooltip.detailed.line2=激活旅行锚和末影接口
|
||||
@@ -834,6 +989,9 @@ enderio.darksteel.upgrade.solar_one.tooltip.detailed.line1=利用阳光产能.
|
||||
enderio.darksteel.upgrade.solar_two.name=太阳能 II
|
||||
enderio.darksteel.upgrade.solar_two.tooltip.detailed.line1=利用阳光产能.
|
||||
|
||||
enderio.darksteel.upgrade.solar_three.name=太阳能 III
|
||||
enderio.darksteel.upgrade.solar_three.tooltip.detailed.line1=利用阳光产能.
|
||||
|
||||
//------GUI
|
||||
|
||||
enderio.gui.simple.in=最大输入:
|
||||
@@ -999,7 +1157,7 @@ enderio.gui.telepad.configure.travel=旅行设置
|
||||
enderio.gui.telepad.configure.telepad=传送台设置
|
||||
enderio.gui.telepad.blocked=传送锁定!
|
||||
|
||||
//Spawn Gurad
|
||||
//Spawn Gurad [sic]
|
||||
enderio.gui.spawnGurad.showRange=显示范围
|
||||
enderio.gui.spawnGurad.hideRange=隐藏范围
|
||||
enderio.gui.spawnGurad.range=范围:
|
||||
@@ -1064,7 +1222,7 @@ enderio.gui.conduit.gas.autoExtract=自动提取
|
||||
enderio.gui.weather.task.clear=清除天气
|
||||
enderio.gui.weather.task.rain=雨天
|
||||
enderio.gui.weather.task.storm=雷暴天气
|
||||
enderio.gui.weather.requireditem=需要物品: %s
|
||||
enderio.gui.weather.requiredfluid=需要流体: %s mB
|
||||
enderio.weatherObelisk.fuelTank=大气通量仓
|
||||
|
||||
//Enchants
|
||||
@@ -1134,10 +1292,11 @@ enderio.nei.sagmill=SAG磨粉机
|
||||
enderio.nei.sagmill.outputchance=概率: {0,choice,0#'<1'|0<{0,number}}%
|
||||
enderio.nei.slicensplice=头颅装配机
|
||||
enderio.nei.soulbinder=灵魂绑定器
|
||||
enderio.nei.vat=酿液锅
|
||||
enderio.nei.vat=酿液桶
|
||||
enderio.tooltip.burntime=燃烧时间:
|
||||
enderio.tooltip.oredict=矿物辞典:
|
||||
enderio.tooltip.meta=Meta:
|
||||
enderio.tooltip.uid=UID:
|
||||
enderio.tooltip.anvilupgrades=铁砧升级:
|
||||
enderio.waila.config.hiddenfacades=隐形栅栏
|
||||
|
||||
|
After Width: | Height: | Size: 679 B |
|
After Width: | Height: | Size: 656 B |
|
After Width: | Height: | Size: 1005 B |
|
After Width: | Height: | Size: 1005 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 936 B |
|
After Width: | Height: | Size: 1010 B |
|
After Width: | Height: | Size: 1023 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 1013 B |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 968 B |
|
After Width: | Height: | Size: 1019 B |
|
After Width: | Height: | Size: 702 B |
|
After Width: | Height: | Size: 649 B |
|
After Width: | Height: | Size: 676 B |
|
After Width: | Height: | Size: 669 B |
|
After Width: | Height: | Size: 707 B |
|
After Width: | Height: | Size: 689 B |
|
After Width: | Height: | Size: 636 B |
|
After Width: | Height: | Size: 651 B |
|
After Width: | Height: | Size: 663 B |
|
After Width: | Height: | Size: 577 B |
|
After Width: | Height: | Size: 372 B |
|
After Width: | Height: | Size: 392 B |
|
After Width: | Height: | Size: 406 B |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"animation": {
|
||||
"frames": [
|
||||
{"index":0, "time":140},
|
||||
{"index":1, "time":2},
|
||||
{"index":0, "time":155},
|
||||
{"index":1, "time":3}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 1005 B |
|
After Width: | Height: | Size: 1005 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 936 B |
|
After Width: | Height: | Size: 1010 B |
|
After Width: | Height: | Size: 1023 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 1013 B |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 968 B |
|
After Width: | Height: | Size: 1019 B |
|
After Width: | Height: | Size: 367 B |
|
After Width: | Height: | Size: 371 B |
|
After Width: | Height: | Size: 335 B |
|
After Width: | Height: | Size: 478 B |
|
After Width: | Height: | Size: 556 B |
|
After Width: | Height: | Size: 433 B |
|
After Width: | Height: | Size: 561 B |
|
After Width: | Height: | Size: 373 B |
|
After Width: | Height: | Size: 623 B |
|
After Width: | Height: | Size: 418 B |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
@@ -49,6 +49,7 @@ import crazypants.enderio.conduit.oc.OCConduitRenderer;
|
||||
import crazypants.enderio.conduit.oc.OCUtil;
|
||||
import crazypants.enderio.conduit.power.PowerConduit;
|
||||
import crazypants.enderio.conduit.power.PowerConduitRenderer;
|
||||
import crazypants.enderio.conduit.power.endergy.PowerConduitEndergy;
|
||||
import crazypants.enderio.conduit.redstone.InsulatedRedstoneConduit;
|
||||
import crazypants.enderio.conduit.redstone.InsulatedRedstoneConduitRenderer;
|
||||
import crazypants.enderio.conduit.redstone.RedstoneConduit;
|
||||
@@ -208,6 +209,7 @@ public class ClientProxy extends CommonProxy {
|
||||
InsulatedRedstoneConduit.initIcons();
|
||||
RedstoneSwitch.initIcons();
|
||||
PowerConduit.initIcons();
|
||||
PowerConduitEndergy.initIcons();
|
||||
LiquidConduit.initIcons();
|
||||
AdvancedLiquidConduit.initIcons();
|
||||
EnderLiquidConduit.initIcons();
|
||||
@@ -335,6 +337,7 @@ public class ClientProxy extends CommonProxy {
|
||||
ItemConduitRenderer itemConRenderer = new ItemConduitRenderer();
|
||||
MinecraftForgeClient.registerItemRenderer(EnderIO.itemLiquidConduit, itemConRenderer);
|
||||
MinecraftForgeClient.registerItemRenderer(EnderIO.itemPowerConduit, itemConRenderer);
|
||||
MinecraftForgeClient.registerItemRenderer(EnderIO.itemPowerConduitEndergy, itemConRenderer);
|
||||
MinecraftForgeClient.registerItemRenderer(EnderIO.itemRedstoneConduit, itemConRenderer);
|
||||
MinecraftForgeClient.registerItemRenderer(EnderIO.itemItemConduit, itemConRenderer);
|
||||
MinecraftForgeClient.registerItemRenderer(EnderIO.itemGasConduit, itemConRenderer);
|
||||
|
||||
@@ -56,6 +56,7 @@ import crazypants.enderio.conduit.liquid.ItemLiquidConduit;
|
||||
import crazypants.enderio.conduit.me.ItemMEConduit;
|
||||
import crazypants.enderio.conduit.oc.ItemOCConduit;
|
||||
import crazypants.enderio.conduit.power.ItemPowerConduit;
|
||||
import crazypants.enderio.conduit.power.endergy.ItemPowerConduitEndergy;
|
||||
import crazypants.enderio.conduit.redstone.ConduitBundledRedstoneProvider;
|
||||
import crazypants.enderio.conduit.redstone.InsulatedRedstoneConduit;
|
||||
import crazypants.enderio.conduit.redstone.ItemRedstoneConduit;
|
||||
@@ -240,6 +241,7 @@ public class EnderIO {
|
||||
public static ItemConduitFacade itemConduitFacade;
|
||||
public static ItemRedstoneConduit itemRedstoneConduit;
|
||||
public static ItemPowerConduit itemPowerConduit;
|
||||
public static ItemPowerConduitEndergy itemPowerConduitEndergy;
|
||||
public static ItemLiquidConduit itemLiquidConduit;
|
||||
public static ItemItemConduit itemItemConduit;
|
||||
public static ItemGasConduit itemGasConduit;
|
||||
@@ -443,6 +445,7 @@ public class EnderIO {
|
||||
|
||||
itemRedstoneConduit = ItemRedstoneConduit.create();
|
||||
itemPowerConduit = ItemPowerConduit.create();
|
||||
itemPowerConduitEndergy = ItemPowerConduitEndergy.create();
|
||||
itemLiquidConduit = ItemLiquidConduit.create();
|
||||
itemItemConduit = ItemItemConduit.create();
|
||||
itemGasConduit = ItemGasConduit.create();
|
||||
@@ -450,7 +453,7 @@ public class EnderIO {
|
||||
itemOCConduit = ItemOCConduit.create();
|
||||
|
||||
itemBasicFilterUpgrade = ItemBasicItemFilter.create();
|
||||
// itemBigFilterUpgrade = ItemBigItemFilter.create();
|
||||
itemBigFilterUpgrade = ItemBigItemFilter.create();
|
||||
itemExistingItemFilter = ItemExistingItemFilter.create();
|
||||
itemModItemFilter = ItemModItemFilter.create();
|
||||
itemPowerItemFilter = ItemPowerItemFilter.create();
|
||||
|
||||
@@ -24,6 +24,7 @@ public enum ModObject {
|
||||
|
||||
// Power
|
||||
itemPowerConduit,
|
||||
itemPowerConduitEndergy,
|
||||
|
||||
// Liquid
|
||||
itemLiquidConduit,
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
package crazypants.enderio;
|
||||
|
||||
public class Tst {
|
||||
|
||||
/**
|
||||
* @param args
|
||||
*/
|
||||
public static void main(String[] args) {
|
||||
}
|
||||
|
||||
}
|
||||
@@ -6,6 +6,7 @@ import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
import crazypants.enderio.conduit.gui.*;
|
||||
import mods.immibis.core.api.multipart.IMultipartRenderingBlockMarker;
|
||||
import mods.immibis.core.api.multipart.IMultipartSystem;
|
||||
import net.minecraft.block.Block;
|
||||
@@ -51,12 +52,6 @@ import crazypants.enderio.api.tool.ITool;
|
||||
import crazypants.enderio.conduit.facade.ItemConduitFacade.FacadeType;
|
||||
import crazypants.enderio.conduit.geom.CollidableComponent;
|
||||
import crazypants.enderio.conduit.geom.ConduitConnectorType;
|
||||
import crazypants.enderio.conduit.gui.ExternalConnectionContainer;
|
||||
import crazypants.enderio.conduit.gui.GuiExternalConnection;
|
||||
import crazypants.enderio.conduit.gui.GuiExternalConnectionSelector;
|
||||
import crazypants.enderio.conduit.gui.PacketFluidFilter;
|
||||
import crazypants.enderio.conduit.gui.PacketOpenConduitUI;
|
||||
import crazypants.enderio.conduit.gui.PacketSlotVisibility;
|
||||
import crazypants.enderio.conduit.gui.item.PacketExistingItemFilterSnapshot;
|
||||
import crazypants.enderio.conduit.gui.item.PacketModItemFilter;
|
||||
import crazypants.enderio.conduit.liquid.PacketFluidLevel;
|
||||
@@ -66,6 +61,7 @@ import crazypants.enderio.conduit.packet.PacketItemConduitFilter;
|
||||
import crazypants.enderio.conduit.packet.PacketOCConduitSignalColor;
|
||||
import crazypants.enderio.conduit.packet.PacketRedstoneConduitOutputStrength;
|
||||
import crazypants.enderio.conduit.packet.PacketRedstoneConduitSignalColor;
|
||||
import crazypants.enderio.conduit.packet.PacketRoundRobinMode;
|
||||
import crazypants.enderio.conduit.redstone.IInsulatedRedstoneConduit;
|
||||
import crazypants.enderio.conduit.redstone.IRedstoneConduit;
|
||||
import crazypants.enderio.conduit.redstone.InsulatedRedstoneConduit;
|
||||
@@ -97,6 +93,7 @@ public class BlockConduitBundle extends BlockEio implements IGuiHandler, IFacade
|
||||
PacketHandler.INSTANCE.registerMessage(PacketExistingItemFilterSnapshot.class, PacketExistingItemFilterSnapshot.class, PacketHandler.nextID(), Side.SERVER);
|
||||
PacketHandler.INSTANCE.registerMessage(PacketModItemFilter.class, PacketModItemFilter.class, PacketHandler.nextID(), Side.SERVER);
|
||||
PacketHandler.INSTANCE.registerMessage(PacketFluidFilter.class, PacketFluidFilter.class, PacketHandler.nextID(), Side.SERVER);
|
||||
PacketHandler.INSTANCE.registerMessage(PacketFluidChannel.class, PacketFluidChannel.class, PacketHandler.nextID(), Side.SERVER);
|
||||
PacketHandler.INSTANCE.registerMessage(PacketRedstoneConduitSignalColor.class, PacketRedstoneConduitSignalColor.class, PacketHandler.nextID(), Side.SERVER);
|
||||
PacketHandler.INSTANCE.registerMessage(PacketRedstoneConduitOutputStrength.class, PacketRedstoneConduitOutputStrength.class, PacketHandler.nextID(),
|
||||
Side.SERVER);
|
||||
@@ -104,6 +101,7 @@ public class BlockConduitBundle extends BlockEio implements IGuiHandler, IFacade
|
||||
PacketHandler.INSTANCE.registerMessage(PacketSlotVisibility.class, PacketSlotVisibility.class, PacketHandler.nextID(), Side.SERVER);
|
||||
PacketHandler.INSTANCE.registerMessage(PacketOCConduitSignalColor.class, PacketOCConduitSignalColor.class,
|
||||
PacketHandler.nextID(), Side.SERVER);
|
||||
PacketHandler.INSTANCE.registerMessage(PacketRoundRobinMode.class, PacketRoundRobinMode.class, PacketHandler.nextID(), Side.SERVER);
|
||||
|
||||
BlockConduitBundle result = new BlockConduitBundle();
|
||||
result.init();
|
||||
|
||||
@@ -4,6 +4,7 @@ import net.minecraft.init.Blocks;
|
||||
import net.minecraft.init.Items;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.oredict.OreDictionary;
|
||||
import net.minecraftforge.oredict.ShapedOreRecipe;
|
||||
import appeng.api.AEApi;
|
||||
import cpw.mods.fml.common.Optional.Method;
|
||||
@@ -20,8 +21,10 @@ import crazypants.enderio.machine.MachineRecipeRegistry;
|
||||
import crazypants.enderio.material.BlockFusedQuartz;
|
||||
import crazypants.enderio.material.FrankenSkull;
|
||||
import crazypants.enderio.material.Material;
|
||||
|
||||
import static crazypants.enderio.ModObject.blockPainter;
|
||||
import static crazypants.enderio.material.Alloy.*;
|
||||
import static crazypants.enderio.material.endergy.AlloyEndergy.*;
|
||||
import static crazypants.enderio.material.Material.*;
|
||||
import static crazypants.util.RecipeUtil.addShaped;
|
||||
|
||||
@@ -35,6 +38,13 @@ public class ConduitRecipes {
|
||||
ItemStack fusedQuartz = new ItemStack(EnderIO.blockFusedQuartz, 1, 0);
|
||||
ItemStack fusedGlass = new ItemStack(EnderIO.blockFusedQuartz, 1, BlockFusedQuartz.Type.GLASS.ordinal());
|
||||
|
||||
String crudeSteel = CRUDE_STEEL.getOreIngot();
|
||||
String energeticSilver = ENERGETIC_SILVER.getOreIngot();
|
||||
String crystallineAlloy = CRYSTALLINE_ALLOY.getOreIngot();
|
||||
String crystallinePinkSlime = CRYSTALLINE_PINK_SLIME.getOreIngot();
|
||||
String melodicAlloy = MELODIC_ALLOY.getOreIngot();
|
||||
String stellarAlloy = STELLAR_ALLOY.getOreIngot();
|
||||
|
||||
String electricalSteel = ELECTRICAL_STEEL.getOreIngot();
|
||||
String phasedGold = PHASED_GOLD.getOreIngot();
|
||||
String conductiveIron = CONDUCTIVE_IRON.getOreIngot();
|
||||
@@ -45,6 +55,7 @@ public class ConduitRecipes {
|
||||
String binder = CONDUIT_BINDER.oreDict;
|
||||
|
||||
ItemStack zombieController = new ItemStack(EnderIO.itemFrankenSkull, 1, FrankenSkull.ZOMBIE_CONTROLLER.ordinal());
|
||||
ItemStack skeletalContractor = new ItemStack(EnderIO.itemFrankenSkull, 1, FrankenSkull.SKELETAL_CONTRACTOR.ordinal());
|
||||
|
||||
//Recipes
|
||||
addShaped(new ItemStack(EnderIO.itemConduitFacade, 1, FacadeType.BASIC.ordinal()), "bbb", "b b", "bbb", 'b', binder);
|
||||
@@ -55,13 +66,92 @@ public class ConduitRecipes {
|
||||
addShaped(new ItemStack(EnderIO.itemLiquidConduit, numConduits, 0), "bbb", "###", "bbb", 'b', binder, '#', fusedGlass);
|
||||
addShaped(new ItemStack(EnderIO.itemLiquidConduit, numConduits, 1), "bbb", "###", "bbb", 'b', binder, '#', fusedQuartz);
|
||||
addShaped(new ItemStack(EnderIO.itemLiquidConduit, numConduits, 2), "bbb", "#p#", "bbb", 'b', binder, '#', fusedQuartz, 'p', phasedGold);
|
||||
addShaped(new ItemStack(EnderIO.itemPowerConduit, numConduits, 0), "bbb", "###", "bbb", 'b', binder, '#', conductiveIron);
|
||||
addShaped(new ItemStack(EnderIO.itemPowerConduit, numConduits, 1), "bbb", "###", "bbb", 'b', binder, '#', energeticGold);
|
||||
addShaped(new ItemStack(EnderIO.itemPowerConduit, numConduits, 2), "bbb", "###", "bbb", 'b', binder, '#', phasedGold);
|
||||
addShaped(new ItemStack(EnderIO.itemRedstoneConduit, numConduits, 0), "###", '#', redstoneAlloy);
|
||||
addShaped(new ItemStack(EnderIO.itemRedstoneConduit, 1, 1), "lbl", "bcb", "lbl", 'b', binder, 'c', redstoneConduit, 'l', Blocks.lever);
|
||||
addShaped(new ItemStack(EnderIO.itemRedstoneConduit, numConduits, 2), "bbb", "###", "bbb", 'b', binder, '#', redstoneAlloy);
|
||||
|
||||
if(Config.useHardRecipes) {
|
||||
|
||||
ItemStack lastTier;
|
||||
|
||||
addShaped(new ItemStack(EnderIO.itemPowerConduitEndergy, numConduits, 0), "bbb", "###", "bbb", 'b', binder, '#', crudeSteel);
|
||||
lastTier = new ItemStack(EnderIO.itemPowerConduitEndergy, 1, 0);
|
||||
|
||||
addShaped(new ItemStack(EnderIO.itemPowerConduitEndergy, numConduits, 1), "b#b", "ccc", "b#b", 'c', lastTier, 'b', binder, '#', "ingotIron");
|
||||
lastTier = new ItemStack(EnderIO.itemPowerConduitEndergy, 1, 1);
|
||||
|
||||
if(OreDictionary.doesOreNameExist("ingotAluminum")||OreDictionary.doesOreNameExist("ingotAluminium")) {
|
||||
addShaped(new ItemStack(EnderIO.itemPowerConduitEndergy, numConduits, 2), "b#b", "ccc", "b#b", 'c', lastTier, 'b', binder, '#', "ingotAluminum");
|
||||
addShaped(new ItemStack(EnderIO.itemPowerConduitEndergy, numConduits, 2), "b#b", "ccc", "b#b", 'c', lastTier, 'b', binder, '#', "ingotAluminium");
|
||||
lastTier = new ItemStack(EnderIO.itemPowerConduitEndergy, 1, 2);
|
||||
}
|
||||
|
||||
addShaped(new ItemStack(EnderIO.itemPowerConduitEndergy, numConduits, 3), "b#b", "ccc", "b#b", 'c', lastTier, 'b', binder, '#', "ingotGold");
|
||||
lastTier = new ItemStack(EnderIO.itemPowerConduitEndergy, 1, 3);
|
||||
|
||||
if(OreDictionary.doesOreNameExist("ingotCopper") && OreDictionary.getOres("ingotCopper").size()>0) {
|
||||
addShaped(new ItemStack(EnderIO.itemPowerConduitEndergy, numConduits, 4), "b#b", "ccc", "b#b", 'c', lastTier, 'b', binder, '#', "ingotCopper");
|
||||
lastTier = new ItemStack(EnderIO.itemPowerConduitEndergy, 1, 4);
|
||||
}
|
||||
|
||||
addShaped(new ItemStack(EnderIO.itemPowerConduit, numConduits, 0), "b#b", "ccc", "b#b", 'c', lastTier, 'b', binder, '#', conductiveIron);
|
||||
lastTier = new ItemStack(EnderIO.itemPowerConduit, 1, 0);
|
||||
|
||||
if(OreDictionary.doesOreNameExist("ingotSilver")) {
|
||||
addShaped(new ItemStack(EnderIO.itemPowerConduitEndergy, numConduits, 5), "b#b", "ccc", "b#b", 'c', lastTier, 'b', binder, '#', "ingotSilver");
|
||||
lastTier = new ItemStack(EnderIO.itemPowerConduitEndergy, 1, 5);
|
||||
}
|
||||
|
||||
if(OreDictionary.doesOreNameExist("ingotElectrum")) {
|
||||
addShaped(new ItemStack(EnderIO.itemPowerConduitEndergy, numConduits, 6), "b#b", "ccc", "b#b", 'c', lastTier, 'b', binder, '#', "ingotElectrum");
|
||||
lastTier = new ItemStack(EnderIO.itemPowerConduitEndergy, 1, 6);
|
||||
}
|
||||
|
||||
addShaped(new ItemStack(EnderIO.itemPowerConduit, numConduits, 1), "b#b", "ccc", "b#b", 'c', lastTier, 'b', binder, '#', energeticGold);
|
||||
lastTier = new ItemStack(EnderIO.itemPowerConduit, 1, 1);
|
||||
|
||||
if(OreDictionary.doesOreNameExist("ingotSilver")) {
|
||||
addShaped(new ItemStack(EnderIO.itemPowerConduitEndergy, numConduits, 7), "b#b", "ccc", "b#b", 'c', lastTier, 'b', binder, '#', energeticSilver);
|
||||
lastTier = new ItemStack(EnderIO.itemPowerConduitEndergy, 1, 7);
|
||||
}
|
||||
|
||||
addShaped(new ItemStack(EnderIO.itemPowerConduit, numConduits, 2), "b#b", "ccc", "b#b", 'c', lastTier, 'b', binder, '#', phasedGold);
|
||||
lastTier = new ItemStack(EnderIO.itemPowerConduit, 1, 2);
|
||||
|
||||
addShaped(new ItemStack(EnderIO.itemPowerConduitEndergy, numConduits, 8), "b#b", "ccc", "b#b", 'c', lastTier, 'b', binder, '#', crystallineAlloy);
|
||||
lastTier = new ItemStack(EnderIO.itemPowerConduitEndergy, 1, 8);
|
||||
|
||||
if(OreDictionary.doesOreNameExist("slimeballPink")) {
|
||||
addShaped(new ItemStack(EnderIO.itemPowerConduitEndergy, numConduits, 9), "b#b", "ccc", "b#b", 'c', lastTier, 'b', binder, '#', crystallinePinkSlime);
|
||||
lastTier = new ItemStack(EnderIO.itemPowerConduitEndergy, 1, 9);
|
||||
}
|
||||
|
||||
addShaped(new ItemStack(EnderIO.itemPowerConduitEndergy, numConduits, 10), "b#b", "ccc", "b#b", 'c', lastTier, 'b', binder, '#', melodicAlloy);
|
||||
lastTier = new ItemStack(EnderIO.itemPowerConduitEndergy, 1, 10);
|
||||
|
||||
addShaped(new ItemStack(EnderIO.itemPowerConduitEndergy, numConduits, 11), "b#b", "ccc", "b#b", 'c', lastTier, 'b', binder, '#', stellarAlloy);
|
||||
|
||||
}
|
||||
|
||||
else {
|
||||
addShaped(new ItemStack(EnderIO.itemPowerConduit, numConduits, 0), "bbb", "###", "bbb", 'b', binder, '#', conductiveIron);
|
||||
addShaped(new ItemStack(EnderIO.itemPowerConduit, numConduits, 1), "bbb", "###", "bbb", 'b', binder, '#', energeticGold);
|
||||
addShaped(new ItemStack(EnderIO.itemPowerConduit, numConduits, 2), "bbb", "###", "bbb", 'b', binder, '#', phasedGold);
|
||||
|
||||
addShaped(new ItemStack(EnderIO.itemPowerConduitEndergy, numConduits, 0), "bbb", "###", "bbb", 'b', binder, '#', crudeSteel);
|
||||
addShaped(new ItemStack(EnderIO.itemPowerConduitEndergy, numConduits, 1), "bbb", "###", "bbb", 'b', binder, '#', "ingotIron");
|
||||
addShaped(new ItemStack(EnderIO.itemPowerConduitEndergy, numConduits, 2), "bbb", "###", "bbb", 'b', binder, '#', "ingotAluminum");
|
||||
addShaped(new ItemStack(EnderIO.itemPowerConduitEndergy, numConduits, 3), "bbb", "###", "bbb", 'b', binder, '#', "ingotGold");
|
||||
addShaped(new ItemStack(EnderIO.itemPowerConduitEndergy, numConduits, 4), "bbb", "###", "bbb", 'b', binder, '#', "ingotCopper");
|
||||
addShaped(new ItemStack(EnderIO.itemPowerConduitEndergy, numConduits, 5), "bbb", "###", "bbb", 'b', binder, '#', "ingotSilver");
|
||||
addShaped(new ItemStack(EnderIO.itemPowerConduitEndergy, numConduits, 6), "bbb", "###", "bbb", 'b', binder, '#', "ingotElectrum");
|
||||
addShaped(new ItemStack(EnderIO.itemPowerConduitEndergy, numConduits, 7), "bbb", "###", "bbb", 'b', binder, '#', energeticSilver);
|
||||
addShaped(new ItemStack(EnderIO.itemPowerConduitEndergy, numConduits, 8), "bbb", "###", "bbb", 'b', binder, '#', crystallineAlloy);
|
||||
addShaped(new ItemStack(EnderIO.itemPowerConduitEndergy, numConduits, 9), "bbb", "###", "bbb", 'b', binder, '#', crystallinePinkSlime);
|
||||
addShaped(new ItemStack(EnderIO.itemPowerConduitEndergy, numConduits, 10), "bbb", "###", "bbb", 'b', binder, '#', melodicAlloy);
|
||||
addShaped(new ItemStack(EnderIO.itemPowerConduitEndergy, numConduits, 11), "bbb", "###", "bbb", 'b', binder, '#', stellarAlloy);
|
||||
|
||||
}
|
||||
if (GasUtil.isGasConduitEnabled()) {
|
||||
addShaped(new ItemStack(EnderIO.itemGasConduit, numConduits, 0), "bbb", "#g#", "bbb", 'b', binder, '#', electricalSteel, 'g', fusedGlass);
|
||||
}
|
||||
@@ -78,6 +168,12 @@ public class ConduitRecipes {
|
||||
ItemStack advFilter = new ItemStack(EnderIO.itemBasicFilterUpgrade, 1, 1);
|
||||
addShaped(advFilter, "rpr", "pzp", "rpr", 'p', Items.paper, 'z', zombieController, 'r', "dustRedstone");
|
||||
|
||||
ItemStack bigFilter = new ItemStack(EnderIO.itemBigFilterUpgrade, 1, 0);
|
||||
addShaped(bigFilter, "opo", "psp", "opo", 'p', Items.paper, 's', skeletalContractor, 'o', "dustObsidian");
|
||||
|
||||
ItemStack bigAdvFilter = new ItemStack(EnderIO.itemBigFilterUpgrade, 1, 1);
|
||||
addShaped(bigAdvFilter, "eme", "mfm", "eme", 'm', melodicAlloy, 'f', bigFilter, 'e', END_STEEL.getOreIngot());
|
||||
|
||||
ItemStack modFilter = new ItemStack(EnderIO.itemModItemFilter, 1, 0);
|
||||
addShaped(modFilter, " p ", "pwp", " p ", 'p', Items.paper, 'w', EnderIO.itemYetaWench);
|
||||
|
||||
|
||||
@@ -19,6 +19,8 @@ import mods.immibis.microblocks.api.IMicroblockSystem;
|
||||
import mods.immibis.microblocks.api.MicroblockAPIUtils;
|
||||
import mods.immibis.microblocks.api.Part;
|
||||
import mods.immibis.microblocks.api.PartType;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
@@ -162,7 +164,19 @@ public class TileConduitBundle extends TileEntityEio implements IConduitBundle {
|
||||
facadeMeta = nbtRoot.getInteger("facadeMeta");
|
||||
|
||||
if(worldObj != null && worldObj.isRemote) {
|
||||
clientUpdated = true;
|
||||
if (conduits.size() == 1 && conduits.get(0) instanceof IItemConduit) {
|
||||
boolean itemConduitClientUpdated = false;
|
||||
for (Object o : Minecraft.getMinecraft().theWorld.playerEntities) {
|
||||
Entity e = ((Entity) o);
|
||||
if (e.getDistanceSq(this.xCoord, yCoord, zCoord) < 36) {
|
||||
itemConduitClientUpdated = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (itemConduitClientUpdated) clientUpdated = true;
|
||||
} else {
|
||||
clientUpdated = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (MicroblocksUtil.supportMicroblocks()) {
|
||||
|
||||
@@ -66,8 +66,8 @@ public class ExternalConnectionContainer extends ContainerEnder<InventoryUpgrade
|
||||
slotLocations.add(new Point(x, y));
|
||||
bgSlots.add(new GhostBackgroundItemSlot(EnderIO.itemBasicFilterUpgrade, slotInputFilterUpgrades));
|
||||
|
||||
x = 28;
|
||||
y = 47;
|
||||
x = 10;
|
||||
y = 83;
|
||||
slotSpeedUpgrades = addSlotToContainer(new Slot(getInv(), 0, x, y) {
|
||||
@Override
|
||||
public boolean isItemValid(ItemStack par1ItemStack) {
|
||||
@@ -108,7 +108,7 @@ public class ExternalConnectionContainer extends ContainerEnder<InventoryUpgrade
|
||||
public Point getPlayerInventoryOffset() {
|
||||
return new Point(23, 113);
|
||||
}
|
||||
|
||||
|
||||
public void addFilterListener(FilterChangeListener list) {
|
||||
filterListeners.add(list);
|
||||
}
|
||||
@@ -279,7 +279,7 @@ public class ExternalConnectionContainer extends ContainerEnder<InventoryUpgrade
|
||||
public boolean isItemValid(ItemStack par1ItemStack) {
|
||||
return inventory.isItemValidForSlot(getSlotIndex(), par1ItemStack);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -5,6 +5,8 @@ import java.awt.Rectangle;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import com.enderio.core.client.gui.button.ToggleButton;
|
||||
import crazypants.enderio.conduit.packet.PacketRoundRobinMode;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.gui.FontRenderer;
|
||||
import net.minecraft.client.gui.GuiButton;
|
||||
@@ -41,12 +43,17 @@ public class LiquidSettings extends BaseSettingsPanel {
|
||||
static final int ID_REDSTONE_BUTTON = GuiExternalConnection.nextButtonId();
|
||||
|
||||
private static final int ID_COLOR_BUTTON = GuiExternalConnection.nextButtonId();
|
||||
private static final int ID_ROUND_ROBIN_BUTTON = GuiExternalConnection.nextButtonId();
|
||||
private static final int ID_WHITELIST = GuiExternalConnection.nextButtonId();
|
||||
|
||||
private static final int NEXT_FILTER_ID = 989322;
|
||||
|
||||
private static final int ID_CHANNEL = GuiExternalConnection.nextButtonId();
|
||||
|
||||
private final RedstoneModeButton rsB;
|
||||
private final ToggleButton roundRobinB;
|
||||
private final ColorButton colorB;
|
||||
private ColorButton channelB;
|
||||
|
||||
private static final String autoExtractStr = EnderIO.lang.localize("gui.conduit.fluid.autoExtract");
|
||||
private static final String filterStr = EnderIO.lang.localize("gui.conduit.fluid.filter");
|
||||
@@ -72,9 +79,11 @@ public class LiquidSettings extends BaseSettingsPanel {
|
||||
eConduit = (EnderLiquidConduit) con;
|
||||
isEnder = true;
|
||||
|
||||
int x = gui.getXSize() - 20;
|
||||
|
||||
int x = 52;
|
||||
int y = customTop;
|
||||
|
||||
|
||||
inOutNextB = MultiIconButton.createRightArrowButton(gui, NEXT_FILTER_ID, x, y);
|
||||
|
||||
x = filterX - 20;
|
||||
@@ -87,9 +96,17 @@ public class LiquidSettings extends BaseSettingsPanel {
|
||||
gui.getContainer().setInventorySlotsVisible(false);
|
||||
}
|
||||
|
||||
int x = gap + gui.getFontRenderer().getStringWidth(autoExtractStr) + gap * 2;
|
||||
int x = 66;
|
||||
int y = customTop;
|
||||
|
||||
if(isEnder)
|
||||
{
|
||||
channelB = new ColorButton(gui, ID_CHANNEL, x, y);
|
||||
channelB.setColorIndex(0);
|
||||
channelB.setToolTipHeading(EnderIO.lang.localize("gui.conduit.item.channel"));
|
||||
x += channelB.getWidth() + gap;
|
||||
}
|
||||
|
||||
rsB = new RedstoneModeButton(gui, ID_REDSTONE_BUTTON, x, y, new IRedstoneModeControlable() {
|
||||
|
||||
@Override
|
||||
@@ -112,6 +129,16 @@ public class LiquidSettings extends BaseSettingsPanel {
|
||||
colorB = new ColorButton(gui, ID_COLOR_BUTTON, x, y);
|
||||
colorB.setToolTipHeading(EnderIO.lang.localize("gui.conduit.redstone.signalColor"));
|
||||
colorB.setColorIndex(conduit.getExtractionSignalColor(gui.getDir()).ordinal());
|
||||
|
||||
if (isEnder) {
|
||||
x += rsB.getWidth() + gap;
|
||||
roundRobinB = new ToggleButton(gui, ID_ROUND_ROBIN_BUTTON, x, y, IconEIO.ROUND_ROBIN_OFF, IconEIO.ROUND_ROBIN);
|
||||
roundRobinB.setSelectedToolTip(EnderIO.lang.localize("gui.conduit.item.roundRobinEnabled"));
|
||||
roundRobinB.setUnselectedToolTip(EnderIO.lang.localize("gui.conduit.item.roundRobinDisabled"));
|
||||
roundRobinB.setPaintSelectedBorder(false);
|
||||
} else {
|
||||
roundRobinB = null;
|
||||
}
|
||||
}
|
||||
|
||||
private void addFilterTooltips() {
|
||||
@@ -133,16 +160,48 @@ public class LiquidSettings extends BaseSettingsPanel {
|
||||
toggleBlacklist();
|
||||
} else if(guiButton.id == NEXT_FILTER_ID) {
|
||||
inOutShowIn = !inOutShowIn;
|
||||
if(channelB != null) {
|
||||
channelB.onGuiInit();
|
||||
if(isInput()) {
|
||||
channelB.setColorIndex(eConduit.getInputColor(gui.getDir()).ordinal());
|
||||
} else {
|
||||
channelB.setColorIndex(eConduit.getOutputColor(gui.getDir()).ordinal());
|
||||
}
|
||||
}
|
||||
if(isInput()) {
|
||||
if (isEnder) {
|
||||
roundRobinB.onGuiInit();
|
||||
}
|
||||
rsB.onGuiInit();
|
||||
colorB.onGuiInit();
|
||||
} else {
|
||||
if (isEnder) {
|
||||
roundRobinB.detach();
|
||||
}
|
||||
rsB.detach();
|
||||
colorB.detach();
|
||||
}
|
||||
if(isFilterVisible()) {
|
||||
updateWhiteListButton(eConduit.getFilter(gui.getDir(), isInput()));
|
||||
}
|
||||
} else if(guiButton.id == ID_CHANNEL) {
|
||||
if(isEnder) {
|
||||
|
||||
DyeColor col = DyeColor.values()[channelB.getColorIndex()];
|
||||
|
||||
if (isInput()) {
|
||||
eConduit.setInputColor(gui.getDir(), col);
|
||||
} else {
|
||||
eConduit.setOutputColor(gui.getDir(), col);
|
||||
}
|
||||
setConduitChannel(col);
|
||||
}
|
||||
} else if(guiButton.id == ID_ROUND_ROBIN_BUTTON) {
|
||||
if (isEnder && isInput()) {
|
||||
final boolean selected = roundRobinB.isSelected();
|
||||
eConduit.setRoundRobin(gui.getDir(), selected);
|
||||
PacketHandler.INSTANCE.sendToServer(new PacketRoundRobinMode(eConduit, gui.getDir()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -189,8 +248,18 @@ public class LiquidSettings extends BaseSettingsPanel {
|
||||
|
||||
protected void setConduitFilter(FluidFilter filter) {
|
||||
eConduit.setFilter(gui.getDir(), filter, isInput());
|
||||
|
||||
PacketHandler.INSTANCE.sendToServer(new PacketFluidFilter(eConduit, gui.getDir(), filter, isInput()));
|
||||
}
|
||||
protected void setConduitChannel(DyeColor channel) {
|
||||
if(isInput()) {
|
||||
eConduit.setInputColor(gui.getDir(), channel);
|
||||
} else {
|
||||
eConduit.setOutputColor(gui.getDir(), channel);
|
||||
}
|
||||
|
||||
PacketHandler.INSTANCE.sendToServer(new PacketFluidChannel(eConduit, gui.getDir(), isInput(), channel));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initCustomOptions() {
|
||||
@@ -209,6 +278,21 @@ public class LiquidSettings extends BaseSettingsPanel {
|
||||
return;
|
||||
}
|
||||
|
||||
if(conduit.getConnectionMode(gui.getDir()) == ConnectionMode.DISABLED) {
|
||||
channelB.detach();
|
||||
} else {
|
||||
channelB.onGuiInit();
|
||||
if (isInput()) {
|
||||
channelB.setColorIndex(eConduit.getInputColor(gui.getDir()).ordinal());
|
||||
} else {
|
||||
channelB.setColorIndex(eConduit.getOutputColor(gui.getDir()).ordinal());
|
||||
}
|
||||
}
|
||||
if(isInput()) {
|
||||
roundRobinB.onGuiInit();
|
||||
roundRobinB.setSelected(eConduit.isRoundRobin(gui.getDir()));
|
||||
}
|
||||
|
||||
if(isFilterVisible()) {
|
||||
gui.getContainer().setInventorySlotsVisible(true);
|
||||
addFilterTooltips();
|
||||
@@ -241,6 +325,7 @@ public class LiquidSettings extends BaseSettingsPanel {
|
||||
rsB.detach();
|
||||
colorB.detach();
|
||||
if(isEnder) {
|
||||
roundRobinB.detach();
|
||||
gui.getContainer().setInventorySlotsVisible(false);
|
||||
if(filterToolTips != null) {
|
||||
for (GuiToolTip tt : filterToolTips) {
|
||||
@@ -251,25 +336,23 @@ public class LiquidSettings extends BaseSettingsPanel {
|
||||
}
|
||||
inOutNextB.detach();
|
||||
whiteListB.detach();
|
||||
channelB.detach();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void renderCustomOptions(int top, float par1, int par2, int par3) {
|
||||
boolean isInput = isInput();
|
||||
if(isInput) {
|
||||
int x = gui.getGuiLeft() + gap + gui.getFontRenderer().getStringWidth(autoExtractStr) + gap + 2;
|
||||
int y = top;
|
||||
gui.getFontRenderer().drawString(autoExtractStr, left, y, ColorUtil.getRGB(Color.DARK_GRAY));
|
||||
}
|
||||
if(isEnder && isFilterVisible()) {
|
||||
|
||||
String inOutStr = EnderIO.lang.localize("gui.conduit.ioMode.output");
|
||||
if(conduit.getConnectionMode(gui.getDir()) == ConnectionMode.IN_OUT) {
|
||||
String inOutStr = inOutShowIn ? EnderIO.lang.localize("gui.conduit.ioMode.input") : EnderIO.lang.localize("gui.conduit.ioMode.output");
|
||||
int x = gui.getGuiLeft() + gui.getXSize() - 20 - 5 - gui.getFontRenderer().getStringWidth(inOutStr);
|
||||
int y = top;
|
||||
gui.getFontRenderer().drawString(inOutStr, x, y, ColorUtil.getRGB(Color.DARK_GRAY));
|
||||
inOutStr = inOutShowIn ? EnderIO.lang.localize("gui.conduit.ioMode.input") : EnderIO.lang.localize("gui.conduit.ioMode.output");
|
||||
} else if(conduit.getConnectionMode(gui.getDir()) == ConnectionMode.INPUT){
|
||||
inOutStr = EnderIO.lang.localize("gui.conduit.ioMode.input");
|
||||
}
|
||||
int x = left;
|
||||
int y = top;
|
||||
gui.getFontRenderer().drawString(inOutStr, x, y, ColorUtil.getRGB(Color.DARK_GRAY));
|
||||
|
||||
GL11.glColor3f(1, 1, 1);
|
||||
gui.bindGuiTexture(1);
|
||||
@@ -277,8 +360,8 @@ public class LiquidSettings extends BaseSettingsPanel {
|
||||
|
||||
FontRenderer fr = gui.getFontRenderer();
|
||||
int sw = fr.getStringWidth(filterStr);
|
||||
int x = (gui.width / 2) - sw / 2;
|
||||
int y = top + 20;
|
||||
x = (gui.width / 2) - sw / 2;
|
||||
y = top + 20;
|
||||
fr.drawString(filterStr, x, y, ColorUtil.getRGB(Color.DARK_GRAY));
|
||||
|
||||
x = gui.getGuiLeft() + filterX;
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
package crazypants.enderio.conduit.gui;
|
||||
|
||||
import com.enderio.core.common.util.DyeColor;
|
||||
import cpw.mods.fml.common.network.ByteBufUtils;
|
||||
import cpw.mods.fml.common.network.simpleimpl.IMessage;
|
||||
import cpw.mods.fml.common.network.simpleimpl.IMessageHandler;
|
||||
import cpw.mods.fml.common.network.simpleimpl.MessageContext;
|
||||
import crazypants.enderio.conduit.liquid.EnderLiquidConduit;
|
||||
import crazypants.enderio.conduit.liquid.FluidFilter;
|
||||
import crazypants.enderio.conduit.liquid.ILiquidConduit;
|
||||
import crazypants.enderio.conduit.packet.AbstractConduitPacket;
|
||||
import crazypants.enderio.conduit.packet.ConTypeEnum;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class PacketFluidChannel extends AbstractConduitPacket<ILiquidConduit> implements IMessageHandler<PacketFluidChannel, IMessage>{
|
||||
|
||||
private ForgeDirection dir;
|
||||
private boolean isInput;
|
||||
|
||||
private DyeColor channel;
|
||||
|
||||
public PacketFluidChannel() {
|
||||
}
|
||||
|
||||
public PacketFluidChannel(EnderLiquidConduit eConduit, ForgeDirection dir, boolean isInput, DyeColor channel) {
|
||||
super(eConduit.getBundle().getEntity(), ConTypeEnum.FLUID);
|
||||
this.dir = dir;
|
||||
this.isInput = isInput;
|
||||
this.channel = channel;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void toBytes(ByteBuf buf) {
|
||||
super.toBytes(buf);
|
||||
buf.writeShort(dir.ordinal());
|
||||
buf.writeBoolean(isInput);
|
||||
buf.writeShort(channel.ordinal());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fromBytes(ByteBuf buf) {
|
||||
super.fromBytes(buf);
|
||||
dir = ForgeDirection.values()[buf.readShort()];
|
||||
isInput = buf.readBoolean();
|
||||
channel = DyeColor.values()[buf.readShort()];
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMessage onMessage(PacketFluidChannel message, MessageContext ctx) {
|
||||
ILiquidConduit conduit = message.getTileCasted(ctx);
|
||||
if(! (conduit instanceof EnderLiquidConduit)) {
|
||||
return null;
|
||||
}
|
||||
EnderLiquidConduit eCon = (EnderLiquidConduit)conduit;
|
||||
|
||||
if(message.isInput)
|
||||
eCon.setInputColor(message.dir, message.channel);
|
||||
else
|
||||
eCon.setOutputColor(message.dir, message.channel);
|
||||
|
||||
message.getWorld(ctx).markBlockForUpdate(message.x, message.y, message.z);
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,20 +1,16 @@
|
||||
package crazypants.enderio.conduit.gui.item;
|
||||
|
||||
import net.minecraft.client.gui.GuiButton;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.enderio.core.client.gui.GuiContainerBase;
|
||||
import com.enderio.core.client.gui.button.CycleButton;
|
||||
import com.enderio.core.client.gui.button.IconButton;
|
||||
import com.enderio.core.client.gui.button.ToggleButton;
|
||||
|
||||
import crazypants.enderio.EnderIO;
|
||||
import crazypants.enderio.conduit.gui.GuiExternalConnection;
|
||||
import crazypants.enderio.conduit.item.filter.FuzzyMode;
|
||||
import crazypants.enderio.conduit.item.filter.ItemFilter;
|
||||
import crazypants.enderio.gui.GuiContainerBaseEIO;
|
||||
import crazypants.enderio.gui.IconEIO;
|
||||
import net.minecraft.client.gui.GuiButton;
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
public class BasicItemFilterGui implements IItemFilterGui {
|
||||
|
||||
@@ -66,7 +62,7 @@ public class BasicItemFilterGui implements IItemFilterGui {
|
||||
int x = butLeft;
|
||||
int y = yOffset + 1;
|
||||
whiteListB = new IconButton(gui, ID_WHITELIST + buttonIdOffset, x, y, IconEIO.FILTER_WHITELIST);
|
||||
whiteListB.setToolTip(EnderIO.lang.localize("gui.conduit.item.whitelist"));
|
||||
whiteListB.setToolTip(getWhitelistTooltips(false));
|
||||
|
||||
x += 20;
|
||||
useMetaB = new ToggleButton(gui, ID_META + buttonIdOffset, x, y, IconEIO.FILTER_META_OFF, IconEIO.FILTER_META);
|
||||
@@ -135,16 +131,14 @@ public class BasicItemFilterGui implements IItemFilterGui {
|
||||
useMetaB.setSelected(activeFilter.isMatchMeta());
|
||||
|
||||
whiteListB.onGuiInit();
|
||||
whiteListB.setToolTip(getWhitelistTooltips(activeFilter.isBlacklist()));
|
||||
if(activeFilter.isBlacklist()) {
|
||||
whiteListB.setIcon(IconEIO.FILTER_BLACKLIST);
|
||||
whiteListB.setToolTip(EnderIO.lang.localize("gui.conduit.item.blacklist"));
|
||||
} else {
|
||||
whiteListB.setIcon(IconEIO.FILTER_WHITELIST);
|
||||
whiteListB.setToolTip(EnderIO.lang.localize("gui.conduit.item.whitelist"));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void actionPerformed(GuiButton guiButton) {
|
||||
|
||||
@@ -193,5 +187,20 @@ public class BasicItemFilterGui implements IItemFilterGui {
|
||||
gui.drawTexturedModalRect(gui.getGuiLeft() + xOffset, gui.getGuiTop() + yOffset + 20, 0, 238, 18 * 5, 18);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private String[] getWhitelistTooltips(boolean isBlacklist) {
|
||||
if(isBlacklist) {
|
||||
return new String[]{
|
||||
EnderIO.lang.localize("gui.conduit.item.blacklist"),
|
||||
EnderIO.lang.localize("gui.conduit.item.blacklist.tooltip.0"),
|
||||
EnderIO.lang.localize("gui.conduit.item.blacklist.tooltip.1")
|
||||
};
|
||||
} else {
|
||||
return new String[]{
|
||||
EnderIO.lang.localize("gui.conduit.item.whitelist"),
|
||||
EnderIO.lang.localize("gui.conduit.item.whitelist.tooltip.0"),
|
||||
EnderIO.lang.localize("gui.conduit.item.whitelist.tooltip.1")
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,197 @@
|
||||
package crazypants.enderio.conduit.gui.item;
|
||||
|
||||
import net.minecraft.client.gui.GuiButton;
|
||||
|
||||
import org.lwjgl.opengl.GL11;
|
||||
|
||||
import com.enderio.core.client.gui.GuiContainerBase;
|
||||
import com.enderio.core.client.gui.button.CycleButton;
|
||||
import com.enderio.core.client.gui.button.IconButton;
|
||||
import com.enderio.core.client.gui.button.ToggleButton;
|
||||
|
||||
import crazypants.enderio.EnderIO;
|
||||
import crazypants.enderio.conduit.gui.GuiExternalConnection;
|
||||
import crazypants.enderio.conduit.item.filter.FuzzyMode;
|
||||
import crazypants.enderio.conduit.item.filter.ItemFilter;
|
||||
import crazypants.enderio.gui.GuiContainerBaseEIO;
|
||||
import crazypants.enderio.gui.IconEIO;
|
||||
|
||||
public class BigItemFilterGui implements IItemFilterGui {
|
||||
|
||||
private static final int ID_WHITELIST = GuiExternalConnection.nextButtonId();
|
||||
private static final int ID_NBT = GuiExternalConnection.nextButtonId();
|
||||
private static final int ID_META = GuiExternalConnection.nextButtonId();
|
||||
private static final int ID_ORE_DICT = GuiExternalConnection.nextButtonId();
|
||||
private static final int ID_STICKY = GuiExternalConnection.nextButtonId();
|
||||
private static final int ID_FUZZY = GuiExternalConnection.nextButtonId();
|
||||
|
||||
private final GuiContainerBaseEIO gui;
|
||||
|
||||
private final ToggleButton useMetaB;
|
||||
private final ToggleButton useNbtB;
|
||||
private final IconButton whiteListB;
|
||||
private final ToggleButton useOreDictB;
|
||||
private final ToggleButton stickyB;
|
||||
private final CycleButton<FuzzyMode> fuzzyB;
|
||||
|
||||
final boolean isAdvanced;
|
||||
final boolean isStickyModeAvailable;
|
||||
|
||||
private final IItemFilterContainer filterContainer;
|
||||
private final ItemFilter filter;
|
||||
|
||||
private int buttonIdOffset;
|
||||
private int xOffset;
|
||||
private int yOffset;
|
||||
|
||||
public BigItemFilterGui(GuiContainerBaseEIO gui, IItemFilterContainer filterContainer, boolean isStickyModeAvailable) {
|
||||
this(gui, filterContainer, isStickyModeAvailable, 32, 48, 0);
|
||||
}
|
||||
|
||||
public BigItemFilterGui(GuiContainerBaseEIO gui, IItemFilterContainer filterContainer, boolean isStickyModeAvailable,
|
||||
int xOffset, int yOffset,
|
||||
int buttonIdOffset) {
|
||||
this.gui = gui;
|
||||
this.isStickyModeAvailable = isStickyModeAvailable;
|
||||
this.filterContainer = filterContainer;
|
||||
this.xOffset = xOffset;
|
||||
this.yOffset = yOffset;
|
||||
this.buttonIdOffset = buttonIdOffset;
|
||||
|
||||
filter = filterContainer.getItemFilter();
|
||||
|
||||
isAdvanced = filter.isAdvanced();
|
||||
|
||||
int butLeft = xOffset + 92+ 54;
|
||||
int x = butLeft;
|
||||
int y = yOffset + 40;
|
||||
whiteListB = new IconButton(gui, ID_WHITELIST + buttonIdOffset, x, y, IconEIO.FILTER_WHITELIST);
|
||||
whiteListB.setToolTip(EnderIO.lang.localize("gui.conduit.item.whitelist"));
|
||||
|
||||
y -= 20;
|
||||
useMetaB = new ToggleButton(gui, ID_META + buttonIdOffset, x, y, IconEIO.FILTER_META_OFF, IconEIO.FILTER_META);
|
||||
useMetaB.setSelectedToolTip(EnderIO.lang.localize("gui.conduit.item.matchMetaData"));
|
||||
useMetaB.setUnselectedToolTip(EnderIO.lang.localize("gui.conduit.item.ignoreMetaData"));
|
||||
useMetaB.setPaintSelectedBorder(false);
|
||||
|
||||
stickyB = new ToggleButton(gui, ID_STICKY + buttonIdOffset, x, y, IconEIO.FILTER_STICKY_OFF, IconEIO.FILTER_STICKY);
|
||||
stickyB.setSelectedToolTip(EnderIO.lang.localizeList("gui.conduit.item.stickyEnabled"));
|
||||
stickyB.setUnselectedToolTip(EnderIO.lang.localize("gui.conduit.item.stickyDisbaled"));
|
||||
stickyB.setPaintSelectedBorder(false);
|
||||
|
||||
y -= 20;
|
||||
useOreDictB = new ToggleButton(gui, ID_ORE_DICT + buttonIdOffset, x, y, IconEIO.FILTER_ORE_DICT_OFF, IconEIO.FILTER_ORE_DICT);
|
||||
useOreDictB.setSelectedToolTip(EnderIO.lang.localize("gui.conduit.item.oreDicEnabled"));
|
||||
useOreDictB.setUnselectedToolTip(EnderIO.lang.localize("gui.conduit.item.oreDicDisabled"));
|
||||
useOreDictB.setPaintSelectedBorder(false);
|
||||
|
||||
y -= 20;
|
||||
useNbtB = new ToggleButton(gui, ID_NBT + buttonIdOffset, x, y, IconEIO.FILTER_NBT_OFF, IconEIO.FILTER_NBT);
|
||||
useNbtB.setSelectedToolTip(EnderIO.lang.localize("gui.conduit.item.matchNBT"));
|
||||
useNbtB.setUnselectedToolTip(EnderIO.lang.localize("gui.conduit.item.ignoreNBT"));
|
||||
useNbtB.setPaintSelectedBorder(false);
|
||||
|
||||
y -= 20;
|
||||
fuzzyB = new CycleButton(gui, ID_FUZZY + buttonIdOffset, x, y, FuzzyMode.class);
|
||||
}
|
||||
|
||||
public void createFilterSlots() {
|
||||
filter.createGhostSlots(gui.getGhostSlots(), xOffset+1, yOffset+1, new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
sendFilterChange();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseClicked(int x, int y, int par3) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateButtons() {
|
||||
ItemFilter activeFilter = filter;
|
||||
|
||||
if(isAdvanced) {
|
||||
useNbtB.onGuiInit();
|
||||
useNbtB.setSelected(activeFilter.isMatchNBT());
|
||||
|
||||
useOreDictB.onGuiInit();
|
||||
useOreDictB.setSelected(activeFilter.isUseOreDict());
|
||||
|
||||
if(isStickyModeAvailable) {
|
||||
stickyB.onGuiInit();
|
||||
stickyB.setSelected(activeFilter.isSticky());
|
||||
}
|
||||
|
||||
fuzzyB.onGuiInit();
|
||||
fuzzyB.setMode(activeFilter.getFuzzyMode());
|
||||
}
|
||||
|
||||
useMetaB.onGuiInit();
|
||||
useMetaB.setSelected(activeFilter.isMatchMeta());
|
||||
|
||||
whiteListB.onGuiInit();
|
||||
if(activeFilter.isBlacklist()) {
|
||||
whiteListB.setIcon(IconEIO.FILTER_BLACKLIST);
|
||||
whiteListB.setToolTip(EnderIO.lang.localize("gui.conduit.item.blacklist"));
|
||||
} else {
|
||||
whiteListB.setIcon(IconEIO.FILTER_WHITELIST);
|
||||
whiteListB.setToolTip(EnderIO.lang.localize("gui.conduit.item.whitelist"));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void actionPerformed(GuiButton guiButton) {
|
||||
|
||||
if(guiButton.id == ID_META + buttonIdOffset) {
|
||||
filter.setMatchMeta(useMetaB.isSelected());
|
||||
sendFilterChange();
|
||||
} else if(guiButton.id == ID_NBT + buttonIdOffset) {
|
||||
filter.setMatchNBT(useNbtB.isSelected());
|
||||
sendFilterChange();
|
||||
} else if(guiButton.id == ID_STICKY + buttonIdOffset) {
|
||||
filter.setSticky(stickyB.isSelected());
|
||||
sendFilterChange();
|
||||
} else if(guiButton.id == ID_ORE_DICT + buttonIdOffset) {
|
||||
filter.setUseOreDict(useOreDictB.isSelected());
|
||||
sendFilterChange();
|
||||
} else if(guiButton.id == ID_FUZZY + buttonIdOffset) {
|
||||
filter.setFuzzyMode(fuzzyB.getMode());
|
||||
sendFilterChange();
|
||||
} else if(guiButton.id == ID_WHITELIST + buttonIdOffset) {
|
||||
filter.setBlacklist(!filter.isBlacklist());
|
||||
sendFilterChange();
|
||||
}
|
||||
}
|
||||
|
||||
private void sendFilterChange() {
|
||||
updateButtons();
|
||||
filterContainer.onFilterChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deactivate() {
|
||||
useNbtB.detach();
|
||||
useMetaB.detach();
|
||||
useOreDictB.detach();
|
||||
whiteListB.detach();
|
||||
stickyB.detach();
|
||||
fuzzyB.detach();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void renderCustomOptions(int top, float par1, int par2, int par3) {
|
||||
GL11.glColor3f(1, 1, 1);
|
||||
gui.bindGuiTexture(1);
|
||||
|
||||
gui.drawTexturedModalRect(gui.getGuiLeft() + xOffset + 54, gui.getGuiTop() + yOffset, 0, 238, 18 * 5, 18);
|
||||
gui.drawTexturedModalRect(gui.getGuiLeft() + xOffset, gui.getGuiTop() + yOffset, 0, 238, 18 * 5, 18);
|
||||
gui.drawTexturedModalRect(gui.getGuiLeft() + xOffset + 54, gui.getGuiTop() + yOffset + 20, 0, 238, 18 * 5, 18);
|
||||
gui.drawTexturedModalRect(gui.getGuiLeft() + xOffset, gui.getGuiTop() + yOffset + 20, 0, 238, 18 * 5, 18);
|
||||
gui.drawTexturedModalRect(gui.getGuiLeft() + xOffset + 54, gui.getGuiTop() + yOffset + 40, 0, 238, 18 * 5, 18);
|
||||
gui.drawTexturedModalRect(gui.getGuiLeft() + xOffset, gui.getGuiTop() + yOffset + 40, 0, 238, 18 * 5, 18);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -69,7 +69,7 @@ public class ItemSettings extends BaseSettingsPanel {
|
||||
|
||||
private final RedstoneModeButton rsB;
|
||||
private final ColorButton colorB;
|
||||
|
||||
|
||||
private ColorButton channelB;
|
||||
|
||||
boolean inOutShowIn = false;
|
||||
@@ -98,18 +98,18 @@ public class ItemSettings extends BaseSettingsPanel {
|
||||
|
||||
nextFilterB = MultiIconButton.createRightArrowButton(gui, NEXT_FILTER_ID, x, y);
|
||||
|
||||
x = 66;
|
||||
x = 66;
|
||||
channelB = new ColorButton(gui, ID_CHANNEL, x, y);
|
||||
channelB.setColorIndex(0);
|
||||
channelB.setToolTipHeading(EnderIO.lang.localize("gui.conduit.item.channel"));
|
||||
|
||||
|
||||
filterUpgradeTooltip = new GuiToolTip(new Rectangle(x - 21 - 18 * 2, customTop + 3 + 16, 18, 18), EnderIO.lang.localize("gui.conduit.item.filterupgrade")) {
|
||||
@Override
|
||||
public boolean shouldDraw() {
|
||||
return !gui.getContainer().hasFilterUpgrades(isInputVisible()) && super.shouldDraw();
|
||||
}
|
||||
};
|
||||
speedUpgradeTooltip = new GuiToolTip(new Rectangle(x - 21 - 18, customTop + 3 + 16, 18, 18), EnderIO.lang.localize("gui.conduit.item.speedupgrade"), EnderIO.lang.localize("gui.conduit.item.speedupgrade2")) {
|
||||
speedUpgradeTooltip = new GuiToolTip(new Rectangle(x - 21 - 18*2, customTop + 3 + 16 + 36, 18, 18), EnderIO.lang.localize("gui.conduit.item.speedupgrade"), EnderIO.lang.localize("gui.conduit.item.speedupgrade2")) {
|
||||
@Override
|
||||
public boolean shouldDraw() {
|
||||
return !gui.getContainer().hasSpeedUpgrades() && super.shouldDraw();
|
||||
@@ -128,9 +128,9 @@ public class ItemSettings extends BaseSettingsPanel {
|
||||
}
|
||||
};
|
||||
|
||||
x += channelB.getWidth() + 4;
|
||||
x += channelB.getWidth() + gap;
|
||||
priLeft = x - 8;
|
||||
|
||||
|
||||
rsB = new RedstoneModeButton(gui, ID_REDSTONE_BUTTON, x, y, new IRedstoneModeControlable() {
|
||||
|
||||
@Override
|
||||
@@ -149,26 +149,26 @@ public class ItemSettings extends BaseSettingsPanel {
|
||||
}
|
||||
});
|
||||
|
||||
x += rsB.getWidth() + 4;
|
||||
x += rsB.getWidth() + gap;
|
||||
colorB = new ColorButton(gui, ID_COLOR_BUTTON, x, y);
|
||||
colorB.setColorIndex(itemConduit.getExtractionSignalColor(gui.getDir()).ordinal());
|
||||
colorB.setToolTipHeading(EnderIO.lang.localize("gui.conduit.item.sigCol"));
|
||||
|
||||
x += 4 + colorB.getWidth();
|
||||
x += gap + colorB.getWidth();
|
||||
roundRobinB = new ToggleButton(gui, ID_ROUND_ROBIN, x, y, IconEIO.ROUND_ROBIN_OFF, IconEIO.ROUND_ROBIN);
|
||||
roundRobinB.setSelectedToolTip(EnderIO.lang.localize("gui.conduit.item.roundRobinEnabled"));
|
||||
roundRobinB.setUnselectedToolTip(EnderIO.lang.localize("gui.conduit.item.roundRobinDisabled"));
|
||||
roundRobinB.setPaintSelectedBorder(false);
|
||||
|
||||
x += 4 + roundRobinB.getWidth();
|
||||
x += gap + roundRobinB.getWidth();
|
||||
loopB = new ToggleButton(gui, ID_LOOP, x, y, IconEIO.LOOP_OFF, IconEIO.LOOP);
|
||||
loopB.setSelectedToolTip(EnderIO.lang.localize("gui.conduit.item.selfFeedEnabled"));
|
||||
loopB.setUnselectedToolTip(EnderIO.lang.localize("gui.conduit.item.selfFeedDisabled"));
|
||||
loopB.setPaintSelectedBorder(false);
|
||||
|
||||
priorityTooltip = new GuiToolTip(new Rectangle(priLeft + 9, y, priWidth, 16), EnderIO.lang.localize("gui.conduit.item.priority"));
|
||||
|
||||
x = priLeft + priWidth + 9;
|
||||
|
||||
x = priLeft + priWidth + 9;
|
||||
priUpB = MultiIconButton.createAddButton(gui, ID_PRIORITY_UP, x, y);
|
||||
priDownB = MultiIconButton.createMinusButton(gui, ID_PRIORITY_DOWN, x, y+8);
|
||||
|
||||
@@ -212,7 +212,7 @@ public class ItemSettings extends BaseSettingsPanel {
|
||||
|
||||
ConnectionMode mode = con.getConnectionMode(gui.getDir());
|
||||
if(mode == ConnectionMode.INPUT) {
|
||||
showInput = true;
|
||||
showInput = true;
|
||||
} else if(mode == ConnectionMode.OUTPUT) {
|
||||
showOutput = true;
|
||||
} else if(mode == ConnectionMode.IN_OUT) {
|
||||
@@ -257,7 +257,7 @@ public class ItemSettings extends BaseSettingsPanel {
|
||||
return;
|
||||
}
|
||||
boolean outputActive = (mode == ConnectionMode.IN_OUT && !inOutShowIn) || (mode == ConnectionMode.OUTPUT);
|
||||
|
||||
|
||||
if(!outputActive) {
|
||||
|
||||
rsB.onGuiInit();
|
||||
@@ -286,12 +286,12 @@ public class ItemSettings extends BaseSettingsPanel {
|
||||
priDownB.onGuiInit();
|
||||
gui.addToolTip(priorityTooltip);
|
||||
}
|
||||
|
||||
|
||||
int chanCol;
|
||||
if(!outputActive) {
|
||||
chanCol = itemConduit.getInputColor(gui.getDir()).ordinal();
|
||||
} else {
|
||||
chanCol = itemConduit.getOutputColor(gui.getDir()).ordinal();
|
||||
chanCol = itemConduit.getInputColor(gui.getDir()).ordinal();
|
||||
} else {
|
||||
chanCol = itemConduit.getOutputColor(gui.getDir()).ordinal();
|
||||
}
|
||||
channelB.onGuiInit();
|
||||
channelB.setColorIndex(chanCol);
|
||||
@@ -324,12 +324,12 @@ public class ItemSettings extends BaseSettingsPanel {
|
||||
sendFilterChange();
|
||||
} else if(guiButton.id == ID_CHANNEL) {
|
||||
|
||||
DyeColor col = DyeColor.values()[channelB.getColorIndex()];
|
||||
DyeColor col = DyeColor.values()[channelB.getColorIndex()];
|
||||
if(isInputVisible()) {
|
||||
itemConduit.setInputColor(gui.getDir(), col);
|
||||
} else {
|
||||
itemConduit.setOutputColor(gui.getDir(), col);
|
||||
}
|
||||
}
|
||||
sendFilterChange();
|
||||
}
|
||||
|
||||
@@ -343,7 +343,7 @@ public class ItemSettings extends BaseSettingsPanel {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mouseClicked(int x, int y, int par3) {
|
||||
public void mouseClicked(int x, int y, int par3) {
|
||||
super.mouseClicked(x, y, par3);
|
||||
if(filterGui != null) {
|
||||
filterGui.mouseClicked(x, y, par3);
|
||||
@@ -351,7 +351,7 @@ public class ItemSettings extends BaseSettingsPanel {
|
||||
}
|
||||
|
||||
private boolean isInputVisible() {
|
||||
ConnectionMode mode = con.getConnectionMode(gui.getDir());
|
||||
ConnectionMode mode = con.getConnectionMode(gui.getDir());
|
||||
return (mode == ConnectionMode.IN_OUT && inOutShowIn) || (mode == ConnectionMode.INPUT);
|
||||
}
|
||||
|
||||
@@ -388,9 +388,9 @@ public class ItemSettings extends BaseSettingsPanel {
|
||||
//draw speed upgrade slot
|
||||
GL11.glColor3f(1, 1, 1);
|
||||
gui.bindGuiTexture(1);
|
||||
gui.drawTexturedModalRect(gui.getGuiLeft() + 9 + 18, gui.getGuiTop() + 46, 94, 238, 18, 18);
|
||||
gui.drawTexturedModalRect(gui.getGuiLeft() + 9, gui.getGuiTop() + 46 +18 +18, 94, 238, 18, 18);
|
||||
}
|
||||
|
||||
|
||||
//filter upgrade slot
|
||||
GL11.glColor3f(1, 1, 1);
|
||||
gui.bindGuiTexture(1);
|
||||
|
||||
@@ -1,16 +1,15 @@
|
||||
package crazypants.enderio.conduit.item.filter;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
import com.enderio.core.api.client.render.IWidgetIcon;
|
||||
import com.enderio.core.client.gui.button.CycleButton;
|
||||
|
||||
import crazypants.enderio.EnderIO;
|
||||
import crazypants.enderio.gui.IconEIO;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
public enum FuzzyMode implements CycleButton.ICycleEnum {
|
||||
DISABLED(IconEIO.FILTER_FUZZY_DISABLED) {
|
||||
@@ -63,7 +62,13 @@ public enum FuzzyMode implements CycleButton.ICycleEnum {
|
||||
|
||||
@Override
|
||||
public List<String> getTooltipLines() {
|
||||
return Collections.singletonList(EnderIO.lang.localize("gui.conduit.item.fuzzy.".concat(name().toLowerCase(Locale.US))));
|
||||
return Arrays.asList(
|
||||
EnderIO.lang.localize("gui.conduit.item.fuzzy.".concat(name().toLowerCase(Locale.US))),
|
||||
EnumChatFormatting.GRAY + EnderIO.lang.localize("gui.conduit.item.fuzzy.tooltip.0"),
|
||||
EnumChatFormatting.GRAY + EnderIO.lang.localize("gui.conduit.item.fuzzy.tooltip.1"),
|
||||
EnumChatFormatting.GRAY + EnderIO.lang.localize("gui.conduit.item.fuzzy.tooltip.2",
|
||||
EnderIO.lang.localize("gui.conduit.item.whitelist"))
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -38,9 +38,9 @@ public class ItemBigItemFilter extends ItemBasicItemFilter {
|
||||
int damage = MathHelper.clamp_int(stack.getItemDamage(), 0, 1);
|
||||
ItemFilter filter;
|
||||
if(damage == 0) {
|
||||
filter = new ItemFilter(30,false);
|
||||
filter = new ItemFilterBig(24, false);
|
||||
} else {
|
||||
filter = new ItemFilter(30,true);
|
||||
filter = new ItemFilterBig(24, true);
|
||||
}
|
||||
if(stack.stackTagCompound != null && stack.stackTagCompound.hasKey("filter")) {
|
||||
filter.readFromNBT(stack.stackTagCompound.getCompoundTag("filter"));
|
||||
@@ -48,6 +48,13 @@ public class ItemBigItemFilter extends ItemBasicItemFilter {
|
||||
return filter;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public IIcon getIconFromDamage(int damage) {
|
||||
damage = MathHelper.clamp_int(damage, 0, 1);
|
||||
return icons[damage];
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void registerIcons(IIconRegister IIconRegister) {
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
package crazypants.enderio.conduit.item.filter;
|
||||
|
||||
import com.enderio.core.client.gui.widget.GhostSlot;
|
||||
import com.enderio.core.common.network.NetworkUtil;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import crazypants.enderio.conduit.gui.GuiExternalConnection;
|
||||
import crazypants.enderio.conduit.gui.item.BasicItemFilterGui;
|
||||
import crazypants.enderio.conduit.gui.item.IItemFilterGui;
|
||||
import crazypants.enderio.conduit.gui.item.ItemConduitFilterContainer;
|
||||
import crazypants.enderio.conduit.item.IItemConduit;
|
||||
import crazypants.enderio.conduit.item.NetworkedInventory;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.inventory.IInventory;
|
||||
import net.minecraft.item.Item;
|
||||
@@ -19,12 +19,9 @@ import net.minecraft.nbt.NBTBase;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraftforge.oredict.OreDictionary;
|
||||
|
||||
import com.enderio.core.client.gui.widget.GhostSlot;
|
||||
import com.enderio.core.common.network.NetworkUtil;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import crazypants.enderio.conduit.item.NetworkedInventory;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class ItemFilter implements IInventory, IItemFilter {
|
||||
|
||||
@@ -93,43 +90,56 @@ public class ItemFilter implements IInventory, IItemFilter {
|
||||
return doesItemPassFilter(item);
|
||||
}
|
||||
|
||||
@SuppressWarnings("SimplifiableConditionalExpression")
|
||||
public boolean doesItemPassFilter(ItemStack item) {
|
||||
if(!isValid()) {
|
||||
return true;
|
||||
}
|
||||
boolean matched = itemMatched(item);
|
||||
return isBlacklist ? !matched : matched;
|
||||
boolean allow = isValid() && itemMatched(item);
|
||||
|
||||
return isBlacklist ? !allow : allow;
|
||||
}
|
||||
|
||||
private boolean itemMatched(ItemStack item) {
|
||||
if(item == null) {
|
||||
return false;
|
||||
}
|
||||
boolean doFuzzy = false;
|
||||
boolean fuzzyValue = false;
|
||||
if(fuzzyMode != FuzzyMode.DISABLED && item.getItem().isDamageable()) {
|
||||
doFuzzy = true;
|
||||
fuzzyValue = fuzzyMode.compare(item);
|
||||
|
||||
boolean checkDamage = fuzzyMode != FuzzyMode.DISABLED;
|
||||
boolean damageMatched = false;
|
||||
if(checkDamage && item.getItem().isDamageable()) {
|
||||
damageMatched = fuzzyMode.compare(item);
|
||||
}
|
||||
|
||||
if(isItemListEmpty()) {
|
||||
if (checkDamage) {
|
||||
return damageMatched;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
boolean matched = false;
|
||||
int i = 0;
|
||||
for (ItemStack it : items) {
|
||||
if(it != null && Item.getIdFromItem(item.getItem()) == Item.getIdFromItem(it.getItem())) {
|
||||
|
||||
for (int i = 0; i < items.length; i++) {
|
||||
ItemStack it = items[i];
|
||||
|
||||
if (it != null && Item.getIdFromItem(item.getItem()) == Item.getIdFromItem(it.getItem())) {
|
||||
matched = true;
|
||||
boolean fuzzyOk = doFuzzy && fuzzyMode.compare(it) == fuzzyValue;
|
||||
if(matchMeta && !fuzzyOk && item.getItemDamage() != it.getItemDamage()) {
|
||||
|
||||
if(checkDamage && !damageMatched) {
|
||||
matched = false;
|
||||
} else if(matchNBT && !isNBTMatch(item, it)) {
|
||||
} else if (matchMeta && item.getItemDamage() != it.getItemDamage()) {
|
||||
matched = false;
|
||||
}else if (matchNBT && !isNBTMatch(item, it)) {
|
||||
matched = false;
|
||||
}
|
||||
}
|
||||
if(!matched && useOreDict && isOreDicMatch(i, item)) {
|
||||
|
||||
if (!matched && useOreDict && isOreDicMatch(i, item)) {
|
||||
matched = true;
|
||||
}
|
||||
if(matched) {
|
||||
|
||||
if (matched) {
|
||||
break;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
return matched;
|
||||
}
|
||||
@@ -184,12 +194,21 @@ public class ItemFilter implements IInventory, IItemFilter {
|
||||
|
||||
@Override
|
||||
public boolean isValid() {
|
||||
//allows fuzzy mode to be not dependent from filter items
|
||||
if(fuzzyMode != FuzzyMode.DISABLED) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return !isItemListEmpty();
|
||||
}
|
||||
|
||||
private boolean isItemListEmpty() {
|
||||
for (ItemStack item : items) {
|
||||
if(item != null) {
|
||||
return true;
|
||||
if (item != null) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean isBlacklist() {
|
||||
@@ -285,6 +304,7 @@ public class ItemFilter implements IInventory, IItemFilter {
|
||||
numItems = nbtRoot.getInteger("numItems");
|
||||
|
||||
if(numItems<10 && isAdvanced) numItems = 10;
|
||||
else if(numItems<5 && !isAdvanced) numItems = 5;
|
||||
|
||||
items = new ItemStack[numItems];
|
||||
oreIds.clear();
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
package crazypants.enderio.conduit.item.filter;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.enderio.core.client.gui.widget.GhostSlot;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import crazypants.enderio.conduit.gui.GuiExternalConnection;
|
||||
import crazypants.enderio.conduit.gui.item.BasicItemFilterGui;
|
||||
import crazypants.enderio.conduit.gui.item.BigItemFilterGui;
|
||||
import crazypants.enderio.conduit.gui.item.IItemFilterGui;
|
||||
import crazypants.enderio.conduit.gui.item.ItemConduitFilterContainer;
|
||||
import crazypants.enderio.conduit.item.IItemConduit;
|
||||
|
||||
public class ItemFilterBig extends ItemFilter {
|
||||
|
||||
public ItemFilterBig() {
|
||||
this(24,false);
|
||||
}
|
||||
|
||||
public ItemFilterBig(int numItems, boolean isAdvanced) {
|
||||
super(numItems, isAdvanced);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getInventoryName() {
|
||||
return "Big Item Filter";
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public IItemFilterGui getGui(GuiExternalConnection gui, IItemConduit itemConduit, boolean isInput) {
|
||||
ItemConduitFilterContainer cont = new ItemConduitFilterContainer(itemConduit, gui.getDir(), isInput);
|
||||
BigItemFilterGui bigItemFilterGui = new BigItemFilterGui(gui, cont, !isInput);
|
||||
bigItemFilterGui.createFilterSlots();
|
||||
return bigItemFilterGui;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void createGhostSlots(List<GhostSlot> slots, int xOffset, int yOffset, Runnable cb) {
|
||||
int topY = yOffset;
|
||||
int leftX = xOffset;
|
||||
int index = 0;
|
||||
int numRows = (int) Math.ceil(items.length/8);
|
||||
for (int row = 0; row < numRows; ++row) {
|
||||
for (int col = 0; col < 8; ++col) {
|
||||
int x = leftX + col * 18;
|
||||
int y = topY + row * 20;
|
||||
slots.add(new ItemFilterGhostSlot(index, x, y, cb));
|
||||
index++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSlotCount() {
|
||||
return getSizeInventory();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
// return "ItemFilter [isBlacklist=" + isBlacklist + ", matchMeta=" + matchMeta + ", matchNBT=" + matchNBT + ", useOreDict=" + useOreDict + ", sticky="
|
||||
// + sticky + ", items=" + Arrays.toString(items) + ", oreIds=" + Arrays.toString(oreIds) + ", isAdvanced=" + isAdvanced + "]";
|
||||
return "Big"+super.toString();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,10 +1,17 @@
|
||||
package crazypants.enderio.conduit.liquid;
|
||||
|
||||
import java.util.EnumMap;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import com.enderio.core.common.util.DyeColor;
|
||||
|
||||
import com.enderio.core.client.render.IconUtil;
|
||||
import com.enderio.core.common.util.BlockCoord;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import crazypants.enderio.EnderIO;
|
||||
import crazypants.enderio.conduit.*;
|
||||
import crazypants.enderio.conduit.geom.CollidableComponent;
|
||||
import crazypants.enderio.conduit.item.ItemConduit;
|
||||
import crazypants.enderio.machine.RedstoneControlMode;
|
||||
import crazypants.enderio.tool.ToolUtil;
|
||||
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
@@ -17,28 +24,22 @@ import net.minecraftforge.fluids.Fluid;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
import net.minecraftforge.fluids.FluidTankInfo;
|
||||
|
||||
import com.enderio.core.client.render.IconUtil;
|
||||
import com.enderio.core.common.util.BlockCoord;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import crazypants.enderio.EnderIO;
|
||||
import crazypants.enderio.conduit.AbstractConduitNetwork;
|
||||
import crazypants.enderio.conduit.ConduitUtil;
|
||||
import crazypants.enderio.conduit.ConnectionMode;
|
||||
import crazypants.enderio.conduit.IConduit;
|
||||
import crazypants.enderio.conduit.RaytraceResult;
|
||||
import crazypants.enderio.conduit.geom.CollidableComponent;
|
||||
import crazypants.enderio.machine.RedstoneControlMode;
|
||||
import crazypants.enderio.tool.ToolUtil;
|
||||
import java.util.EnumMap;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
public class EnderLiquidConduit extends AbstractLiquidConduit {
|
||||
|
||||
public static final String ICON_KEY = "enderio:liquidConduitEnder";
|
||||
public static final String ICON_CORE_KEY = "enderio:liquidConduitCoreEnder";
|
||||
public static final String ICON_EXTRACT_KEY = "enderio:liquidConduitAdvancedInput";
|
||||
public static final String ICON_INSERT_KEY = "enderio:liquidConduitAdvancedOutput";
|
||||
public static final String ICON_IN_OUT_KEY = "enderio:liquidConduitAdvancedInOut";
|
||||
|
||||
public static final String ICON_KEY_INPUT = ItemConduit.ICON_KEY_INPUT;
|
||||
public static final String ICON_KEY_OUTPUT = ItemConduit.ICON_KEY_OUTPUT;
|
||||
public static final String ICON_KEY_IN_OUT_BG = ItemConduit.ICON_KEY_IN_OUT_BG;
|
||||
public static final String ICON_KEY_IN_OUT_OUT = ItemConduit.ICON_KEY_IN_OUT_OUT;
|
||||
public static final String ICON_KEY_IN_OUT_IN = ItemConduit.ICON_KEY_IN_OUT_IN;
|
||||
|
||||
static final Map<String, IIcon> ICONS = new HashMap<String, IIcon>();
|
||||
|
||||
@@ -50,9 +51,12 @@ public class EnderLiquidConduit extends AbstractLiquidConduit {
|
||||
public void registerIcons(IIconRegister register) {
|
||||
ICONS.put(ICON_KEY, register.registerIcon(ICON_KEY));
|
||||
ICONS.put(ICON_CORE_KEY, register.registerIcon(ICON_CORE_KEY));
|
||||
ICONS.put(ICON_EXTRACT_KEY, register.registerIcon(ICON_EXTRACT_KEY));
|
||||
ICONS.put(ICON_INSERT_KEY, register.registerIcon(ICON_INSERT_KEY));
|
||||
ICONS.put(ICON_IN_OUT_KEY, register.registerIcon(ICON_IN_OUT_KEY));
|
||||
|
||||
ICONS.put(ICON_KEY_INPUT, register.registerIcon(ICON_KEY_INPUT));
|
||||
ICONS.put(ICON_KEY_OUTPUT, register.registerIcon(ICON_KEY_OUTPUT));
|
||||
ICONS.put(ICON_KEY_IN_OUT_OUT, register.registerIcon(ICON_KEY_IN_OUT_OUT));
|
||||
ICONS.put(ICON_KEY_IN_OUT_IN, register.registerIcon(ICON_KEY_IN_OUT_IN));
|
||||
ICONS.put(ICON_KEY_IN_OUT_BG, register.registerIcon(ICON_KEY_IN_OUT_BG));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -69,6 +73,11 @@ public class EnderLiquidConduit extends AbstractLiquidConduit {
|
||||
private final EnumMap<ForgeDirection, FluidFilter> outputFilters = new EnumMap<ForgeDirection, FluidFilter>(ForgeDirection.class);
|
||||
private final EnumMap<ForgeDirection, FluidFilter> inputFilters = new EnumMap<ForgeDirection, FluidFilter>(ForgeDirection.class);
|
||||
|
||||
protected final EnumMap<ForgeDirection, DyeColor> outputColors = new EnumMap<ForgeDirection, DyeColor>(ForgeDirection.class);
|
||||
protected final EnumMap<ForgeDirection, DyeColor> inputColors = new EnumMap<ForgeDirection, DyeColor>(ForgeDirection.class);
|
||||
|
||||
private int roundRobin = 0;
|
||||
|
||||
@Override
|
||||
public ItemStack createItem() {
|
||||
return new ItemStack(EnderIO.itemLiquidConduit, 1, 2);
|
||||
@@ -165,17 +174,21 @@ public class EnderLiquidConduit extends AbstractLiquidConduit {
|
||||
}
|
||||
|
||||
public IIcon getTextureForInputMode() {
|
||||
return ICONS.get(ICON_EXTRACT_KEY);
|
||||
return ICONS.get(ICON_KEY_INPUT);
|
||||
}
|
||||
|
||||
public IIcon getTextureForOutputMode() {
|
||||
return ICONS.get(ICON_INSERT_KEY);
|
||||
return ICONS.get(ICON_KEY_OUTPUT);
|
||||
}
|
||||
|
||||
public IIcon getTextureForInOutMode() {
|
||||
return ICONS.get(ICON_IN_OUT_KEY);
|
||||
|
||||
public IIcon getTextureForInOutMode(boolean input) {
|
||||
return input ? ICONS.get(ICON_KEY_IN_OUT_IN) : ICONS.get(ICON_KEY_IN_OUT_OUT);
|
||||
}
|
||||
|
||||
public IIcon getTextureForInOutBackground() {
|
||||
return ICONS.get(ICON_KEY_IN_OUT_BG);
|
||||
}
|
||||
@Override
|
||||
public IIcon getTransmitionTextureForState(CollidableComponent component) {
|
||||
return null;
|
||||
@@ -298,10 +311,60 @@ public class EnderLiquidConduit extends AbstractLiquidConduit {
|
||||
}
|
||||
return network.getTankInfo(this, from);
|
||||
}
|
||||
//@Override
|
||||
public DyeColor getInputColor(ForgeDirection dir) {
|
||||
DyeColor result = inputColors.get(dir);
|
||||
if(result == null) {
|
||||
return DyeColor.GREEN;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
//@Override
|
||||
public DyeColor getOutputColor(ForgeDirection dir) {
|
||||
DyeColor result = outputColors.get(dir);
|
||||
if(result == null) {
|
||||
return DyeColor.GREEN;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
//@Override
|
||||
public void setInputColor(ForgeDirection dir, DyeColor col) {
|
||||
inputColors.put(dir, col);
|
||||
if(network != null) {
|
||||
network.notifyNetworkOfUpdate();
|
||||
}
|
||||
setClientStateDirty();
|
||||
collidablesDirty = true;
|
||||
}
|
||||
|
||||
//@Override
|
||||
public void setOutputColor(ForgeDirection dir, DyeColor col) {
|
||||
outputColors.put(dir, col);
|
||||
if(network != null) {
|
||||
network.notifyNetworkOfUpdate();
|
||||
}
|
||||
setClientStateDirty();
|
||||
collidablesDirty = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void readTypeSettings(ForgeDirection dir, NBTTagCompound dataRoot) {
|
||||
super.readTypeSettings(dir, dataRoot);
|
||||
|
||||
if (dataRoot.hasKey("inputColor")) {
|
||||
setInputColor(dir, DyeColor.values()[dataRoot.getShort("inputColor")]);
|
||||
}
|
||||
if (dataRoot.hasKey("outputColor")) {
|
||||
setOutputColor(dir, DyeColor.values()[dataRoot.getShort("outputColor")]);
|
||||
}
|
||||
|
||||
if(dataRoot.hasKey("roundRobin")) {
|
||||
setRoundRobin(dir, dataRoot.getBoolean("roundRobin"));
|
||||
} else {
|
||||
setRoundRobin(dir, true);
|
||||
}
|
||||
|
||||
if (dataRoot.hasKey("outputFilters")) {
|
||||
FluidFilter out = new FluidFilter();
|
||||
out.readFromNBT(dataRoot.getCompoundTag("outputFilters"));
|
||||
@@ -317,6 +380,12 @@ public class EnderLiquidConduit extends AbstractLiquidConduit {
|
||||
@Override
|
||||
protected void writeTypeSettingsToNbt(ForgeDirection dir, NBTTagCompound dataRoot) {
|
||||
super.writeTypeSettingsToNbt(dir, dataRoot);
|
||||
|
||||
dataRoot.setShort("inputColor", (short)getInputColor(dir).ordinal());
|
||||
dataRoot.setShort("outputColor", (short)getOutputColor(dir).ordinal());
|
||||
|
||||
dataRoot.setBoolean("roundRobin", isRoundRobin(dir));
|
||||
|
||||
FluidFilter out = outputFilters.get(dir);
|
||||
if (out != null) {
|
||||
NBTTagCompound outTag = new NBTTagCompound();
|
||||
@@ -329,11 +398,13 @@ public class EnderLiquidConduit extends AbstractLiquidConduit {
|
||||
in.writeToNBT(inTag);
|
||||
dataRoot.setTag("inputFilters", inTag);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToNBT(NBTTagCompound nbtRoot) {
|
||||
super.writeToNBT(nbtRoot);
|
||||
nbtRoot.setInteger("roundRobin", roundRobin);
|
||||
for (Entry<ForgeDirection, FluidFilter> entry : inputFilters.entrySet()) {
|
||||
if(entry.getValue() != null) {
|
||||
FluidFilter f = entry.getValue();
|
||||
@@ -354,11 +425,29 @@ public class EnderLiquidConduit extends AbstractLiquidConduit {
|
||||
}
|
||||
}
|
||||
}
|
||||
for (Entry<ForgeDirection, DyeColor> entry : inputColors.entrySet()) {
|
||||
if(entry.getValue() != null) {
|
||||
short ord = (short) entry.getValue().ordinal();
|
||||
nbtRoot.setShort("inSC." + entry.getKey().name(), ord);
|
||||
}
|
||||
}
|
||||
|
||||
for (Entry<ForgeDirection, DyeColor> entry : outputColors.entrySet()) {
|
||||
if(entry.getValue() != null) {
|
||||
short ord = (short) entry.getValue().ordinal();
|
||||
nbtRoot.setShort("outSC." + entry.getKey().name(), ord);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readFromNBT(NBTTagCompound nbtRoot, short nbtVersion) {
|
||||
super.readFromNBT(nbtRoot, nbtVersion);
|
||||
if(nbtRoot.hasKey("roundRobin")) {
|
||||
roundRobin = nbtRoot.getInteger("roundRobin");
|
||||
} else {
|
||||
roundRobin = 0b111111;
|
||||
}
|
||||
for (ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) {
|
||||
String key = "inFilts." + dir.name();
|
||||
if(nbtRoot.hasKey(key)) {
|
||||
@@ -379,8 +468,34 @@ public class EnderLiquidConduit extends AbstractLiquidConduit {
|
||||
outputFilters.put(dir, f);
|
||||
}
|
||||
}
|
||||
|
||||
key = "inSC." + dir.name();
|
||||
if(nbtRoot.hasKey(key)) {
|
||||
short ord = nbtRoot.getShort(key);
|
||||
if(ord >= 0 && ord < DyeColor.values().length) {
|
||||
inputColors.put(dir, DyeColor.values()[ord]);
|
||||
}
|
||||
}
|
||||
|
||||
key = "outSC." + dir.name();
|
||||
if(nbtRoot.hasKey(key)) {
|
||||
short ord = nbtRoot.getShort(key);
|
||||
if(ord >= 0 && ord < DyeColor.values().length) {
|
||||
outputColors.put(dir, DyeColor.values()[ord]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public boolean isRoundRobin(ForgeDirection dir) {
|
||||
return (roundRobin & dir.flag) != 0;
|
||||
}
|
||||
|
||||
public void setRoundRobin(ForgeDirection dir, boolean roundRobin) {
|
||||
if (roundRobin)
|
||||
this.roundRobin |= dir.flag;
|
||||
else
|
||||
this.roundRobin &= ~dir.flag;
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,6 @@
|
||||
package crazypants.enderio.conduit.liquid;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
import net.minecraftforge.fluids.FluidStack;
|
||||
@@ -11,13 +8,51 @@ import net.minecraftforge.fluids.FluidTankInfo;
|
||||
import net.minecraftforge.fluids.IFluidHandler;
|
||||
|
||||
import com.enderio.core.common.util.BlockCoord;
|
||||
import com.enderio.core.common.util.RoundRobinIterator;
|
||||
|
||||
import crazypants.enderio.conduit.AbstractConduitNetwork;
|
||||
import crazypants.enderio.conduit.ConnectionMode;
|
||||
import crazypants.enderio.config.Config;
|
||||
|
||||
public class EnderLiquidConduitNetwork extends AbstractConduitNetwork<ILiquidConduit, EnderLiquidConduit> {
|
||||
private class TankIterator implements Iterator<NetworkTank> {
|
||||
private int index = -1;
|
||||
private int currentCount = 0;
|
||||
|
||||
public TankIterator start() {
|
||||
currentCount = 0;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasNext() {
|
||||
return !tanks.isEmpty() && currentCount < tanks.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
public NetworkTank next() {
|
||||
if (tanks.isEmpty()) {
|
||||
return null;
|
||||
}
|
||||
currentCount++;
|
||||
index++;
|
||||
if (index >= tanks.size()) {
|
||||
index = 0;
|
||||
}
|
||||
return tanks.get(index);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void remove() {
|
||||
}
|
||||
|
||||
public void rewind() {
|
||||
if (index == 0)
|
||||
index = tanks.size() - 1;
|
||||
else
|
||||
index--;
|
||||
currentCount--;
|
||||
}
|
||||
}
|
||||
|
||||
public static final int MAX_EXTRACT_PER_TICK = Config.enderFluidConduitExtractRate;
|
||||
public static final int MAX_IO_PER_TICK = Config.enderFluidConduitMaxIoRate;
|
||||
@@ -25,7 +60,7 @@ public class EnderLiquidConduitNetwork extends AbstractConduitNetwork<ILiquidCon
|
||||
List<NetworkTank> tanks = new ArrayList<NetworkTank>();
|
||||
Map<NetworkTankKey, NetworkTank> tankMap = new HashMap<NetworkTankKey, NetworkTank>();
|
||||
|
||||
Map<NetworkTank, RoundRobinIterator<NetworkTank>> iterators;
|
||||
Map<NetworkTank, TankIterator> iterators;
|
||||
|
||||
boolean filling;
|
||||
|
||||
@@ -93,17 +128,21 @@ public class EnderLiquidConduitNetwork extends AbstractConduitNetwork<ILiquidCon
|
||||
int remaining = resource.amount;
|
||||
//TODO: Only change starting pos of iterator is doFill is true so a false then true returns the same
|
||||
|
||||
for (NetworkTank target : getIteratorForTank(tank)) {
|
||||
if(!target.equals(tank) && target.acceptsOuput && target.isValid() && matchedFilter(resource, target.con, target.conDir, false)) {
|
||||
TankIterator iterator;
|
||||
for (iterator = getIteratorForTank(tank).start(); iterator.hasNext(); ) {
|
||||
NetworkTank target = iterator.next();
|
||||
if (!target.equals(tank) && target.con.getOutputColor(target.conDir).equals(tank.con.getInputColor(tank.conDir)) && target.acceptsOuput && target.isValid() && matchedFilter(resource, target.con, target.conDir, false)) {
|
||||
int vol = target.externalTank.fill(target.tankDir, resource.copy(), doFill);
|
||||
remaining -= vol;
|
||||
filled += vol;
|
||||
if(remaining <= 0) {
|
||||
return filled;
|
||||
if (remaining <= 0) {
|
||||
break;
|
||||
}
|
||||
resource.amount = remaining;
|
||||
}
|
||||
}
|
||||
if (!tank.con.isRoundRobin(tank.conDir))
|
||||
iterator.rewind();
|
||||
return filled;
|
||||
|
||||
} finally {
|
||||
@@ -122,13 +161,13 @@ public class EnderLiquidConduitNetwork extends AbstractConduitNetwork<ILiquidCon
|
||||
return filter.matchesFilter(drained);
|
||||
}
|
||||
|
||||
private Iterable<NetworkTank> getIteratorForTank(NetworkTank tank) {
|
||||
private TankIterator getIteratorForTank(NetworkTank tank) {
|
||||
if(iterators == null) {
|
||||
iterators = new HashMap<NetworkTank, RoundRobinIterator<NetworkTank>>();
|
||||
iterators = new HashMap<>();
|
||||
}
|
||||
RoundRobinIterator<NetworkTank> res = iterators.get(tank);
|
||||
TankIterator res = iterators.get(tank);
|
||||
if(res == null) {
|
||||
res = new RoundRobinIterator<NetworkTank>(tanks);
|
||||
res = new TankIterator();
|
||||
iterators.put(tank, res);
|
||||
}
|
||||
return res;
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
package crazypants.enderio.conduit.liquid;
|
||||
|
||||
import com.enderio.core.common.util.DyeColor;
|
||||
import crazypants.enderio.conduit.item.IItemConduit;
|
||||
import net.minecraft.client.renderer.RenderBlocks;
|
||||
import net.minecraft.client.renderer.Tessellator;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
import crazypants.enderio.conduit.ConnectionMode;
|
||||
@@ -26,19 +29,42 @@ public class EnderLiquidConduitRenderer extends DefaultConduitRenderer {
|
||||
public void renderEntity(ConduitBundleRenderer conduitBundleRenderer, IConduitBundle te, IConduit conduit, double x, double y, double z, float partialTick,
|
||||
float worldLight, RenderBlocks rb) {
|
||||
super.renderEntity(conduitBundleRenderer, te, conduit, x, y, z, partialTick, worldLight, rb);
|
||||
|
||||
EnderLiquidConduit pc = (EnderLiquidConduit) conduit;
|
||||
for (ForgeDirection dir : conduit.getExternalConnections()) {
|
||||
IIcon tex = null;
|
||||
DyeColor inChannel = null;
|
||||
DyeColor outChannel = null;
|
||||
IIcon inTex = null;
|
||||
IIcon outTex = null;
|
||||
boolean render = true;
|
||||
if(conduit.getConnectionMode(dir) == ConnectionMode.INPUT) {
|
||||
tex = pc.getTextureForInputMode();
|
||||
inTex = pc.getTextureForInputMode();
|
||||
inChannel = pc.getInputColor(dir);
|
||||
} else if(conduit.getConnectionMode(dir) == ConnectionMode.OUTPUT) {
|
||||
tex = pc.getTextureForOutputMode();
|
||||
outTex = pc.getTextureForOutputMode();
|
||||
outChannel = pc.getOutputColor(dir);
|
||||
} else if(conduit.getConnectionMode(dir) == ConnectionMode.IN_OUT) {
|
||||
tex = pc.getTextureForInOutMode();
|
||||
inTex = pc.getTextureForInOutMode(true);
|
||||
outTex = pc.getTextureForInOutMode(false);
|
||||
inChannel = pc.getInputColor(dir);
|
||||
outChannel = pc.getOutputColor(dir);
|
||||
} else {
|
||||
render = false;
|
||||
}
|
||||
if(tex != null) {
|
||||
if(render && !rb.hasOverrideBlockTexture()) {
|
||||
Offset offset = te.getOffset(ILiquidConduit.class, dir);
|
||||
ConnectionModeGeometry.renderModeConnector(dir, offset, tex, true);
|
||||
ConnectionModeGeometry.renderModeConnector(dir, offset, pc.getTextureForInOutBackground(), true);
|
||||
|
||||
if(inChannel != null) {
|
||||
Tessellator.instance.setColorOpaque_I(inChannel.getColor());
|
||||
ConnectionModeGeometry.renderModeConnector(dir, offset, inTex, false);
|
||||
}
|
||||
if(outChannel != null) {
|
||||
Tessellator.instance.setColorOpaque_I(outChannel.getColor());
|
||||
ConnectionModeGeometry.renderModeConnector(dir, offset, outTex, false);
|
||||
}
|
||||
|
||||
Tessellator.instance.setColorOpaque_F(1f, 1f, 1f);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
package crazypants.enderio.conduit.packet;
|
||||
|
||||
import cpw.mods.fml.common.network.simpleimpl.IMessage;
|
||||
import cpw.mods.fml.common.network.simpleimpl.IMessageHandler;
|
||||
import cpw.mods.fml.common.network.simpleimpl.MessageContext;
|
||||
import crazypants.enderio.conduit.liquid.EnderLiquidConduit;
|
||||
import crazypants.enderio.conduit.liquid.ILiquidConduit;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
public class PacketRoundRobinMode extends AbstractConduitPacket<ILiquidConduit> implements IMessageHandler<PacketRoundRobinMode, IMessage> {
|
||||
private ForgeDirection dir;
|
||||
private boolean roundRobin;
|
||||
|
||||
public PacketRoundRobinMode() {
|
||||
}
|
||||
|
||||
public PacketRoundRobinMode(EnderLiquidConduit eConduit, ForgeDirection dir) {
|
||||
super(eConduit.getBundle().getEntity(), ConTypeEnum.FLUID);
|
||||
this.dir = dir;
|
||||
roundRobin = eConduit.isRoundRobin(dir);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void toBytes(ByteBuf buf) {
|
||||
super.toBytes(buf);
|
||||
buf.writeShort(dir.ordinal());
|
||||
buf.writeBoolean(roundRobin);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fromBytes(ByteBuf buf) {
|
||||
super.fromBytes(buf);
|
||||
dir = ForgeDirection.values()[buf.readShort()];
|
||||
roundRobin = buf.readBoolean();
|
||||
}
|
||||
|
||||
@Override
|
||||
public IMessage onMessage(PacketRoundRobinMode message, MessageContext ctx) {
|
||||
final ILiquidConduit conduit = message.getTileCasted(ctx);
|
||||
if (conduit instanceof EnderLiquidConduit) {
|
||||
((EnderLiquidConduit) conduit).setRoundRobin(message.dir, message.roundRobin);
|
||||
message.getWorld(ctx).markBlockForUpdate(message.x, message.y, message.z);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -23,8 +23,6 @@ public class ItemPowerConduit extends AbstractItemConduit {
|
||||
new ItemConduitSubtype(ModObject.itemPowerConduit.name(), "enderio:itemPowerConduit"),
|
||||
new ItemConduitSubtype(ModObject.itemPowerConduit.name() + "Enhanced", "enderio:itemPowerConduitEnhanced"),
|
||||
new ItemConduitSubtype(ModObject.itemPowerConduit.name() + "Ender", "enderio:itemPowerConduitEnder"),
|
||||
// new ItemConduitSubtype(ModObject.itemPowerConduit.name() + "Stellar", "enderio:itemPowerConduitStellar")
|
||||
|
||||
};
|
||||
|
||||
public static ItemPowerConduit create() {
|
||||
@@ -37,6 +35,10 @@ public class ItemPowerConduit extends AbstractItemConduit {
|
||||
super(ModObject.itemPowerConduit, subtypes);
|
||||
}
|
||||
|
||||
protected ItemPowerConduit(ModObject modObject, ItemConduitSubtype[] subtypes) {
|
||||
super(modObject, subtypes);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<? extends IConduit> getBaseConduitType() {
|
||||
return IPowerConduit.class;
|
||||
|
||||
@@ -50,7 +50,7 @@ public class PowerConduit extends AbstractConduit implements IPowerConduit {
|
||||
|
||||
private static ICapacitor[] capacitors;
|
||||
|
||||
static final String[] POSTFIX = new String[] { "", "Enhanced", "Ender", /*"Stellar"*/};
|
||||
static final String[] POSTFIX = new String[] { "", "Enhanced", "Ender"};
|
||||
|
||||
static ICapacitor[] getCapacitors() {
|
||||
if(capacitors == null) {
|
||||
@@ -58,7 +58,6 @@ public class PowerConduit extends AbstractConduit implements IPowerConduit {
|
||||
new BasicCapacitor(Config.powerConduitTierOneRF, Config.powerConduitTierOneRF),
|
||||
new BasicCapacitor(Config.powerConduitTierTwoRF, Config.powerConduitTierTwoRF),
|
||||
new BasicCapacitor(Config.powerConduitTierThreeRF, Config.powerConduitTierThreeRF),
|
||||
// new BasicCapacitor(Config.powerConduitTierFourRF, Config.powerConduitTierFourRF)
|
||||
};
|
||||
}
|
||||
return capacitors;
|
||||
@@ -76,8 +75,8 @@ public class PowerConduit extends AbstractConduit implements IPowerConduit {
|
||||
public void registerIcons(IIconRegister register) {
|
||||
for (String pf : POSTFIX) {
|
||||
ICONS.put(ICON_KEY + pf, register.registerIcon(ICON_KEY + pf));
|
||||
ICONS.put(ICON_KEY_INPUT + pf, register.registerIcon(ICON_KEY_INPUT + pf));
|
||||
ICONS.put(ICON_KEY_OUTPUT + pf, register.registerIcon(ICON_KEY_OUTPUT + pf));
|
||||
ICONS.put(ICON_KEY_INPUT + pf, register.registerIcon(ICON_KEY_INPUT));
|
||||
ICONS.put(ICON_KEY_OUTPUT + pf, register.registerIcon(ICON_KEY_OUTPUT));
|
||||
ICONS.put(ICON_CORE_KEY + pf, register.registerIcon(ICON_CORE_KEY + pf));
|
||||
}
|
||||
ICONS.put(ICON_TRANSMISSION_KEY, register.registerIcon(ICON_TRANSMISSION_KEY));
|
||||
@@ -503,12 +502,12 @@ public class PowerConduit extends AbstractConduit implements IPowerConduit {
|
||||
|
||||
@Override
|
||||
public IIcon getTextureForInputMode() {
|
||||
return ICONS.get(ICON_KEY_INPUT + POSTFIX[subtype]);
|
||||
return ICONS.get(ICON_KEY_INPUT);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IIcon getTextureForOutputMode() {
|
||||
return ICONS.get(ICON_KEY_OUTPUT + POSTFIX[subtype]);
|
||||
return ICONS.get(ICON_KEY_OUTPUT);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -21,7 +21,7 @@ public class PowerConduitNetwork extends AbstractConduitNetwork<IPowerConduit, I
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
NetworkPowerManager powerManager;
|
||||
public NetworkPowerManager powerManager;
|
||||
|
||||
private final Map<ReceptorKey, ReceptorEntry> powerReceptors = new HashMap<ReceptorKey, ReceptorEntry>();
|
||||
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
package crazypants.enderio.conduit.power.endergy;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import crazypants.enderio.EnderIO;
|
||||
import crazypants.enderio.ModObject;
|
||||
import crazypants.enderio.conduit.AbstractItemConduit;
|
||||
import crazypants.enderio.conduit.IConduit;
|
||||
import crazypants.enderio.conduit.ItemConduitSubtype;
|
||||
import crazypants.enderio.conduit.power.IPowerConduit;
|
||||
import crazypants.enderio.conduit.power.ItemPowerConduit;
|
||||
import crazypants.enderio.machine.power.PowerDisplayUtil;
|
||||
import crazypants.enderio.power.ICapacitor;
|
||||
|
||||
public class ItemPowerConduitEndergy extends ItemPowerConduit {
|
||||
|
||||
private static String PREFIX;
|
||||
private static String POSTFIX;
|
||||
|
||||
static ItemConduitSubtype[] subtypes = new ItemConduitSubtype[] {
|
||||
new ItemConduitSubtype(ModObject.itemPowerConduitEndergy.name() + "Crude", "enderio:itemPowerConduitCrude"),
|
||||
new ItemConduitSubtype(ModObject.itemPowerConduitEndergy.name() + "Iron", "enderio:itemPowerConduitIron"),
|
||||
new ItemConduitSubtype(ModObject.itemPowerConduitEndergy.name() + "Aluminum", "enderio:itemPowerConduitAluminum"),
|
||||
new ItemConduitSubtype(ModObject.itemPowerConduitEndergy.name() + "Gold", "enderio:itemPowerConduitGold"),
|
||||
new ItemConduitSubtype(ModObject.itemPowerConduitEndergy.name() + "Copper", "enderio:itemPowerConduitCopper"),
|
||||
new ItemConduitSubtype(ModObject.itemPowerConduitEndergy.name() + "Silver", "enderio:itemPowerConduitSilver"),
|
||||
new ItemConduitSubtype(ModObject.itemPowerConduitEndergy.name() + "Electrum", "enderio:itemPowerConduitElectrum"),
|
||||
new ItemConduitSubtype(ModObject.itemPowerConduitEndergy.name() + "EnergeticSilver", "enderio:itemPowerConduitEnergeticSilver"),
|
||||
new ItemConduitSubtype(ModObject.itemPowerConduitEndergy.name() + "Crystalline", "enderio:itemPowerConduitCrystalline"),
|
||||
new ItemConduitSubtype(ModObject.itemPowerConduitEndergy.name() + "CrystallinePinkSlime", "enderio:itemPowerConduitCrystallinePinkSlime"),
|
||||
new ItemConduitSubtype(ModObject.itemPowerConduitEndergy.name() + "Melodic", "enderio:itemPowerConduitMelodic"),
|
||||
new ItemConduitSubtype(ModObject.itemPowerConduitEndergy.name() + "Stellar", "enderio:itemPowerConduitStellar"),
|
||||
|
||||
};
|
||||
|
||||
public static ItemPowerConduitEndergy create() {
|
||||
ItemPowerConduitEndergy result = new ItemPowerConduitEndergy();
|
||||
result.init();
|
||||
return result;
|
||||
}
|
||||
|
||||
protected ItemPowerConduitEndergy() {
|
||||
super(ModObject.itemPowerConduitEndergy, subtypes);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<? extends IConduit> getBaseConduitType() {
|
||||
return IPowerConduit.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IConduit createConduit(ItemStack stack, EntityPlayer player) {
|
||||
return new PowerConduitEndergy(stack.getItemDamage());
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void addInformation(ItemStack itemStack, EntityPlayer par2EntityPlayer, List list, boolean par4) {
|
||||
if(PREFIX == null) {
|
||||
POSTFIX = " " + PowerDisplayUtil.abrevation() + PowerDisplayUtil.perTickStr();
|
||||
PREFIX = EnderIO.lang.localize("power.maxOutput") + " ";
|
||||
}
|
||||
ICapacitor cap = PowerConduitEndergy.getCapacitors()[itemStack.getItemDamage()];
|
||||
list.add(PREFIX + PowerDisplayUtil.formatPower(cap.getMaxEnergyExtracted()) + POSTFIX);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldHideFacades(ItemStack stack, EntityPlayer player) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,559 @@
|
||||
package crazypants.enderio.conduit.power.endergy;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.EnumMap;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.util.MathHelper;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
import com.enderio.core.client.render.BoundingBox;
|
||||
import com.enderio.core.client.render.IconUtil;
|
||||
import com.enderio.core.common.util.DyeColor;
|
||||
import com.enderio.core.common.vecmath.Vector3d;
|
||||
|
||||
import crazypants.enderio.EnderIO;
|
||||
import crazypants.enderio.conduit.AbstractConduit;
|
||||
import crazypants.enderio.conduit.AbstractConduitNetwork;
|
||||
import crazypants.enderio.conduit.ConduitUtil;
|
||||
import crazypants.enderio.conduit.ConnectionMode;
|
||||
import crazypants.enderio.conduit.IConduit;
|
||||
import crazypants.enderio.conduit.IConduitBundle;
|
||||
import crazypants.enderio.conduit.RaytraceResult;
|
||||
import crazypants.enderio.conduit.geom.CollidableCache.CacheKey;
|
||||
import crazypants.enderio.conduit.geom.CollidableComponent;
|
||||
import crazypants.enderio.conduit.geom.ConduitGeometryUtil;
|
||||
import crazypants.enderio.conduit.power.IPowerConduit;
|
||||
import crazypants.enderio.conduit.power.PowerConduit;
|
||||
import crazypants.enderio.conduit.power.PowerConduitNetwork;
|
||||
import crazypants.enderio.config.Config;
|
||||
import crazypants.enderio.item.PacketConduitProbe;
|
||||
import crazypants.enderio.machine.RedstoneControlMode;
|
||||
import crazypants.enderio.power.BasicCapacitor;
|
||||
import crazypants.enderio.power.ICapacitor;
|
||||
import crazypants.enderio.power.IPowerInterface;
|
||||
import crazypants.enderio.power.PowerHandlerUtil;
|
||||
import crazypants.enderio.tool.ToolUtil;
|
||||
|
||||
import static crazypants.enderio.config.Config.powerConduitEndergyTiers;
|
||||
|
||||
public class PowerConduitEndergy extends PowerConduit {
|
||||
|
||||
static final Map<String, IIcon> ICONS = new HashMap<String, IIcon>();
|
||||
|
||||
private static ICapacitor[] capacitors;
|
||||
|
||||
static final String[] POSTFIX = new String[] { "Crude", "Iron", "Aluminum", "Gold", "Copper", "Silver", "Electrum", "EnergeticSilver", "Crystalline", "CrystallinePinkSlime", "Melodic", "Stellar"};
|
||||
|
||||
static ICapacitor[] getCapacitors() {
|
||||
if(capacitors == null) {
|
||||
capacitors = new BasicCapacitor[] {
|
||||
|
||||
new BasicCapacitor(powerConduitEndergyTiers[0]),
|
||||
new BasicCapacitor(powerConduitEndergyTiers[1]),
|
||||
new BasicCapacitor(powerConduitEndergyTiers[2]),
|
||||
new BasicCapacitor(powerConduitEndergyTiers[3]),
|
||||
new BasicCapacitor(powerConduitEndergyTiers[4]),
|
||||
new BasicCapacitor(powerConduitEndergyTiers[5]),
|
||||
new BasicCapacitor(powerConduitEndergyTiers[6]),
|
||||
new BasicCapacitor(powerConduitEndergyTiers[7]),
|
||||
new BasicCapacitor(powerConduitEndergyTiers[8]),
|
||||
new BasicCapacitor(powerConduitEndergyTiers[9]),
|
||||
new BasicCapacitor(powerConduitEndergyTiers[10]),
|
||||
new BasicCapacitor(powerConduitEndergyTiers[11])
|
||||
};
|
||||
}
|
||||
return capacitors;
|
||||
}
|
||||
|
||||
static ItemStack createItemStackForSubtype(int subtype) {
|
||||
ItemStack result = new ItemStack(EnderIO.itemPowerConduitEndergy, 1, subtype);
|
||||
return result;
|
||||
}
|
||||
|
||||
public static void initIcons() {
|
||||
IconUtil.addIconProvider(new IconUtil.IIconProvider() {
|
||||
|
||||
@Override
|
||||
public void registerIcons(IIconRegister register) {
|
||||
for (String pf : POSTFIX) {
|
||||
ICONS.put(ICON_KEY + pf, register.registerIcon(ICON_KEY + pf));
|
||||
ICONS.put(ICON_KEY_INPUT + pf, register.registerIcon(ICON_KEY_INPUT));
|
||||
ICONS.put(ICON_KEY_OUTPUT + pf, register.registerIcon(ICON_KEY_OUTPUT));
|
||||
ICONS.put(ICON_CORE_KEY + pf, register.registerIcon(ICON_CORE_KEY + pf));
|
||||
}
|
||||
ICONS.put(ICON_TRANSMISSION_KEY, register.registerIcon(ICON_TRANSMISSION_KEY));
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getTextureType() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
public static final float WIDTH = 0.075f;
|
||||
public static final float HEIGHT = 0.075f;
|
||||
|
||||
public static final Vector3d MIN = new Vector3d(0.5f - WIDTH, 0.5 - HEIGHT, 0.5 - WIDTH);
|
||||
public static final Vector3d MAX = new Vector3d(MIN.x + WIDTH, MIN.y + HEIGHT, MIN.z + WIDTH);
|
||||
|
||||
public static final BoundingBox BOUNDS = new BoundingBox(MIN, MAX);
|
||||
|
||||
protected PowerConduitNetwork network;
|
||||
|
||||
private int energyStoredRF;
|
||||
|
||||
private int subtype;
|
||||
|
||||
protected final EnumMap<ForgeDirection, RedstoneControlMode> rsModes = new EnumMap<ForgeDirection, RedstoneControlMode>(ForgeDirection.class);
|
||||
protected final EnumMap<ForgeDirection, DyeColor> rsColors = new EnumMap<ForgeDirection, DyeColor>(ForgeDirection.class);
|
||||
|
||||
protected EnumMap<ForgeDirection, Long> recievedTicks;
|
||||
|
||||
private final Map<ForgeDirection, Integer> externalRedstoneSignals = new HashMap<ForgeDirection, Integer>();
|
||||
|
||||
private boolean redstoneStateDirty = true;
|
||||
|
||||
public PowerConduitEndergy() {
|
||||
}
|
||||
|
||||
public PowerConduitEndergy(int meta) {
|
||||
this.subtype = meta;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean getConnectionsDirty() {
|
||||
return connectionsDirty;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onBlockActivated(EntityPlayer player, RaytraceResult res, List<RaytraceResult> all) {
|
||||
DyeColor col = DyeColor.getColorFromDye(player.getCurrentEquippedItem());
|
||||
if(ConduitUtil.isProbeEquipped(player)) {
|
||||
if(!player.worldObj.isRemote) {
|
||||
new PacketConduitProbe().sendInfoMessage(player, this);
|
||||
}
|
||||
return true;
|
||||
} else if(col != null && res.component != null && isColorBandRendered(res.component.dir)) {
|
||||
setExtractionSignalColor(res.component.dir, col);
|
||||
return true;
|
||||
} else if(ToolUtil.isToolEquipped(player)) {
|
||||
if(!getBundle().getEntity().getWorldObj().isRemote) {
|
||||
if(res != null && res.component != null) {
|
||||
ForgeDirection connDir = res.component.dir;
|
||||
ForgeDirection faceHit = ForgeDirection.getOrientation(res.movingObjectPosition.sideHit);
|
||||
if(connDir == ForgeDirection.UNKNOWN || connDir == faceHit) {
|
||||
if(getConnectionMode(faceHit) == ConnectionMode.DISABLED) {
|
||||
setConnectionMode(faceHit, getNextConnectionMode(faceHit));
|
||||
return true;
|
||||
}
|
||||
// Attempt to join networks
|
||||
return ConduitUtil.joinConduits(this, faceHit);
|
||||
} else if(externalConnections.contains(connDir)) {
|
||||
setConnectionMode(connDir, getNextConnectionMode(connDir));
|
||||
return true;
|
||||
} else if(containsConduitConnection(connDir)) {
|
||||
ConduitUtil.disconectConduits(this, connDir);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private boolean isColorBandRendered(ForgeDirection dir) {
|
||||
return getConnectionMode(dir) != ConnectionMode.DISABLED && getExtractionRedstoneMode(dir) != RedstoneControlMode.IGNORE;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ICapacitor getCapacitor() {
|
||||
return getCapacitors()[subtype];
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setExtractionRedstoneMode(RedstoneControlMode mode, ForgeDirection dir) {
|
||||
rsModes.put(dir, mode);
|
||||
setClientStateDirty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public RedstoneControlMode getExtractionRedstoneMode(ForgeDirection dir) {
|
||||
RedstoneControlMode res = rsModes.get(dir);
|
||||
if(res == null) {
|
||||
res = RedstoneControlMode.IGNORE;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setExtractionSignalColor(ForgeDirection dir, DyeColor col) {
|
||||
rsColors.put(dir, col);
|
||||
setClientStateDirty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public DyeColor getExtractionSignalColor(ForgeDirection dir) {
|
||||
DyeColor res = rsColors.get(dir);
|
||||
if(res == null) {
|
||||
res = DyeColor.RED;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void readTypeSettings(ForgeDirection dir, NBTTagCompound dataRoot) {
|
||||
setExtractionSignalColor(dir, DyeColor.values()[dataRoot.getShort("extractionSignalColor")]);
|
||||
setExtractionRedstoneMode(RedstoneControlMode.values()[dataRoot.getShort("extractionRedstoneMode")], dir);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void writeTypeSettingsToNbt(ForgeDirection dir, NBTTagCompound dataRoot) {
|
||||
dataRoot.setShort("extractionSignalColor", (short)getExtractionSignalColor(dir).ordinal());
|
||||
dataRoot.setShort("extractionRedstoneMode", (short)getExtractionRedstoneMode(dir).ordinal());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToNBT(NBTTagCompound nbtRoot) {
|
||||
super.writeToNBT(nbtRoot);
|
||||
nbtRoot.setShort("subtype", (short) subtype);
|
||||
nbtRoot.setInteger("energyStoredRF", energyStoredRF);
|
||||
|
||||
for (Entry<ForgeDirection, RedstoneControlMode> entry : rsModes.entrySet()) {
|
||||
if(entry.getValue() != null) {
|
||||
short ord = (short) entry.getValue().ordinal();
|
||||
nbtRoot.setShort("pRsMode." + entry.getKey().name(), ord);
|
||||
}
|
||||
}
|
||||
|
||||
for (Entry<ForgeDirection, DyeColor> entry : rsColors.entrySet()) {
|
||||
if(entry.getValue() != null) {
|
||||
short ord = (short) entry.getValue().ordinal();
|
||||
nbtRoot.setShort("pRsCol." + entry.getKey().name(), ord);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readFromNBT(NBTTagCompound nbtRoot, short nbtVersion) {
|
||||
super.readFromNBT(nbtRoot, nbtVersion);
|
||||
subtype = nbtRoot.getShort("subtype");
|
||||
|
||||
if(nbtRoot.hasKey("energyStored")) {
|
||||
nbtRoot.setInteger("energyStoredRF", (int)(nbtRoot.getFloat("energyStored") * 10));
|
||||
|
||||
}
|
||||
setEnergyStored(nbtRoot.getInteger("energyStoredRF"));
|
||||
|
||||
for (ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) {
|
||||
String key = "pRsMode." + dir.name();
|
||||
if(nbtRoot.hasKey(key)) {
|
||||
short ord = nbtRoot.getShort(key);
|
||||
if(ord >= 0 && ord < RedstoneControlMode.values().length) {
|
||||
rsModes.put(dir, RedstoneControlMode.values()[ord]);
|
||||
}
|
||||
}
|
||||
key = "pRsCol." + dir.name();
|
||||
if(nbtRoot.hasKey(key)) {
|
||||
short ord = nbtRoot.getShort(key);
|
||||
if(ord >= 0 && ord < DyeColor.values().length) {
|
||||
rsColors.put(dir, DyeColor.values()[ord]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onTick() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getEnergyStored() {
|
||||
return energyStoredRF;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setEnergyStored(int energyStored) {
|
||||
energyStoredRF = MathHelper.clamp_int(energyStored, 0, getMaxEnergyStored());
|
||||
}
|
||||
|
||||
|
||||
private boolean isRedstoneEnabled(ForgeDirection dir) {
|
||||
boolean result;
|
||||
RedstoneControlMode mode = getExtractionRedstoneMode(dir);
|
||||
if(mode == RedstoneControlMode.NEVER) {
|
||||
return false;
|
||||
}
|
||||
if(mode == RedstoneControlMode.IGNORE) {
|
||||
return true;
|
||||
}
|
||||
|
||||
DyeColor col = getExtractionSignalColor(dir);
|
||||
int signal = ConduitUtil.getInternalSignalForColor(getBundle(), col);
|
||||
int exSig = getExternalRedstoneSignalForDir(dir);
|
||||
boolean res;
|
||||
if(mode == RedstoneControlMode.OFF) {
|
||||
//if checking for no signal, must be no signal from both
|
||||
res = mode.isConditionMet(mode, signal) && (col != DyeColor.RED || mode.isConditionMet(mode, exSig));
|
||||
} else {
|
||||
//if checking for a signal, either is fine
|
||||
res = mode.isConditionMet(mode, signal) || (col == DyeColor.RED && mode.isConditionMet(mode, exSig));
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
private int getExternalRedstoneSignalForDir(ForgeDirection dir) {
|
||||
if(redstoneStateDirty) {
|
||||
externalRedstoneSignals.clear();
|
||||
redstoneStateDirty = false;
|
||||
}
|
||||
Integer cached = externalRedstoneSignals.get(dir);
|
||||
int result;
|
||||
if(cached == null) {
|
||||
TileEntity te = getBundle().getEntity();
|
||||
result = te.getWorldObj().getStrongestIndirectPower(te.xCoord, te.yCoord, te.zCoord);
|
||||
externalRedstoneSignals.put(dir, result);
|
||||
} else {
|
||||
result = cached;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxEnergyRecieved(ForgeDirection dir) {
|
||||
ConnectionMode mode = getConnectionMode(dir);
|
||||
if(mode == ConnectionMode.OUTPUT || mode == ConnectionMode.DISABLED || !isRedstoneEnabled(dir)) {
|
||||
return 0;
|
||||
}
|
||||
return getCapacitor().getMaxEnergyReceived();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxEnergyExtracted(ForgeDirection dir) {
|
||||
ConnectionMode mode = getConnectionMode(dir);
|
||||
if(mode == ConnectionMode.INPUT || mode == ConnectionMode.DISABLED || !isRedstoneEnabled(dir)) {
|
||||
return 0;
|
||||
}
|
||||
if(recievedRfThisTick(dir)) {
|
||||
return 0;
|
||||
}
|
||||
return getCapacitor().getMaxEnergyExtracted();
|
||||
}
|
||||
|
||||
private boolean recievedRfThisTick(ForgeDirection dir) {
|
||||
if(recievedTicks == null || dir == null || recievedTicks.get(dir) == null || getBundle() == null || getBundle().getWorld() == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
long curTick = getBundle().getWorld().getTotalWorldTime();
|
||||
long recT = recievedTicks.get(dir);
|
||||
if(curTick - recT <= 5) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onNeighborBlockChange(Block blockId) {
|
||||
redstoneStateDirty = true;
|
||||
if(network != null && network.powerManager != null) {
|
||||
network.powerManager.receptorsChanged();
|
||||
}
|
||||
return super.onNeighborBlockChange(blockId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setConnectionMode(ForgeDirection dir, ConnectionMode mode) {
|
||||
super.setConnectionMode(dir, mode);
|
||||
recievedTicks = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate) {
|
||||
if(getMaxEnergyRecieved(from) == 0 || maxReceive <= 0) {
|
||||
return 0;
|
||||
}
|
||||
int freeSpace = getMaxEnergyStored() - getEnergyStored();
|
||||
int result = (int) Math.min(maxReceive, freeSpace);
|
||||
if(!simulate && result > 0) {
|
||||
setEnergyStored(getEnergyStored() + result);
|
||||
|
||||
if(getBundle() != null) {
|
||||
if(recievedTicks == null) {
|
||||
recievedTicks = new EnumMap<ForgeDirection, Long>(ForgeDirection.class);
|
||||
}
|
||||
recievedTicks.put(from, getBundle().getWorld().getTotalWorldTime());
|
||||
}
|
||||
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int extractEnergy(ForgeDirection from, int maxExtract, boolean simulate) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canConnectEnergy(ForgeDirection from) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getEnergyStored(ForgeDirection from) {
|
||||
return getEnergyStored();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxEnergyStored(ForgeDirection from) {
|
||||
return getMaxEnergyStored();
|
||||
}
|
||||
|
||||
@Override
|
||||
public AbstractConduitNetwork<?, ?> getNetwork() {
|
||||
return network;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean setNetwork(AbstractConduitNetwork<?, ?> network) {
|
||||
this.network = (PowerConduitNetwork) network;
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canConnectToExternal(ForgeDirection direction, boolean ignoreDisabled) {
|
||||
IPowerInterface rec = getExternalPowerReceptor(direction);
|
||||
|
||||
return rec != null && rec.canConduitConnect(direction);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canConnectToConduit(ForgeDirection direction, IConduit conduit) {
|
||||
boolean res = super.canConnectToConduit(direction, conduit);
|
||||
if(!res) {
|
||||
return false;
|
||||
}
|
||||
if(Config.powerConduitCanDifferentTiersConnect) {
|
||||
return res;
|
||||
}
|
||||
if( !(conduit instanceof IPowerConduit)) {
|
||||
return false;
|
||||
}
|
||||
IPowerConduit pc = (IPowerConduit)conduit;
|
||||
return pc.getMaxEnergyStored() == getMaxEnergyStored();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void externalConnectionAdded(ForgeDirection direction) {
|
||||
super.externalConnectionAdded(direction);
|
||||
if(network != null) {
|
||||
TileEntity te = bundle.getEntity();
|
||||
network.powerReceptorAdded(this, direction, te.xCoord + direction.offsetX, te.yCoord + direction.offsetY, te.zCoord + direction.offsetZ,
|
||||
getExternalPowerReceptor(direction));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void externalConnectionRemoved(ForgeDirection direction) {
|
||||
super.externalConnectionRemoved(direction);
|
||||
if(network != null) {
|
||||
TileEntity te = bundle.getEntity();
|
||||
network.powerReceptorRemoved(te.xCoord + direction.offsetX, te.yCoord + direction.offsetY, te.zCoord + direction.offsetZ);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPowerInterface getExternalPowerReceptor(ForgeDirection direction) {
|
||||
TileEntity te = bundle.getEntity();
|
||||
World world = te.getWorldObj();
|
||||
if(world == null) {
|
||||
return null;
|
||||
}
|
||||
TileEntity test = world.getTileEntity(te.xCoord + direction.offsetX, te.yCoord + direction.offsetY, te.zCoord + direction.offsetZ);
|
||||
if(test == null) {
|
||||
return null;
|
||||
}
|
||||
if(test instanceof IConduitBundle) {
|
||||
return null;
|
||||
}
|
||||
return PowerHandlerUtil.create(test);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack createItem() {
|
||||
return createItemStackForSubtype(subtype);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Class<? extends IConduit> getBaseConduitType() {
|
||||
return IPowerConduit.class;
|
||||
}
|
||||
|
||||
// Rendering
|
||||
@Override
|
||||
public IIcon getTextureForState(CollidableComponent component) {
|
||||
if(component.dir == ForgeDirection.UNKNOWN) {
|
||||
return ICONS.get(ICON_CORE_KEY + POSTFIX[subtype]);
|
||||
}
|
||||
if(COLOR_CONTROLLER_ID.equals(component.data)) {
|
||||
return IconUtil.whiteTexture;
|
||||
}
|
||||
return ICONS.get(ICON_KEY + POSTFIX[subtype]);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IIcon getTextureForInputMode() {
|
||||
return ICONS.get(ICON_KEY_INPUT + POSTFIX[subtype]);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IIcon getTextureForOutputMode() {
|
||||
return ICONS.get(ICON_KEY_OUTPUT + POSTFIX[subtype]);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IIcon getTransmitionTextureForState(CollidableComponent component) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<CollidableComponent> createCollidables(CacheKey key) {
|
||||
Collection<CollidableComponent> baseCollidables = super.createCollidables(key);
|
||||
if(key.dir == ForgeDirection.UNKNOWN) {
|
||||
return baseCollidables;
|
||||
}
|
||||
|
||||
BoundingBox bb = ConduitGeometryUtil.instance.createBoundsForConnectionController(key.dir, key.offset);
|
||||
CollidableComponent cc = new CollidableComponent(IPowerConduit.class, bb, key.dir, COLOR_CONTROLLER_ID);
|
||||
|
||||
List<CollidableComponent> result = new ArrayList<CollidableComponent>();
|
||||
result.addAll(baseCollidables);
|
||||
result.add(cc);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMaxEnergyStored() {
|
||||
return getCapacitors()[subtype].getMaxEnergyStored();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean displayPower() {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -283,6 +283,9 @@ public final class Config {
|
||||
public static int enderGeneratorRfPerTick = 360;
|
||||
public static int enderGeneratorTicksPerBucketFuel = 96000;
|
||||
|
||||
public static double[] zombieGeneratorsEnergyMultipliers = {1f,2f,3f,5f,8f,13f,21f};
|
||||
public static double[] zombieGeneratorsBurnTimeMultipliers = {0.5f,1f/1.5f};
|
||||
|
||||
public static int stirlingGeneratorBaseRfPerTick = 20;
|
||||
public static float stirlingGeneratorEnergyMultiplierT1 = 1f;
|
||||
public static float stirlingGeneratorEnergyMultiplierT2 = 2f;
|
||||
@@ -291,6 +294,10 @@ public final class Config {
|
||||
public static float stirlingGeneratorBurnTimeMultiplierT2 = 1f / 1.5f;
|
||||
public static float stirlingGeneratorBurnTimeMultiplierT3 = 1f / 1.5f;
|
||||
|
||||
public static double[] stirlingGeneratorEnergyMultipliers = {1f,2f,3f,5f,8f,13f,21f};
|
||||
public static double[] stirlingGeneratorBurnTimeMultipliers = {0.5f,1f/1.5f};
|
||||
|
||||
|
||||
public static boolean combustionGeneratorUseOpaqueModel = true;
|
||||
|
||||
public static boolean addFuelTooltipsToAllFluidContainers = true;
|
||||
@@ -442,7 +449,7 @@ public final class Config {
|
||||
public static int powerConduitTierOneRF = 640;
|
||||
public static int powerConduitTierTwoRF = 5120;
|
||||
public static int powerConduitTierThreeRF = 20480;
|
||||
//public static int powerConduitTierFourRF = 81920;
|
||||
public static int[] powerConduitEndergyTiers = {20, 40, 80, 160, 320, 1280, 2560, 10240, 40960, 81920, 327680, 2000000000};
|
||||
public static boolean powerConduitOutputMJ = true;
|
||||
|
||||
public static int sliceAndSpliceLevelOnePowerPerTickRF = 80;
|
||||
@@ -614,6 +621,9 @@ public final class Config {
|
||||
.getInt(powerConduitTierTwoRF);
|
||||
powerConduitTierThreeRF = config.get(sectionPower.name, "powerConduitTierThreeRF", powerConduitTierThreeRF, "The maximum IO for the tier 3 power conduit")
|
||||
.getInt(powerConduitTierThreeRF);
|
||||
powerConduitEndergyTiers = config.get(sectionPower.name, "powerConduitTiersEndergy", powerConduitEndergyTiers, "The maximum IO for the endergy power conduit")
|
||||
.getIntList();
|
||||
|
||||
powerConduitCanDifferentTiersConnect = config
|
||||
.getBoolean("powerConduitCanDifferentTiersConnect", sectionPower.name, powerConduitCanDifferentTiersConnect,
|
||||
"If set to false power conduits of different tiers cannot be connected. in this case a block such as a cap. bank is needed to bridge different tiered networks");
|
||||
@@ -1061,22 +1071,36 @@ public final class Config {
|
||||
enderGeneratorTicksPerBucketFuel = config.get(sectionPower.name, "enderGeneratorTicksPerMbFuel", enderGeneratorTicksPerBucketFuel,
|
||||
"The number of ticks one bucket of fuel lasts.").getInt(enderGeneratorTicksPerBucketFuel);
|
||||
|
||||
zombieGeneratorsEnergyMultipliers = config.get(sectionPower.name, "zombieGeneratorsEnergyMultipliers",
|
||||
zombieGeneratorsEnergyMultipliers, "Energy multipliers for the Zombie-Type Generators").getDoubleList();
|
||||
|
||||
zombieGeneratorsBurnTimeMultipliers = config.get(sectionPower.name, "zombieGeneratorsBurnTimeMultipliers",
|
||||
zombieGeneratorsBurnTimeMultipliers, "Burn time multipliers for the Zombie-Type Generators").getDoubleList();
|
||||
|
||||
|
||||
stirlingGeneratorBaseRfPerTick = config.get(sectionPower.name, "stirlingGeneratorBaseRfPerTick", stirlingGeneratorBaseRfPerTick,
|
||||
"The amount of power generated per tick.").getInt(stirlingGeneratorBaseRfPerTick);
|
||||
|
||||
stirlingGeneratorEnergyMultiplierT1 = (float) config.get(sectionPower.name, "stirlingGeneratorEnergyMultiplierT1",
|
||||
stirlingGeneratorEnergyMultiplierT1, "Energy multiplier for the Stirling Generator, Tier 1 machine").getDouble();
|
||||
stirlingGeneratorEnergyMultiplierT1, "[Deprecated]Energy multiplier for the Stirling Generator, Tier 1 machine").getDouble();
|
||||
stirlingGeneratorEnergyMultiplierT2 = (float) config.get(sectionPower.name, "stirlingGeneratorEnergyMultiplierT2",
|
||||
stirlingGeneratorEnergyMultiplierT2, "Energy multiplier for the Stirling Generator, Tier 2 machine").getDouble();
|
||||
stirlingGeneratorEnergyMultiplierT2, "[Deprecated]Energy multiplier for the Stirling Generator, Tier 2 machine").getDouble();
|
||||
stirlingGeneratorEnergyMultiplierT3 = (float) config.get(sectionPower.name, "stirlingGeneratorEnergyMultiplierT3",
|
||||
stirlingGeneratorEnergyMultiplierT3, "Energy multiplier for the Stirling Generator, Tier 3 machine").getDouble();
|
||||
stirlingGeneratorEnergyMultiplierT3, "[Deprecated]Energy multiplier for the Stirling Generator, Tier 3 machine").getDouble();
|
||||
|
||||
stirlingGeneratorEnergyMultipliers = config.get(sectionPower.name, "stirlingGeneratorEnergyMultipliers",
|
||||
stirlingGeneratorEnergyMultipliers, "Energy multipliers for the Stirling Generator").getDoubleList();
|
||||
|
||||
stirlingGeneratorBurnTimeMultiplierT1 = (float) config.get(sectionPower.name, "stirlingGeneratorBurnTimeMultiplierT1",
|
||||
stirlingGeneratorBurnTimeMultiplierT1, "Burn time multiplier for the Stirling Generator, Tier 1 machine").getDouble();
|
||||
stirlingGeneratorBurnTimeMultiplierT1, "[Deprecated]Burn time multiplier for the Stirling Generator, Tier 1 machine").getDouble();
|
||||
stirlingGeneratorBurnTimeMultiplierT2 = (float) config.get(sectionPower.name, "stirlingGeneratorBurnTimeMultiplierT2",
|
||||
stirlingGeneratorBurnTimeMultiplierT2, "Burn time multiplier for the Stirling Generator, Tier 2 machine").getDouble();
|
||||
stirlingGeneratorBurnTimeMultiplierT2, "[Deprecated]Burn time multiplier for the Stirling Generator, Tier 2 machine").getDouble();
|
||||
stirlingGeneratorBurnTimeMultiplierT3 = (float) config.get(sectionPower.name, "stirlingGeneratorBurnTimeMultiplierT3",
|
||||
stirlingGeneratorBurnTimeMultiplierT3, "Burn time multiplier for the Stirling Generator, Tier 3 machine").getDouble();
|
||||
stirlingGeneratorBurnTimeMultiplierT3, "[Deprecated]Burn time multiplier for the Stirling Generator, Tier 3 machine").getDouble();
|
||||
|
||||
stirlingGeneratorBurnTimeMultipliers = config.get(sectionPower.name, "stirlingGeneratorBurnTimeMultipliers",
|
||||
stirlingGeneratorBurnTimeMultipliers, "Burn time multipliers for the Stirling Generator").getDoubleList();
|
||||
|
||||
|
||||
addFuelTooltipsToAllFluidContainers = config.get(sectionPersonal.name, "addFuelTooltipsToAllFluidContainers", addFuelTooltipsToAllFluidContainers,
|
||||
"If true, the RF/t and burn time of the fuel will be displayed in all tooltips for fluid containers with fuel.").getBoolean(
|
||||
|
||||
@@ -11,6 +11,7 @@ import crazypants.enderio.material.FrankenSkull;
|
||||
import crazypants.enderio.material.MachinePart;
|
||||
|
||||
import static crazypants.enderio.material.Alloy.*;
|
||||
import static crazypants.enderio.material.endergy.AlloyEndergy.*;
|
||||
import static crazypants.enderio.material.Material.VIBRANT_CYSTAL;
|
||||
import static crazypants.util.RecipeUtil.addShaped;
|
||||
|
||||
@@ -19,6 +20,7 @@ public class ItemRecipes {
|
||||
public static void addRecipes() {
|
||||
ItemStack basicGear = new ItemStack(EnderIO.itemMachinePart, 1, MachinePart.BASIC_GEAR.ordinal());
|
||||
ItemStack diode = new ItemStack(EnderIO.itemFrankenSkull,1,FrankenSkull.GUARDIAN_DIODE.ordinal());
|
||||
ItemStack sentient = new ItemStack(EnderIO.itemFrankenSkull,1,FrankenSkull.SENTIENT_ENDER.ordinal());
|
||||
String electricalSteel = ELECTRICAL_STEEL.getOreIngot();
|
||||
String conductiveIron = CONDUCTIVE_IRON.getOreIngot();
|
||||
String vibCry = VIBRANT_CYSTAL.oreDict;
|
||||
@@ -26,7 +28,7 @@ public class ItemRecipes {
|
||||
String darkSteel = DARK_STEEL.getOreIngot();
|
||||
String soularium = SOULARIUM.getOreIngot();
|
||||
String endSteel = END_STEEL.getOreIngot();
|
||||
|
||||
String stellarAlloy = STELLAR_ALLOY.getOreIngot();
|
||||
|
||||
// Wrench
|
||||
ItemStack wrench = new ItemStack(EnderIO.itemYetaWench, 1, 0);
|
||||
@@ -49,6 +51,12 @@ public class ItemRecipes {
|
||||
addShaped(DarkSteelItems.itemEndSteelLeggings.createItemStack(), "sss", "sds", "s s", 's', endSteel, 'd', diode);
|
||||
addShaped(DarkSteelItems.itemEndSteelBoots.createItemStack(), "s s", "sds", 's', endSteel, 'd', diode);
|
||||
|
||||
//Stellar
|
||||
addShaped(DarkSteelItems.itemStellarHelmet.createItemStack(), "sss", "sds", 's', stellarAlloy, 'd', sentient);
|
||||
addShaped(DarkSteelItems.itemStellarChestplate.createItemStack(), "sds", "sss", "sss", 's', stellarAlloy, 'd', sentient);
|
||||
addShaped(DarkSteelItems.itemStellarLeggings.createItemStack(), "sss", "sds", "s s", 's', stellarAlloy, 'd', sentient);
|
||||
addShaped(DarkSteelItems.itemStellarBoots.createItemStack(), "s s", "sds", 's', stellarAlloy, 'd', sentient);
|
||||
|
||||
ItemStack wing = new ItemStack(DarkSteelItems.itemGliderWing, 1, 0);
|
||||
addShaped(wing, " s", " sl", "sll", 's', darkSteel, 'l', Items.leather);
|
||||
addShaped(new ItemStack(DarkSteelItems.itemGliderWing, 1, 1), " s ", "wsw", " ", 's', darkSteel, 'w', wing);
|
||||
@@ -85,5 +93,12 @@ public class ItemRecipes {
|
||||
addShaped(DarkSteelItems.itemEndSteelAxe.createItemStack(), "ss ", "sw ", " w ", 's', endSteel, 'w', "stickDarkSteel");
|
||||
addShaped(DarkSteelItems.itemEndSteelAxe.createItemStack(), "ss ", "sw ", " w ", 's', endSteel, 'w', "itemDarkSteelRod");
|
||||
|
||||
// Stellar Tools
|
||||
addShaped(DarkSteelItems.itemStellarSword.createItemStack(), " s ", " s ", " e ", 's', stellarAlloy,'e', sentient, 'w', "itemDarkSteelRod");
|
||||
addShaped(DarkSteelItems.itemStellarPickaxe.createItemStack(), "sss", " e ", " w ", 's', stellarAlloy,'e', sentient, 'w', "stickDarkSteel");
|
||||
addShaped(DarkSteelItems.itemStellarPickaxe.createItemStack(), "sss", " e ", " w ", 's', stellarAlloy,'e', sentient, 'w', "itemDarkSteelRod");
|
||||
addShaped(DarkSteelItems.itemStellarAxe.createItemStack(), "ss ", "se ", " w ", 's', stellarAlloy,'e', sentient, 'w', "stickDarkSteel");
|
||||
addShaped(DarkSteelItems.itemStellarAxe.createItemStack(), "ss ", "se ", " w ", 's', stellarAlloy,'e', sentient, 'w', "itemDarkSteelRod");
|
||||
|
||||
}
|
||||
}
|
||||
@@ -185,6 +185,9 @@ public class ItemSoulVessel extends Item implements IResourceTooltipProvider {
|
||||
if(entity instanceof EntityPlayer) {
|
||||
return false;
|
||||
}
|
||||
if(entity.isDead) {
|
||||
return false;
|
||||
}
|
||||
|
||||
String entityId = EntityList.getEntityString(entity);
|
||||
if(isBlackListed(entityId)) {
|
||||
|
||||
@@ -31,6 +31,14 @@ public class DarkSteelItems {
|
||||
public static ItemEndSteelPickaxe itemEndSteelPickaxe;
|
||||
public static ItemEndSteelAxe itemEndSteelAxe;
|
||||
|
||||
public static ItemStellarArmor itemStellarHelmet;
|
||||
public static ItemStellarArmor itemStellarChestplate;
|
||||
public static ItemStellarArmor itemStellarLeggings;
|
||||
public static ItemStellarArmor itemStellarBoots;
|
||||
public static ItemStellarSword itemStellarSword;
|
||||
public static ItemStellarPickaxe itemStellarPickaxe;
|
||||
public static ItemStellarAxe itemStellarAxe;
|
||||
|
||||
public static ItemMagnet itemMagnet;
|
||||
|
||||
private DarkSteelItems() {
|
||||
@@ -58,16 +66,25 @@ public class DarkSteelItems {
|
||||
itemEndSteelPickaxe = ItemEndSteelPickaxe.create();
|
||||
itemEndSteelAxe = ItemEndSteelAxe.create();
|
||||
|
||||
itemStellarHelmet = ItemStellarArmor.create(0);
|
||||
itemStellarChestplate = ItemStellarArmor.create(1);
|
||||
itemStellarLeggings = ItemStellarArmor.create(2);
|
||||
itemStellarBoots = ItemStellarArmor.create(3);
|
||||
|
||||
itemStellarSword = ItemStellarSword.create();
|
||||
itemStellarPickaxe = ItemStellarPickaxe.create();
|
||||
itemStellarAxe = ItemStellarAxe.create();
|
||||
|
||||
itemMagnet = ItemMagnet.create();
|
||||
|
||||
}
|
||||
|
||||
public static boolean isArmorPart(Item item, int type){
|
||||
switch(type){
|
||||
case 0:return item == itemDarkSteelHelmet||item == itemEndSteelHelmet;
|
||||
case 1:return item == itemDarkSteelChestplate||item == itemEndSteelChestplate;
|
||||
case 2:return item == itemDarkSteelLeggings||item == itemEndSteelLeggings;
|
||||
case 3:return item == itemDarkSteelBoots||item == itemEndSteelBoots;
|
||||
case 0:return item == itemDarkSteelHelmet||item == itemEndSteelHelmet||item == itemStellarHelmet;
|
||||
case 1:return item == itemDarkSteelChestplate||item == itemEndSteelChestplate||item == itemStellarChestplate;
|
||||
case 2:return item == itemDarkSteelLeggings||item == itemEndSteelLeggings||item == itemStellarLeggings;
|
||||
case 3:return item == itemDarkSteelBoots||item == itemEndSteelBoots||item == itemStellarBoots;
|
||||
default: return false;
|
||||
}
|
||||
}
|
||||
@@ -107,5 +124,13 @@ public class DarkSteelItems {
|
||||
MinecraftForgeClient.registerItemRenderer(itemEndSteelSword, dsr);
|
||||
MinecraftForgeClient.registerItemRenderer(itemEndSteelPickaxe, dsr);
|
||||
MinecraftForgeClient.registerItemRenderer(itemEndSteelAxe, dsr);
|
||||
|
||||
MinecraftForgeClient.registerItemRenderer(itemStellarBoots, dsr);
|
||||
MinecraftForgeClient.registerItemRenderer(itemStellarLeggings, dsr);
|
||||
MinecraftForgeClient.registerItemRenderer(itemStellarChestplate, dsr);
|
||||
MinecraftForgeClient.registerItemRenderer(itemStellarHelmet, dsr);
|
||||
MinecraftForgeClient.registerItemRenderer(itemStellarSword, dsr);
|
||||
MinecraftForgeClient.registerItemRenderer(itemStellarPickaxe, dsr);
|
||||
MinecraftForgeClient.registerItemRenderer(itemStellarAxe, dsr);
|
||||
}
|
||||
}
|
||||
@@ -21,6 +21,7 @@ import cpw.mods.fml.common.Loader;
|
||||
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
|
||||
import crazypants.enderio.EnderIO;
|
||||
import crazypants.enderio.item.darksteel.IDarkSteelItem.IEndSteelItem;
|
||||
import crazypants.enderio.item.darksteel.IDarkSteelItem.IStellarItem;
|
||||
import crazypants.enderio.item.darksteel.upgrade.ApiaristArmorUpgrade;
|
||||
import crazypants.enderio.item.darksteel.upgrade.EnergyUpgrade;
|
||||
import crazypants.enderio.item.darksteel.upgrade.GliderUpgrade;
|
||||
@@ -35,6 +36,7 @@ import crazypants.enderio.item.darksteel.upgrade.SpoonUpgrade;
|
||||
import crazypants.enderio.item.darksteel.upgrade.SwimUpgrade;
|
||||
import crazypants.enderio.item.darksteel.upgrade.TravelUpgrade;
|
||||
import crazypants.enderio.material.Alloy;
|
||||
import crazypants.enderio.material.endergy.AlloyEndergy;
|
||||
import crazypants.enderio.thaumcraft.ThaumcraftCompat;
|
||||
|
||||
public class DarkSteelRecipeManager {
|
||||
@@ -82,11 +84,19 @@ public class DarkSteelRecipeManager {
|
||||
return;
|
||||
}
|
||||
|
||||
if(evt.left.getItem() instanceof IEndSteelItem && OreDictionaryHelper.hasName(evt.right, Alloy.END_STEEL.getOreIngot())) {
|
||||
if(evt.left.getItem() instanceof IStellarItem && OreDictionaryHelper.hasName(evt.right, AlloyEndergy.STELLAR_ALLOY.getOreIngot())) {
|
||||
handleRepair(evt);
|
||||
}else if(evt.left.getItem() instanceof IDarkSteelItem && OreDictionaryHelper.hasName(evt.right, Alloy.DARK_STEEL.getOreIngot())) {
|
||||
}
|
||||
|
||||
else if(evt.left.getItem() instanceof IEndSteelItem && OreDictionaryHelper.hasName(evt.right, Alloy.END_STEEL.getOreIngot())) {
|
||||
handleRepair(evt);
|
||||
}
|
||||
|
||||
else if(evt.left.getItem() instanceof IDarkSteelItem && OreDictionaryHelper.hasName(evt.right, Alloy.DARK_STEEL.getOreIngot())) {
|
||||
handleRepair(evt);
|
||||
} else {
|
||||
}
|
||||
|
||||
else {
|
||||
handleUpgrade(evt);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,4 +8,8 @@ public interface IDarkSteelItem {
|
||||
|
||||
}
|
||||
|
||||
public interface IStellarItem extends IEndSteelItem {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
package crazypants.enderio.item.darksteel;
|
||||
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
import crazypants.enderio.item.darksteel.IDarkSteelItem.IEndSteelItem;
|
||||
import crazypants.enderio.item.darksteel.IDarkSteelItem.IStellarItem;
|
||||
import crazypants.enderio.item.darksteel.upgrade.EnergyUpgrade;
|
||||
import crazypants.enderio.item.darksteel.upgrade.IDarkSteelUpgrade;
|
||||
import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraftforge.common.util.EnumHelper;
|
||||
|
||||
public class ItemStellarArmor extends ItemDarkSteelArmor implements IStellarItem {
|
||||
|
||||
public static final ArmorMaterial MATERIAL = EnumHelper.addArmorMaterial("stellarAlloy", 75, new int[] {8, 14, 18, 7}, 25);
|
||||
|
||||
public ItemStellarArmor(int armorType) {
|
||||
super(MATERIAL, "stellar", armorType);
|
||||
|
||||
}
|
||||
|
||||
public static ItemStellarArmor create(int armorType) {
|
||||
ItemStellarArmor res = new ItemStellarArmor(armorType);
|
||||
res.init();
|
||||
return res;
|
||||
}
|
||||
|
||||
public static ItemStellarArmor forArmorType(int armorType) {
|
||||
switch (armorType) {
|
||||
case 0: return DarkSteelItems.itemStellarHelmet;
|
||||
case 1: return DarkSteelItems.itemStellarChestplate;
|
||||
case 2: return DarkSteelItems.itemStellarLeggings;
|
||||
case 3: return DarkSteelItems.itemStellarBoots;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static int getPoweredProtectionIncrease(int armorType) {
|
||||
switch (armorType) {
|
||||
case 0: return 2;
|
||||
case 1: return 1;
|
||||
case 2: return 4;
|
||||
case 3: return 3;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@SuppressWarnings({ "unchecked", "rawtypes" })
|
||||
@Override
|
||||
@SideOnly(Side.CLIENT)
|
||||
public void getSubItems(Item item, CreativeTabs par2CreativeTabs, List par3List) {
|
||||
ItemStack is = new ItemStack(this);
|
||||
par3List.add(is);
|
||||
|
||||
is = new ItemStack(this);
|
||||
EnergyUpgrade.EMPOWERED_FIVE.writeToItem(is);
|
||||
EnergyUpgrade.setPowerFull(is);
|
||||
|
||||
Iterator<IDarkSteelUpgrade> iter = DarkSteelRecipeManager.instance.recipeIterator();
|
||||
while (iter.hasNext()) {
|
||||
IDarkSteelUpgrade upgrade = iter.next();
|
||||
if (!(upgrade instanceof EnergyUpgrade) && upgrade.canAddToItem(is)) {
|
||||
upgrade.writeToItem(is);
|
||||
}
|
||||
}
|
||||
|
||||
par3List.add(is);
|
||||
}
|
||||
|
||||
}
|
||||