├── .gitattributes
├── .gitignore
├── Changelog.md
├── README.md
├── build.gradle
├── build.properties
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── libs
└── gregtech_1.7.10-5.08.05-api.jar
├── src
├── api
│ └── java
│ │ ├── cofh
│ │ └── api
│ │ │ ├── CoFHAPIProps.java
│ │ │ ├── energy
│ │ │ ├── EnergyStorage.java
│ │ │ ├── IEnergyConnection.java
│ │ │ ├── IEnergyContainerItem.java
│ │ │ ├── IEnergyHandler.java
│ │ │ ├── IEnergyProvider.java
│ │ │ ├── IEnergyReceiver.java
│ │ │ ├── IEnergyStorage.java
│ │ │ ├── ItemEnergyContainer.java
│ │ │ ├── TileEnergyHandler.java
│ │ │ └── package-info.java
│ │ │ └── package-info.java
│ │ └── factorization
│ │ └── api
│ │ ├── Charge.java
│ │ ├── Coord.java
│ │ ├── IChargeConductor.java
│ │ ├── ICoord.java
│ │ └── IMeterInfo.java
└── main
│ ├── java
│ └── powercrystals
│ │ └── powerconverters
│ │ ├── PowerConverterCore.java
│ │ ├── common
│ │ ├── BlockPowerConverterCommon.java
│ │ ├── BridgeSideData.java
│ │ ├── IChargeHandler.java
│ │ ├── ItemBlockPowerConverterCommon.java
│ │ ├── TileEntityCharger.java
│ │ └── TileEntityEnergyBridge.java
│ │ ├── crafting
│ │ ├── RecipeProvider.java
│ │ └── mods
│ │ │ ├── RecipeBuildCraft.java
│ │ │ ├── RecipeEnderIO.java
│ │ │ ├── RecipeFactorization.java
│ │ │ ├── RecipeForestry.java
│ │ │ ├── RecipeGregTech5.java
│ │ │ ├── RecipeIndustrialCraft.java
│ │ │ ├── RecipeMFFS.java
│ │ │ ├── RecipeRailcraft.java
│ │ │ ├── RecipeThermalExpansion.java
│ │ │ └── RecipeVanilla.java
│ │ ├── gui
│ │ ├── ContainerEnergyBridge.java
│ │ ├── GuiEnergyBridge.java
│ │ ├── PCCreativeTab.java
│ │ └── PCGUIHandler.java
│ │ ├── mods
│ │ └── reference
│ │ │ ├── InterfaceReference.java
│ │ │ └── ModIDReference.java
│ │ ├── network
│ │ ├── GenericHandler.java
│ │ └── PacketClientSync.java
│ │ ├── position
│ │ ├── BlockPosition.java
│ │ └── INeighboorUpdateTile.java
│ │ ├── power
│ │ ├── PowerSystem.java
│ │ ├── PowerSystemManager.java
│ │ ├── base
│ │ │ ├── BlockPowerConverter.java
│ │ │ ├── TileEntityBridgeComponent.java
│ │ │ ├── TileEntityEnergyConsumer.java
│ │ │ └── TileEntityEnergyProducer.java
│ │ ├── systems
│ │ │ ├── PowerFactorization.java
│ │ │ ├── PowerFortron.java
│ │ │ ├── PowerGregTech5.java
│ │ │ ├── PowerIndustrialcraft.java
│ │ │ ├── PowerRedstoneFlux.java
│ │ │ ├── PowerSteam.java
│ │ │ ├── Rotarycraft.java
│ │ │ ├── factorization
│ │ │ │ ├── BlockFactorization.java
│ │ │ │ ├── ItemBlockFactorization.java
│ │ │ │ ├── TileEntityFactorizationConsumer.java
│ │ │ │ └── TileEntityFactorizationProducer.java
│ │ │ ├── fortron
│ │ │ │ ├── BlockFortron.java
│ │ │ │ ├── ItemBlockFortron.java
│ │ │ │ ├── TileEntityFortronConsumer.java
│ │ │ │ └── TileEntityFortronProducer.java
│ │ │ ├── gt5
│ │ │ │ ├── BaseGTConsumerTileEntity.java
│ │ │ │ ├── BaseGTProducerTileEntity.java
│ │ │ │ ├── BlockGregTechConsumer.java
│ │ │ │ ├── BlockGregTechProducer.java
│ │ │ │ ├── ItemBlockGregTechConsumer.java
│ │ │ │ ├── ItemBlockGregTechProducer.java
│ │ │ │ ├── TileEntityGregTechConsumer.java
│ │ │ │ └── TileEntityGregTechProducer.java
│ │ │ ├── ic2
│ │ │ │ ├── BlockIndustrialCraft.java
│ │ │ │ ├── ChargeHandlerIndustrialCraft.java
│ │ │ │ ├── ItemBlockIndustrialCraft.java
│ │ │ │ ├── TileEntityIndustrialCraftConsumer.java
│ │ │ │ └── TileEntityIndustrialCraftProducer.java
│ │ │ ├── rf
│ │ │ │ ├── BlockRF.java
│ │ │ │ ├── ChargeHandlerRF.java
│ │ │ │ ├── ItemBlockRF.java
│ │ │ │ ├── TileEntityRFConsumer.java
│ │ │ │ └── TileEntityRFProducer.java
│ │ │ └── steam
│ │ │ │ ├── BlockSteam.java
│ │ │ │ ├── ItemBlockSteam.java
│ │ │ │ ├── TileEntitySteamConsumer.java
│ │ │ │ └── TileEntitySteamProducer.java
│ │ └── util
│ │ │ └── ICustomHandler.java
│ │ └── renderer
│ │ ├── ExposedGuiContainer.java
│ │ └── RenderUtility.java
│ └── resources
│ ├── assets
│ └── powerconverters
│ │ ├── lang
│ │ ├── de_DE.lang
│ │ ├── en_US.lang
│ │ ├── pt_BR.lang
│ │ ├── ru_RU.lang
│ │ ├── zh_CN.lang
│ │ └── zh_TW.lang
│ │ └── textures
│ │ ├── blocks
│ │ ├── bc
│ │ │ ├── consumer_off.png
│ │ │ ├── consumer_on.png
│ │ │ ├── producer_off.png
│ │ │ └── producer_on.png
│ │ ├── common
│ │ │ ├── bridge.png
│ │ │ ├── charger_off.png
│ │ │ └── charger_on.png
│ │ ├── factorization
│ │ │ ├── consumer_off.png
│ │ │ ├── consumer_on.png
│ │ │ ├── producer_off.png
│ │ │ └── producer_on.png
│ │ ├── gt
│ │ │ ├── ev
│ │ │ │ ├── consumer_off.png
│ │ │ │ ├── consumer_on.png
│ │ │ │ ├── producer_off.png
│ │ │ │ └── producer_on.png
│ │ │ ├── hv
│ │ │ │ ├── consumer_off.png
│ │ │ │ ├── consumer_on.png
│ │ │ │ ├── producer_off.png
│ │ │ │ └── producer_on.png
│ │ │ ├── iv
│ │ │ │ ├── consumer_off.png
│ │ │ │ ├── consumer_on.png
│ │ │ │ ├── producer_off.png
│ │ │ │ └── producer_on.png
│ │ │ ├── luv
│ │ │ │ ├── consumer_off.png
│ │ │ │ ├── consumer_on.png
│ │ │ │ ├── producer_off.png
│ │ │ │ └── producer_on.png
│ │ │ ├── lv
│ │ │ │ ├── consumer_off.png
│ │ │ │ ├── consumer_on.png
│ │ │ │ ├── producer_off.png
│ │ │ │ └── producer_on.png
│ │ │ ├── mv
│ │ │ │ ├── consumer_off.png
│ │ │ │ ├── consumer_on.png
│ │ │ │ ├── producer_off.png
│ │ │ │ └── producer_on.png
│ │ │ ├── ulv
│ │ │ │ ├── consumer_off.png
│ │ │ │ ├── consumer_on.png
│ │ │ │ ├── producer_off.png
│ │ │ │ └── producer_on.png
│ │ │ ├── uv
│ │ │ │ ├── consumer_off.png
│ │ │ │ ├── consumer_on.png
│ │ │ │ ├── producer_off.png
│ │ │ │ └── producer_on.png
│ │ │ └── zpmv
│ │ │ │ ├── consumer_off.png
│ │ │ │ ├── consumer_on.png
│ │ │ │ ├── producer_off.png
│ │ │ │ └── producer_on.png
│ │ ├── ic2
│ │ │ ├── ev
│ │ │ │ ├── consumer_off.png
│ │ │ │ ├── consumer_on.png
│ │ │ │ ├── producer_off.png
│ │ │ │ └── producer_on.png
│ │ │ ├── hv
│ │ │ │ ├── consumer_off.png
│ │ │ │ ├── consumer_on.png
│ │ │ │ ├── producer_off.png
│ │ │ │ └── producer_on.png
│ │ │ ├── lv
│ │ │ │ ├── consumer_off.png
│ │ │ │ ├── consumer_on.png
│ │ │ │ ├── producer_off.png
│ │ │ │ └── producer_on.png
│ │ │ ├── mv
│ │ │ │ ├── consumer_off.png
│ │ │ │ ├── consumer_on.png
│ │ │ │ ├── producer_off.png
│ │ │ │ └── producer_on.png
│ │ │ └── uv
│ │ │ │ ├── consumer_off.png
│ │ │ │ ├── consumer_on.png
│ │ │ │ ├── producer_off.png
│ │ │ │ └── producer_on.png
│ │ ├── mffs
│ │ │ ├── consumer_off.png
│ │ │ ├── consumer_on.png
│ │ │ ├── producer_off.png
│ │ │ └── producer_on.png
│ │ ├── steam
│ │ │ ├── consumer_off.png
│ │ │ ├── consumer_on.png
│ │ │ ├── producer_off.png
│ │ │ └── producer_on.png
│ │ └── te
│ │ │ ├── consumer_off.png
│ │ │ ├── consumer_on.png
│ │ │ ├── producer_off.png
│ │ │ └── producer_on.png
│ │ ├── gui
│ │ ├── .directory
│ │ └── energybridge.png
│ │ └── items
│ │ └── 000_JetpackFueller.png
│ ├── mcmod.info
│ ├── pack.mcmeta
│ └── version.properties
└── work
├── asset_gt-block.psd
└── asset_mffs-block.psd
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
4 | # Custom for Visual Studio
5 | *.cs diff=csharp
6 | *.sln merge=union
7 | *.csproj merge=union
8 | *.vbproj merge=union
9 | *.fsproj merge=union
10 | *.dbproj merge=union
11 |
12 | # Standard to msysgit
13 | *.doc diff=astextplain
14 | *.DOC diff=astextplain
15 | *.docx diff=astextplain
16 | *.DOCX diff=astextplain
17 | *.dot diff=astextplain
18 | *.DOT diff=astextplain
19 | *.pdf diff=astextplain
20 | *.PDF diff=astextplain
21 | *.rtf diff=astextplain
22 | *.RTF diff=astextplain
23 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | #################
2 | ## Eclipse
3 | #################
4 |
5 | *.pydevproject
6 | .project
7 | .metadata
8 | bin/
9 | tmp/
10 | *.tmp
11 | *.bak
12 | *.swp
13 | *~.nib
14 | local.properties
15 | .classpath
16 | .settings/
17 | .loadpath
18 |
19 | # External tool builders
20 | .externalToolBuilders/
21 |
22 | # Locally stored "Eclipse launch configurations"
23 | *.launch
24 |
25 | # CDT-specific
26 | .cproject
27 |
28 | # PDT-specific
29 | .buildpath
30 |
31 |
32 | #################
33 | ## Visual Studio
34 | #################
35 |
36 | ## Ignore Visual Studio temporary files, build results, and
37 | ## files generated by popular Visual Studio add-ons.
38 |
39 | # User-specific files
40 | *.suo
41 | *.user
42 | *.sln.docstates
43 |
44 | # Build results
45 | [Dd]ebug/
46 | [Rr]elease/
47 | *_i.c
48 | *_p.c
49 | *.ilk
50 | *.meta
51 | *.obj
52 | *.pch
53 | *.pdb
54 | *.pgc
55 | *.pgd
56 | *.rsp
57 | *.sbr
58 | *.tlb
59 | *.tli
60 | *.tlh
61 | *.tmp
62 | *.vspscc
63 | .builds
64 | *.dotCover
65 |
66 | # Visual Studio profiler
67 | *.psess
68 | *.vsp
69 |
70 | # Backup & report files from converting an old project file to a newer
71 | # Visual Studio version. Backup files are not needed, because we have git ;-)
72 | _UpgradeReport_Files/
73 | Backup*/
74 | UpgradeLog*.XML
75 |
76 | ############
77 | ## Intellij IDEA
78 | ############
79 |
80 | .intellj
81 | *.iml
82 | *.ipr
83 | *.iws
84 |
85 | ############
86 | ## OS Specific
87 | ############
88 |
89 | # Windows image file caches
90 | Thumbs.db
91 |
92 | # Folder config file
93 | Desktop.ini
94 |
95 | # Mac crap
96 | .DS_Store
97 |
98 | # Linux files
99 | .directory
100 |
101 | ###########
102 |
103 | eclipse/**
104 | out/**
105 | run/**
106 |
--------------------------------------------------------------------------------
/Changelog.md:
--------------------------------------------------------------------------------
1 | Changelog
2 | =========
3 |
4 | 3.3.0
5 | -----
6 | Changes:
7 | * Split gregtech producers and consumers into 2 block IDs. THIS WILL GET RID OFF ALL GREGTECH PRODUCERS AND CONSUMERS
8 | Fixes:
9 | * Fix ratios for RF, ic2steam and ic2superheated steam.
10 | * Fix display of steam amount.
11 |
12 | To use new ratios, please delete the powerconverters/common.cfg config file.
13 |
14 | 3.2.1
15 | -----
16 | Changes:
17 | * Change how redstone detection works. Hopefully it makes it work better.
18 | Fixes:
19 | * Fix IC2 consumers not working.
20 |
21 | 3.2.0
22 | -----
23 | Fixes:
24 | * Fix crashes on opening GUI in SMP.
25 | Changes:
26 | * Re-add gregtech back in for Gregtech 5 port.
27 | * Energy bridge '% chg' tooltip shows the type of steam stored.
28 | * Producers and consumers will not transfer any energy when provided with a redstone signal.
29 |
30 | 3.1.1
31 | -----
32 | Fixes:
33 | * Steam consumers and producers actually work.
34 |
35 | 3.1.0
36 | ------
37 | Changes:
38 | * Steam consumer can take multiple types of steam (steam, ic2steam, ic2superheatedsteam) if they are registered.
39 | * Steam producer can be crafted to output different types of steam.
40 | * Sync power values to client on login to server. Should make tooltips more accurate.
41 | Fixes:
42 | * Bugs that may have been caused by client-server desync.
43 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | PowerConverters (maintained by portablejim)
2 | ===================
3 | Build status: 
4 |
5 | Information
6 | --
7 | [Minecraft Forum Topic](http://www.minecraftforum.net/topic/2407074-164-powerconverters-originally-by-powercrystals)
8 |
9 | Other topics:
10 | * [Origial topic by PowerCrystals (support for minecraft 1.5)](http://www.minecraftforum.net/topic/1629898-0)
11 | * [samrg472's topic](http://www.minecraftforum.net/topic/1695968-). Seems to be dead (at time of writing)
12 |
13 | Installation
14 | --
15 | 1. Make sure you have MinecraftForge installed
16 | * [MinecraftForge Download](http://files.minecraftforge.net/ "Download MinecraftForge")
17 | 2. Download a PowerConverters build as provided in the download link
18 | * [Power Converters Download](http://jamesmckay.id.au:8080/job/Power%20Converters/lastStableBuild/ "Download Power Converters")
19 | 3. Place the zip file you downloaded in your mods folder
20 |
21 | Credits
22 | --
23 |
24 | This mod was originally created by Powercrystals, updated by samrg472 and portablejim
25 |
--------------------------------------------------------------------------------
/build.properties:
--------------------------------------------------------------------------------
1 | minecraft_version=1.7.10
2 | forge_version=10.13.4.1492-1.7.10
3 | compatible_versions=1.7.10
4 | #
5 | #
6 | #
7 | #
8 | mod_version=3.3.0
9 | #
10 | #
11 | #
12 | #
13 | ic2_version=2.2.767-experimental
14 | buildcraft_version=7.0.21
15 | resonantengine_version=3.3.0.394
16 | waila_version=1.5.10_1.7.10
17 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Wed Jul 02 15:54:47 CDT 2014
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-2.0-bin.zip
7 |
--------------------------------------------------------------------------------
/gradlew.bat:
--------------------------------------------------------------------------------
1 | @if "%DEBUG%" == "" @echo off
2 | @rem ##########################################################################
3 | @rem
4 | @rem Gradle startup script for Windows
5 | @rem
6 | @rem ##########################################################################
7 |
8 | @rem Set local scope for the variables with windows NT shell
9 | if "%OS%"=="Windows_NT" setlocal
10 |
11 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
12 | set DEFAULT_JVM_OPTS=
13 |
14 | set DIRNAME=%~dp0
15 | if "%DIRNAME%" == "" set DIRNAME=.
16 | set APP_BASE_NAME=%~n0
17 | set APP_HOME=%DIRNAME%
18 |
19 | @rem Find java.exe
20 | if defined JAVA_HOME goto findJavaFromJavaHome
21 |
22 | set JAVA_EXE=java.exe
23 | %JAVA_EXE% -version >NUL 2>&1
24 | if "%ERRORLEVEL%" == "0" goto init
25 |
26 | echo.
27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
28 | echo.
29 | echo Please set the JAVA_HOME variable in your environment to match the
30 | echo location of your Java installation.
31 |
32 | goto fail
33 |
34 | :findJavaFromJavaHome
35 | set JAVA_HOME=%JAVA_HOME:"=%
36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
37 |
38 | if exist "%JAVA_EXE%" goto init
39 |
40 | echo.
41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
42 | echo.
43 | echo Please set the JAVA_HOME variable in your environment to match the
44 | echo location of your Java installation.
45 |
46 | goto fail
47 |
48 | :init
49 | @rem Get command-line arguments, handling Windowz variants
50 |
51 | if not "%OS%" == "Windows_NT" goto win9xME_args
52 | if "%@eval[2+2]" == "4" goto 4NT_args
53 |
54 | :win9xME_args
55 | @rem Slurp the command line arguments.
56 | set CMD_LINE_ARGS=
57 | set _SKIP=2
58 |
59 | :win9xME_args_slurp
60 | if "x%~1" == "x" goto execute
61 |
62 | set CMD_LINE_ARGS=%*
63 | goto execute
64 |
65 | :4NT_args
66 | @rem Get arguments from the 4NT Shell from JP Software
67 | set CMD_LINE_ARGS=%$
68 |
69 | :execute
70 | @rem Setup the command line
71 |
72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
73 |
74 | @rem Execute Gradle
75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
76 |
77 | :end
78 | @rem End local scope for the variables with windows NT shell
79 | if "%ERRORLEVEL%"=="0" goto mainEnd
80 |
81 | :fail
82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
83 | rem the _cmd.exe /c_ return code!
84 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
85 | exit /b 1
86 |
87 | :mainEnd
88 | if "%OS%"=="Windows_NT" endlocal
89 |
90 | :omega
91 |
--------------------------------------------------------------------------------
/libs/gregtech_1.7.10-5.08.05-api.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/libs/gregtech_1.7.10-5.08.05-api.jar
--------------------------------------------------------------------------------
/src/api/java/cofh/api/CoFHAPIProps.java:
--------------------------------------------------------------------------------
1 | package cofh.api;
2 |
3 | public class CoFHAPIProps {
4 |
5 | private CoFHAPIProps() {
6 |
7 | }
8 |
9 | public static final String VERSION = "1.7.10R1.0.3";
10 |
11 | }
12 |
--------------------------------------------------------------------------------
/src/api/java/cofh/api/energy/EnergyStorage.java:
--------------------------------------------------------------------------------
1 | package cofh.api.energy;
2 |
3 | import net.minecraft.nbt.NBTTagCompound;
4 |
5 | /**
6 | * Reference implementation of {@link IEnergyStorage}. Use/extend this or implement your own.
7 | *
8 | * @author King Lemming
9 | *
10 | */
11 | public class EnergyStorage implements IEnergyStorage {
12 |
13 | protected int energy;
14 | protected int capacity;
15 | protected int maxReceive;
16 | protected int maxExtract;
17 |
18 | public EnergyStorage(int capacity) {
19 |
20 | this(capacity, capacity, capacity);
21 | }
22 |
23 | public EnergyStorage(int capacity, int maxTransfer) {
24 |
25 | this(capacity, maxTransfer, maxTransfer);
26 | }
27 |
28 | public EnergyStorage(int capacity, int maxReceive, int maxExtract) {
29 |
30 | this.capacity = capacity;
31 | this.maxReceive = maxReceive;
32 | this.maxExtract = maxExtract;
33 | }
34 |
35 | public EnergyStorage readFromNBT(NBTTagCompound nbt) {
36 |
37 | this.energy = nbt.getInteger("Energy");
38 |
39 | if (energy > capacity) {
40 | energy = capacity;
41 | }
42 | return this;
43 | }
44 |
45 | public NBTTagCompound writeToNBT(NBTTagCompound nbt) {
46 |
47 | if (energy < 0) {
48 | energy = 0;
49 | }
50 | nbt.setInteger("Energy", energy);
51 | return nbt;
52 | }
53 |
54 | public void setCapacity(int capacity) {
55 |
56 | this.capacity = capacity;
57 |
58 | if (energy > capacity) {
59 | energy = capacity;
60 | }
61 | }
62 |
63 | public void setMaxTransfer(int maxTransfer) {
64 |
65 | setMaxReceive(maxTransfer);
66 | setMaxExtract(maxTransfer);
67 | }
68 |
69 | public void setMaxReceive(int maxReceive) {
70 |
71 | this.maxReceive = maxReceive;
72 | }
73 |
74 | public void setMaxExtract(int maxExtract) {
75 |
76 | this.maxExtract = maxExtract;
77 | }
78 |
79 | public int getMaxReceive() {
80 |
81 | return maxReceive;
82 | }
83 |
84 | public int getMaxExtract() {
85 |
86 | return maxExtract;
87 | }
88 |
89 | /**
90 | * This function is included to allow for server -> client sync. Do not call this externally to the containing Tile Entity, as not all IEnergyHandlers
91 | * are guaranteed to have it.
92 | *
93 | * @param energy
94 | */
95 | public void setEnergyStored(int energy) {
96 |
97 | this.energy = energy;
98 |
99 | if (this.energy > capacity) {
100 | this.energy = capacity;
101 | } else if (this.energy < 0) {
102 | this.energy = 0;
103 | }
104 | }
105 |
106 | /**
107 | * This function is included to allow the containing tile to directly and efficiently modify the energy contained in the EnergyStorage. Do not rely on this
108 | * externally, as not all IEnergyHandlers are guaranteed to have it.
109 | *
110 | * @param energy
111 | */
112 | public void modifyEnergyStored(int energy) {
113 |
114 | this.energy += energy;
115 |
116 | if (this.energy > capacity) {
117 | this.energy = capacity;
118 | } else if (this.energy < 0) {
119 | this.energy = 0;
120 | }
121 | }
122 |
123 | /* IEnergyStorage */
124 | @Override
125 | public int receiveEnergy(int maxReceive, boolean simulate) {
126 |
127 | int energyReceived = Math.min(capacity - energy, Math.min(this.maxReceive, maxReceive));
128 |
129 | if (!simulate) {
130 | energy += energyReceived;
131 | }
132 | return energyReceived;
133 | }
134 |
135 | @Override
136 | public int extractEnergy(int maxExtract, boolean simulate) {
137 |
138 | int energyExtracted = Math.min(energy, Math.min(this.maxExtract, maxExtract));
139 |
140 | if (!simulate) {
141 | energy -= energyExtracted;
142 | }
143 | return energyExtracted;
144 | }
145 |
146 | @Override
147 | public int getEnergyStored() {
148 |
149 | return energy;
150 | }
151 |
152 | @Override
153 | public int getMaxEnergyStored() {
154 |
155 | return capacity;
156 | }
157 |
158 | }
159 |
--------------------------------------------------------------------------------
/src/api/java/cofh/api/energy/IEnergyConnection.java:
--------------------------------------------------------------------------------
1 | package cofh.api.energy;
2 |
3 | import net.minecraftforge.common.util.ForgeDirection;
4 |
5 | /**
6 | * Implement this interface on TileEntities which should connect to energy transportation blocks. This is intended for blocks which generate energy but do not
7 | * accept it; otherwise just use IEnergyHandler.
8 | *
9 | * Note that {@link IEnergyHandler} is an extension of this.
10 | *
11 | * @author King Lemming
12 | *
13 | */
14 | public interface IEnergyConnection {
15 |
16 | /**
17 | * Returns TRUE if the TileEntity can connect on a given side.
18 | */
19 | boolean canConnectEnergy(ForgeDirection from);
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/src/api/java/cofh/api/energy/IEnergyContainerItem.java:
--------------------------------------------------------------------------------
1 | package cofh.api.energy;
2 |
3 | import net.minecraft.item.ItemStack;
4 |
5 | /**
6 | * Implement this interface on Item classes that support external manipulation of their internal energy storages.
7 | *
8 | * A reference implementation is provided {@link ItemEnergyContainer}.
9 | *
10 | * @author King Lemming
11 | *
12 | */
13 | public interface IEnergyContainerItem {
14 |
15 | /**
16 | * Adds energy to a container item. Returns the quantity of energy that was accepted. This should always return 0 if the item cannot be externally charged.
17 | *
18 | * @param container
19 | * ItemStack to be charged.
20 | * @param maxReceive
21 | * Maximum amount of energy to be sent into the item.
22 | * @param simulate
23 | * If TRUE, the charge will only be simulated.
24 | * @return Amount of energy that was (or would have been, if simulated) received by the item.
25 | */
26 | int receiveEnergy(ItemStack container, int maxReceive, boolean simulate);
27 |
28 | /**
29 | * Removes energy from a container item. Returns the quantity of energy that was removed. This should always return 0 if the item cannot be externally
30 | * discharged.
31 | *
32 | * @param container
33 | * ItemStack to be discharged.
34 | * @param maxExtract
35 | * Maximum amount of energy to be extracted from the item.
36 | * @param simulate
37 | * If TRUE, the discharge will only be simulated.
38 | * @return Amount of energy that was (or would have been, if simulated) extracted from the item.
39 | */
40 | int extractEnergy(ItemStack container, int maxExtract, boolean simulate);
41 |
42 | /**
43 | * Get the amount of energy currently stored in the container item.
44 | */
45 | int getEnergyStored(ItemStack container);
46 |
47 | /**
48 | * Get the max amount of energy that can be stored in the container item.
49 | */
50 | int getMaxEnergyStored(ItemStack container);
51 |
52 | }
53 |
--------------------------------------------------------------------------------
/src/api/java/cofh/api/energy/IEnergyHandler.java:
--------------------------------------------------------------------------------
1 | package cofh.api.energy;
2 |
3 | import net.minecraftforge.common.util.ForgeDirection;
4 |
5 | /**
6 | * Implement this interface on Tile Entities which should handle energy, generally storing it in one or more internal {@link IEnergyStorage} objects.
7 | *
8 | * A reference implementation is provided {@link TileEnergyHandler}.
9 | *
10 | * @author King Lemming
11 | *
12 | */
13 | public interface IEnergyHandler extends IEnergyProvider, IEnergyReceiver {
14 |
15 | // merely a convenience interface (remove these methods in 1.8; provided here for back-compat via compiler doing things)
16 |
17 | /**
18 | * Add energy to an IEnergyReceiver, internal distribution is left entirely to the IEnergyReceiver.
19 | *
20 | * @param from
21 | * Orientation the energy is received from.
22 | * @param maxReceive
23 | * Maximum amount of energy to receive.
24 | * @param simulate
25 | * If TRUE, the charge will only be simulated.
26 | * @return Amount of energy that was (or would have been, if simulated) received.
27 | */
28 | @Override
29 | int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate);
30 |
31 | /**
32 | * Remove energy from an IEnergyProvider, internal distribution is left entirely to the IEnergyProvider.
33 | *
34 | * @param from
35 | * Orientation the energy is extracted from.
36 | * @param maxExtract
37 | * Maximum amount of energy to extract.
38 | * @param simulate
39 | * If TRUE, the extraction will only be simulated.
40 | * @return Amount of energy that was (or would have been, if simulated) extracted.
41 | */
42 | @Override
43 | int extractEnergy(ForgeDirection from, int maxExtract, boolean simulate);
44 |
45 |
46 | /**
47 | * Returns the amount of energy currently stored.
48 | */
49 | @Override
50 | int getEnergyStored(ForgeDirection from);
51 |
52 | /**
53 | * Returns the maximum amount of energy that can be stored.
54 | */
55 | @Override
56 | int getMaxEnergyStored(ForgeDirection from);
57 |
58 | }
59 |
--------------------------------------------------------------------------------
/src/api/java/cofh/api/energy/IEnergyProvider.java:
--------------------------------------------------------------------------------
1 | package cofh.api.energy;
2 |
3 | import net.minecraftforge.common.util.ForgeDirection;
4 |
5 | /**
6 | * Implement this interface on Tile Entities which should provide energy, generally storing it in one or more internal {@link IEnergyStorage} objects.
7 | *
8 | * A reference implementation is provided {@link TileEnergyHandler}.
9 | *
10 | * @author King Lemming
11 | *
12 | */
13 | public interface IEnergyProvider extends IEnergyConnection {
14 |
15 | /**
16 | * Remove energy from an IEnergyProvider, internal distribution is left entirely to the IEnergyProvider.
17 | *
18 | * @param from
19 | * Orientation the energy is extracted from.
20 | * @param maxExtract
21 | * Maximum amount of energy to extract.
22 | * @param simulate
23 | * If TRUE, the extraction will only be simulated.
24 | * @return Amount of energy that was (or would have been, if simulated) extracted.
25 | */
26 | int extractEnergy(ForgeDirection from, int maxExtract, boolean simulate);
27 |
28 | /**
29 | * Returns the amount of energy currently stored.
30 | */
31 | int getEnergyStored(ForgeDirection from);
32 |
33 | /**
34 | * Returns the maximum amount of energy that can be stored.
35 | */
36 | int getMaxEnergyStored(ForgeDirection from);
37 |
38 | }
39 |
--------------------------------------------------------------------------------
/src/api/java/cofh/api/energy/IEnergyReceiver.java:
--------------------------------------------------------------------------------
1 | package cofh.api.energy;
2 |
3 | import net.minecraftforge.common.util.ForgeDirection;
4 |
5 | /**
6 | * Implement this interface on Tile Entities which should receive energy, generally storing it in one or more internal {@link IEnergyStorage} objects.
7 | *
8 | * A reference implementation is provided {@link TileEnergyHandler}.
9 | *
10 | * @author King Lemming
11 | *
12 | */
13 | public interface IEnergyReceiver extends IEnergyConnection {
14 |
15 | /**
16 | * Add energy to an IEnergyReceiver, internal distribution is left entirely to the IEnergyReceiver.
17 | *
18 | * @param from
19 | * Orientation the energy is received from.
20 | * @param maxReceive
21 | * Maximum amount of energy to receive.
22 | * @param simulate
23 | * If TRUE, the charge will only be simulated.
24 | * @return Amount of energy that was (or would have been, if simulated) received.
25 | */
26 | int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate);
27 |
28 | /**
29 | * Returns the amount of energy currently stored.
30 | */
31 | int getEnergyStored(ForgeDirection from);
32 |
33 | /**
34 | * Returns the maximum amount of energy that can be stored.
35 | */
36 | int getMaxEnergyStored(ForgeDirection from);
37 |
38 | }
39 |
--------------------------------------------------------------------------------
/src/api/java/cofh/api/energy/IEnergyStorage.java:
--------------------------------------------------------------------------------
1 | package cofh.api.energy;
2 |
3 | /**
4 | * An energy storage is the unit of interaction with Energy inventories.
5 | * This is not to be implemented on TileEntities. This is for internal use only.
6 | *
7 | * A reference implementation can be found at {@link EnergyStorage}.
8 | *
9 | * @author King Lemming
10 | *
11 | */
12 | public interface IEnergyStorage {
13 |
14 | /**
15 | * Adds energy to the storage. Returns quantity of energy that was accepted.
16 | *
17 | * @param maxReceive
18 | * Maximum amount of energy to be inserted.
19 | * @param simulate
20 | * If TRUE, the insertion will only be simulated.
21 | * @return Amount of energy that was (or would have been, if simulated) accepted by the storage.
22 | */
23 | int receiveEnergy(int maxReceive, boolean simulate);
24 |
25 | /**
26 | * Removes energy from the storage. Returns quantity of energy that was removed.
27 | *
28 | * @param maxExtract
29 | * Maximum amount of energy to be extracted.
30 | * @param simulate
31 | * If TRUE, the extraction will only be simulated.
32 | * @return Amount of energy that was (or would have been, if simulated) extracted from the storage.
33 | */
34 | int extractEnergy(int maxExtract, boolean simulate);
35 |
36 | /**
37 | * Returns the amount of energy currently stored.
38 | */
39 | int getEnergyStored();
40 |
41 | /**
42 | * Returns the maximum amount of energy that can be stored.
43 | */
44 | int getMaxEnergyStored();
45 |
46 | }
47 |
--------------------------------------------------------------------------------
/src/api/java/cofh/api/energy/ItemEnergyContainer.java:
--------------------------------------------------------------------------------
1 | package cofh.api.energy;
2 |
3 | import net.minecraft.item.Item;
4 | import net.minecraft.item.ItemStack;
5 | import net.minecraft.nbt.NBTTagCompound;
6 |
7 | /**
8 | * Reference implementation of {@link IEnergyContainerItem}. Use/extend this or implement your own.
9 | *
10 | * @author King Lemming
11 | *
12 | */
13 | public class ItemEnergyContainer extends Item implements IEnergyContainerItem {
14 |
15 | protected int capacity;
16 | protected int maxReceive;
17 | protected int maxExtract;
18 |
19 | public ItemEnergyContainer() {
20 |
21 | }
22 |
23 | public ItemEnergyContainer(int capacity) {
24 |
25 | this(capacity, capacity, capacity);
26 | }
27 |
28 | public ItemEnergyContainer(int capacity, int maxTransfer) {
29 |
30 | this(capacity, maxTransfer, maxTransfer);
31 | }
32 |
33 | public ItemEnergyContainer(int capacity, int maxReceive, int maxExtract) {
34 |
35 | this.capacity = capacity;
36 | this.maxReceive = maxReceive;
37 | this.maxExtract = maxExtract;
38 | }
39 |
40 | public ItemEnergyContainer setCapacity(int capacity) {
41 |
42 | this.capacity = capacity;
43 | return this;
44 | }
45 |
46 | public void setMaxTransfer(int maxTransfer) {
47 |
48 | setMaxReceive(maxTransfer);
49 | setMaxExtract(maxTransfer);
50 | }
51 |
52 | public void setMaxReceive(int maxReceive) {
53 |
54 | this.maxReceive = maxReceive;
55 | }
56 |
57 | public void setMaxExtract(int maxExtract) {
58 |
59 | this.maxExtract = maxExtract;
60 | }
61 |
62 | /* IEnergyContainerItem */
63 | @Override
64 | public int receiveEnergy(ItemStack container, int maxReceive, boolean simulate) {
65 |
66 | if (container.stackTagCompound == null) {
67 | container.stackTagCompound = new NBTTagCompound();
68 | }
69 | int energy = container.stackTagCompound.getInteger("Energy");
70 | int energyReceived = Math.min(capacity - energy, Math.min(this.maxReceive, maxReceive));
71 |
72 | if (!simulate) {
73 | energy += energyReceived;
74 | container.stackTagCompound.setInteger("Energy", energy);
75 | }
76 | return energyReceived;
77 | }
78 |
79 | @Override
80 | public int extractEnergy(ItemStack container, int maxExtract, boolean simulate) {
81 |
82 | if (container.stackTagCompound == null || !container.stackTagCompound.hasKey("Energy")) {
83 | return 0;
84 | }
85 | int energy = container.stackTagCompound.getInteger("Energy");
86 | int energyExtracted = Math.min(energy, Math.min(this.maxExtract, maxExtract));
87 |
88 | if (!simulate) {
89 | energy -= energyExtracted;
90 | container.stackTagCompound.setInteger("Energy", energy);
91 | }
92 | return energyExtracted;
93 | }
94 |
95 | @Override
96 | public int getEnergyStored(ItemStack container) {
97 |
98 | if (container.stackTagCompound == null || !container.stackTagCompound.hasKey("Energy")) {
99 | return 0;
100 | }
101 | return container.stackTagCompound.getInteger("Energy");
102 | }
103 |
104 | @Override
105 | public int getMaxEnergyStored(ItemStack container) {
106 |
107 | return capacity;
108 | }
109 |
110 | }
111 |
--------------------------------------------------------------------------------
/src/api/java/cofh/api/energy/TileEnergyHandler.java:
--------------------------------------------------------------------------------
1 | package cofh.api.energy;
2 |
3 | import net.minecraft.nbt.NBTTagCompound;
4 | import net.minecraft.tileentity.TileEntity;
5 | import net.minecraftforge.common.util.ForgeDirection;
6 |
7 | /**
8 | * Reference implementation of {@link IEnergyHandler}. Use/extend this or implement your own.
9 | *
10 | * @author King Lemming
11 | *
12 | */
13 | public class TileEnergyHandler extends TileEntity implements IEnergyHandler {
14 |
15 | protected EnergyStorage storage = new EnergyStorage(32000);
16 |
17 | @Override
18 | public void readFromNBT(NBTTagCompound nbt) {
19 |
20 | super.readFromNBT(nbt);
21 | storage.readFromNBT(nbt);
22 | }
23 |
24 | @Override
25 | public void writeToNBT(NBTTagCompound nbt) {
26 |
27 | super.writeToNBT(nbt);
28 | storage.writeToNBT(nbt);
29 | }
30 |
31 | /* IEnergyConnection */
32 | @Override
33 | public boolean canConnectEnergy(ForgeDirection from) {
34 |
35 | return true;
36 | }
37 |
38 | /* IEnergyReceiver */
39 | @Override
40 | public int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate) {
41 |
42 | return storage.receiveEnergy(maxReceive, simulate);
43 | }
44 |
45 | /* IEnergyProvider */
46 | @Override
47 | public int extractEnergy(ForgeDirection from, int maxExtract, boolean simulate) {
48 |
49 | return storage.extractEnergy(maxExtract, simulate);
50 | }
51 |
52 | /* IEnergyReceiver and IEnergyProvider */
53 | @Override
54 | public int getEnergyStored(ForgeDirection from) {
55 |
56 | return storage.getEnergyStored();
57 | }
58 |
59 | @Override
60 | public int getMaxEnergyStored(ForgeDirection from) {
61 |
62 | return storage.getMaxEnergyStored();
63 | }
64 |
65 | }
66 |
--------------------------------------------------------------------------------
/src/api/java/cofh/api/energy/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | * (C) 2014 Team CoFH / CoFH / Cult of the Full Hub
3 | * http://www.teamcofh.com
4 | */
5 | @API(apiVersion = CoFHAPIProps.VERSION, owner = "CoFHAPI", provides = "CoFHAPI|energy")
6 | package cofh.api.energy;
7 |
8 | import cofh.api.CoFHAPIProps;
9 | import cpw.mods.fml.common.API;
10 |
11 |
--------------------------------------------------------------------------------
/src/api/java/cofh/api/package-info.java:
--------------------------------------------------------------------------------
1 | /**
2 | * (C) 2014 Team CoFH / CoFH / Cult of the Full Hub
3 | * http://www.teamcofh.com
4 | */
5 | @API(apiVersion = "1.7.2R1.0.0", owner = "CoFHLib", provides = "CoFHAPI")
6 | package cofh.api;
7 |
8 | import cpw.mods.fml.common.API;
9 |
10 |
--------------------------------------------------------------------------------
/src/api/java/factorization/api/Charge.java:
--------------------------------------------------------------------------------
1 | package factorization.api;
2 |
3 | public class Charge {
4 | public Charge(IChargeConductor par1) { }
5 |
6 | public int getValue() {
7 | return 0;
8 | }
9 |
10 | public void update() { }
11 |
12 | public int tryTake(int value) {
13 | return 0;
14 | }
15 |
16 | public int addValue(int store) {
17 | return store;
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/src/api/java/factorization/api/Coord.java:
--------------------------------------------------------------------------------
1 | package factorization.api;
2 |
3 | import net.minecraft.tileentity.TileEntity;
4 |
5 | public class Coord {
6 | @SuppressWarnings("UnusedParameters")
7 | public Coord(TileEntity par1) {}
8 | }
9 |
--------------------------------------------------------------------------------
/src/api/java/factorization/api/IChargeConductor.java:
--------------------------------------------------------------------------------
1 | package factorization.api;
2 |
3 | public interface IChargeConductor extends ICoord, IMeterInfo{
4 | public Charge getCharge();
5 | }
6 |
--------------------------------------------------------------------------------
/src/api/java/factorization/api/ICoord.java:
--------------------------------------------------------------------------------
1 | package factorization.api;
2 |
3 | public interface ICoord {
4 | @SuppressWarnings("UnusedDeclaration")
5 | public Coord getCoord();
6 | }
7 |
--------------------------------------------------------------------------------
/src/api/java/factorization/api/IMeterInfo.java:
--------------------------------------------------------------------------------
1 | package factorization.api;
2 |
3 | public interface IMeterInfo {
4 | public String getInfo();
5 | }
6 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/common/BridgeSideData.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.common;
2 |
3 | import net.minecraftforge.common.util.ForgeDirection;
4 | import powercrystals.powerconverters.power.PowerSystem;
5 |
6 | public class BridgeSideData {
7 | public ForgeDirection side;
8 | public PowerSystem powerSystem;
9 | public boolean isConsumer;
10 | public boolean isProducer;
11 | public boolean isConnected;
12 | public int voltageNameIndex;
13 | public int subtype;
14 | public double outputRate;
15 | }
16 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/common/IChargeHandler.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.common;
2 |
3 | import net.minecraft.item.ItemStack;
4 | import powercrystals.powerconverters.power.PowerSystem;
5 |
6 | public interface IChargeHandler {
7 |
8 | /**
9 | * @return power system
10 | */
11 | public PowerSystem getPowerSystem();
12 |
13 | /**
14 | * @param stack stack to check before calling charge/discharge methods
15 | * @return whether the stack is applicable to receive/give energy
16 | */
17 | boolean canHandle(ItemStack stack);
18 |
19 | /**
20 | * @param stack applicable stack
21 | * @param energyInput energy to give
22 | * @return energy remaining after charge
23 | */
24 | int charge(ItemStack stack, int energyInput);
25 |
26 | // TODO: implement a discharger
27 | int discharge(ItemStack stack, int energyRequest);
28 | }
29 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/common/ItemBlockPowerConverterCommon.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.common;
2 |
3 | import net.minecraft.block.Block;
4 | import net.minecraft.creativetab.CreativeTabs;
5 | import net.minecraft.item.Item;
6 | import net.minecraft.item.ItemBlock;
7 | import net.minecraft.item.ItemStack;
8 |
9 | import java.util.List;
10 |
11 | public class ItemBlockPowerConverterCommon extends ItemBlock {
12 | public ItemBlockPowerConverterCommon(Block block) {
13 | super(block);
14 | setHasSubtypes(true);
15 | setMaxDamage(0);
16 | }
17 |
18 | @Override
19 | public int getMetadata(int i) {
20 | return i;
21 | }
22 |
23 | @Override
24 | public String getUnlocalizedName(ItemStack itemstack) {
25 | int md = itemstack.getItemDamage();
26 | if (md == 0) return "powerconverters.common.bridge";
27 | if (md == 2) return "powerconverters.common.charger";
28 | return "unknown";
29 | }
30 |
31 | @SuppressWarnings({"unchecked", "rawtypes"})
32 | @Override
33 | public void getSubItems(Item item, CreativeTabs creativeTab, List subTypes) {
34 | subTypes.add(new ItemStack(item, 1, 0));
35 | subTypes.add(new ItemStack(item, 1, 2));
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/common/TileEntityCharger.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.common;
2 |
3 | import net.minecraft.entity.player.EntityPlayer;
4 | import net.minecraft.inventory.IInventory;
5 | import net.minecraft.item.ItemStack;
6 | import powercrystals.powerconverters.power.PowerSystemManager;
7 | import powercrystals.powerconverters.power.base.TileEntityEnergyProducer;
8 | import powercrystals.powerconverters.power.systems.PowerIndustrialcraft;
9 |
10 | import java.util.ArrayList;
11 | import java.util.List;
12 |
13 | public class TileEntityCharger extends TileEntityEnergyProducer {
14 | private static List _chargeHandlers = new ArrayList();
15 | private EntityPlayer _player;
16 |
17 | public static void registerChargeHandler(IChargeHandler handler) {
18 | _chargeHandlers.add(handler);
19 | }
20 |
21 | public TileEntityCharger() {
22 | super(PowerSystemManager.getInstance().getPowerSystemByName(PowerIndustrialcraft.id), 0, IInventory.class);
23 | }
24 |
25 | @Override
26 | public void updateEntity() {
27 | super.updateEntity();
28 | if (_player != null) {
29 | int pX = (int) Math.floor(_player.posX);
30 | int pY = (int) Math.floor(_player.posY - _player.getYOffset());
31 | int pZ = (int) Math.floor(_player.posZ);
32 | if (pX != xCoord || pY - 1 != yCoord || pZ != zCoord) {
33 | setPlayer(null);
34 | }
35 | }
36 | }
37 |
38 | @Override
39 | public double produceEnergy(double energy) {
40 | if (energy == 0)
41 | return 0;
42 | int energyRemaining = (int) energy;
43 |
44 | boolean powered = getWorldObj().getStrongestIndirectPower(xCoord, yCoord, zCoord) > 0;
45 | if(!powered) {
46 | if (_player != null)
47 | energyRemaining = chargeInventory(_player.inventory, energyRemaining);
48 |
49 | for (IInventory inv : getTiles().values())
50 | energyRemaining = chargeInventory(inv, energyRemaining);
51 | }
52 |
53 | return energyRemaining;
54 | }
55 |
56 | private int chargeInventory(IInventory inventory, int energy) {
57 | int energyRemaining = energy;
58 |
59 | for (int i = 0; i < inventory.getSizeInventory(); i++) {
60 | for (IChargeHandler chargeHandler : _chargeHandlers) {
61 | ItemStack s = inventory.getStackInSlot(i);
62 | if (s == null)
63 | continue;
64 |
65 | if (chargeHandler.canHandle(s)) {
66 | energyRemaining = chargeHandler.charge(s, energyRemaining);
67 | if (energyRemaining < energy) {
68 | _powerSystem = chargeHandler.getPowerSystem();
69 | energy = energyRemaining;
70 | }
71 | }
72 | }
73 | }
74 | return energyRemaining;
75 | }
76 |
77 | public void setPlayer(EntityPlayer player) {
78 | if (_player != player) {
79 | worldObj.markBlockForUpdate(xCoord, yCoord, zCoord);
80 | _player = player;
81 | }
82 | }
83 |
84 | @Override
85 | public boolean isConnected() {
86 | return super.isConnected() || _player != null;
87 | }
88 |
89 | @Override
90 | public boolean isSideConnected(int side) {
91 | return side == 1 && _player != null || super.isSideConnected(side);
92 | }
93 |
94 | @Override
95 | public boolean isSideConnectedClient(int side) {
96 | return side == 1 && _player != null || super.isSideConnectedClient(side);
97 | }
98 | }
99 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/crafting/RecipeProvider.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.crafting;
2 |
3 | import net.minecraftforge.common.config.Configuration;
4 |
5 | /**
6 | * Basic class to manage mods that add recipe additions by mods.
7 | */
8 | public abstract class RecipeProvider {
9 | public static final String RECIPE_CATEGORY = "recipes";
10 |
11 | public abstract void registerRecipes();
12 | public abstract void loadConfig(Configuration c);
13 | public abstract void saveConfig(Configuration c);
14 | }
15 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/crafting/mods/RecipeEnderIO.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.crafting.mods;
2 |
3 | import cpw.mods.fml.common.registry.GameRegistry;
4 | import net.minecraft.block.Block;
5 | import net.minecraft.item.Item;
6 | import net.minecraft.item.ItemStack;
7 | import net.minecraftforge.common.config.Configuration;
8 | import powercrystals.powerconverters.crafting.RecipeProvider;
9 | import powercrystals.powerconverters.power.PowerSystem;
10 | import powercrystals.powerconverters.power.PowerSystemManager;
11 | import powercrystals.powerconverters.power.systems.PowerRedstoneFlux;
12 |
13 | /**
14 | * Add recipes for EnderIO
15 | */
16 | public class RecipeEnderIO extends RecipeProvider{
17 | @Override
18 | public void registerRecipes() {
19 | //To change body of implemented methods use File | Settings | File Templates.
20 | PowerSystem rf = PowerSystemManager.getInstance().getPowerSystemByName(PowerRedstoneFlux.id);
21 | if(rf != null) {
22 | Block converterBlock = rf.block;
23 |
24 | //
25 | // Support both, new and old Capacitor bank
26 | // (where the new is the most prefered one)
27 | //
28 | Item capBank = GameRegistry.findItem("EnderIO", "blockCapBank");
29 | ItemStack stackCapacitorBank;
30 | if(capBank != null) {
31 | // New Style Capacitor Bank
32 | stackCapacitorBank = new ItemStack(capBank, 1, 2); // Basic -> :1, Normal -> :2, Vibrant -> :3
33 |
34 | } else {
35 | // Old Capacitor Bank
36 | stackCapacitorBank = GameRegistry.findItemStack("EnderIO", "blockCapacitorBank", 1);
37 |
38 | }
39 |
40 |
41 | GameRegistry.addRecipe(new ItemStack(converterBlock, 1, 0),
42 | "G G",
43 | " T ",
44 | "G G",
45 | 'G', GameRegistry.findItem("minecraft", "gold_ingot"),
46 | 'T', stackCapacitorBank
47 | );
48 | }
49 | }
50 |
51 | @Override
52 | public void loadConfig(Configuration c) {
53 | }
54 |
55 | @Override
56 | public void saveConfig(Configuration c) {
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/crafting/mods/RecipeFactorization.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.crafting.mods;
2 |
3 | import cpw.mods.fml.common.registry.GameRegistry;
4 | import net.minecraft.block.Block;
5 | import net.minecraft.item.ItemStack;
6 | import net.minecraftforge.common.config.Configuration;
7 | import powercrystals.powerconverters.crafting.RecipeProvider;
8 | import powercrystals.powerconverters.power.PowerSystem;
9 | import powercrystals.powerconverters.power.PowerSystemManager;
10 |
11 | /**
12 | * Add recipes for Factorization.
13 | */
14 | public class RecipeFactorization extends RecipeProvider {
15 | @Override
16 | public void registerRecipes() {
17 | try {
18 | PowerSystem factorization = PowerSystemManager.getInstance().getPowerSystemByName("FZ");
19 | if(factorization != null) {
20 | Block converterBlock = factorization.block;
21 | Object fzRegistry = Class.forName("factorization.shared.Core").getField("registry").get(null);
22 | GameRegistry.addRecipe(new ItemStack(converterBlock, 1, 0),
23 | "I I",
24 | " B ",
25 | "I I",
26 | 'I', GameRegistry.findItem("minecraft", "gold_ingot"),
27 | 'B', (Class.forName("factorization.common.Registry").getField("solarboiler_item").get(fzRegistry)));
28 | }
29 | } catch (Throwable t) {
30 | t.printStackTrace(System.err);
31 | }
32 | }
33 |
34 | @Override
35 | public void loadConfig(Configuration c) {
36 | }
37 |
38 | @Override
39 | public void saveConfig(Configuration c) {
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/crafting/mods/RecipeForestry.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.crafting.mods;
2 |
3 | import cpw.mods.fml.common.registry.GameRegistry;
4 | import net.minecraft.block.Block;
5 | import net.minecraft.init.Blocks;
6 | import net.minecraft.item.ItemStack;
7 | import net.minecraftforge.common.config.Configuration;
8 | import powercrystals.powerconverters.PowerConverterCore;
9 | import powercrystals.powerconverters.crafting.RecipeProvider;
10 | import powercrystals.powerconverters.power.PowerSystem;
11 | import powercrystals.powerconverters.power.PowerSystemManager;
12 | import powercrystals.powerconverters.power.systems.PowerRedstoneFlux;
13 |
14 | /**
15 | * Add recipes for Forestry
16 | */
17 | public class RecipeForestry extends RecipeProvider {
18 | private boolean enableRecipes = true;
19 | public static final String RECIPE_FORESTRY_CATEGORY = RECIPE_CATEGORY + ".forestry";
20 |
21 | @Override
22 | public void registerRecipes() {
23 | ItemStack bronzeGear = new ItemStack(GameRegistry.findItem("Forestry", "gearBronze"), 1, 0);
24 | ItemStack circuitBoard = new ItemStack(GameRegistry.findItem("Forestry", "chipsets"), 1, 3);
25 | ItemStack engine = new ItemStack(GameRegistry.findItem("Forestry", "engine"), 1, 2);
26 | ItemStack tubes = new ItemStack(GameRegistry.findItem("Forestry", "thermonicTubes"), 1, 5);
27 | ItemStack chest = new ItemStack(Blocks.chest, 1, 0);
28 |
29 | PowerSystem rf = PowerSystemManager.getInstance().getPowerSystemByName(PowerRedstoneFlux.id);
30 | if(rf != null) {
31 | Block converterBlock = rf.block;
32 | GameRegistry.addRecipe(new ItemStack(converterBlock, 1, 0),
33 | "TGT",
34 | "EBE",
35 | "TGT",
36 | 'G', bronzeGear,
37 | 'B', circuitBoard,
38 | 'E', engine,
39 | 'T', tubes);
40 | }
41 |
42 | if (enableRecipes) {
43 | GameRegistry.addRecipe(new ItemStack(PowerConverterCore.converterBlockCommon, 1, 0),
44 | "TBT",
45 | "BBB",
46 | "TBT",
47 | 'T', tubes,
48 | 'B', circuitBoard
49 | );
50 | GameRegistry.addRecipe(new ItemStack(PowerConverterCore.converterBlockCommon, 1, 2),
51 | "TBT",
52 | "BCB",
53 | "TBT",
54 | 'T', tubes,
55 | 'B', circuitBoard,
56 | 'C', chest
57 | );
58 | }
59 | }
60 |
61 | @Override
62 | public void loadConfig(Configuration c) {
63 | enableRecipes = c.get(RECIPE_FORESTRY_CATEGORY, "enableRecipes", true).getBoolean(true);
64 | }
65 |
66 | @Override
67 | public void saveConfig(Configuration c) {
68 | c.getCategory(RECIPE_FORESTRY_CATEGORY).get("enableRecipes").set(enableRecipes);
69 | }
70 | }
71 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/crafting/mods/RecipeGregTech5.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.crafting.mods;
2 |
3 | import cpw.mods.fml.common.registry.GameRegistry;
4 | import gregtech.api.enums.ItemList;
5 | import net.minecraft.block.Block;
6 | import net.minecraft.item.ItemStack;
7 | import net.minecraftforge.common.config.Configuration;
8 | import net.minecraftforge.oredict.ShapedOreRecipe;
9 | import powercrystals.powerconverters.crafting.RecipeProvider;
10 | import powercrystals.powerconverters.power.PowerSystem;
11 | import powercrystals.powerconverters.power.PowerSystemManager;
12 | import powercrystals.powerconverters.power.systems.PowerGregTech5;
13 |
14 | /**
15 | * Add recipes for GregTech
16 | */
17 | public class RecipeGregTech5 extends RecipeProvider {
18 | private boolean enableRecipes = true;
19 | public static final String RECIPE_GREGTECH_CATEGORY = RECIPE_CATEGORY + ".gt";
20 |
21 | @Override
22 | public void registerRecipes() {
23 |
24 | PowerSystem gt = PowerSystemManager.getInstance().getPowerSystemByName(PowerGregTech5.id);
25 | if(gt != null) {
26 | Block converterBlock = gt.block;
27 | GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(converterBlock, 1, 0), true, new Object[]{ // ULV
28 | "CPC",
29 | "PBP",
30 | "CPC",
31 | 'C', "cableGt01Lead",
32 | 'P', "plateLead",
33 | 'B', ItemList.Battery_Buffer_1by1_ULV.get(1).copy()
34 | }));
35 | GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(converterBlock, 1, 1), true, new Object[]{ // LV
36 | "CPC",
37 | "PBP",
38 | "CPC",
39 | 'C', "cableGt01Tin",
40 | 'P', "plateTin",
41 | 'B', ItemList.Battery_Buffer_1by1_LV.get(1).copy()
42 | }));
43 | GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(converterBlock, 1, 2), true, new Object[]{ // MV
44 | "CPC",
45 | "PBP",
46 | "CPC",
47 | 'C', "cableGt01Copper",
48 | 'P', "plateCopper",
49 | 'B', ItemList.Battery_Buffer_1by1_MV.get(1).copy()
50 | }));
51 | GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(converterBlock, 1, 3), true, new Object[]{ // HV
52 | "CPC",
53 | "PBP",
54 | "CPC",
55 | 'C', "cableGt01Gold",
56 | 'P', "plateGold",
57 | 'B', ItemList.Battery_Buffer_1by1_HV.get(1).copy()
58 | }));
59 | GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(converterBlock, 1, 4), true, new Object[]{ // EV
60 | "CPC",
61 | "PBP",
62 | "CPC",
63 | 'C', "cableGt01Aluminium",
64 | 'P', "plateAluminium",
65 | 'B', ItemList.Battery_Buffer_1by1_EV.get(1).copy()
66 | }));
67 | GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(converterBlock, 1, 5), true, new Object[]{ // IV
68 | "CPC",
69 | "PBP",
70 | "CPC",
71 | 'C', "cableGt02Steel",
72 | 'P', "plateSteel",
73 | 'B', ItemList.Battery_Buffer_1by1_IV.get(1).copy()
74 | }));
75 | GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(converterBlock, 1, 6), true, new Object[]{ // LuV
76 | "CPC",
77 | "PBP",
78 | "CPC",
79 | 'C', "cableGt04Tungsten",
80 | 'P', "plateTungsten",
81 | 'B', ItemList.Battery_Buffer_1by1_LuV.get(1).copy()
82 | }));
83 | GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(converterBlock, 1, 7), true, new Object[]{ // ZPM
84 | "CPC",
85 | "PBP",
86 | "CPC",
87 | 'C', "cableGt04Osmium",
88 | 'P', "plateOsmium",
89 | 'B', ItemList.Battery_Buffer_1by1_ZPM.get(1).copy()
90 | }));
91 | GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(converterBlock, 1, 8), true, new Object[]{ // UV
92 | "CPC",
93 | "PBP",
94 | "CPC",
95 | 'C', "wireGt16Osmium",
96 | 'P', "plateOsmium",
97 | 'B', ItemList.Battery_Buffer_1by1_UV.get(1).copy()
98 | }));
99 |
100 |
101 |
102 |
103 |
104 | }
105 | }
106 |
107 | @Override
108 | public void loadConfig(Configuration c) {
109 | enableRecipes = c.get(RECIPE_GREGTECH_CATEGORY, "enableRecipes", true).getBoolean(true);
110 | }
111 |
112 | @Override
113 | public void saveConfig(Configuration c) {
114 | c.getCategory(RECIPE_GREGTECH_CATEGORY).get("enableRecipes").set(enableRecipes);
115 | }
116 | }
117 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/crafting/mods/RecipeMFFS.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.crafting.mods;
2 |
3 | import cpw.mods.fml.common.registry.GameRegistry;
4 | import net.minecraft.block.Block;
5 | import net.minecraft.item.ItemStack;
6 | import net.minecraftforge.common.config.Configuration;
7 | import net.minecraftforge.oredict.ShapedOreRecipe;
8 | import powercrystals.powerconverters.crafting.RecipeProvider;
9 | import powercrystals.powerconverters.power.PowerSystem;
10 | import powercrystals.powerconverters.power.PowerSystemManager;
11 | import powercrystals.powerconverters.power.systems.PowerFortron;
12 |
13 | /**
14 | * Add recipes for MFFS/Fortron
15 | */
16 | public class RecipeMFFS extends RecipeProvider {
17 | private boolean enableRecipes = true;
18 | public static final String RECIPE_FORTRON_CATEGORY = RECIPE_CATEGORY + ".mffs";
19 |
20 | @Override
21 | public void registerRecipes() {
22 |
23 | PowerSystem fortron = PowerSystemManager.getInstance().getPowerSystemByName(PowerFortron.id);
24 | if(fortron != null) {
25 | Block converterBlock = fortron.block;
26 |
27 | ItemStack stackGold = new ItemStack(GameRegistry.findItem("minecraft", "gold_ingot"));
28 | ItemStack stackDeriver = new ItemStack(GameRegistry.findItem("MFFS", "coercionDeriver"));
29 |
30 | GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(converterBlock, 1, 0), true, new Object[]{ // Consumer
31 | "G G",
32 | " D ",
33 | "G G",
34 | 'G', stackGold,
35 | 'D', stackDeriver
36 | }));
37 |
38 | }
39 | }
40 |
41 | @Override
42 | public void loadConfig(Configuration c) {
43 | enableRecipes = c.get(RECIPE_FORTRON_CATEGORY, "enableRecipes", true).getBoolean(true);
44 | }
45 |
46 | @Override
47 | public void saveConfig(Configuration c) {
48 | c.getCategory(RECIPE_FORTRON_CATEGORY).get("enableRecipes").set(enableRecipes);
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/crafting/mods/RecipeRailcraft.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.crafting.mods;
2 |
3 | import cpw.mods.fml.common.registry.GameRegistry;
4 | import net.minecraft.block.Block;
5 | import net.minecraft.item.ItemStack;
6 | import net.minecraftforge.common.config.Configuration;
7 | import net.minecraftforge.oredict.ShapedOreRecipe;
8 | import powercrystals.powerconverters.PowerConverterCore;
9 | import powercrystals.powerconverters.crafting.RecipeProvider;
10 | import powercrystals.powerconverters.power.PowerSystem;
11 | import powercrystals.powerconverters.power.PowerSystemManager;
12 | import powercrystals.powerconverters.power.systems.PowerSteam;
13 |
14 | /**
15 | * Add recipes for Railcraft.
16 | */
17 | public class RecipeRailcraft extends RecipeProvider {
18 | @Override
19 | public void registerRecipes() {
20 | ItemStack stackGold = new ItemStack(GameRegistry.findItem("minecraft", "gold_ingot"));
21 | Object entryGold = PowerConverterCore.tryOreDict("ingotGold", stackGold);
22 |
23 | ItemStack stackIndustrialEngine = GameRegistry.findItemStack("Railcraft", "machine.beta.engine.steam.low", 1);
24 |
25 |
26 | PowerSystem steam = PowerSystemManager.getInstance().getPowerSystemByName(PowerSteam.id);
27 | if(steam != null) {
28 | if(entryGold == null || stackIndustrialEngine == null) {
29 | PowerConverterCore.instance.logger.error("Railcraft recipe is missing items, not adding Power Converters recipe.");
30 | return;
31 | }
32 | Block converterBlockSteam = steam.block;
33 | GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(converterBlockSteam, 1, 0), true,
34 | // Steam consumer
35 | "G G",
36 | " E ",
37 | "G G",
38 | 'G', entryGold,
39 | 'E', stackIndustrialEngine));
40 | }
41 | }
42 |
43 | @Override
44 | public void loadConfig(Configuration c) {
45 | }
46 |
47 | @Override
48 | public void saveConfig(Configuration c) {
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/crafting/mods/RecipeThermalExpansion.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.crafting.mods;
2 |
3 | import cpw.mods.fml.common.registry.GameRegistry;
4 | import net.minecraft.block.Block;
5 | import net.minecraft.item.ItemStack;
6 | import net.minecraftforge.oredict.ShapedOreRecipe;
7 | import net.minecraftforge.common.config.Configuration;
8 | import powercrystals.powerconverters.PowerConverterCore;
9 | import powercrystals.powerconverters.crafting.RecipeProvider;
10 | import powercrystals.powerconverters.power.PowerSystem;
11 | import powercrystals.powerconverters.power.PowerSystemManager;
12 | import powercrystals.powerconverters.power.systems.PowerRedstoneFlux;
13 | import powercrystals.powerconverters.power.systems.PowerSteam;
14 |
15 | /**
16 | * Add recipes for Thermal Expansion.
17 | */
18 | public class RecipeThermalExpansion extends RecipeProvider {
19 | private boolean enableRecipes = true;
20 | public static final String RECIPE_THERMALEXPANSION_CATEGORY = RECIPE_CATEGORY + ".thermalExpansion";
21 |
22 | @Override
23 | public void registerRecipes() {
24 | ItemStack receptionCoil = new ItemStack(GameRegistry.findItem("ThermalExpansion", "material"), 1, 1);
25 | ItemStack transmissionCoil = new ItemStack(GameRegistry.findItem("ThermalExpansion", "material"), 1, 2);
26 | ItemStack basicFrame = new ItemStack(GameRegistry.findItem("ThermalExpansion", "Frame"), 1, 0);
27 | ItemStack steamDynamo = new ItemStack(GameRegistry.findItem("ThermalExpansion", "Dynamo"), 1, 0);
28 | ItemStack energyCell = new ItemStack(GameRegistry.findItem("ThermalExpansion", "Cell"), 1, 1);
29 | ItemStack multiMeter = new ItemStack(GameRegistry.findItem("ThermalExpansion", "meter"), 1, 0);
30 | ItemStack strongbox = new ItemStack(GameRegistry.findItem("ThermalExpansion", "Strongbox"), 1, 1);
31 | ItemStack energisticInfuser = new ItemStack(GameRegistry.findItem("ThermalExpansion", "Machine"), 1, 10);
32 | ItemStack conductanceCoil = new ItemStack(GameRegistry.findItem("ThermalExpansion", "material"), 1, 3);
33 | ItemStack servo = new ItemStack(GameRegistry.findItem("ThermalExpansion", "material"), 1, 0);
34 | ItemStack tank = new ItemStack(GameRegistry.findItem("ThermalExpansion", "Tank"), 1, 1);
35 |
36 | PowerSystem rf = PowerSystemManager.getInstance().getPowerSystemByName(PowerRedstoneFlux.id);
37 | if(rf != null) {
38 | Block converterBlock = rf.block;
39 | GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(converterBlock, 1, 0), true, new Object[]{
40 | "CRC",
41 | "DFD",
42 | "TAT",
43 | 'C', "gearCopper",
44 | 'R', receptionCoil,
45 | 'D', steamDynamo,
46 | 'F', basicFrame,
47 | 'T', "gearTin",
48 | 'A', transmissionCoil
49 | }));
50 | }
51 |
52 | if (enableRecipes) {
53 | GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(PowerConverterCore.converterBlockCommon, 1, 0), true, new Object[]{
54 | "CMT",
55 | "REA",
56 | "TFC",
57 | 'C', "gearCopper",
58 | 'M', multiMeter,
59 | 'T', "gearTin",
60 | 'R', receptionCoil,
61 | 'E', energyCell,
62 | 'A', transmissionCoil,
63 | 'F', basicFrame
64 | }));
65 | GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(PowerConverterCore.converterBlockCommon, 1, 2), true, new Object[]{
66 | "GSG",
67 | "SES",
68 | "GRG",
69 | 'G', "gearSilver",
70 | 'S', strongbox,
71 | 'E', energisticInfuser,
72 | 'R', receptionCoil
73 | }));
74 | PowerSystem steam = PowerSystemManager.getInstance().getPowerSystemByName(PowerSteam.id);
75 | if (steam != null) {
76 | GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(steam.block, 1, 0), true, new Object[]{
77 | "CNT",
78 | "PAP",
79 | "CFT",
80 | 'C', "gearCopper",
81 | 'N', conductanceCoil,
82 | 'T', "gearTin",
83 | 'P', servo,
84 | 'A', tank,
85 | 'F', basicFrame
86 | }));
87 | }
88 | }
89 | }
90 |
91 | @Override
92 | public void loadConfig(Configuration c) {
93 | enableRecipes = c.get(RECIPE_THERMALEXPANSION_CATEGORY, "enableRecipes", true).getBoolean(true);
94 | }
95 |
96 | @Override
97 | public void saveConfig(Configuration c) {
98 | c.getCategory(RECIPE_THERMALEXPANSION_CATEGORY).get("enableRecipes").set(enableRecipes);
99 | }
100 | }
101 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/crafting/mods/RecipeVanilla.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.crafting.mods;
2 |
3 | import cpw.mods.fml.common.registry.GameRegistry;
4 | import net.minecraft.init.Blocks;
5 | import net.minecraft.item.ItemStack;
6 | import net.minecraftforge.common.config.Configuration;
7 | import net.minecraftforge.oredict.ShapedOreRecipe;
8 | import powercrystals.powerconverters.PowerConverterCore;
9 | import powercrystals.powerconverters.crafting.RecipeProvider;
10 |
11 | /**
12 | * Add Vanilla recipes.
13 | */
14 | public class RecipeVanilla extends RecipeProvider {
15 | private boolean enableRecipes = true;
16 | public static final String RECIPE_VANILLA_CATEGORY = RECIPE_CATEGORY + ".vanilla";
17 |
18 | @Override
19 | public void registerRecipes() {
20 | //To change body of implemented methods use File | Settings | File Templates.
21 | if(enableRecipes) {
22 | ItemStack stackGold = new ItemStack(GameRegistry.findItem("minecraft", "gold_ingot"));
23 | ItemStack stackRedstone = new ItemStack(GameRegistry.findItem("minecraft", "redstone"));
24 | ItemStack stackIron = new ItemStack(GameRegistry.findItem("minecraft", "iron_ingot"));
25 | ItemStack stackGlass = new ItemStack(GameRegistry.findBlock("minecraft", "glass"));
26 | ItemStack stackDiamond = new ItemStack(GameRegistry.findItem("minecraft", "diamond"));
27 |
28 | Object entryGold = PowerConverterCore.tryOreDict("ingotGold", stackGold);
29 | Object entryRedstone = PowerConverterCore.tryOreDict("dustRedstone", stackRedstone);
30 | Object entryIron = PowerConverterCore.tryOreDict("ingotIron", stackIron);
31 | Object entryGlass = PowerConverterCore.tryOreDict("blockGlass", stackGlass);
32 | Object entryDiamond = PowerConverterCore.tryOreDict("gemDiamond", stackDiamond);
33 | GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(PowerConverterCore.converterBlockCommon, 1, 0), true, new Object[]{
34 | // Energy Bridge
35 | "GRG",
36 | "LDL",
37 | "GRG",
38 | 'R', entryRedstone,
39 | 'G', entryGold,
40 | 'L', entryGlass,
41 | 'D', entryDiamond
42 | }));
43 | GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(PowerConverterCore.converterBlockCommon, 1, 2), true, new Object[]{
44 | // Universal charger
45 | "GRG",
46 | "ICI",
47 | "GRG",
48 | 'R', entryRedstone,
49 | 'G', entryGold,
50 | 'I', entryIron,
51 | 'C', Blocks.chest
52 | }));
53 | }
54 | }
55 |
56 | @Override
57 | public void loadConfig(Configuration c) {
58 | enableRecipes = c.get(RECIPE_VANILLA_CATEGORY, "enableRecipes", true).getBoolean(true);
59 | }
60 |
61 | @Override
62 | public void saveConfig(Configuration c) {
63 | c.getCategory(RECIPE_VANILLA_CATEGORY).get("enableRecipes").set(enableRecipes);
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/gui/PCCreativeTab.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.gui;
2 |
3 | import cpw.mods.fml.common.registry.GameRegistry;
4 | import net.minecraft.creativetab.CreativeTabs;
5 | import net.minecraft.item.Item;
6 |
7 | public class PCCreativeTab extends CreativeTabs {
8 | public static final PCCreativeTab tab = new PCCreativeTab();
9 |
10 | public PCCreativeTab() {
11 | super("Power Converters");
12 | }
13 |
14 | @Override
15 | public Item getTabIconItem() {
16 | return GameRegistry.findItem("PowerConverters", "converter.common");
17 | }
18 |
19 | @Override
20 | public String getTranslatedTabLabel() {
21 | return this.getTabLabel();
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/gui/PCGUIHandler.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.gui;
2 |
3 | import cpw.mods.fml.common.network.IGuiHandler;
4 | import net.minecraft.entity.player.EntityPlayer;
5 | import net.minecraft.tileentity.TileEntity;
6 | import net.minecraft.world.World;
7 | import powercrystals.powerconverters.common.TileEntityEnergyBridge;
8 |
9 | public class PCGUIHandler implements IGuiHandler {
10 | @Override
11 | public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
12 | TileEntity te = world.getTileEntity(x, y, z);
13 | if (te != null && te instanceof TileEntityEnergyBridge) {
14 | return new ContainerEnergyBridge((TileEntityEnergyBridge) te, player.inventory);
15 | }
16 | return null;
17 | }
18 |
19 | @Override
20 | public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
21 | TileEntity te = world.getTileEntity(x, y, z);
22 | if (te != null && te instanceof TileEntityEnergyBridge) {
23 | return new GuiEnergyBridge(new ContainerEnergyBridge((TileEntityEnergyBridge) te, player.inventory), (TileEntityEnergyBridge) te);
24 | }
25 | return null;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/mods/reference/InterfaceReference.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.mods.reference;
2 |
3 | /**
4 | * @author samrg472
5 | */
6 | public final class InterfaceReference {
7 |
8 | public static final class BuildCraft {
9 | public static final String IPipeConnection = "buildcraft.api.transport.IPipeConnection";
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/mods/reference/ModIDReference.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.mods.reference;
2 |
3 | /**
4 | * @author samrg472
5 | */
6 | public class ModIDReference {
7 |
8 | public static final String BUILDCRAFT = "BuildCraft|Core";
9 |
10 | }
11 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/network/GenericHandler.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.network;
2 |
3 | import cpw.mods.fml.common.network.simpleimpl.IMessage;
4 | import cpw.mods.fml.common.network.simpleimpl.IMessageHandler;
5 | import cpw.mods.fml.common.network.simpleimpl.MessageContext;
6 |
7 | /**
8 | * Handler to redirect message processing.
9 | * Used to easily unify 1.7 and 1.8 code in a thread-safe way.
10 | */
11 | public abstract class GenericHandler implements IMessageHandler {
12 | @Override
13 | public IMessage onMessage(REQ message, MessageContext ctx) {
14 | processMessage(message, ctx);
15 | return null;
16 | }
17 |
18 | public abstract void processMessage(REQ message, MessageContext context);
19 | }
20 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/network/PacketClientSync.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.network;
2 |
3 | import cpw.mods.fml.common.FMLLog;
4 | import cpw.mods.fml.common.network.ByteBufUtils;
5 | import cpw.mods.fml.common.network.simpleimpl.IMessage;
6 | import cpw.mods.fml.common.network.simpleimpl.MessageContext;
7 | import io.netty.buffer.ByteBuf;
8 | import net.minecraft.nbt.NBTTagCompound;
9 | import powercrystals.powerconverters.PowerConverterCore;
10 | import powercrystals.powerconverters.power.PowerSystemManager;
11 |
12 | /**
13 | * Send power system data to client on server connect.
14 | */
15 | public class PacketClientSync implements IMessage {
16 | NBTTagCompound data;
17 |
18 | @SuppressWarnings("unused")
19 | public PacketClientSync() {
20 | data = new NBTTagCompound();
21 | }
22 |
23 | public PacketClientSync(NBTTagCompound nbt) {
24 | data = nbt;
25 | }
26 |
27 | @Override
28 | public void fromBytes(ByteBuf buf) {
29 | data = ByteBufUtils.readTag(buf);
30 | }
31 |
32 | @Override
33 | public void toBytes(ByteBuf buf) {
34 | ByteBufUtils.writeTag(buf, data);
35 | }
36 |
37 | public static class Handler extends GenericHandler {
38 |
39 | @Override
40 | public void processMessage(PacketClientSync message, MessageContext context) {
41 | PowerConverterCore.instance.logger.debug("Got sync packet. Applying ...");
42 | PowerSystemManager manager = PowerSystemManager.getInstance();
43 | try {
44 | manager = PowerSystemManager.getInstance();
45 | manager.readPowerData(message.data);
46 | PowerConverterCore.instance.logger.debug("Sync packet success.");
47 | return;
48 | }
49 | catch (Exception e) {
50 | FMLLog.severe("Error processing Powerconverter sync data from server. Using client data.");
51 | }
52 | manager.readPowerData(manager.writePowerData());
53 | }
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/position/BlockPosition.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.position;
2 |
3 | import net.minecraft.tileentity.TileEntity;
4 | import net.minecraftforge.common.util.ForgeDirection;
5 |
6 | import java.util.ArrayList;
7 | import java.util.List;
8 |
9 | public class BlockPosition {
10 | public int x;
11 | public int y;
12 | public int z;
13 | public ForgeDirection orientation;
14 |
15 | public BlockPosition(int x, int y, int z) {
16 | this(x, y, z, ForgeDirection.UNKNOWN);
17 | }
18 |
19 | public BlockPosition(TileEntity tile) {
20 | this(tile.xCoord, tile.yCoord, tile.zCoord, ForgeDirection.UNKNOWN);
21 | }
22 |
23 | public BlockPosition(int x, int y, int z, ForgeDirection orientation) {
24 | this.x = x;
25 | this.y = y;
26 | this.z = z;
27 | this.orientation = orientation;
28 | }
29 |
30 | @SuppressWarnings("UnusedDeclaration")
31 | public void moveRight(int step) {
32 | switch (orientation) {
33 | case SOUTH:
34 | x -= step;
35 | break;
36 | case NORTH:
37 | x += step;
38 | break;
39 | case EAST:
40 | z += step;
41 | break;
42 | case WEST:
43 | z -= step;
44 | break;
45 | default:
46 | break;
47 | }
48 | }
49 |
50 | @SuppressWarnings("UnusedDeclaration")
51 | public void moveLeft(int step) {
52 | moveRight(-step);
53 | }
54 |
55 | @SuppressWarnings("UnusedDeclaration")
56 | public void moveForwards(int step) {
57 | switch (orientation) {
58 | case UP:
59 | y += step;
60 | break;
61 | case DOWN:
62 | y -= step;
63 | break;
64 | case SOUTH:
65 | z += step;
66 | break;
67 | case NORTH:
68 | z -= step;
69 | break;
70 | case EAST:
71 | x += step;
72 | break;
73 | case WEST:
74 | x -= step;
75 | break;
76 | default:
77 | }
78 | }
79 |
80 | @SuppressWarnings("UnusedDeclaration")
81 | public void moveBackwards(int step) {
82 | moveForwards(-step);
83 | }
84 |
85 | @SuppressWarnings("UnusedDeclaration")
86 | public void moveUp(int step) {
87 | switch (orientation) {
88 | case EAST:
89 | case WEST:
90 | case NORTH:
91 | case SOUTH:
92 | y += step;
93 | break;
94 | default:
95 | break;
96 | }
97 |
98 | }
99 |
100 | @SuppressWarnings("UnusedDeclaration")
101 | public void moveDown(int step) {
102 | moveUp(-step);
103 | }
104 |
105 | @Override
106 | public String toString() {
107 | if (orientation == null) {
108 | return "{" + x + ", " + y + ", " + z + "}";
109 | }
110 | return "{" + x + ", " + y + ", " + z + ";" + orientation.toString() + "}";
111 | }
112 |
113 | @Override
114 | public boolean equals(Object obj) {
115 | if (!(obj instanceof BlockPosition)) {
116 | return false;
117 | }
118 | BlockPosition bp = (BlockPosition) obj;
119 | return bp.x == x && bp.y == y && bp.z == z && bp.orientation == orientation;
120 | }
121 |
122 | @Override
123 | public int hashCode() {
124 | return (x & 0xFFF) | (y & 0xFF << 8) | (z & 0xFFF << 12);
125 | }
126 |
127 | public List getAdjacent(boolean includeVertical) {
128 | List a = new ArrayList();
129 | a.add(new BlockPosition(x + 1, y, z, ForgeDirection.EAST));
130 | a.add(new BlockPosition(x - 1, y, z, ForgeDirection.WEST));
131 | a.add(new BlockPosition(x, y, z + 1, ForgeDirection.SOUTH));
132 | a.add(new BlockPosition(x, y, z - 1, ForgeDirection.NORTH));
133 | if (includeVertical) {
134 | a.add(new BlockPosition(x, y + 1, z, ForgeDirection.UP));
135 | a.add(new BlockPosition(x, y - 1, z, ForgeDirection.DOWN));
136 | }
137 | return a;
138 | }
139 |
140 | public static TileEntity getAdjacentTileEntity(TileEntity start, ForgeDirection direction) {
141 | BlockPosition p = new BlockPosition(start);
142 | p.orientation = direction;
143 | p.moveForwards(1);
144 | return start.getWorldObj().getTileEntity(p.x, p.y, p.z);
145 | }
146 | }
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/position/INeighboorUpdateTile.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.position;
2 |
3 | public interface INeighboorUpdateTile {
4 | public void onNeighboorChanged();
5 | }
6 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/power/PowerSystem.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.power;
2 |
3 | import net.minecraft.item.ItemBlock;
4 | import net.minecraft.nbt.NBTTagCompound;
5 | import net.minecraftforge.common.config.Configuration;
6 | import powercrystals.powerconverters.common.BridgeSideData;
7 | import powercrystals.powerconverters.power.base.BlockPowerConverter;
8 | import powercrystals.powerconverters.power.base.TileEntityBridgeComponent;
9 |
10 | public abstract class PowerSystem {
11 | protected String name;
12 | protected float _internalEnergyPerInput;
13 | protected float _internalEnergyPerOutput;
14 | protected float serverInternalEnergyPerInput;
15 | protected float serverInternalEnergyPerOutput;
16 | protected String _unit;
17 | protected String[] voltageNames;
18 | protected int[] voltageValues;
19 |
20 | public BlockPowerConverter block;
21 | public Class extends ItemBlock> itemBlock;
22 | public Class extends TileEntityBridgeComponent> consumer;
23 | public Class extends TileEntityBridgeComponent> producer;
24 |
25 | public static final String POWERSYSTEM_CATEGORY = "powersystems";
26 |
27 | public abstract String getId();
28 |
29 | public abstract void registerBlocks();
30 | public abstract void registerCommonRecipes();
31 | public abstract void loadConfig(Configuration c);
32 | public abstract void saveConfig(Configuration c);
33 |
34 | public void readEnergyValues(NBTTagCompound nbt) {
35 | serverInternalEnergyPerInput = nbt.getFloat("Input");
36 | serverInternalEnergyPerOutput = nbt.getFloat("Output");
37 | }
38 |
39 | public NBTTagCompound writeEnergyValues() {
40 | NBTTagCompound nbt = new NBTTagCompound();
41 | nbt.setFloat("Input", _internalEnergyPerInput);
42 | nbt.setFloat("Output", _internalEnergyPerOutput);
43 | return nbt;
44 | }
45 |
46 | public float getInternalEnergyPerInput(int meta) {
47 | return _internalEnergyPerInput;
48 | }
49 |
50 | public float getInternalEnergyPerOutput(int meta) {
51 | return _internalEnergyPerOutput;
52 | }
53 |
54 | public String getUnit() {
55 | return getUnit(-1);
56 | }
57 |
58 | @SuppressWarnings("UnusedParameters")
59 | public String getUnit(int subtype) {
60 | return _unit;
61 | }
62 |
63 | public String[] getVoltageNames() {
64 | return voltageNames;
65 | }
66 |
67 |
68 | /**
69 | * Formats the Rate String for Bridge GUI
70 | *
71 | * Will be only called if isConnected
72 | *
73 | */
74 | public String getRateString(BridgeSideData data) {
75 | double rate = data.outputRate;
76 |
77 | if(rate > 1000000) { // mega
78 | double rateMillion = (rate / 1000000);
79 | return String.format("%.1f %s%s/t", rateMillion, "m", this.getUnit());
80 |
81 | } else if (rate > 1000) { // kilo
82 | double rateThousand = (rate / 1000.0);
83 | return String.format("%.1f %s%s/t", rateThousand, "k", this.getUnit());
84 |
85 | }
86 |
87 | return rate + " " + this.getUnit() + "/t";
88 | }
89 |
90 | }
91 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/power/PowerSystemManager.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.power;
2 |
3 | import net.minecraft.nbt.NBTTagCompound;
4 | import net.minecraft.nbt.NBTTagList;
5 | import net.minecraft.nbt.NBTTagString;
6 | import net.minecraftforge.common.config.Configuration;
7 | import net.minecraftforge.common.util.Constants;
8 |
9 | import java.util.ArrayList;
10 | import java.util.HashMap;
11 | import java.util.List;
12 | import java.util.Map;
13 |
14 | /**
15 | * Class to manage the power systems.
16 | */
17 | public class PowerSystemManager {
18 | private static PowerSystemManager instance;
19 |
20 | private Map powerSystems = new HashMap();
21 |
22 | private List systemIds = new ArrayList();
23 | private List serverSystemIds = new ArrayList();
24 |
25 | public static PowerSystemManager getInstance() {
26 | if(instance == null) {
27 | instance = new PowerSystemManager();
28 | }
29 | return instance;
30 | }
31 |
32 | public void setServerSystemIds() {
33 | serverSystemIds = systemIds;
34 | for(PowerSystem powerSystem : powerSystems.values()) {
35 | powerSystem.readEnergyValues(powerSystem.writeEnergyValues());
36 | }
37 | }
38 |
39 | public void setServerSystemIds(ArrayList ids) {
40 | serverSystemIds = ids;
41 | for(PowerSystem powerSystem : powerSystems.values()) {
42 | powerSystem.readEnergyValues(powerSystem.writeEnergyValues());
43 | }
44 | }
45 |
46 | public void readPowerData(NBTTagCompound nbt) {
47 | // Ensure system ids don't double up when reading. (i.e. multiple connects)
48 | serverSystemIds.clear();
49 | NBTTagList ids = nbt.getTagList("systemIds", Constants.NBT.TAG_STRING);
50 | for(int i = 0; i < ids.tagCount(); i++) {
51 | serverSystemIds.add(ids.getStringTagAt(i));
52 | }
53 | for(PowerSystem powerSystem : powerSystems.values()) {
54 | NBTTagCompound powerSystemNBT = nbt.getCompoundTag(powerSystem.getId());
55 | powerSystem.readEnergyValues(powerSystemNBT);
56 | }
57 | }
58 |
59 | public NBTTagCompound writePowerData() {
60 | NBTTagCompound nbt = new NBTTagCompound();
61 | NBTTagList ids = new NBTTagList();
62 | for(String systemId : systemIds) {
63 | ids.appendTag(new NBTTagString(systemId));
64 | }
65 | nbt.setTag("systemIds", ids);
66 | for(PowerSystem powerSystem : powerSystems.values()) {
67 | nbt.setTag(powerSystem.getId(), powerSystem.writeEnergyValues());
68 | }
69 |
70 | return nbt;
71 | }
72 |
73 | public void registerPowerSystem(PowerSystem powerSystem) {
74 | registerPowerSystem(powerSystem.getId(), powerSystem);
75 | systemIds.add(powerSystem.getId());
76 | }
77 |
78 | public void registerPowerSystem(String id, PowerSystem powerSystem) {
79 | powerSystems.put(id, powerSystem);
80 | }
81 |
82 | public PowerSystem getPowerSystemByName(String name) {
83 | return powerSystems.containsKey(name) ? powerSystems.get(name) : null;
84 | }
85 |
86 | public int getPowerSystemId(String name) {
87 | return serverSystemIds.lastIndexOf(name);
88 | }
89 |
90 | public PowerSystem getPowerSystemById(int id) {
91 | String name = serverSystemIds.get(id);
92 | return getPowerSystemByName(name);
93 | }
94 |
95 | public void registerBlocks() {
96 | for(PowerSystem powerSystem : powerSystems.values()) {
97 | powerSystem.registerBlocks();
98 | }
99 | }
100 |
101 | public void registerCommonRecipes() {
102 | for(PowerSystem powerSystem : powerSystems.values()) {
103 | powerSystem.registerCommonRecipes();
104 | }
105 | }
106 |
107 | public void loadConfigs(Configuration c) {
108 | for(PowerSystem powerSystem : powerSystems.values()) {
109 | powerSystem.loadConfig(c);
110 | }
111 | }
112 |
113 | public void saveConfigs(Configuration c) {
114 | for(PowerSystem powerSystem : powerSystems.values()) {
115 | powerSystem.saveConfig(c);
116 | }
117 | }
118 | }
119 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/power/base/BlockPowerConverter.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.power.base;
2 |
3 | import cpw.mods.fml.relauncher.Side;
4 | import cpw.mods.fml.relauncher.SideOnly;
5 | import net.minecraft.block.Block;
6 | import net.minecraft.block.BlockContainer;
7 | import net.minecraft.block.material.Material;
8 | import net.minecraft.entity.player.EntityPlayer;
9 | import net.minecraft.tileentity.TileEntity;
10 | import net.minecraft.util.IIcon;
11 | import net.minecraft.world.IBlockAccess;
12 | import net.minecraft.world.World;
13 | import powercrystals.powerconverters.PowerConverterCore;
14 | import powercrystals.powerconverters.common.TileEntityEnergyBridge;
15 | import powercrystals.powerconverters.position.INeighboorUpdateTile;
16 |
17 | public class BlockPowerConverter extends BlockContainer {
18 | protected IIcon[] _icons;
19 |
20 | public BlockPowerConverter(int metaCount) {
21 | super(Material.iron);
22 | setHardness(2.0F);
23 | _icons = new IIcon[metaCount * 2];
24 | }
25 |
26 | @Override
27 | @SideOnly(Side.CLIENT)
28 | public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) {
29 | int offset = ((TileEntityBridgeComponent>) world.getTileEntity(x, y, z)).isSideConnectedClient(side) ? 1 : 0;
30 | return _icons[world.getBlockMetadata(x, y, z) * 2 + offset];
31 | }
32 |
33 | @Override
34 | public IIcon getIcon(int side, int metadata) {
35 | return _icons[metadata * 2];
36 | }
37 |
38 | @Override
39 | public TileEntity createNewTileEntity(World world, int meta) {
40 | return null;
41 | }
42 |
43 | @Override
44 | public boolean canProvidePower() {
45 | return true;
46 | }
47 |
48 | @Override
49 | public int damageDropped(int par1) {
50 | return par1;
51 | }
52 |
53 | @Override
54 | public void onNeighborBlockChange(World world, int x, int y, int z, Block block) {
55 | TileEntity te = world.getTileEntity(x, y, z);
56 | if (te != null && te instanceof INeighboorUpdateTile) {
57 | ((INeighboorUpdateTile) te).onNeighboorChanged();
58 | world.markBlockForUpdate(x, y, z);
59 | }
60 | }
61 |
62 | @Override
63 | public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int par6, float par7, float par8, float par9) {
64 | TileEntity te = world.getTileEntity(x, y, z);
65 | if (te != null && te instanceof TileEntityBridgeComponent>) {
66 | TileEntityEnergyBridge bridge = ((TileEntityBridgeComponent>) te).getFirstBridge();
67 | if (bridge != null) {
68 | player.openGui(PowerConverterCore.instance, 0, world, bridge.xCoord, bridge.yCoord, bridge.zCoord);
69 | }
70 | }
71 | return true;
72 | }
73 | }
74 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/power/base/TileEntityBridgeComponent.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.power.base;
2 |
3 | import net.minecraft.nbt.NBTTagCompound;
4 | import net.minecraft.tileentity.TileEntity;
5 | import net.minecraftforge.common.util.ForgeDirection;
6 | import powercrystals.powerconverters.common.TileEntityEnergyBridge;
7 | import powercrystals.powerconverters.position.BlockPosition;
8 | import powercrystals.powerconverters.position.INeighboorUpdateTile;
9 | import powercrystals.powerconverters.power.PowerSystem;
10 |
11 | import java.util.HashMap;
12 | import java.util.Map;
13 |
14 | public class TileEntityBridgeComponent extends TileEntity implements INeighboorUpdateTile {
15 | private Map _adjacentBridges = new HashMap();
16 | private Map _adjacentTiles = new HashMap();
17 |
18 | private Class> _adjacentClass;
19 | protected PowerSystem _powerSystem;
20 | protected int _voltageIndex;
21 |
22 | private boolean _initialized;
23 |
24 | protected TileEntityBridgeComponent(PowerSystem powersystem, int voltageNameIndex, Class adjacentClass) {
25 | _powerSystem = powersystem;
26 | _voltageIndex = voltageNameIndex;
27 | _adjacentClass = adjacentClass;
28 | }
29 |
30 | @Override
31 | public void updateEntity() {
32 | super.updateEntity();
33 |
34 | if (!_initialized && !tileEntityInvalid) {
35 | onNeighboorChanged();
36 | _initialized = true;
37 | }
38 | }
39 |
40 | @SuppressWarnings("unchecked")
41 | @Override
42 | public void onNeighboorChanged() {
43 | Map adjacentBridges = new HashMap();
44 | Map adjacentTiles = new HashMap();
45 |
46 | for (ForgeDirection d : ForgeDirection.VALID_DIRECTIONS) {
47 | TileEntity te = BlockPosition.getAdjacentTileEntity(this, d);
48 | if (te instanceof TileEntityEnergyBridge) {
49 | adjacentBridges.put(d, (TileEntityEnergyBridge) te);
50 | } else if (te != null && _adjacentClass.isAssignableFrom(te.getClass())) {
51 | adjacentTiles.put(d, (T) te);
52 | }
53 | }
54 |
55 | _adjacentBridges = adjacentBridges;
56 | _adjacentTiles = adjacentTiles;
57 | }
58 |
59 | public PowerSystem getPowerSystem() {
60 | return _powerSystem;
61 | }
62 |
63 | public boolean isConnected() {
64 | return _adjacentTiles.size() > 0;
65 | }
66 |
67 | public boolean isSideConnected(int side) {
68 | return _adjacentTiles.get(ForgeDirection.getOrientation(side)) != null;
69 | }
70 |
71 | public boolean isSideConnectedClient(int side) {
72 | TileEntity te = BlockPosition.getAdjacentTileEntity(this, ForgeDirection.getOrientation(side));
73 | return te != null && _adjacentClass.isAssignableFrom(te.getClass());
74 | }
75 |
76 | public int getVoltageIndex() {
77 | return _voltageIndex;
78 | }
79 |
80 | public int getSubtype() {
81 | return -1;
82 | }
83 |
84 | public TileEntityEnergyBridge getFirstBridge() {
85 | return _adjacentBridges.size() == 0 ? null : (TileEntityEnergyBridge) _adjacentBridges.values().toArray()[0];
86 | }
87 |
88 | protected Map getBridges() {
89 | return _adjacentBridges;
90 | }
91 |
92 | protected Map getTiles() {
93 | return _adjacentTiles;
94 | }
95 |
96 | @Override
97 | public void onChunkUnload() {
98 | invalidate();
99 | }
100 |
101 | @Override
102 | public void readFromNBT(NBTTagCompound tagCompound) {
103 | super.readFromNBT(tagCompound);
104 | if (_voltageIndex == 0) {
105 | _voltageIndex = tagCompound.getInteger("voltageIndex");
106 | }
107 | }
108 |
109 | @Override
110 | public void writeToNBT(NBTTagCompound tagCompound) {
111 | super.writeToNBT(tagCompound);
112 | tagCompound.setInteger("voltageIndex", _voltageIndex);
113 | }
114 | }
115 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/power/base/TileEntityEnergyConsumer.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.power.base;
2 |
3 | import net.minecraftforge.common.util.ForgeDirection;
4 | import powercrystals.powerconverters.common.TileEntityEnergyBridge;
5 | import powercrystals.powerconverters.power.PowerSystem;
6 |
7 | import java.util.Map.Entry;
8 |
9 | public abstract class TileEntityEnergyConsumer extends TileEntityBridgeComponent {
10 | public TileEntityEnergyConsumer(PowerSystem powerSystem, int voltageNameIndex, Class adjacentClass) {
11 | super(powerSystem, voltageNameIndex, adjacentClass);
12 | }
13 |
14 | /**
15 | * @param energy amount of energy to store
16 | * @param simulate whether to actually store the energy
17 | * @return energy left over
18 | */
19 | protected double storeEnergy(double energy, boolean simulate) {
20 | boolean powered = getWorldObj().getStrongestIndirectPower(xCoord, yCoord, zCoord) > 0;
21 | if(!powered) {
22 | for (Entry bridge : getBridges().entrySet()) {
23 | energy = bridge.getValue().storeEnergy(energy, simulate);
24 | if (energy <= 0) {
25 | return 0;
26 | }
27 | }
28 | }
29 | return energy;
30 | }
31 |
32 | protected int getTotalEnergyDemand() {
33 | int demand = 0;
34 |
35 | boolean powered = getWorldObj().getStrongestIndirectPower(xCoord, yCoord, zCoord) > 0;
36 | if(!powered) {
37 | for (Entry bridge : getBridges().entrySet()) {
38 | demand += (bridge.getValue().getEnergyStoredMax() - bridge.getValue().getEnergyStored());
39 | }
40 | }
41 |
42 | return demand;
43 | }
44 |
45 | public abstract double getInputRate();
46 | }
47 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/power/base/TileEntityEnergyProducer.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.power.base;
2 |
3 | import powercrystals.powerconverters.power.PowerSystem;
4 |
5 | public abstract class TileEntityEnergyProducer extends TileEntityBridgeComponent {
6 | public TileEntityEnergyProducer(PowerSystem powerSystem, int voltageNameIndex, Class adjacentClass) {
7 | super(powerSystem, voltageNameIndex, adjacentClass);
8 | }
9 |
10 | public abstract double produceEnergy(double energy);
11 | }
12 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/power/systems/PowerFactorization.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.power.systems;
2 |
3 | import cpw.mods.fml.common.registry.GameRegistry;
4 | import net.minecraft.item.ItemStack;
5 | import net.minecraftforge.common.config.Configuration;
6 | import powercrystals.powerconverters.power.PowerSystem;
7 | import powercrystals.powerconverters.power.systems.factorization.BlockFactorization;
8 | import powercrystals.powerconverters.power.systems.factorization.ItemBlockFactorization;
9 | import powercrystals.powerconverters.power.systems.factorization.TileEntityFactorizationConsumer;
10 | import powercrystals.powerconverters.power.systems.factorization.TileEntityFactorizationProducer;
11 |
12 | /**
13 | * Factorization support. Adds producer and consumer.
14 | */
15 | public class PowerFactorization extends PowerSystem {
16 | public static final String id = "FZ";
17 |
18 | public static final float DEFAULT_ENERGY_PER_INPUT = 175;
19 | public static final float DEFAULT_ENERGY_PER_OUTPUT = 175;
20 | public static final String CATEGORY_FACTORIZATION = POWERSYSTEM_CATEGORY + ".fz";
21 |
22 | public PowerFactorization() {
23 | name = "Factorization";
24 | _internalEnergyPerInput = DEFAULT_ENERGY_PER_INPUT;
25 | _internalEnergyPerOutput = DEFAULT_ENERGY_PER_OUTPUT;
26 | _unit = "CG";
27 |
28 | block = new BlockFactorization();
29 | itemBlock = ItemBlockFactorization.class;
30 | consumer = TileEntityFactorizationConsumer.class;
31 | producer = TileEntityFactorizationProducer.class;
32 | }
33 |
34 | @Override
35 | public String getId() {
36 | return id;
37 | }
38 |
39 | public void registerBlocks() {
40 | GameRegistry.registerBlock(block, itemBlock, "converter.fz");
41 | GameRegistry.registerTileEntity(consumer, "powerConverterFZConsumer");
42 | GameRegistry.registerTileEntity(producer, "powerConverterFZProducer");
43 | }
44 |
45 | @Override
46 | public void registerCommonRecipes() {
47 | GameRegistry.addShapelessRecipe(new ItemStack(block, 1, 1), new ItemStack(block, 1, 0));
48 | GameRegistry.addShapelessRecipe(new ItemStack(block, 1, 0), new ItemStack(block, 1, 1));
49 | }
50 |
51 | @Override
52 | public void loadConfig(Configuration c) {
53 | _internalEnergyPerInput = (float) c.get(CATEGORY_FACTORIZATION, "internalEnergyPerInput", DEFAULT_ENERGY_PER_INPUT).getDouble(DEFAULT_ENERGY_PER_INPUT);
54 | _internalEnergyPerOutput = (float) c.get(CATEGORY_FACTORIZATION, "internalEnergyPerOutput", DEFAULT_ENERGY_PER_OUTPUT).getDouble(DEFAULT_ENERGY_PER_OUTPUT);
55 | }
56 |
57 | @Override
58 | public void saveConfig(Configuration c) {
59 | c.getCategory(CATEGORY_FACTORIZATION).get("internalEnergyPerInput").set(_internalEnergyPerInput);
60 | c.getCategory(CATEGORY_FACTORIZATION).get("internalEnergyPerOutput").set(_internalEnergyPerOutput);
61 | }
62 | }
63 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/power/systems/PowerFortron.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.power.systems;
2 |
3 | import cpw.mods.fml.common.registry.GameRegistry;
4 | import net.minecraft.item.ItemStack;
5 | import net.minecraftforge.common.config.Configuration;
6 | import powercrystals.powerconverters.common.TileEntityCharger;
7 | import powercrystals.powerconverters.power.PowerSystem;
8 |
9 | import powercrystals.powerconverters.power.systems.fortron.BlockFortron;
10 | import powercrystals.powerconverters.power.systems.fortron.ItemBlockFortron;
11 | import powercrystals.powerconverters.power.systems.fortron.TileEntityFortronConsumer;
12 | import powercrystals.powerconverters.power.systems.fortron.TileEntityFortronProducer;
13 |
14 | /**
15 | * Fortron Energy (MFFS) support.
16 | */
17 | public class PowerFortron extends PowerSystem {
18 | public static final String id = "Fortron";
19 |
20 | // Maybe the Ratio should be discussed with calclavia,
21 | // i asume that 1rf = 1joule(@mffs-api@resonant-engine)
22 | // so 1kL/s -> 50L/t = 50rf/t
23 |
24 | public static final float DEFAULT_ENERGY_PER_INPUT = 1000;
25 | public static final float DEFAULT_ENERGY_PER_OUTPUT = 1000;
26 | public static final String CATEGORY_MFFS = POWERSYSTEM_CATEGORY + ".mffs";
27 |
28 | public PowerFortron() {
29 | name = "Fortron";
30 | _internalEnergyPerInput = DEFAULT_ENERGY_PER_INPUT;
31 | _internalEnergyPerOutput = DEFAULT_ENERGY_PER_OUTPUT;
32 | _unit = "L";
33 |
34 | block = new BlockFortron();
35 | itemBlock = ItemBlockFortron.class;
36 | consumer = TileEntityFortronConsumer.class;
37 | producer = TileEntityFortronProducer.class;
38 |
39 | }
40 |
41 | @Override
42 | public String getId() {
43 | return id;
44 | }
45 |
46 | public void registerBlocks() {
47 | GameRegistry.registerBlock(block, itemBlock, "converter.fotron");
48 | GameRegistry.registerTileEntity(consumer, "powerConverterFortronConsumer");
49 | GameRegistry.registerTileEntity(producer, "powerConverterFortronProducer");
50 | }
51 |
52 | @Override
53 | public void registerCommonRecipes() {
54 | GameRegistry.addShapelessRecipe(new ItemStack(block, 1, 1), new ItemStack(block, 1, 0));
55 | GameRegistry.addShapelessRecipe(new ItemStack(block, 1, 0), new ItemStack(block, 1, 1));
56 | }
57 |
58 | @Override
59 | public void loadConfig(Configuration c) {
60 | _internalEnergyPerInput = (float) c.get(CATEGORY_MFFS, "internalEnergyPerInput", DEFAULT_ENERGY_PER_INPUT).getDouble(DEFAULT_ENERGY_PER_INPUT);
61 | _internalEnergyPerOutput = (float) c.get(CATEGORY_MFFS, "internalEnergyPerOutput", DEFAULT_ENERGY_PER_OUTPUT).getDouble(DEFAULT_ENERGY_PER_OUTPUT);
62 | }
63 |
64 | @Override
65 | public void saveConfig(Configuration c) {
66 | c.getCategory(CATEGORY_MFFS).get("internalEnergyPerInput").set(_internalEnergyPerInput);
67 | c.getCategory(CATEGORY_MFFS).get("internalEnergyPerOutput").set(_internalEnergyPerOutput);
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/power/systems/PowerIndustrialcraft.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.power.systems;
2 |
3 | import cpw.mods.fml.common.registry.GameRegistry;
4 | import net.minecraft.item.ItemStack;
5 | import net.minecraftforge.common.config.Configuration;
6 | import powercrystals.powerconverters.common.TileEntityCharger;
7 | import powercrystals.powerconverters.power.PowerSystem;
8 | import powercrystals.powerconverters.power.systems.ic2.BlockIndustrialCraft;
9 | import powercrystals.powerconverters.power.systems.ic2.ChargeHandlerIndustrialCraft;
10 | import powercrystals.powerconverters.power.systems.ic2.ItemBlockIndustrialCraft;
11 | import powercrystals.powerconverters.power.systems.ic2.TileEntityIndustrialCraftConsumer;
12 | import powercrystals.powerconverters.power.systems.ic2.TileEntityIndustrialCraftProducer;
13 |
14 | /**
15 | * Industrialcraft support. Adds producer and consumer.
16 | */
17 | public class PowerIndustrialcraft extends PowerSystem {
18 | public static final String id = "IC2";
19 |
20 | public static final float DEFAULT_ENERGY_PER_INPUT = 4000;
21 | public static final float DEFAULT_ENERGY_PER_OUTPUT = 4000;
22 | public static final String CATEGORY_FACTORIZATION = POWERSYSTEM_CATEGORY + ".ic2";
23 |
24 | public static final String[] VOLTAGE_NAMES = new String[]{"LV", "MV", "HV", "EV", "UV"};
25 | public static final int[] VOLTAGE_VALUES = new int[]{32, 128, 512, 2048, 8192};
26 |
27 | public PowerIndustrialcraft() {
28 | name = "Industrialcraft";
29 | _internalEnergyPerInput = DEFAULT_ENERGY_PER_INPUT;
30 | _internalEnergyPerOutput = DEFAULT_ENERGY_PER_OUTPUT;
31 | _unit = "EU";
32 | voltageNames = VOLTAGE_NAMES;
33 | voltageValues = VOLTAGE_VALUES;
34 |
35 | block = new BlockIndustrialCraft();
36 | itemBlock = ItemBlockIndustrialCraft.class;
37 | consumer = TileEntityIndustrialCraftConsumer.class;
38 | producer = TileEntityIndustrialCraftProducer.class;
39 |
40 | TileEntityCharger.registerChargeHandler(new ChargeHandlerIndustrialCraft());
41 | }
42 |
43 | @Override
44 | public String getId() {
45 | return id;
46 | }
47 |
48 | public void registerBlocks() {
49 | GameRegistry.registerBlock(block, itemBlock, "converter.ic2");
50 | GameRegistry.registerTileEntity(consumer, "powerConverterIC2Consumer");
51 | GameRegistry.registerTileEntity(producer, "powerConverterIC2Producer");
52 | }
53 |
54 | @Override
55 | public void registerCommonRecipes() {
56 | GameRegistry.addShapelessRecipe(new ItemStack(block, 1, 1), new ItemStack(block, 1, 0));
57 | GameRegistry.addShapelessRecipe(new ItemStack(block, 1, 0), new ItemStack(block, 1, 1));
58 | GameRegistry.addShapelessRecipe(new ItemStack(block, 1, 3), new ItemStack(block, 1, 2));
59 | GameRegistry.addShapelessRecipe(new ItemStack(block, 1, 2), new ItemStack(block, 1, 3));
60 | GameRegistry.addShapelessRecipe(new ItemStack(block, 1, 5), new ItemStack(block, 1, 4));
61 | GameRegistry.addShapelessRecipe(new ItemStack(block, 1, 4), new ItemStack(block, 1, 5));
62 | GameRegistry.addShapelessRecipe(new ItemStack(block, 1, 7), new ItemStack(block, 1, 6));
63 | GameRegistry.addShapelessRecipe(new ItemStack(block, 1, 6), new ItemStack(block, 1, 7));
64 | GameRegistry.addShapelessRecipe(new ItemStack(block, 1, 9), new ItemStack(block, 1, 8));
65 | }
66 |
67 | @Override
68 | public void loadConfig(Configuration c) {
69 | _internalEnergyPerInput = (float) c.get(CATEGORY_FACTORIZATION, "internalEnergyPerInput", DEFAULT_ENERGY_PER_INPUT).getDouble(DEFAULT_ENERGY_PER_INPUT);
70 | _internalEnergyPerOutput = (float) c.get(CATEGORY_FACTORIZATION, "internalEnergyPerOutput", DEFAULT_ENERGY_PER_OUTPUT).getDouble(DEFAULT_ENERGY_PER_OUTPUT);
71 | }
72 |
73 | @Override
74 | public void saveConfig(Configuration c) {
75 | c.getCategory(CATEGORY_FACTORIZATION).get("internalEnergyPerInput").set(_internalEnergyPerInput);
76 | c.getCategory(CATEGORY_FACTORIZATION).get("internalEnergyPerOutput").set(_internalEnergyPerOutput);
77 | }
78 | }
79 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/power/systems/PowerRedstoneFlux.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.power.systems;
2 |
3 | import cpw.mods.fml.common.registry.GameRegistry;
4 | import net.minecraft.item.ItemStack;
5 | import net.minecraftforge.common.config.Configuration;
6 | import powercrystals.powerconverters.common.TileEntityCharger;
7 | import powercrystals.powerconverters.power.PowerSystem;
8 | import powercrystals.powerconverters.power.systems.rf.BlockRF;
9 | import powercrystals.powerconverters.power.systems.rf.ChargeHandlerRF;
10 | import powercrystals.powerconverters.power.systems.rf.ItemBlockRF;
11 | import powercrystals.powerconverters.power.systems.rf.TileEntityRFConsumer;
12 | import powercrystals.powerconverters.power.systems.rf.TileEntityRFProducer;
13 |
14 | /**
15 | * RF support. Adds the producer and consumer.
16 | */
17 | public class PowerRedstoneFlux extends PowerSystem {
18 | public static final String id = "RF";
19 |
20 | public static final float DEFAULT_ENERGY_PER_INPUT = 1000;
21 | public static final float DEFAULT_ENERGY_PER_OUTPUT = 1000;
22 | public static final String CATEGORY_BUILDCRAFT = POWERSYSTEM_CATEGORY + ".rf";
23 |
24 | public PowerRedstoneFlux() {
25 | name = "RedstoneFlux";
26 | _internalEnergyPerInput = DEFAULT_ENERGY_PER_INPUT;
27 | _internalEnergyPerOutput = DEFAULT_ENERGY_PER_OUTPUT;
28 | _unit = "RF";
29 |
30 | block = new BlockRF();
31 | itemBlock = ItemBlockRF.class;
32 | consumer = TileEntityRFConsumer.class;
33 | producer = TileEntityRFProducer.class;
34 |
35 | TileEntityCharger.registerChargeHandler(new ChargeHandlerRF());
36 | }
37 |
38 | @Override
39 | public String getId() {
40 | return id;
41 | }
42 |
43 | public void registerBlocks() {
44 | GameRegistry.registerBlock(block, itemBlock, "converter.rf");
45 | GameRegistry.registerTileEntity(consumer, "powerConverterRFConsumer");
46 | GameRegistry.registerTileEntity(producer, "powerConverterRFProducer");
47 | }
48 |
49 | @Override
50 | public void registerCommonRecipes() {
51 | GameRegistry.addShapelessRecipe(new ItemStack(block, 1, 1), new ItemStack(block, 1, 0));
52 | GameRegistry.addShapelessRecipe(new ItemStack(block, 1, 0), new ItemStack(block, 1, 1));
53 | }
54 |
55 | @Override
56 | public void loadConfig(Configuration c) {
57 | _internalEnergyPerInput = (float) c.get(CATEGORY_BUILDCRAFT, "internalEnergyPerInput", DEFAULT_ENERGY_PER_INPUT).getDouble(DEFAULT_ENERGY_PER_INPUT);
58 | _internalEnergyPerOutput = (float) c.get(CATEGORY_BUILDCRAFT, "internalEnergyPerOutput", DEFAULT_ENERGY_PER_OUTPUT).getDouble(DEFAULT_ENERGY_PER_OUTPUT);
59 | }
60 |
61 | @Override
62 | public void saveConfig(Configuration c) {
63 | c.getCategory(CATEGORY_BUILDCRAFT).get("internalEnergyPerInput").set(_internalEnergyPerInput);
64 | c.getCategory(CATEGORY_BUILDCRAFT).get("internalEnergyPerOutput").set(_internalEnergyPerOutput);
65 | }
66 | }
67 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/power/systems/Rotarycraft.java:
--------------------------------------------------------------------------------
1 | /**
2 | * Reika (the rotarycraft dev) has explicitly disallowed Rotarycraft support in Powerconverters.
3 | * This is because of the damage that does to Rotarycraft's balance, design, realism, and interfacing.
4 | */
5 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/power/systems/factorization/BlockFactorization.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.power.systems.factorization;
2 |
3 | import cpw.mods.fml.relauncher.Side;
4 | import cpw.mods.fml.relauncher.SideOnly;
5 | import net.minecraft.client.renderer.texture.IIconRegister;
6 | import net.minecraft.tileentity.TileEntity;
7 | import net.minecraft.world.World;
8 | import powercrystals.powerconverters.PowerConverterCore;
9 | import powercrystals.powerconverters.gui.PCCreativeTab;
10 | import powercrystals.powerconverters.power.base.BlockPowerConverter;
11 |
12 | /**
13 | * Block for Factorization consumer and producer.
14 | */
15 | public class BlockFactorization extends BlockPowerConverter {
16 | public BlockFactorization() {
17 | super(2);
18 | setBlockName("powerconverters.factorization");
19 | setCreativeTab(PCCreativeTab.tab);
20 | }
21 |
22 | @Override
23 | public TileEntity createTileEntity(World world, int metadata) {
24 | if (metadata == 0) return new TileEntityFactorizationConsumer();
25 | else if (metadata == 1) return new TileEntityFactorizationProducer();
26 |
27 | return createNewTileEntity(world, metadata);
28 | }
29 |
30 | @Override
31 | @SideOnly(Side.CLIENT)
32 | public void registerBlockIcons(IIconRegister ir) {
33 | String[] types = {"consumer", "producer"};
34 | String[] states = {"off", "on"};
35 | String folderName = getUnlocalizedName().substring("tile.powerconverters.".length());
36 |
37 | int i = 0;
38 | for (String type : types) {
39 | for (String state : states) {
40 | _icons[i] = ir.registerIcon(String.format("%s:%s/%s_%s", PowerConverterCore.modId, folderName, type, state));
41 | i++;
42 | }
43 | }
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/power/systems/factorization/ItemBlockFactorization.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.power.systems.factorization;
2 |
3 | import net.minecraft.block.Block;
4 | import net.minecraft.creativetab.CreativeTabs;
5 | import net.minecraft.item.Item;
6 | import net.minecraft.item.ItemBlock;
7 | import net.minecraft.item.ItemStack;
8 |
9 | import java.util.List;
10 |
11 | /**
12 | * Item block for Factorization
13 | */
14 | public class ItemBlockFactorization extends ItemBlock {
15 | public ItemBlockFactorization(Block block) {
16 | super(block);
17 | setHasSubtypes(true);
18 | setMaxDamage(0);
19 | }
20 |
21 | @Override
22 | public int getMetadata(int i) {
23 | return i;
24 | }
25 |
26 | @Override
27 | public String getUnlocalizedName(ItemStack itemstack) {
28 | int md = itemstack.getItemDamage();
29 | if (md == 0) return "powerconverters.factorization.consumer";
30 | if (md == 1) return "powerconverters.factorization.producer";
31 | return "unknown";
32 | }
33 |
34 | @SuppressWarnings({"unchecked", "rawtypes"})
35 | @Override
36 | public void getSubItems(Item item, CreativeTabs creativeTab, List subTypes) {
37 | for (int i = 0; i <= 1; i++) {
38 | subTypes.add(new ItemStack(item, 1, i));
39 | }
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/power/systems/factorization/TileEntityFactorizationConsumer.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.power.systems.factorization;
2 |
3 | import factorization.api.Charge;
4 | import factorization.api.Coord;
5 | import factorization.api.IChargeConductor;
6 | import net.minecraft.tileentity.TileEntity;
7 | import net.minecraft.util.MathHelper;
8 | import net.minecraftforge.common.util.ForgeDirection;
9 | import powercrystals.powerconverters.position.BlockPosition;
10 | import powercrystals.powerconverters.power.PowerSystemManager;
11 | import powercrystals.powerconverters.power.base.TileEntityEnergyConsumer;
12 | import powercrystals.powerconverters.power.systems.PowerFactorization;
13 |
14 | public class TileEntityFactorizationConsumer extends TileEntityEnergyConsumer implements IChargeConductor {
15 | private Charge _charge = new Charge(this);
16 | private int _chargeLastTick = 0;
17 | private static final int _maxCG = 1000;
18 | private boolean neighbourDirty = false;
19 |
20 | public TileEntityFactorizationConsumer() {
21 | super(PowerSystemManager.getInstance().getPowerSystemByName(PowerFactorization.id), 0, IChargeConductor.class);
22 | }
23 |
24 | @Override
25 | public void updateEntity() {
26 | super.updateEntity();
27 | if (worldObj.isRemote) {
28 | return;
29 | }
30 |
31 | boolean powered = getWorldObj().getStrongestIndirectPower(xCoord, yCoord, zCoord) > 0;
32 | if(!powered) {
33 | if (this._charge.getValue() < _maxCG) {
34 | this._charge.update();
35 | }
36 |
37 | if (this._charge.getValue() > 0) {
38 | int used = _charge.tryTake(_charge.getValue());
39 | _chargeLastTick = MathHelper.floor_float(used);
40 | storeEnergy((used * getPowerSystem().getInternalEnergyPerInput(0)), false);
41 | } else {
42 | this._chargeLastTick = 0;
43 | }
44 | }
45 | }
46 |
47 | @Override
48 | public double getInputRate() {
49 | return this._chargeLastTick;
50 | }
51 |
52 | @Override
53 | public Charge getCharge() {
54 | return this._charge;
55 | }
56 |
57 | @Override
58 | public String getInfo() {
59 | return null;
60 | }
61 |
62 | @Override
63 | public Coord getCoord() {
64 | return new Coord(this);
65 | }
66 |
67 | @Override
68 | public void onNeighboorChanged() {
69 | super.onNeighboorChanged();
70 |
71 | try {
72 | Class fzNullClass = Class.forName("factorization.shared.TileEntityFzNull");
73 | for (ForgeDirection d : ForgeDirection.VALID_DIRECTIONS) {
74 | TileEntity te = BlockPosition.getAdjacentTileEntity(this, d);
75 | //noinspection unchecked
76 | if (te != null && fzNullClass.isAssignableFrom(te.getClass())) {
77 | neighbourDirty = true;
78 | }
79 | }
80 | } catch (ClassNotFoundException e) {
81 | e.printStackTrace();
82 | }
83 | }
84 |
85 | @Override
86 | public boolean isConnected() {
87 | if (neighbourDirty) {
88 | onNeighboorChanged();
89 | neighbourDirty = false;
90 | }
91 | return super.isConnected();
92 | }
93 | }
94 |
95 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/power/systems/factorization/TileEntityFactorizationProducer.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.power.systems.factorization;
2 |
3 | import factorization.api.Charge;
4 | import factorization.api.Coord;
5 | import factorization.api.IChargeConductor;
6 | import net.minecraft.tileentity.TileEntity;
7 | import net.minecraftforge.common.util.ForgeDirection;
8 | import powercrystals.powerconverters.position.BlockPosition;
9 | import powercrystals.powerconverters.power.PowerSystemManager;
10 | import powercrystals.powerconverters.power.base.TileEntityEnergyProducer;
11 | import powercrystals.powerconverters.power.systems.PowerFactorization;
12 |
13 | import java.util.Map.Entry;
14 |
15 | public class TileEntityFactorizationProducer extends TileEntityEnergyProducer implements IChargeConductor {
16 | private Charge _charge = new Charge(this);
17 | private static final int _maxCG = 1000;
18 | private boolean neighbourDirty = false;
19 |
20 | public TileEntityFactorizationProducer() {
21 | super(PowerSystemManager.getInstance().getPowerSystemByName(PowerFactorization.id), 0, IChargeConductor.class);
22 | }
23 |
24 | @Override
25 | public double produceEnergy(double energy) {
26 | double CG = energy / getPowerSystem().getInternalEnergyPerOutput(0);
27 | boolean powered = getWorldObj().getStrongestIndirectPower(xCoord, yCoord, zCoord) > 0;
28 | if(!powered) {
29 | for (Entry output : this.getTiles().entrySet()) {
30 | IChargeConductor o = output.getValue();
31 | if (o != null) {
32 | if (o.getCharge().getValue() < _maxCG) {
33 | int store = (int) Math.min(_maxCG - o.getCharge().getValue(), CG);
34 | o.getCharge().addValue(store);
35 | CG -= store;
36 | if (CG <= 0) {
37 | break;
38 | }
39 | }
40 | }
41 | }
42 | }
43 | return CG * getPowerSystem().getInternalEnergyPerOutput(0);
44 | }
45 |
46 | @Override
47 | public Charge getCharge() {
48 | return this._charge;
49 | }
50 |
51 | @Override
52 | public String getInfo() {
53 | return null;
54 | }
55 |
56 | @Override
57 | public Coord getCoord() {
58 | return new Coord(this);
59 | }
60 |
61 | @Override
62 | public void onNeighboorChanged() {
63 | super.onNeighboorChanged();
64 |
65 | try {
66 | Class fzNullClass = Class.forName("factorization.shared.TileEntityFzNull");
67 | for (ForgeDirection d : ForgeDirection.VALID_DIRECTIONS) {
68 | TileEntity te = BlockPosition.getAdjacentTileEntity(this, d);
69 | //noinspection unchecked
70 | if (te != null && fzNullClass != null && fzNullClass.isAssignableFrom(te.getClass())) {
71 | neighbourDirty = true;
72 | }
73 | }
74 | } catch (ClassNotFoundException e) {
75 | e.printStackTrace();
76 | }
77 | }
78 |
79 | @Override
80 | public boolean isConnected() {
81 | if (neighbourDirty) {
82 | onNeighboorChanged();
83 | neighbourDirty = false;
84 | }
85 | return super.isConnected();
86 | }
87 | }
88 |
89 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/power/systems/fortron/BlockFortron.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.power.systems.fortron;
2 |
3 | import cpw.mods.fml.relauncher.Side;
4 | import cpw.mods.fml.relauncher.SideOnly;
5 | import net.minecraft.client.renderer.texture.IIconRegister;
6 | import net.minecraft.tileentity.TileEntity;
7 | import net.minecraft.world.World;
8 | import powercrystals.powerconverters.PowerConverterCore;
9 | import powercrystals.powerconverters.gui.PCCreativeTab;
10 | import powercrystals.powerconverters.power.base.BlockPowerConverter;
11 |
12 |
13 | public class BlockFortron extends BlockPowerConverter {
14 |
15 | public BlockFortron() {
16 | super(2);
17 | setBlockName("powerconverters.mffs");
18 | setCreativeTab(PCCreativeTab.tab);
19 | }
20 |
21 | @Override
22 | public TileEntity createNewTileEntity(World world, int metadata) {
23 | if (metadata == 0) return new TileEntityFortronConsumer();
24 | else if (metadata == 1) return new TileEntityFortronProducer();
25 |
26 | return null;
27 | }
28 |
29 | @Override
30 | @SideOnly(Side.CLIENT)
31 | public void registerBlockIcons(IIconRegister ir) {
32 | String[] types = {"consumer", "producer"};
33 | String[] states = {"off", "on"};
34 | String folderName = getUnlocalizedName().substring("tile.powerconverters.".length());
35 |
36 | int i = 0;
37 | for (String type : types) {
38 | for (String state : states) {
39 | _icons[i] = ir.registerIcon(String.format("%s:%s/%s_%s", PowerConverterCore.modId, folderName, type, state));
40 | i++;
41 | }
42 | }
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/power/systems/fortron/ItemBlockFortron.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.power.systems.fortron;
2 |
3 | import net.minecraft.block.Block;
4 | import net.minecraft.creativetab.CreativeTabs;
5 | import net.minecraft.item.Item;
6 | import net.minecraft.item.ItemBlock;
7 | import net.minecraft.item.ItemStack;
8 |
9 | import java.util.List;
10 |
11 |
12 | public class ItemBlockFortron extends ItemBlock {
13 |
14 | public ItemBlockFortron(Block block) {
15 | super(block);
16 | setHasSubtypes(true);
17 | setMaxDamage(0);
18 | }
19 |
20 | @Override
21 | public int getMetadata(int i) {
22 | return i;
23 | }
24 |
25 | @Override
26 | public String getUnlocalizedName(ItemStack itemstack) {
27 | int md = itemstack.getItemDamage();
28 | if (md == 0) return "powerconverters.mffs.consumer";
29 | if (md == 1) return "powerconverters.mffs.producer";
30 | return "unknown";
31 | }
32 |
33 | @SuppressWarnings({"unchecked", "rawtypes"})
34 | @Override
35 | public void getSubItems(Item item, CreativeTabs creativeTab, List subTypes) {
36 | for (int i = 0; i <= 1; i++) {
37 | subTypes.add(new ItemStack(item, 1, i));
38 | }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/power/systems/fortron/TileEntityFortronConsumer.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.power.systems.fortron;
2 |
3 | import net.minecraftforge.common.util.ForgeDirection;
4 | import powercrystals.powerconverters.power.PowerSystemManager;
5 | import powercrystals.powerconverters.power.base.TileEntityEnergyConsumer;
6 | import powercrystals.powerconverters.power.systems.PowerFortron;
7 |
8 | import resonant.api.mffs.fortron.IFortronStorage;
9 |
10 | import java.util.Map.Entry;
11 | import java.lang.Math;
12 |
13 | public class TileEntityFortronConsumer extends TileEntityEnergyConsumer {
14 |
15 | private int lastReceivedFortron;
16 |
17 | public TileEntityFortronConsumer() {
18 | super(PowerSystemManager.getInstance().getPowerSystemByName(PowerFortron.id), 0, IFortronStorage.class);
19 | }
20 |
21 | @Override
22 | public void updateEntity() {
23 | super.updateEntity();
24 | if(worldObj.isRemote) {
25 | return;
26 | }
27 | boolean powered = getWorldObj().getStrongestIndirectPower(xCoord, yCoord, zCoord) > 0;
28 | if(powered) {
29 | return;
30 | }
31 |
32 | //
33 | double perInput = getPowerSystem().getInternalEnergyPerInput(0);
34 | int demand = getTotalEnergyDemand();
35 |
36 | if( (demand / perInput) < 1.0 ) {
37 | return; // we're not going to waste fortron energy we can't store.
38 | }
39 |
40 | // Demand internal units / perinput
41 | int totalFortronDemand = (int)Math.floor(demand / perInput);
42 | int fortronReceived;
43 |
44 | for (Entry it : this.getTiles().entrySet()) {
45 | IFortronStorage fs = it.getValue();
46 |
47 | fortronReceived = fs.requestFortron(totalFortronDemand, true);
48 |
49 | storeEnergy( (fortronReceived * perInput), false);
50 |
51 | totalFortronDemand -= fortronReceived;
52 |
53 | //
54 | lastReceivedFortron += fortronReceived;
55 |
56 | if(totalFortronDemand <= 0)
57 | break;
58 | }
59 |
60 |
61 |
62 | }
63 |
64 | @Override
65 | public double getInputRate() {
66 | int last = lastReceivedFortron;
67 | lastReceivedFortron = 0;
68 | return last;
69 | }
70 |
71 | }
72 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/power/systems/fortron/TileEntityFortronProducer.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.power.systems.fortron;
2 |
3 | import net.minecraftforge.common.util.ForgeDirection;
4 | import powercrystals.powerconverters.power.PowerSystemManager;
5 | import powercrystals.powerconverters.power.base.TileEntityEnergyProducer;
6 | import powercrystals.powerconverters.power.systems.PowerFortron;
7 |
8 | import resonant.api.mffs.fortron.IFortronStorage;
9 |
10 | import java.util.Map.Entry;
11 |
12 |
13 |
14 | public class TileEntityFortronProducer extends TileEntityEnergyProducer {
15 |
16 | public TileEntityFortronProducer() {
17 | super(PowerSystemManager.getInstance().getPowerSystemByName(PowerFortron.id), 0, IFortronStorage.class);
18 | }
19 |
20 | @Override
21 | public double produceEnergy(double energy) {
22 | final double energyToUse = energy / getPowerSystem().getInternalEnergyPerOutput(0);
23 | boolean powered = getWorldObj().getStrongestIndirectPower(xCoord, yCoord, zCoord) > 0;
24 |
25 | if (!powered && energyToUse > 0) {
26 | for (Entry it : this.getTiles().entrySet()) {
27 |
28 | IFortronStorage fs = it.getValue();
29 | final double used = fs.provideFortron( (int)energyToUse, true );
30 |
31 | energy -= (used * getPowerSystem().getInternalEnergyPerOutput(0) );
32 |
33 | if(energy <= 0)
34 | break;
35 |
36 | }
37 | }
38 |
39 | return energy;
40 | }
41 |
42 |
43 | }
44 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/power/systems/gt5/BlockGregTechConsumer.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.power.systems.gt5;
2 |
3 | import cpw.mods.fml.relauncher.Side;
4 | import cpw.mods.fml.relauncher.SideOnly;
5 | import net.minecraft.client.renderer.texture.IIconRegister;
6 | import net.minecraft.tileentity.TileEntity;
7 | import net.minecraft.world.World;
8 | import net.minecraft.util.StatCollector;
9 | import net.minecraft.util.ChatComponentText;
10 | import net.minecraft.entity.player.EntityPlayer;
11 | import powercrystals.powerconverters.PowerConverterCore;
12 | import powercrystals.powerconverters.gui.PCCreativeTab;
13 | import powercrystals.powerconverters.power.base.BlockPowerConverter;
14 |
15 | public class BlockGregTechConsumer extends BlockPowerConverter {
16 | public BlockGregTechConsumer() {
17 | super(18);
18 | setBlockName("powerconverters.gt.consumer");
19 | setCreativeTab(PCCreativeTab.tab);
20 | }
21 |
22 | @Override
23 | public TileEntity createTileEntity(World world, int metadata) {
24 | return new TileEntityGregTechConsumer(metadata);
25 | }
26 |
27 | @Override
28 | @SideOnly(Side.CLIENT)
29 | public void registerBlockIcons(IIconRegister ir) {
30 | String[] voltages = {"ulv", "lv", "mv", "hv", "ev", "iv", "luv", "zpmv", "uv"};
31 | String type = "consumer";
32 | String[] states = {"off", "on"};
33 | String folderName = getUnlocalizedName().substring("tile.powerconverters.".length());
34 | folderName = folderName.substring(0, folderName.length() - type.length() - 1); // Strip out type
35 |
36 | int i = 0;
37 | for (String voltage : voltages) {
38 | for (String state : states) {
39 | _icons[i] = ir.registerIcon(String.format("%s:%s/%s/%s_%s", PowerConverterCore.modId, folderName, voltage, type, state));
40 | i++;
41 | }
42 | }
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/power/systems/gt5/BlockGregTechProducer.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.power.systems.gt5;
2 |
3 | import cpw.mods.fml.relauncher.Side;
4 | import cpw.mods.fml.relauncher.SideOnly;
5 | import net.minecraft.client.renderer.texture.IIconRegister;
6 | import net.minecraft.entity.player.EntityPlayer;
7 | import net.minecraft.tileentity.TileEntity;
8 | import net.minecraft.util.ChatComponentText;
9 | import net.minecraft.util.StatCollector;
10 | import net.minecraft.world.World;
11 | import powercrystals.powerconverters.PowerConverterCore;
12 | import powercrystals.powerconverters.gui.PCCreativeTab;
13 | import powercrystals.powerconverters.power.base.BlockPowerConverter;
14 |
15 | public class BlockGregTechProducer extends BlockPowerConverter {
16 | public BlockGregTechProducer() {
17 | super(18);
18 | setBlockName("powerconverters.gt.producer");
19 | setCreativeTab(PCCreativeTab.tab);
20 | }
21 |
22 | @Override
23 | public TileEntity createTileEntity(World world, int metadata) {
24 | return new TileEntityGregTechProducer(metadata);
25 | }
26 |
27 | @Override
28 | @SideOnly(Side.CLIENT)
29 | public void registerBlockIcons(IIconRegister ir) {
30 | String[] voltages = {"ulv", "lv", "mv", "hv", "ev", "iv", "luv", "zpmv", "uv"};
31 | String type = "producer";
32 | String[] states = {"off", "on"};
33 | String folderName = getUnlocalizedName().substring("tile.powerconverters.".length());
34 | folderName = folderName.substring(0, folderName.length() - type.length() - 1); // Strip out type
35 |
36 | int i = 0;
37 | for (String voltage : voltages) {
38 | for (String state : states) {
39 | _icons[i] = ir.registerIcon(String.format("%s:%s/%s/%s_%s", PowerConverterCore.modId, folderName, voltage, type, state));
40 | i++;
41 | }
42 | }
43 | }
44 |
45 | @Override
46 | public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int par6, float par7, float par8, float par9) {
47 | TileEntity te = world.getTileEntity(x, y, z);
48 |
49 | if( !world.isRemote && te instanceof TileEntityGregTechProducer) {
50 | TileEntityGregTechProducer producer = (TileEntityGregTechProducer)te;
51 |
52 | if(player.isSneaking()){
53 | long newAmperage = producer.incMaxAmperage();
54 | player.addChatMessage( new ChatComponentText( StatCollector.translateToLocalFormatted("powerconverters.gt.producer.amperageChanged", newAmperage) ));
55 |
56 | }
57 | } else {
58 | return super.onBlockActivated(world, x, y, z, player, par6, par7, par8, par9);
59 | }
60 |
61 | return false;
62 | }
63 |
64 | }
65 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/power/systems/gt5/ItemBlockGregTechConsumer.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.power.systems.gt5;
2 |
3 | import cpw.mods.fml.relauncher.Side;
4 | import cpw.mods.fml.relauncher.SideOnly;
5 | import net.minecraft.block.Block;
6 | import net.minecraft.creativetab.CreativeTabs;
7 | import net.minecraft.entity.player.EntityPlayer;
8 | import net.minecraft.item.Item;
9 | import net.minecraft.item.ItemBlock;
10 | import net.minecraft.item.ItemStack;
11 | import net.minecraft.util.EnumChatFormatting;
12 | import powercrystals.powerconverters.power.systems.PowerGregTech5;
13 |
14 | import java.util.List;
15 |
16 | public class ItemBlockGregTechConsumer extends ItemBlock {
17 | public ItemBlockGregTechConsumer(Block block) {
18 | super(block);
19 | setHasSubtypes(true);
20 | setMaxDamage(0);
21 | }
22 |
23 | @Override
24 | public int getMetadata(int i) {
25 | return i;
26 | }
27 |
28 | @SideOnly(Side.CLIENT)
29 | @Override
30 | public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) {
31 | //noinspection unchecked
32 | par3List.add(EnumChatFormatting.BLUE + "Max EU in: " + PowerGregTech5.VOLTAGE_VALUES[par1ItemStack.getItemDamage()]);
33 | }
34 |
35 | @Override
36 | public String getUnlocalizedName(ItemStack itemstack) {
37 | int md = itemstack.getItemDamage();
38 | if (md == 0)
39 | return "powerconverters.gt.ulv.consumer";
40 | else if (md == 1)
41 | return "powerconverters.gt.lv.consumer";
42 | else if (md == 2)
43 | return "powerconverters.gt.mv.consumer";
44 | else if (md == 3)
45 | return "powerconverters.gt.hv.consumer";
46 | else if (md == 4)
47 | return "powerconverters.gt.ev.consumer";
48 | else if (md == 5)
49 | return "powerconverters.gt.iv.consumer";
50 | else if (md == 6)
51 | return "powerconverters.gt.luv.consumer";
52 | else if (md == 7)
53 | return "powerconverters.gt.zpmv.consumer";
54 | else if (md == 8)
55 | return "powerconverters.gt.uv.consumer";
56 |
57 | return "unknown";
58 | }
59 |
60 | @SuppressWarnings({"unchecked", "rawtypes"})
61 | @Override
62 | public void getSubItems(Item item, CreativeTabs creativeTab, List subTypes) {
63 | for (int i = 0; i < 9; i++) {
64 | subTypes.add(new ItemStack(item, 1, i));
65 | }
66 | }
67 | }
68 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/power/systems/gt5/ItemBlockGregTechProducer.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.power.systems.gt5;
2 |
3 | import cpw.mods.fml.relauncher.Side;
4 | import cpw.mods.fml.relauncher.SideOnly;
5 | import net.minecraft.block.Block;
6 | import net.minecraft.creativetab.CreativeTabs;
7 | import net.minecraft.entity.player.EntityPlayer;
8 | import net.minecraft.item.Item;
9 | import net.minecraft.item.ItemBlock;
10 | import net.minecraft.item.ItemStack;
11 | import net.minecraft.util.EnumChatFormatting;
12 | import powercrystals.powerconverters.power.systems.PowerGregTech5;
13 |
14 | import java.util.List;
15 |
16 | public class ItemBlockGregTechProducer extends ItemBlock {
17 | public ItemBlockGregTechProducer(Block block) {
18 | super(block);
19 | setHasSubtypes(true);
20 | setMaxDamage(0);
21 | }
22 |
23 | @Override
24 | public int getMetadata(int i) {
25 | return i;
26 | }
27 |
28 | @SideOnly(Side.CLIENT)
29 | @Override
30 | public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) {
31 | //noinspection unchecked
32 | par3List.add(EnumChatFormatting.BLUE + "Max EU out: " + PowerGregTech5.VOLTAGE_VALUES[par1ItemStack.getItemDamage()]);
33 | }
34 |
35 | @Override
36 | public String getUnlocalizedName(ItemStack itemstack) {
37 | int md = itemstack.getItemDamage();
38 | if (md == 0)
39 | return "powerconverters.gt.ulv.producer";
40 | else if (md == 1)
41 | return "powerconverters.gt.lv.producer";
42 | else if (md == 2)
43 | return "powerconverters.gt.mv.producer";
44 | else if (md == 3)
45 | return "powerconverters.gt.hv.producer";
46 | else if (md == 4)
47 | return "powerconverters.gt.ev.producer";
48 | else if (md == 5)
49 | return "powerconverters.gt.iv.producer";
50 | else if (md == 6)
51 | return "powerconverters.gt.luv.producer";
52 | else if (md == 7)
53 | return "powerconverters.gt.zpmv.producer";
54 | else if (md == 8)
55 | return "powerconverters.gt.uv.producer";
56 |
57 | return "unknown";
58 | }
59 |
60 | @SuppressWarnings({"unchecked", "rawtypes"})
61 | @Override
62 | public void getSubItems(Item item, CreativeTabs creativeTab, List subTypes) {
63 | for (int i = 0; i < 9; i++) {
64 | subTypes.add(new ItemStack(item, 1, i));
65 | }
66 | }
67 | }
68 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/power/systems/ic2/BlockIndustrialCraft.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.power.systems.ic2;
2 |
3 | import cpw.mods.fml.relauncher.Side;
4 | import cpw.mods.fml.relauncher.SideOnly;
5 | import net.minecraft.client.renderer.texture.IIconRegister;
6 | import net.minecraft.tileentity.TileEntity;
7 | import net.minecraft.world.World;
8 | import powercrystals.powerconverters.PowerConverterCore;
9 | import powercrystals.powerconverters.gui.PCCreativeTab;
10 | import powercrystals.powerconverters.power.base.BlockPowerConverter;
11 |
12 | public class BlockIndustrialCraft extends BlockPowerConverter {
13 | public BlockIndustrialCraft() {
14 | super(10);
15 | setBlockName("powerconverters.ic2");
16 | setCreativeTab(PCCreativeTab.tab);
17 | }
18 |
19 | @Override
20 | public TileEntity createTileEntity(World world, int metadata) {
21 | if (metadata == 0)
22 | return new TileEntityIndustrialCraftConsumer(0);
23 | else if (metadata == 1)
24 | return new TileEntityIndustrialCraftProducer(0);
25 | else if (metadata == 2)
26 | return new TileEntityIndustrialCraftConsumer(1);
27 | else if (metadata == 3)
28 | return new TileEntityIndustrialCraftProducer(1);
29 | else if (metadata == 4)
30 | return new TileEntityIndustrialCraftConsumer(2);
31 | else if (metadata == 5)
32 | return new TileEntityIndustrialCraftProducer(2);
33 | else if (metadata == 6)
34 | return new TileEntityIndustrialCraftConsumer(3);
35 | else if (metadata == 7)
36 | return new TileEntityIndustrialCraftProducer(3);
37 | else if (metadata == 8)
38 | return new TileEntityIndustrialCraftConsumer(4);
39 | else if (metadata == 9)
40 | return new TileEntityIndustrialCraftProducer(4);
41 |
42 | return createNewTileEntity(world, metadata);
43 | }
44 |
45 | @Override
46 | @SideOnly(Side.CLIENT)
47 | public void registerBlockIcons(IIconRegister ir) {
48 | String[] voltages = {"lv", "mv", "hv", "ev", "uv"};
49 | String[] types = {"consumer", "producer"};
50 | String[] states = {"off", "on"};
51 | String folderName = getUnlocalizedName().substring("tile.powerconverters.".length());
52 |
53 | int i = 0;
54 | for (String voltage : voltages) {
55 | for (String type : types) {
56 | for (String state : states) {
57 | _icons[i] = ir.registerIcon(String.format("%s:%s/%s/%s_%s", PowerConverterCore.modId, folderName, voltage, type, state));
58 | i++;
59 | }
60 | }
61 | }
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/power/systems/ic2/ChargeHandlerIndustrialCraft.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.power.systems.ic2;
2 |
3 | import ic2.api.item.ElectricItem;
4 | import ic2.api.item.IElectricItem;
5 | import net.minecraft.item.ItemStack;
6 | import powercrystals.powerconverters.common.IChargeHandler;
7 | import powercrystals.powerconverters.power.PowerSystem;
8 | import powercrystals.powerconverters.power.PowerSystemManager;
9 | import powercrystals.powerconverters.power.systems.PowerIndustrialcraft;
10 |
11 | public class ChargeHandlerIndustrialCraft implements IChargeHandler {
12 | @Override
13 | public PowerSystem getPowerSystem() {
14 | return PowerSystemManager.getInstance().getPowerSystemByName(PowerIndustrialcraft.id);
15 | }
16 |
17 | @Override
18 | public boolean canHandle(ItemStack stack) {
19 | return stack != null && stack.getItem() instanceof IElectricItem;
20 | }
21 |
22 | @Override
23 | public int charge(ItemStack stack, int energyInput) {
24 | if (stack != null && stack.getItem() instanceof IElectricItem) {
25 | IElectricItem electricItem = (IElectricItem) stack.getItem();
26 | PowerIndustrialcraft ic2 = (PowerIndustrialcraft) getPowerSystem();
27 | double eu = energyInput / ic2.getInternalEnergyPerOutput(0);
28 | eu -= ElectricItem.manager.charge(stack, eu, electricItem.getTier(stack), false, false);
29 | return (int) (eu * ic2.getInternalEnergyPerOutput(0));
30 | }
31 | return 0;
32 | }
33 |
34 | @Override
35 | public int discharge(ItemStack stack, int energyRequest) {
36 | if (stack != null && stack.getItem() instanceof IElectricItem) {
37 | IElectricItem electricItem = (IElectricItem) stack.getItem();
38 | PowerIndustrialcraft ic2 = (PowerIndustrialcraft) getPowerSystem();
39 | double eu = energyRequest / ic2.getInternalEnergyPerOutput(0);
40 | eu = ElectricItem.manager.discharge(stack, eu, electricItem.getTier(stack), false, false, false);
41 | return (int) (eu * ic2.getInternalEnergyPerInput(0));
42 | }
43 | return 0;
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/power/systems/ic2/ItemBlockIndustrialCraft.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.power.systems.ic2;
2 |
3 | import cpw.mods.fml.relauncher.Side;
4 | import cpw.mods.fml.relauncher.SideOnly;
5 | import net.minecraft.block.Block;
6 | import net.minecraft.creativetab.CreativeTabs;
7 | import net.minecraft.entity.player.EntityPlayer;
8 | import net.minecraft.item.Item;
9 | import net.minecraft.item.ItemBlock;
10 | import net.minecraft.item.ItemStack;
11 | import net.minecraft.util.EnumChatFormatting;
12 | import powercrystals.powerconverters.power.systems.PowerIndustrialcraft;
13 |
14 | import java.util.List;
15 |
16 | public class ItemBlockIndustrialCraft extends ItemBlock {
17 | public ItemBlockIndustrialCraft(Block block) {
18 | super(block);
19 | setHasSubtypes(true);
20 | setMaxDamage(0);
21 | }
22 |
23 | @Override
24 | public int getMetadata(int i) {
25 | return i;
26 | }
27 |
28 | @SideOnly(Side.CLIENT)
29 | @Override
30 | public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) {
31 | //noinspection unchecked
32 | par3List.add(EnumChatFormatting.BLUE + (par1ItemStack.getItemDamage() % 2 == 0 ? "Max EU in: " : "Max EU out: ") + PowerIndustrialcraft.VOLTAGE_VALUES[par1ItemStack.getItemDamage() / 2]);
33 | }
34 |
35 | @Override
36 | public String getUnlocalizedName(ItemStack itemstack) {
37 | int md = itemstack.getItemDamage();
38 | if (md == 0)
39 | return "powerconverters.ic2.lv.consumer";
40 | if (md == 1)
41 | return "powerconverters.ic2.lv.producer";
42 | if (md == 2)
43 | return "powerconverters.ic2.mv.consumer";
44 | if (md == 3)
45 | return "powerconverters.ic2.mv.producer";
46 | if (md == 4)
47 | return "powerconverters.ic2.hv.consumer";
48 | if (md == 5)
49 | return "powerconverters.ic2.hv.producer";
50 | if (md == 6)
51 | return "powerconverters.ic2.ev.consumer";
52 | if (md == 7)
53 | return "powerconverters.ic2.ev.producer";
54 | if (md == 8)
55 | return "powerconverters.ic2.uv.consumer";
56 | if (md == 9)
57 | return "powerconverters.ic2.uv.producer";
58 | return "unknown";
59 | }
60 |
61 | @SuppressWarnings({"unchecked", "rawtypes"})
62 | @Override
63 | public void getSubItems(Item item, CreativeTabs creativeTab, List subTypes) {
64 | for (int i = 0; i <= 9; i++) {
65 | subTypes.add(new ItemStack(item, 1, i));
66 | }
67 | }
68 | }
69 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/power/systems/ic2/TileEntityIndustrialCraftConsumer.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.power.systems.ic2;
2 |
3 | import ic2.api.energy.event.EnergyTileLoadEvent;
4 | import ic2.api.energy.event.EnergyTileUnloadEvent;
5 | import ic2.api.energy.tile.IEnergyEmitter;
6 | import ic2.api.energy.tile.IEnergySink;
7 | import net.minecraft.tileentity.TileEntity;
8 | import net.minecraftforge.common.MinecraftForge;
9 | import net.minecraftforge.common.util.ForgeDirection;
10 | import powercrystals.powerconverters.power.PowerSystemManager;
11 | import powercrystals.powerconverters.power.base.TileEntityEnergyConsumer;
12 | import powercrystals.powerconverters.power.systems.PowerIndustrialcraft;
13 |
14 | public class TileEntityIndustrialCraftConsumer extends TileEntityEnergyConsumer implements IEnergySink {
15 | private boolean _isAddedToEnergyNet;
16 | private boolean _didFirstAddToNet;
17 | private double _euLastTick;
18 | private long _lastTickInjected;
19 |
20 | @SuppressWarnings("unused")
21 | public TileEntityIndustrialCraftConsumer() {
22 | this(0);
23 | }
24 |
25 | public TileEntityIndustrialCraftConsumer(int voltageIndex) {
26 | super(PowerSystemManager.getInstance().getPowerSystemByName(PowerIndustrialcraft.id), voltageIndex, IEnergyEmitter.class);
27 | }
28 |
29 | @Override
30 | public void updateEntity() {
31 | super.updateEntity();
32 | if (!_didFirstAddToNet && !worldObj.isRemote) {
33 | MinecraftForge.EVENT_BUS.post(new EnergyTileLoadEvent(this));
34 | _didFirstAddToNet = true;
35 | _isAddedToEnergyNet = true;
36 | }
37 |
38 | if (worldObj.getTotalWorldTime() - _lastTickInjected > 2) {
39 | _euLastTick = 0;
40 | }
41 | }
42 |
43 | @Override
44 | public void validate() {
45 | super.validate();
46 | if (!_isAddedToEnergyNet) {
47 | _didFirstAddToNet = false;
48 | }
49 | }
50 |
51 | @Override
52 | public void invalidate() {
53 | if (_isAddedToEnergyNet) {
54 | if (!worldObj.isRemote) {
55 | MinecraftForge.EVENT_BUS.post(new EnergyTileUnloadEvent(this));
56 | }
57 | _isAddedToEnergyNet = false;
58 | }
59 | super.invalidate();
60 | }
61 |
62 | @Override
63 | public boolean acceptsEnergyFrom(TileEntity emitter, ForgeDirection direction) {
64 | return true;
65 | }
66 |
67 | @Override
68 | public double getDemandedEnergy() {
69 | boolean powered = getWorldObj().getStrongestIndirectPower(xCoord, yCoord, zCoord) > 0;
70 | if(powered) {
71 | return 0;
72 | }
73 | else {
74 | return getTotalEnergyDemand() / getPowerSystem().getInternalEnergyPerInput(0);
75 | }
76 | }
77 |
78 | @Override
79 | public int getSinkTier() {
80 | return this._voltageIndex;
81 | }
82 |
83 | @Override
84 | public double injectEnergy(ForgeDirection directionFrom, double amount, double voltage) {
85 | boolean powered = getWorldObj().getStrongestIndirectPower(xCoord, yCoord, zCoord) > 0;
86 | if(powered) {
87 | return amount;
88 | }
89 |
90 | double pcuNotStored = storeEnergy(amount * getPowerSystem().getInternalEnergyPerInput(0), false);
91 | double euNotStored = pcuNotStored / getPowerSystem().getInternalEnergyPerInput(0);
92 |
93 | double euThisInjection = (amount - euNotStored);
94 |
95 | if (_lastTickInjected == worldObj.getTotalWorldTime()) {
96 | _euLastTick += euThisInjection;
97 | } else {
98 | _euLastTick = euThisInjection;
99 | _lastTickInjected = worldObj.getTotalWorldTime();
100 | }
101 |
102 | return euNotStored;
103 | }
104 |
105 | @Override
106 | public double getInputRate() {
107 | return _euLastTick;
108 | }
109 | }
110 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/power/systems/ic2/TileEntityIndustrialCraftProducer.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.power.systems.ic2;
2 |
3 | import ic2.api.energy.event.EnergyTileLoadEvent;
4 | import ic2.api.energy.event.EnergyTileUnloadEvent;
5 | import ic2.api.energy.tile.IEnergyAcceptor;
6 | import ic2.api.energy.tile.IEnergySource;
7 | import net.minecraft.nbt.NBTTagCompound;
8 | import net.minecraft.tileentity.TileEntity;
9 | import net.minecraftforge.common.MinecraftForge;
10 | import net.minecraftforge.common.util.ForgeDirection;
11 | import powercrystals.powerconverters.common.TileEntityEnergyBridge;
12 | import powercrystals.powerconverters.power.PowerSystemManager;
13 | import powercrystals.powerconverters.power.systems.PowerIndustrialcraft;
14 | import powercrystals.powerconverters.power.util.ICustomHandler;
15 | import powercrystals.powerconverters.power.base.TileEntityEnergyProducer;
16 |
17 | import java.util.Map;
18 |
19 | public class TileEntityIndustrialCraftProducer extends TileEntityEnergyProducer implements IEnergySource, ICustomHandler {
20 | private double maxSendEnergy;
21 | private boolean _isAddedToEnergyNet;
22 | private boolean _didFirstAddToNet;
23 |
24 | private double lastSentEnergy;
25 |
26 | @SuppressWarnings("UnusedDeclaration")
27 | public TileEntityIndustrialCraftProducer() {
28 | this(0);
29 | }
30 |
31 | public TileEntityIndustrialCraftProducer(int voltageIndex) {
32 | super(PowerSystemManager.getInstance().getPowerSystemByName(PowerIndustrialcraft.id), voltageIndex, IEnergyAcceptor.class);
33 | setMaxSendEnergy(voltageIndex);
34 | }
35 |
36 | private void setMaxSendEnergy(int index) {
37 | if (index == 0) // lv
38 | maxSendEnergy = 32;
39 | else if (index == 1) // mv
40 | maxSendEnergy = 128;
41 | else if (index == 2) // hv
42 | maxSendEnergy = 512;
43 | else if (index == 3) // ev
44 | maxSendEnergy = 2048;
45 | else if (index == 4) // uv
46 | maxSendEnergy = 8192;
47 | else
48 | maxSendEnergy = 0;
49 | }
50 |
51 | @Override
52 | public void updateEntity() {
53 | super.updateEntity();
54 | if (!_didFirstAddToNet && !worldObj.isRemote) {
55 | MinecraftForge.EVENT_BUS.post(new EnergyTileLoadEvent(this));
56 | _didFirstAddToNet = true;
57 | _isAddedToEnergyNet = true;
58 | }
59 | }
60 |
61 | @Override
62 | public void readFromNBT(NBTTagCompound tag) {
63 | super.readFromNBT(tag);
64 | setMaxSendEnergy(_voltageIndex);
65 | }
66 |
67 | @Override
68 | public void validate() {
69 | super.validate();
70 | if (!_isAddedToEnergyNet) {
71 | _didFirstAddToNet = false;
72 | }
73 | }
74 |
75 | @Override
76 | public void invalidate() {
77 | if (_isAddedToEnergyNet) {
78 | if (!worldObj.isRemote) {
79 | MinecraftForge.EVENT_BUS.post(new EnergyTileUnloadEvent(this));
80 | }
81 | _isAddedToEnergyNet = false;
82 | }
83 | super.invalidate();
84 | }
85 |
86 | @Override
87 | public double produceEnergy(double energy) {
88 | return energy;
89 | }
90 |
91 | @Override
92 | public double getOfferedEnergy() {
93 | double eu = 0D;
94 | boolean powered = getWorldObj().getStrongestIndirectPower(xCoord, yCoord, zCoord) > 0;
95 | if(!powered) {
96 | for (TileEntityEnergyBridge bridge : getBridges().values())
97 | eu += bridge.getEnergyStored();
98 | }
99 | return Math.min(maxSendEnergy, eu / getPowerSystem().getInternalEnergyPerOutput(0));
100 | }
101 |
102 | @Override
103 | public void drawEnergy(double amount) {
104 | double drawn = 0D;
105 | boolean powered = getWorldObj().getStrongestIndirectPower(xCoord, yCoord, zCoord) > 0;
106 | if(!powered) {
107 | for (Map.Entry bridge : getBridges().entrySet()) {
108 | drawn += bridge.getValue().useEnergy(amount * getPowerSystem().getInternalEnergyPerOutput(0), false) / getPowerSystem().getInternalEnergyPerOutput(0);
109 | if (drawn >= amount)
110 | break;
111 | }
112 | }
113 | lastSentEnergy = drawn;
114 | }
115 |
116 | @Override
117 | public int getSourceTier() {
118 | return _voltageIndex;
119 | }
120 |
121 | @Override
122 | public boolean emitsEnergyTo(TileEntity receiver, ForgeDirection direction) {
123 | return true;
124 | }
125 |
126 | @Override
127 | public boolean shouldHandle() {
128 | return true;
129 | }
130 |
131 | @Override
132 | public double getOutputRate() {
133 | double temp = lastSentEnergy;
134 | lastSentEnergy = 0;
135 | return temp;
136 | }
137 | }
138 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/power/systems/rf/BlockRF.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.power.systems.rf;
2 |
3 | import cpw.mods.fml.relauncher.Side;
4 | import cpw.mods.fml.relauncher.SideOnly;
5 | import net.minecraft.client.renderer.texture.IIconRegister;
6 | import net.minecraft.tileentity.TileEntity;
7 | import net.minecraft.world.World;
8 | import powercrystals.powerconverters.PowerConverterCore;
9 | import powercrystals.powerconverters.gui.PCCreativeTab;
10 | import powercrystals.powerconverters.power.base.BlockPowerConverter;
11 |
12 | /**
13 | * @author samrg472
14 | */
15 | public class BlockRF extends BlockPowerConverter {
16 |
17 | public BlockRF() {
18 | super(2);
19 | setBlockName("powerconverters.te");
20 | setCreativeTab(PCCreativeTab.tab);
21 | }
22 |
23 | @Override
24 | public TileEntity createNewTileEntity(World world, int metadata) {
25 | if (metadata == 0) return new TileEntityRFConsumer();
26 | else if (metadata == 1) return new TileEntityRFProducer();
27 |
28 | return null;
29 | }
30 |
31 | @Override
32 | @SideOnly(Side.CLIENT)
33 | public void registerBlockIcons(IIconRegister ir) {
34 | String[] types = {"consumer", "producer"};
35 | String[] states = {"off", "on"};
36 | String folderName = getUnlocalizedName().substring("tile.powerconverters.".length());
37 |
38 | int i = 0;
39 | for (String type : types) {
40 | for (String state : states) {
41 | _icons[i] = ir.registerIcon(String.format("%s:%s/%s_%s", PowerConverterCore.modId, folderName, type, state));
42 | i++;
43 | }
44 | }
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/power/systems/rf/ChargeHandlerRF.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.power.systems.rf;
2 |
3 | import cofh.api.energy.IEnergyContainerItem;
4 | import net.minecraft.item.ItemStack;
5 | import powercrystals.powerconverters.common.IChargeHandler;
6 | import powercrystals.powerconverters.power.PowerSystem;
7 | import powercrystals.powerconverters.power.PowerSystemManager;
8 | import powercrystals.powerconverters.power.systems.PowerRedstoneFlux;
9 |
10 | /**
11 | * @author samrg472
12 | */
13 | public class ChargeHandlerRF implements IChargeHandler {
14 |
15 | @Override
16 | public PowerSystem getPowerSystem() {
17 | return PowerSystemManager.getInstance().getPowerSystemByName(PowerRedstoneFlux.id);
18 | }
19 |
20 | @Override
21 | public boolean canHandle(ItemStack stack) {
22 | return stack.getItem() instanceof IEnergyContainerItem;
23 | }
24 |
25 | @Override
26 | public int charge(ItemStack stack, int energyInput) {
27 | final int energyToUse = (int) (energyInput / getPowerSystem().getInternalEnergyPerOutput(0));
28 | final int energyUsed = ((IEnergyContainerItem) stack.getItem()).receiveEnergy(stack, energyToUse, false);
29 | return (int) ((energyToUse - energyUsed) * getPowerSystem().getInternalEnergyPerOutput(0));
30 | }
31 |
32 | @Override
33 | public int discharge(ItemStack stack, int energyRequest) {
34 | IEnergyContainerItem cell = (IEnergyContainerItem) stack.getItem();
35 | return (int) ((cell.extractEnergy(stack, (int) (energyRequest / getPowerSystem().getInternalEnergyPerOutput(0)), false)) * getPowerSystem().getInternalEnergyPerOutput(0));
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/power/systems/rf/ItemBlockRF.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.power.systems.rf;
2 |
3 | import net.minecraft.block.Block;
4 | import net.minecraft.creativetab.CreativeTabs;
5 | import net.minecraft.item.Item;
6 | import net.minecraft.item.ItemBlock;
7 | import net.minecraft.item.ItemStack;
8 |
9 | import java.util.List;
10 |
11 | /**
12 | * @author samrg472
13 | */
14 | public class ItemBlockRF extends ItemBlock {
15 |
16 | public ItemBlockRF(Block block) {
17 | super(block);
18 | setHasSubtypes(true);
19 | setMaxDamage(0);
20 | }
21 |
22 | @Override
23 | public int getMetadata(int i) {
24 | return i;
25 | }
26 |
27 | @Override
28 | public String getUnlocalizedName(ItemStack itemstack) {
29 | int md = itemstack.getItemDamage();
30 | if (md == 0) return "powerconverters.te.consumer";
31 | if (md == 1) return "powerconverters.te.producer";
32 | return "unknown";
33 | }
34 |
35 | @SuppressWarnings({"unchecked", "rawtypes"})
36 | @Override
37 | public void getSubItems(Item item, CreativeTabs creativeTab, List subTypes) {
38 | for (int i = 0; i <= 1; i++) {
39 | subTypes.add(new ItemStack(item, 1, i));
40 | }
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/power/systems/rf/TileEntityRFConsumer.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.power.systems.rf;
2 |
3 | import cofh.api.energy.IEnergyConnection;
4 | import cofh.api.energy.IEnergyReceiver;
5 | import net.minecraftforge.common.util.ForgeDirection;
6 | import powercrystals.powerconverters.common.TileEntityEnergyBridge;
7 | import powercrystals.powerconverters.power.PowerSystemManager;
8 | import powercrystals.powerconverters.power.base.TileEntityEnergyConsumer;
9 | import powercrystals.powerconverters.power.systems.PowerRedstoneFlux;
10 |
11 | /**
12 | * @author samrg472
13 | */
14 | public class TileEntityRFConsumer extends TileEntityEnergyConsumer implements IEnergyReceiver {
15 |
16 | private int lastReceivedRF;
17 |
18 | public TileEntityRFConsumer() {
19 | super(PowerSystemManager.getInstance().getPowerSystemByName(PowerRedstoneFlux.id), 0, IEnergyConnection.class);
20 | }
21 |
22 | @Override
23 | public void updateEntity() {
24 | super.updateEntity();
25 | }
26 |
27 | @Override
28 | public double getInputRate() {
29 | int last = lastReceivedRF;
30 | lastReceivedRF = 0;
31 | return last;
32 | }
33 |
34 | @Override
35 | public int receiveEnergy(ForgeDirection from, int maxReceive, boolean simulate) {
36 | boolean powered = getWorldObj().getStrongestIndirectPower(xCoord, yCoord, zCoord) > 0;
37 | int received = 0;
38 | if(!powered) {
39 | TileEntityEnergyBridge bridge = getFirstBridge();
40 | if (bridge == null)
41 | return 0;
42 | float energyToReceive = getPowerSystem().getInternalEnergyPerInput(0) * maxReceive;
43 | received = (int) (energyToReceive - storeEnergy(energyToReceive, simulate));
44 | if (!simulate) {
45 | lastReceivedRF = (int) (received / getPowerSystem().getInternalEnergyPerInput(0));
46 | return lastReceivedRF;
47 | }
48 | }
49 | return (int) (received / getPowerSystem().getInternalEnergyPerInput(0));
50 | }
51 |
52 | @Override
53 | public boolean canConnectEnergy(ForgeDirection from) {
54 | return true;
55 | }
56 |
57 | @Override
58 | public int getEnergyStored(ForgeDirection from) {
59 | TileEntityEnergyBridge bridge = getFirstBridge();
60 | if (bridge == null)
61 | return 0;
62 | return (int) (bridge.getEnergyStored() / getPowerSystem().getInternalEnergyPerInput(0));
63 | }
64 |
65 | @Override
66 | public int getMaxEnergyStored(ForgeDirection from) {
67 | TileEntityEnergyBridge bridge = getFirstBridge();
68 | if (bridge == null)
69 | return 0;
70 | return (int) (bridge.getEnergyStoredMax() / getPowerSystem().getInternalEnergyPerInput(0));
71 | }
72 | }
73 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/power/systems/rf/TileEntityRFProducer.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.power.systems.rf;
2 |
3 | import cofh.api.energy.IEnergyConnection;
4 | import cofh.api.energy.IEnergyProvider;
5 | import cofh.api.energy.IEnergyReceiver;
6 | import cofh.api.energy.IEnergyHandler;
7 | import net.minecraft.tileentity.TileEntity;
8 | import net.minecraftforge.common.util.ForgeDirection;
9 | import powercrystals.powerconverters.common.TileEntityEnergyBridge;
10 | import powercrystals.powerconverters.position.BlockPosition;
11 | import powercrystals.powerconverters.power.PowerSystemManager;
12 | import powercrystals.powerconverters.power.base.TileEntityEnergyProducer;
13 | import powercrystals.powerconverters.power.systems.PowerRedstoneFlux;
14 |
15 | import java.util.List;
16 |
17 | /**
18 | * @author samrg472
19 | */
20 | public class TileEntityRFProducer extends TileEntityEnergyProducer implements IEnergyProvider {
21 |
22 | public TileEntityRFProducer() {
23 | super(PowerSystemManager.getInstance().getPowerSystemByName(PowerRedstoneFlux.id), 0, IEnergyConnection.class);
24 | }
25 |
26 | @Override
27 | public double produceEnergy(double energy) {
28 | final double tmpEnergyPerOutput = getPowerSystem().getInternalEnergyPerOutput(0);
29 | final double energyToUse = energy / tmpEnergyPerOutput;
30 | boolean powered = getWorldObj().getStrongestIndirectPower(xCoord, yCoord, zCoord) > 0;
31 |
32 | if (!powered && energyToUse > 0) {
33 | List positions = new BlockPosition(xCoord, yCoord, zCoord).getAdjacent(true);
34 |
35 | for (BlockPosition p : positions) {
36 | TileEntity te = worldObj.getTileEntity(p.x, p.y, p.z);
37 | if(te instanceof TileEntityRFConsumer || te instanceof TileEntityEnergyBridge)
38 | continue;
39 |
40 | if(te instanceof IEnergyHandler) {
41 | IEnergyHandler eHandler = (IEnergyHandler) te;
42 | final double received = eHandler.receiveEnergy(p.orientation.getOpposite(), (int) (energyToUse), false);
43 | energy -= (received * tmpEnergyPerOutput);
44 | if (energy <= 0)
45 | break;
46 |
47 | }else if(te instanceof IEnergyReceiver){
48 | IEnergyReceiver eReceiver = (IEnergyReceiver) te;
49 | final double received = eReceiver.receiveEnergy(p.orientation.getOpposite(), (int) (energyToUse), false);
50 | energy -= (received * tmpEnergyPerOutput);
51 | if (energy <= 0)
52 | break;
53 |
54 | }
55 | }
56 | }
57 |
58 | return energy;
59 | }
60 |
61 | @Override
62 | public int extractEnergy(ForgeDirection from, int maxExtract, boolean simulate) {
63 | return 0;
64 | }
65 |
66 | @Override
67 | public boolean canConnectEnergy(ForgeDirection from) {
68 | return true;
69 | }
70 |
71 | @Override
72 | public int getEnergyStored(ForgeDirection from) {
73 | TileEntityEnergyBridge bridge = getFirstBridge();
74 | if (bridge == null)
75 | return 0;
76 | return (int) (bridge.getEnergyStored() / getPowerSystem().getInternalEnergyPerInput(0));
77 | }
78 |
79 | @Override
80 | public int getMaxEnergyStored(ForgeDirection from) {
81 | TileEntityEnergyBridge bridge = getFirstBridge();
82 | if (bridge == null)
83 | return 0;
84 | return (int) (bridge.getEnergyStoredMax() / getPowerSystem().getInternalEnergyPerInput(0));
85 | }
86 | }
87 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/power/systems/steam/BlockSteam.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.power.systems.steam;
2 |
3 | import cpw.mods.fml.relauncher.Side;
4 | import cpw.mods.fml.relauncher.SideOnly;
5 | import net.minecraft.client.renderer.texture.IIconRegister;
6 | import net.minecraft.tileentity.TileEntity;
7 | import net.minecraft.util.IIcon;
8 | import net.minecraft.world.IBlockAccess;
9 | import net.minecraft.world.World;
10 | import powercrystals.powerconverters.PowerConverterCore;
11 | import powercrystals.powerconverters.gui.PCCreativeTab;
12 | import powercrystals.powerconverters.power.PowerSystemManager;
13 | import powercrystals.powerconverters.power.base.BlockPowerConverter;
14 | import powercrystals.powerconverters.power.base.TileEntityBridgeComponent;
15 | import powercrystals.powerconverters.power.systems.PowerSteam;
16 |
17 | public class BlockSteam extends BlockPowerConverter {
18 | public BlockSteam() {
19 | super(2);
20 | setBlockName("powerconverters.steam");
21 | setCreativeTab(PCCreativeTab.tab);
22 | }
23 |
24 | @Override
25 | @SideOnly(Side.CLIENT)
26 | public IIcon getIcon(IBlockAccess world, int x, int y, int z, int side) {
27 | int offset = ((TileEntityBridgeComponent>) world.getTileEntity(x, y, z)).isSideConnectedClient(side) ? 1 : 0;
28 | return _icons[(world.getBlockMetadata(x, y, z) == 0 ? 0 : 1) * 2 + offset];
29 | }
30 |
31 | @Override
32 | public IIcon getIcon(int side, int metadata) {
33 | return _icons[(metadata == 0 ? 0 : 1) * 2];
34 | }
35 |
36 | @Override
37 | public TileEntity createNewTileEntity(World world, int metadata) {
38 | PowerSteam steam = (PowerSteam) PowerSystemManager.getInstance().getPowerSystemByName(PowerSteam.id);
39 | if (metadata == 0) return new TileEntitySteamConsumer();
40 | else return new TileEntitySteamProducer(metadata - 1);
41 | }
42 |
43 | @Override
44 | @SideOnly(Side.CLIENT)
45 | public void registerBlockIcons(IIconRegister ir) {
46 | String[] types = {"consumer", "producer"};
47 | String[] states = {"off", "on"};
48 | String folderName = getUnlocalizedName().substring("tile.powerconverters.".length());
49 |
50 | int i = 0;
51 | for (String type : types) {
52 | for (String state : states) {
53 | _icons[i] = ir.registerIcon(String.format("%s:%s/%s_%s", PowerConverterCore.modId, folderName, type, state));
54 | i++;
55 | }
56 | }
57 | }
58 | }
59 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/power/systems/steam/ItemBlockSteam.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.power.systems.steam;
2 |
3 | import net.minecraft.block.Block;
4 | import net.minecraft.creativetab.CreativeTabs;
5 | import net.minecraft.item.Item;
6 | import net.minecraft.item.ItemBlock;
7 | import net.minecraft.item.ItemStack;
8 | import net.minecraft.util.StatCollector;
9 | import powercrystals.powerconverters.power.PowerSystemManager;
10 | import powercrystals.powerconverters.power.systems.PowerSteam;
11 |
12 | import java.util.List;
13 |
14 | public class ItemBlockSteam extends ItemBlock {
15 | PowerSteam powerSteam;
16 | public ItemBlockSteam(Block block) {
17 | super(block);
18 | setHasSubtypes(true);
19 | setMaxDamage(0);
20 | powerSteam = (PowerSteam) PowerSystemManager.getInstance().getPowerSystemByName(PowerSteam.id);
21 | }
22 |
23 | @Override
24 | public int getMetadata(int i) {
25 | return i;
26 | }
27 |
28 | @Override
29 | public String getUnlocalizedName(ItemStack itemstack) {
30 | int md = itemstack.getItemDamage();
31 | if (md == 0) return "powerconverters.steam.consumer";
32 | else return "powerconverters.steam.producer";
33 | }
34 |
35 | @Override
36 | public String getItemStackDisplayName(ItemStack itemStack) {
37 | if(itemStack.getItemDamage() == 0) {
38 | return super.getItemStackDisplayName(itemStack);
39 | }
40 | else {
41 | PowerSteam.SteamType steamType = powerSteam.getSteamType(itemStack.getItemDamage() - 1);
42 | return StatCollector.translateToLocalFormatted(itemStack.getUnlocalizedName() + ".name", steamType.displayName);
43 | }
44 | }
45 |
46 | @SuppressWarnings({"unchecked", "rawtypes"})
47 | @Override
48 | public void getSubItems(Item item, CreativeTabs creativeTab, List subTypes) {
49 | for (int i = 0; i <= powerSteam.getSteamTypeCount(); i++) {
50 | subTypes.add(new ItemStack(item, 1, i));
51 | }
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/power/systems/steam/TileEntitySteamProducer.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.power.systems.steam;
2 |
3 | import buildcraft.api.transport.IPipeConnection;
4 | import buildcraft.api.transport.IPipeTile;
5 | import cpw.mods.fml.common.Optional;
6 | import net.minecraft.tileentity.TileEntity;
7 | import net.minecraftforge.common.util.ForgeDirection;
8 | import net.minecraftforge.fluids.Fluid;
9 | import net.minecraftforge.fluids.FluidRegistry;
10 | import net.minecraftforge.fluids.FluidStack;
11 | import net.minecraftforge.fluids.FluidTankInfo;
12 | import net.minecraftforge.fluids.IFluidHandler;
13 | import powercrystals.powerconverters.mods.reference.InterfaceReference;
14 | import powercrystals.powerconverters.mods.reference.ModIDReference;
15 | import powercrystals.powerconverters.position.BlockPosition;
16 | import powercrystals.powerconverters.power.PowerSystemManager;
17 | import powercrystals.powerconverters.power.base.TileEntityEnergyProducer;
18 | import powercrystals.powerconverters.power.systems.PowerSteam;
19 |
20 | @Optional.Interface(modid = ModIDReference.BUILDCRAFT, iface = InterfaceReference.BuildCraft.IPipeConnection)
21 | public class TileEntitySteamProducer extends TileEntityEnergyProducer implements IFluidHandler, IPipeConnection {
22 | PowerSteam powerSteam;
23 | int steamId;
24 |
25 | public TileEntitySteamProducer() {
26 | this(0);
27 | }
28 |
29 | public TileEntitySteamProducer(int steamId) {
30 | super(PowerSystemManager.getInstance().getPowerSystemByName(PowerSteam.id), 0, IFluidHandler.class);
31 | powerSteam = (PowerSteam) PowerSystemManager.getInstance().getPowerSystemByName(PowerSteam.id);
32 | this.steamId = steamId;
33 | }
34 |
35 | @Override
36 | public double produceEnergy(double energy) {
37 | boolean powered = getWorldObj().getStrongestIndirectPower(xCoord, yCoord, zCoord) > 0;
38 | if (powered || steamId < 0 || powerSteam.getInternalEnergyPerOutput(steamId + 1) == 0) {
39 | return energy;
40 | }
41 | energy = energy / powerSteam.getInternalEnergyPerOutput(steamId + 1);
42 | for (int i = 0; i < 6; i++) {
43 | BlockPosition bp = new BlockPosition(this);
44 | bp.orientation = ForgeDirection.getOrientation(i);
45 | bp.moveForwards(1);
46 | TileEntity te = worldObj.getTileEntity(bp.x, bp.y, bp.z);
47 |
48 | if (te instanceof IFluidHandler) {
49 | final int steam = (int) Math.min(energy, powerSteam.getThrottleProducer());
50 | PowerSteam.SteamType steamType = powerSteam.getSteamType(steamId);
51 | FluidStack stack = FluidRegistry.getFluidStack(steamType.name, steam);
52 | if (stack != null) {
53 | energy -= ((IFluidHandler) te).fill(bp.orientation.getOpposite(), stack, true);
54 | }
55 | }
56 |
57 | if (energy <= 0)
58 | return 0;
59 | }
60 |
61 | return energy * powerSteam.getInternalEnergyPerOutput(steamId + 1);
62 | }
63 |
64 | @Override
65 | public int fill(ForgeDirection from, FluidStack resource, boolean doFill) {
66 | return 0;
67 | }
68 |
69 | @Override
70 | public FluidStack drain(ForgeDirection from, FluidStack resource, boolean doDrain) {
71 | return null;
72 | }
73 |
74 | @Override
75 | public FluidStack drain(ForgeDirection from, int maxDrain, boolean doDrain) {
76 | return null;
77 | }
78 |
79 | @Override
80 | public boolean canFill(ForgeDirection from, Fluid fluid) {
81 | return false;
82 | }
83 |
84 | @Override
85 | public boolean canDrain(ForgeDirection from, Fluid fluid) {
86 | return true;
87 | }
88 |
89 | @Override
90 | public FluidTankInfo[] getTankInfo(ForgeDirection from) {
91 | return new FluidTankInfo[0];
92 | }
93 |
94 | @Override
95 | public int getSubtype() {
96 | PowerSteam.SteamType type = powerSteam.getSteamType(steamId);
97 | return type != null ? powerSteam.getSteamSubtype(type) : -1;
98 | }
99 |
100 | @Override
101 | @Optional.Method(modid = ModIDReference.BUILDCRAFT)
102 | public ConnectOverride overridePipeConnection(IPipeTile.PipeType pipeType, ForgeDirection direction) {
103 | if (pipeType == IPipeTile.PipeType.FLUID)
104 | return ConnectOverride.CONNECT;
105 | return ConnectOverride.DISCONNECT;
106 | }
107 | }
108 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/power/util/ICustomHandler.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.power.util;
2 |
3 | /**
4 | * Controls how the energy bridge should handle power production
5 | *
6 | * @author samrg472
7 | */
8 | public interface ICustomHandler {
9 |
10 | /**
11 | * Controls whether the tile entity should handle power production itself
12 | *
13 | * @return whether to handle the tile entity or not
14 | */
15 | public boolean shouldHandle();
16 |
17 | /**
18 | * Only called if the tile entity is self handling
19 | *
20 | * @return output rate in converted units
21 | */
22 | public double getOutputRate();
23 | }
24 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/renderer/ExposedGuiContainer.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.renderer;
2 |
3 | import net.minecraft.client.gui.FontRenderer;
4 | import net.minecraft.client.gui.inventory.GuiContainer;
5 | import net.minecraft.client.renderer.entity.RenderItem;
6 | import net.minecraft.inventory.Container;
7 |
8 | /**
9 | * A GuiContainer wrapper to expose some protected fields
10 | *
11 | * @author samrg472
12 | */
13 | public abstract class ExposedGuiContainer extends GuiContainer {
14 |
15 | public ExposedGuiContainer(Container container) {
16 | super(container);
17 | }
18 |
19 | @Override
20 | public void drawGradientRect(int par1, int par2, int par3, int par4, int par5, int par6) {
21 | super.drawGradientRect(par1, par2, par3, par4, par5, par6);
22 | }
23 |
24 | public RenderItem getItemRenderer() {
25 | return itemRender;
26 | }
27 |
28 | public int getGuiTop() {
29 | return guiTop;
30 | }
31 |
32 | public void setZLevel(float zLevel) {
33 | this.zLevel = zLevel;
34 | }
35 |
36 | public FontRenderer getFontRenderer() {
37 | return fontRendererObj;
38 | }
39 |
40 | // Temporary. Maps function from old name.to srg name
41 | public boolean isPointInRegion(int p1, int p2, int p3, int p4, int p5, int p6) {
42 | return func_146978_c(p1, p2, p3, p4, p5, p6);
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/src/main/java/powercrystals/powerconverters/renderer/RenderUtility.java:
--------------------------------------------------------------------------------
1 | package powercrystals.powerconverters.renderer;
2 |
3 | import cpw.mods.fml.relauncher.Side;
4 | import cpw.mods.fml.relauncher.SideOnly;
5 | import org.lwjgl.opengl.GL11;
6 | import org.lwjgl.opengl.GL12;
7 |
8 | import java.util.List;
9 |
10 | /**
11 | * @author samrg472
12 | */
13 | @SideOnly(Side.CLIENT)
14 | public class RenderUtility {
15 |
16 | private ExposedGuiContainer container;
17 |
18 | public RenderUtility(ExposedGuiContainer container) {
19 | this.container = container;
20 | }
21 |
22 | public void drawTooltips(List lines, int x, int y) {
23 | GL11.glPushMatrix();
24 | GL11.glDisable(GL11.GL_DEPTH_TEST);
25 | GL11.glDisable(GL12.GL_RESCALE_NORMAL);
26 | GL11.glDisable(GL11.GL_LIGHTING);
27 |
28 | int tooltipWidth = 0;
29 | int tempWidth;
30 | int xStart;
31 | int yStart;
32 |
33 | for (String line : lines) {
34 | tempWidth = container.getFontRenderer().getStringWidth(line);
35 | if (tempWidth > tooltipWidth)
36 | tooltipWidth = tempWidth;
37 | }
38 |
39 | xStart = x + 12;
40 | yStart = y - 12;
41 | int tooltipHeight = 8;
42 |
43 | if (lines.size() > 1) {
44 | tooltipHeight += 2 + (lines.size() - 1) * 10;
45 | }
46 |
47 | if (container.getGuiTop() + yStart + tooltipHeight + 6 > container.height) {
48 | yStart = container.height - tooltipHeight - container.getGuiTop() - 6;
49 | }
50 |
51 | container.setZLevel(300.0F);
52 | container.getItemRenderer().zLevel = 300.0F;
53 | int color1 = -267386864;
54 | container.drawGradientRect(xStart - 3, yStart - 4, xStart + tooltipWidth + 3, yStart - 3, color1, color1);
55 | container.drawGradientRect(xStart - 3, yStart + tooltipHeight + 3, xStart + tooltipWidth + 3, yStart + tooltipHeight + 4, color1, color1);
56 | container.drawGradientRect(xStart - 3, yStart - 3, xStart + tooltipWidth + 3, yStart + tooltipHeight + 3, color1, color1);
57 | container.drawGradientRect(xStart - 4, yStart - 3, xStart - 3, yStart + tooltipHeight + 3, color1, color1);
58 | container.drawGradientRect(xStart + tooltipWidth + 3, yStart - 3, xStart + tooltipWidth + 4, yStart + tooltipHeight + 3, color1, color1);
59 | int color2 = 1347420415;
60 | int color3 = (color2 & 16711422) >> 1 | color2 & -16777216;
61 | container.drawGradientRect(xStart - 3, yStart - 3 + 1, xStart - 3 + 1, yStart + tooltipHeight + 3 - 1, color2, color3);
62 | container.drawGradientRect(xStart + tooltipWidth + 2, yStart - 3 + 1, xStart + tooltipWidth + 3, yStart + tooltipHeight + 3 - 1, color2, color3);
63 | container.drawGradientRect(xStart - 3, yStart - 3, xStart + tooltipWidth + 3, yStart - 3 + 1, color2, color2);
64 | container.drawGradientRect(xStart - 3, yStart + tooltipHeight + 2, xStart + tooltipWidth + 3, yStart + tooltipHeight + 3, color3, color3);
65 |
66 | for (int stringIndex = 0; stringIndex < lines.size(); ++stringIndex) {
67 | String line = lines.get(stringIndex);
68 |
69 | if (stringIndex == 0) {
70 | line = "\u00a7" + Integer.toHexString(15) + line;
71 | } else {
72 | line = "\u00a77" + line;
73 | }
74 |
75 | container.getFontRenderer().drawStringWithShadow(line, xStart, yStart, -1);
76 |
77 | if (stringIndex == 0)
78 | yStart += 2;
79 | yStart += 10;
80 | }
81 |
82 | GL11.glPopMatrix();
83 | GL11.glEnable(GL11.GL_DEPTH_TEST);
84 |
85 | container.setZLevel(0.0F);
86 | container.getItemRenderer().zLevel = 0.0F;
87 | }
88 |
89 | }
90 |
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/lang/de_DE.lang:
--------------------------------------------------------------------------------
1 | powerconverters.inputlimited=INPUT BEGRENZT
2 | powerconverters.outputlimited=OUTPUT BEGRENZT
3 |
4 | powerconverters.in=EIN
5 | powerconverters.out=AUS
6 | powerconverters.none=
7 | powerconverters.nolink=KEIN LINK
8 | powerconverters.percentfull=voll
9 |
10 | powerconverters.up=OBEN
11 | powerconverters.down=UNTEN
12 | powerconverters.south=SÜD
13 | powerconverters.north=NORD
14 | powerconverters.west=WEST
15 | powerconverters.east=OST
16 |
17 | powerconverters.common.bridge.name=Energiebrücke
18 | powerconverters.common.charger.name=Universalladegerät
19 |
20 | powerconverters.bc.consumer.name=MJ-Konsument
21 | powerconverters.bc.producer.name=MJ-Produzent
22 |
23 | powerconverters.steam.consumer.name=Dampfkonsument
24 | powerconverters.steam.producer.name=Dampfproduzent
25 |
26 | powerconverters.factorization.consumer.name=Factorization-Konsument
27 | powerconverters.factorization.producer.name=Factorization-Produzent
28 |
29 | powerconverters.te.consumer.name=RF-Konsument
30 | powerconverters.te.producer.name=RF-Produzent
31 |
32 | powerconverters.ic2.lv.consumer.name=EU NS-Konsument
33 | powerconverters.ic2.mv.consumer.name=EU MS-Konsument
34 | powerconverters.ic2.hv.consumer.name=EU HS-Konsument
35 | powerconverters.ic2.ev.consumer.name=EU ES-Konsument
36 | powerconverters.ic2.uv.consumer.name=EU US-Konsument
37 |
38 | powerconverters.ic2.lv.producer.name=EU NS-Produzent
39 | powerconverters.ic2.mv.producer.name=EU MS-Produzent
40 | powerconverters.ic2.hv.producer.name=EU HS-Produzent
41 | powerconverters.ic2.ev.producer.name=EU ES-Produzent
42 | powerconverters.ic2.uv.producer.name=EU US-Produzent
43 |
44 | powerconverters.mffs.producer.name=MFFS Fortron-Produzent
45 | powerconverters.mffs.consumer.name=MFFS Fortron-Konsument
46 |
47 |
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/lang/en_US.lang:
--------------------------------------------------------------------------------
1 | powerconverters.inputlimited=INPUT LIMITED
2 | powerconverters.outputlimited=OUTPUT LIMITED
3 |
4 | powerconverters.in=IN
5 | powerconverters.out=OUT
6 | powerconverters.none=
7 | powerconverters.nolink=NO LINK
8 | powerconverters.percentfull=full
9 |
10 | powerconverters.up=UP
11 | powerconverters.down=DOWN
12 | powerconverters.south=SOUTH
13 | powerconverters.north=NORTH
14 | powerconverters.west=WEST
15 | powerconverters.east=EAST
16 |
17 | powerconverters.common.bridge.name=Energy Bridge
18 | powerconverters.common.charger.name=Universal Charger
19 |
20 | powerconverters.bc.consumer.name=MJ Consumer
21 | powerconverters.bc.producer.name=MJ Producer
22 |
23 | powerconverters.steam.consumer.name=Steam Consumer
24 | powerconverters.steam.producer.name=Steam Producer (%s)
25 |
26 | powerconverters.factorization.consumer.name=Factorization Consumer
27 | powerconverters.factorization.producer.name=Factorization Producer
28 |
29 | powerconverters.te.consumer.name=RF Consumer
30 | powerconverters.te.producer.name=RF Producer
31 |
32 | powerconverters.ic2.lv.consumer.name=EU LV Consumer
33 | powerconverters.ic2.mv.consumer.name=EU MV Consumer
34 | powerconverters.ic2.hv.consumer.name=EU HV Consumer
35 | powerconverters.ic2.ev.consumer.name=EU EV Consumer
36 | powerconverters.ic2.uv.consumer.name=EU UV Consumer
37 |
38 | powerconverters.ic2.lv.producer.name=EU LV Producer
39 | powerconverters.ic2.mv.producer.name=EU MV Producer
40 | powerconverters.ic2.hv.producer.name=EU HV Producer
41 | powerconverters.ic2.ev.producer.name=EU EV Producer
42 | powerconverters.ic2.uv.producer.name=EU UV Producer
43 |
44 | powerconverters.gt.ulv.consumer.name=GT ULV Consumer
45 | powerconverters.gt.lv.consumer.name=GT LV Consumer
46 | powerconverters.gt.mv.consumer.name=GT MV Consumer
47 | powerconverters.gt.hv.consumer.name=GT HV Consumer
48 | powerconverters.gt.ev.consumer.name=GT EV Consumer
49 | powerconverters.gt.iv.consumer.name=GT IV Consumer
50 | powerconverters.gt.luv.consumer.name=GT LuV Consumer
51 | powerconverters.gt.zpmv.consumer.name=GT ZPM Consumer
52 | powerconverters.gt.uv.consumer.name=GT UV Consumer
53 |
54 | powerconverters.gt.ulv.producer.name=GT ULV Producer
55 | powerconverters.gt.lv.producer.name=GT LV Producer
56 | powerconverters.gt.mv.producer.name=GT MV Producer
57 | powerconverters.gt.hv.producer.name=GT HV Producer
58 | powerconverters.gt.ev.producer.name=GT EV Producer
59 | powerconverters.gt.iv.producer.name=GT IV Producer
60 | powerconverters.gt.luv.producer.name=GT LuV Producer
61 | powerconverters.gt.zpmv.producer.name=GT ZPM Producer
62 | powerconverters.gt.uv.producer.name=GT UV Producer
63 | powerconverters.gt.producer.amperageChanged=Output Amperage Changed to %1$s Ampere
64 |
65 | powerconverters.mffs.producer.name=MFFS Fortron Producer
66 | powerconverters.mffs.consumer.name=MFFS Fortron Consumer
67 |
68 |
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/lang/pt_BR.lang:
--------------------------------------------------------------------------------
1 | powerconverters.inputlimited=ENTRADA LIMITADA
2 | powerconverters.outputlimited=SAÍDA LIMITADA
3 |
4 | powerconverters.in=ENTRADA
5 | powerconverters.out=SAÍDA
6 | powerconverters.none=
7 | powerconverters.nolink=SEM CONEXÃO
8 | powerconverters.percentfull=completo
9 |
10 | powerconverters.up=ACIMA
11 | powerconverters.down=ABAIXO
12 | powerconverters.south=SUL
13 | powerconverters.north=NORTE
14 | powerconverters.west=OESTE
15 | powerconverters.east=LESTE
16 |
17 | powerconverters.common.bridge.name=Ponte de Energia
18 | powerconverters.common.charger.name=Carregador Universal
19 |
20 | powerconverters.bc.consumer.name=Consumidor de MJ
21 | powerconverters.bc.producer.name=Produtor de MJ
22 |
23 | powerconverters.steam.consumer.name=Consumidor de Vapor
24 | powerconverters.steam.producer.name=Produtor de Vapor
25 |
26 | powerconverters.factorization.consumer.name=Consumidor de Fatoração
27 | powerconverters.factorization.producer.name=Produtor de Fatoração
28 |
29 | powerconverters.te.consumer.name=Consumidor de RF
30 | powerconverters.te.producer.name=Produtor de RF
31 |
32 | powerconverters.ic2.lv.consumer.name=Consumidor de EU LV
33 | powerconverters.ic2.mv.consumer.name=Consumidor de EU MV
34 | powerconverters.ic2.hv.consumer.name=Consumidor de EU HV
35 | powerconverters.ic2.ev.consumer.name=Consumidor de EU EV
36 | powerconverters.ic2.uv.consumer.name=Consumidor de EU UV
37 |
38 | powerconverters.ic2.lv.producer.name=Produtor de EU LV
39 | powerconverters.ic2.mv.producer.name=Produtor de EU MV
40 | powerconverters.ic2.hv.producer.name=Produtor de EU HV
41 | powerconverters.ic2.ev.producer.name=Produtor de EU EV
42 | powerconverters.ic2.uv.producer.name=Produtor de EU UV
43 |
44 | powerconverters.gt.ulv.consumer.name=Consumidor de GT ULV
45 | powerconverters.gt.lv.consumer.name=Consumidor de GT LV
46 | powerconverters.gt.mv.consumer.name=Consumidor de GT MV
47 | powerconverters.gt.hv.consumer.name=Consumidor de GT HV
48 | powerconverters.gt.ev.consumer.name=Consumidor de GT EV
49 | powerconverters.gt.iv.consumer.name=Consumidor de GT IV
50 | powerconverters.gt.luv.consumer.name=Consumidor de GT LuV
51 | powerconverters.gt.zpmv.consumer.name=Consumidor de GT ZPM
52 | powerconverters.gt.uv.consumer.name=Consumidor de GT UV
53 |
54 | powerconverters.gt.ulv.producer.name=Produtor de GT ULV
55 | powerconverters.gt.lv.producer.name=Produtor de GT LV
56 | powerconverters.gt.mv.producer.name=Produtor de GT MV
57 | powerconverters.gt.hv.producer.name=Produtor de GT HV
58 | powerconverters.gt.ev.producer.name=Produtor de GT EV
59 | powerconverters.gt.iv.producer.name=Produtor de GT IV
60 | powerconverters.gt.luv.producer.name=Produtor de GT LuV
61 | powerconverters.gt.zpmv.producer.name=Produtor de GT ZPM
62 | powerconverters.gt.uv.producer.name=Produtor de GT UV
63 | powerconverters.gt.producer.amperageChanged=Amperagem de Saída Alterada para %1$s Ampère
64 |
65 | powerconverters.mffs.producer.name=Produtor de MFFS Fortron
66 | powerconverters.mffs.consumer.name=Consumidor de MFFS Fortron
67 |
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/lang/ru_RU.lang:
--------------------------------------------------------------------------------
1 | powerconverters.inputlimited=ВХОД ОГРАНИЧЕН
2 | powerconverters.outputlimited=ВЫХОД ОГРАНИЧЕН
3 |
4 | powerconverters.in=ВХОД
5 | powerconverters.out=ВЫХОД
6 | powerconverters.none=<НЕТ>
7 | powerconverters.nolink=НЕТ СОЕДИНЕНИЯ
8 | powerconverters.percentfull=полный
9 |
10 | powerconverters.up=ВВЕРХ
11 | powerconverters.down=ВНИЗ
12 | powerconverters.south=ЮГ
13 | powerconverters.north=СЕВЕР
14 | powerconverters.west=ЗАПАД
15 | powerconverters.east=ВОСТОК
16 |
17 | powerconverters.common.bridge.name=Энергетический мост
18 | powerconverters.common.charger.name=Универсальный зарядник
19 |
20 | powerconverters.bc.consumer.name=Потребитель MJ
21 | powerconverters.bc.producer.name=Производитель MJ
22 |
23 | powerconverters.steam.consumer.name=Потребитель пара
24 | powerconverters.steam.producer.name=Производитель пара (%s)
25 |
26 | powerconverters.factorization.consumer.name=Потребитель энергии Factorization
27 | powerconverters.factorization.producer.name=Производитель энергии Factorization
28 |
29 | powerconverters.te.consumer.name=Потребитель RF
30 | powerconverters.te.producer.name=Производитель RF
31 |
32 | powerconverters.ic2.lv.consumer.name=Потребитель EU НН
33 | powerconverters.ic2.mv.consumer.name=Потребитель EU СН
34 | powerconverters.ic2.hv.consumer.name=Потребитель EU ВН
35 | powerconverters.ic2.ev.consumer.name=Потребитель EU СВН
36 | powerconverters.ic2.uv.consumer.name=Потребитель EU УН
37 |
38 | powerconverters.ic2.lv.producer.name=Производитель EU НН
39 | powerconverters.ic2.mv.producer.name=Производитель EU СН
40 | powerconverters.ic2.hv.producer.name=Производитель EU ВН
41 | powerconverters.ic2.ev.producer.name=Производитель EU СВН
42 | powerconverters.ic2.uv.producer.name=Производитель EU УН
43 |
44 | powerconverters.gt.ulv.consumer.name=Потребитель GT ОНН
45 | powerconverters.gt.lv.consumer.name=Потребитель GT НН
46 | powerconverters.gt.mv.consumer.name=Потребитель GT СН
47 | powerconverters.gt.hv.consumer.name=Потребитель GT ВН
48 | powerconverters.gt.ev.consumer.name=Потребитель GT СВН
49 | powerconverters.gt.iv.consumer.name=Потребитель GT IV
50 | powerconverters.gt.luv.consumer.name=Потребитель GT LuV
51 | powerconverters.gt.zpmv.consumer.name=Потребитель GT ZPM
52 | powerconverters.gt.uv.consumer.name=Потребитель GT УН
53 |
54 | powerconverters.gt.ulv.producer.name=Производитель GT ОНН
55 | powerconverters.gt.lv.producer.name=Производитель GT НН
56 | powerconverters.gt.mv.producer.name=Производитель GT СН
57 | powerconverters.gt.hv.producer.name=Производитель GT ВН
58 | powerconverters.gt.ev.producer.name=Производитель GT СВН
59 | powerconverters.gt.iv.producer.name=Производитель GT IV
60 | powerconverters.gt.luv.producer.name=Производитель GT LuV
61 | powerconverters.gt.zpmv.producer.name=Производитель GT ZPM
62 | powerconverters.gt.uv.producer.name=Производитель GT УН
63 | powerconverters.gt.producer.amperageChanged=Выходная сила тока изменена на %1$s ампер
64 |
65 | powerconverters.mffs.producer.name=Производитель фортрона MFFS
66 | powerconverters.mffs.consumer.name=Потребитель фортрона MFFS
67 |
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/lang/zh_CN.lang:
--------------------------------------------------------------------------------
1 | powerconverters.inputlimited=输入限值
2 | powerconverters.outputlimited=输出限值
3 |
4 | powerconverters.in=输入
5 | powerconverters.out=输出
6 | powerconverters.none=<无>
7 | powerconverters.nolink=未连接
8 | powerconverters.percentfull=已满
9 |
10 | powerconverters.up=上
11 | powerconverters.down=下
12 | powerconverters.south=南
13 | powerconverters.north=北
14 | powerconverters.west=西
15 | powerconverters.east=东
16 |
17 | powerconverters.common.bridge.name=能量桥接器
18 | powerconverters.common.charger.name=通用充能台
19 |
20 | powerconverters.bc.consumer.name=MJ转入器
21 | powerconverters.bc.producer.name=MJ输出器
22 |
23 | powerconverters.steam.consumer.name=蒸汽能转入器
24 | powerconverters.steam.producer.name=蒸汽能输出器
25 |
26 | powerconverters.factorization.consumer.name=FZ能量转入器
27 | powerconverters.factorization.producer.name=FZ能量输出器
28 |
29 | powerconverters.te.consumer.name=RF转入器
30 | powerconverters.te.producer.name=RF输出器
31 |
32 | powerconverters.ic2.lv.consumer.name=EU-LV转入器
33 | powerconverters.ic2.mv.consumer.name=EU-MV转入器
34 | powerconverters.ic2.hv.consumer.name=EU-HV转入器
35 | powerconverters.ic2.ev.consumer.name=EU-EV转入器
36 | powerconverters.ic2.uv.consumer.name=EU-UV转入器
37 |
38 | powerconverters.ic2.lv.producer.name=EU-LV输出器
39 | powerconverters.ic2.mv.producer.name=EU-MV输出器
40 | powerconverters.ic2.hv.producer.name=EU-HV输出器
41 | powerconverters.ic2.ev.producer.name=EU-EV输出器
42 | powerconverters.ic2.uv.producer.name=EU-UV输出器
43 |
44 | powerconverters.gt.ulv.consumer.name=GT-ULV转入器
45 | powerconverters.gt.lv.consumer.name=GT-LV转入器
46 | powerconverters.gt.mv.consumer.name=GT-MV转入器
47 | powerconverters.gt.hv.consumer.name=GT-HV转入器
48 | powerconverters.gt.ev.consumer.name=GT-EV转入器
49 | powerconverters.gt.iv.consumer.name=GT-IV转入器
50 | powerconverters.gt.luv.consumer.name=GT-LuV转入器
51 | powerconverters.gt.zpmv.consumer.name=GT-ZPM转入器
52 | powerconverters.gt.uv.consumer.name=GT-UV转入器
53 |
54 | powerconverters.gt.ulv.producer.name=GT-ULV输出器
55 | powerconverters.gt.lv.producer.name=GT-LV输出器
56 | powerconverters.gt.mv.producer.name=GT-MV输出器
57 | powerconverters.gt.hv.producer.name=GT-HV输出器
58 | powerconverters.gt.ev.producer.name=GT-EV输出器
59 | powerconverters.gt.iv.producer.name=GT-IV输出器
60 | powerconverters.gt.luv.producer.name=GT-LuV输出器
61 | powerconverters.gt.zpmv.producer.name=GT-ZPM输出器
62 | powerconverters.gt.uv.producer.name=GT-UV输出器
63 |
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/lang/zh_TW.lang:
--------------------------------------------------------------------------------
1 | powerconverters.inputlimited=輸入限制
2 | powerconverters.outputlimited=輸出限制
3 |
4 | powerconverters.in=輸入
5 | powerconverters.out=輸出
6 | powerconverters.none=<無>
7 | powerconverters.nolink=未連接
8 | powerconverters.percentfull=已滿
9 |
10 | powerconverters.up=上
11 | powerconverters.down=下
12 | powerconverters.south=南
13 | powerconverters.north=北
14 | powerconverters.west=西
15 | powerconverters.east=東
16 |
17 | powerconverters.common.bridge.name=能量橋接器
18 | powerconverters.common.charger.name=通用充能台
19 |
20 | powerconverters.bc.consumer.name=MJ轉入器
21 | powerconverters.bc.producer.name=MJ産出器
22 |
23 | powerconverters.steam.consumer.name=蒸汽能轉入器
24 | powerconverters.steam.producer.name=蒸汽能産出器
25 |
26 | powerconverters.factorization.consumer.name=Fz能量轉入器
27 | powerconverters.factorization.producer.name=Fz能量産出器
28 |
29 | powerconverters.te.consumer.name=RF轉入器
30 | powerconverters.te.producer.name=RF産出器
31 |
32 | powerconverters.ic2.lv.consumer.name=EU-LV轉入器
33 | powerconverters.ic2.mv.consumer.name=EU-MV轉入器
34 | powerconverters.ic2.hv.consumer.name=EU-HV轉入器
35 | powerconverters.ic2.ev.consumer.name=EU-EV轉入器
36 | powerconverters.ic2.uv.consumer.name=EU-UV轉入器
37 |
38 | powerconverters.ic2.lv.producer.name=EU-LV産出器
39 | powerconverters.ic2.mv.producer.name=EU-MV産出器
40 | powerconverters.ic2.hv.producer.name=EU-HV産出器
41 | powerconverters.ic2.ev.producer.name=EU-EV産出器
42 | powerconverters.ic2.uv.producer.name=EU-UV産出器
43 |
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/bc/consumer_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/bc/consumer_off.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/bc/consumer_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/bc/consumer_on.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/bc/producer_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/bc/producer_off.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/bc/producer_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/bc/producer_on.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/common/bridge.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/common/bridge.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/common/charger_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/common/charger_off.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/common/charger_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/common/charger_on.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/factorization/consumer_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/factorization/consumer_off.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/factorization/consumer_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/factorization/consumer_on.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/factorization/producer_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/factorization/producer_off.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/factorization/producer_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/factorization/producer_on.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/gt/ev/consumer_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/gt/ev/consumer_off.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/gt/ev/consumer_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/gt/ev/consumer_on.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/gt/ev/producer_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/gt/ev/producer_off.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/gt/ev/producer_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/gt/ev/producer_on.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/gt/hv/consumer_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/gt/hv/consumer_off.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/gt/hv/consumer_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/gt/hv/consumer_on.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/gt/hv/producer_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/gt/hv/producer_off.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/gt/hv/producer_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/gt/hv/producer_on.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/gt/iv/consumer_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/gt/iv/consumer_off.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/gt/iv/consumer_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/gt/iv/consumer_on.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/gt/iv/producer_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/gt/iv/producer_off.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/gt/iv/producer_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/gt/iv/producer_on.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/gt/luv/consumer_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/gt/luv/consumer_off.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/gt/luv/consumer_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/gt/luv/consumer_on.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/gt/luv/producer_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/gt/luv/producer_off.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/gt/luv/producer_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/gt/luv/producer_on.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/gt/lv/consumer_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/gt/lv/consumer_off.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/gt/lv/consumer_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/gt/lv/consumer_on.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/gt/lv/producer_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/gt/lv/producer_off.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/gt/lv/producer_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/gt/lv/producer_on.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/gt/mv/consumer_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/gt/mv/consumer_off.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/gt/mv/consumer_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/gt/mv/consumer_on.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/gt/mv/producer_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/gt/mv/producer_off.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/gt/mv/producer_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/gt/mv/producer_on.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/gt/ulv/consumer_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/gt/ulv/consumer_off.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/gt/ulv/consumer_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/gt/ulv/consumer_on.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/gt/ulv/producer_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/gt/ulv/producer_off.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/gt/ulv/producer_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/gt/ulv/producer_on.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/gt/uv/consumer_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/gt/uv/consumer_off.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/gt/uv/consumer_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/gt/uv/consumer_on.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/gt/uv/producer_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/gt/uv/producer_off.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/gt/uv/producer_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/gt/uv/producer_on.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/gt/zpmv/consumer_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/gt/zpmv/consumer_off.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/gt/zpmv/consumer_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/gt/zpmv/consumer_on.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/gt/zpmv/producer_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/gt/zpmv/producer_off.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/gt/zpmv/producer_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/gt/zpmv/producer_on.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/ic2/ev/consumer_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/ic2/ev/consumer_off.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/ic2/ev/consumer_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/ic2/ev/consumer_on.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/ic2/ev/producer_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/ic2/ev/producer_off.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/ic2/ev/producer_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/ic2/ev/producer_on.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/ic2/hv/consumer_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/ic2/hv/consumer_off.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/ic2/hv/consumer_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/ic2/hv/consumer_on.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/ic2/hv/producer_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/ic2/hv/producer_off.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/ic2/hv/producer_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/ic2/hv/producer_on.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/ic2/lv/consumer_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/ic2/lv/consumer_off.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/ic2/lv/consumer_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/ic2/lv/consumer_on.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/ic2/lv/producer_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/ic2/lv/producer_off.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/ic2/lv/producer_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/ic2/lv/producer_on.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/ic2/mv/consumer_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/ic2/mv/consumer_off.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/ic2/mv/consumer_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/ic2/mv/consumer_on.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/ic2/mv/producer_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/ic2/mv/producer_off.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/ic2/mv/producer_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/ic2/mv/producer_on.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/ic2/uv/consumer_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/ic2/uv/consumer_off.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/ic2/uv/consumer_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/ic2/uv/consumer_on.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/ic2/uv/producer_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/ic2/uv/producer_off.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/ic2/uv/producer_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/ic2/uv/producer_on.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/mffs/consumer_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/mffs/consumer_off.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/mffs/consumer_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/mffs/consumer_on.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/mffs/producer_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/mffs/producer_off.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/mffs/producer_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/mffs/producer_on.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/steam/consumer_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/steam/consumer_off.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/steam/consumer_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/steam/consumer_on.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/steam/producer_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/steam/producer_off.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/steam/producer_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/steam/producer_on.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/te/consumer_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/te/consumer_off.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/te/consumer_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/te/consumer_on.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/te/producer_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/te/producer_off.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/blocks/te/producer_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/blocks/te/producer_on.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/gui/.directory:
--------------------------------------------------------------------------------
1 | [Dolphin]
2 | PreviewsShown=true
3 | Timestamp=2014,2,16,21,53,57
4 | Version=3
5 |
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/gui/energybridge.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/gui/energybridge.png
--------------------------------------------------------------------------------
/src/main/resources/assets/powerconverters/textures/items/000_JetpackFueller.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/src/main/resources/assets/powerconverters/textures/items/000_JetpackFueller.png
--------------------------------------------------------------------------------
/src/main/resources/mcmod.info:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "modid": "PowerConverters",
4 | "name": "Power Converters",
5 | "description": "Take control of your power",
6 | "version": "${version}",
7 | "mcversion": "${mcversion}",
8 | "url": "http://www.minecraftforum.net/topic/1695968-",
9 | "updateUrl": "",
10 | "authors": [
11 | "PowerCrystals",
12 | "samrg472",
13 | "portablejim"
14 | ],
15 | "credits": "",
16 | "logoFile": "",
17 | "screenshots": [
18 | ],
19 | "parent":"",
20 | "dependencies": [
21 | ]
22 | }
23 | ]
24 |
--------------------------------------------------------------------------------
/src/main/resources/pack.mcmeta:
--------------------------------------------------------------------------------
1 | {
2 | "pack":{
3 | "pack_format":1,
4 | "description":"Powerconverters contents"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/src/main/resources/version.properties:
--------------------------------------------------------------------------------
1 | version=${version}
2 | build_number=${buildnumber}
--------------------------------------------------------------------------------
/work/asset_gt-block.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/work/asset_gt-block.psd
--------------------------------------------------------------------------------
/work/asset_mffs-block.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/portablejim/PowerConverters/0d581a61cc444cc3c855d224c61765809c813b80/work/asset_mffs-block.psd
--------------------------------------------------------------------------------