├── settings.gradle ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── src ├── main │ ├── resources │ │ ├── assets │ │ │ └── tsteelworks │ │ │ │ ├── textures │ │ │ │ ├── blocks │ │ │ │ │ ├── liquid_cement_flow.png.mcmeta │ │ │ │ │ ├── liquid_steam_flow.png.mcmeta │ │ │ │ │ ├── liquid_limestone_flow.png.mcmeta │ │ │ │ │ ├── recolor_info.txt │ │ │ │ │ ├── drain_out.png │ │ │ │ │ ├── duct_out.png │ │ │ │ │ ├── limestone.png │ │ │ │ │ ├── pipe_base.png │ │ │ │ │ ├── redpanel.png │ │ │ │ │ ├── drain_basin.png │ │ │ │ │ ├── drain_side.png │ │ │ │ │ ├── sugar_block.png │ │ │ │ │ ├── turbine_top.png │ │ │ │ │ ├── charcoal_block.png │ │ │ │ │ ├── highoven_side.png │ │ │ │ │ ├── limestonebrick.png │ │ │ │ │ ├── limestonepaver.png │ │ │ │ │ ├── limestoneroad.png │ │ │ │ │ ├── liquid_cement.png │ │ │ │ │ ├── liquid_steam.png │ │ │ │ │ ├── scorchedbrick.png │ │ │ │ │ ├── scorchedcobble.png │ │ │ │ │ ├── scorchedpaver.png │ │ │ │ │ ├── scorchedroad.png │ │ │ │ │ ├── scorchedstone.png │ │ │ │ │ ├── turbine_back.png │ │ │ │ │ ├── turbine_output.png │ │ │ │ │ ├── turbine_side.png │ │ │ │ │ ├── gunpowder_block.png │ │ │ │ │ ├── highoven_active.png │ │ │ │ │ ├── limestonecobble.png │ │ │ │ │ ├── limestonecreeper.png │ │ │ │ │ ├── liquid_limestone.png │ │ │ │ │ ├── redpanel_active.png │ │ │ │ │ ├── scorchedcreeper.png │ │ │ │ │ ├── searedbrickmini.png │ │ │ │ │ ├── cement │ │ │ │ │ │ ├── cement_black.png │ │ │ │ │ │ ├── cement_blue.png │ │ │ │ │ │ ├── cement_brown.png │ │ │ │ │ │ ├── cement_cyan.png │ │ │ │ │ │ ├── cement_gray.png │ │ │ │ │ │ ├── cement_green.png │ │ │ │ │ │ ├── cement_lime.png │ │ │ │ │ │ ├── cement_pink.png │ │ │ │ │ │ ├── cement_plain.png │ │ │ │ │ │ ├── cement_red.png │ │ │ │ │ │ ├── cement_white.png │ │ │ │ │ │ ├── cement_magenta.png │ │ │ │ │ │ ├── cement_orange.png │ │ │ │ │ │ ├── cement_purple.png │ │ │ │ │ │ ├── cement_yellow.png │ │ │ │ │ │ ├── cement_lightblue.png │ │ │ │ │ │ └── cement_lightgray.png │ │ │ │ │ ├── deeptank_controller.png │ │ │ │ │ ├── highoven_inactive.png │ │ │ │ │ ├── limestonebrickfancy.png │ │ │ │ │ ├── limestonebrickmini.png │ │ │ │ │ ├── liquid_cement_flow.png │ │ │ │ │ ├── liquid_steam_flow.png │ │ │ │ │ ├── scorchedbrickfancy.png │ │ │ │ │ ├── scorchedbrickmini.png │ │ │ │ │ ├── scorchedbricksquare.png │ │ │ │ │ ├── limestonebrickcracked.png │ │ │ │ │ ├── limestonebricksquare.png │ │ │ │ │ ├── liquid_limestone_flow.png │ │ │ │ │ ├── scorchedbrickcracked.png │ │ │ │ │ ├── liquid_cement.png.mcmeta │ │ │ │ │ ├── liquid_limestone.png.mcmeta │ │ │ │ │ └── liquid_steam.png.mcmeta │ │ │ │ ├── logo.png │ │ │ │ ├── gui │ │ │ │ │ ├── duct.png │ │ │ │ │ ├── icons.png │ │ │ │ │ ├── deeptank.png │ │ │ │ │ ├── highoven.png │ │ │ │ │ └── bookhighoven.png │ │ │ │ ├── armor │ │ │ │ │ ├── steel_1.png │ │ │ │ │ └── steel_2.png │ │ │ │ ├── mob │ │ │ │ │ ├── highgolem.png │ │ │ │ │ └── steel_golem.png │ │ │ │ └── items │ │ │ │ │ ├── armor │ │ │ │ │ ├── steel_boots.png │ │ │ │ │ ├── steel_helmet.png │ │ │ │ │ ├── steel_leggings.png │ │ │ │ │ └── steel_chestplate.png │ │ │ │ │ ├── tinkerbook_highoven.png │ │ │ │ │ ├── axe │ │ │ │ │ └── hopper_axe_effect.png │ │ │ │ │ ├── materials │ │ │ │ │ ├── bucket_steam.png │ │ │ │ │ ├── bucket_cement.png │ │ │ │ │ ├── bucket_limestone.png │ │ │ │ │ ├── material_limestonedust.png │ │ │ │ │ ├── material_scorchedbrick.png │ │ │ │ │ └── material_limestonebrick.png │ │ │ │ │ ├── arrow │ │ │ │ │ └── hopper_arrow_effect.png │ │ │ │ │ ├── chisel │ │ │ │ │ └── hopper_chisel_effect.png │ │ │ │ │ ├── dagger │ │ │ │ │ └── hopper_dagger_effect.png │ │ │ │ │ ├── frypan │ │ │ │ │ └── hopper_frypan_effect.png │ │ │ │ │ ├── hammer │ │ │ │ │ └── hopper_hammer_effect.png │ │ │ │ │ ├── rapier │ │ │ │ │ └── hopper_rapier_effect.png │ │ │ │ │ ├── scythe │ │ │ │ │ └── hopper_scythe_effect.png │ │ │ │ │ ├── shortbow │ │ │ │ │ ├── hopper_bow_effect.png │ │ │ │ │ ├── hopper_bow_effect_1.png │ │ │ │ │ ├── hopper_bow_effect_2.png │ │ │ │ │ └── hopper_bow_effect_3.png │ │ │ │ │ ├── shovel │ │ │ │ │ └── hopper_shovel_effect.png │ │ │ │ │ ├── broadsword │ │ │ │ │ └── hopper_sword_effect.png │ │ │ │ │ ├── cleaver │ │ │ │ │ └── hopper_cleaver_effect.png │ │ │ │ │ ├── cutlass │ │ │ │ │ └── hopper_cutlass_effect.png │ │ │ │ │ ├── mattock │ │ │ │ │ └── hopper_mattock_effect.png │ │ │ │ │ ├── pickaxe │ │ │ │ │ └── hopper_pickaxe_effect.png │ │ │ │ │ ├── battleaxe │ │ │ │ │ └── hopper_battleaxe_effect.png │ │ │ │ │ ├── battlesign │ │ │ │ │ └── hopper_battlesign_effect.png │ │ │ │ │ ├── excavator │ │ │ │ │ └── hopper_excavator_effect.png │ │ │ │ │ ├── longsword │ │ │ │ │ └── hopper_longsword_effect.png │ │ │ │ │ └── lumberaxe │ │ │ │ │ └── hopper_lumberaxe_effect.png │ │ │ │ ├── manuals │ │ │ │ ├── compound.png │ │ │ │ ├── deeptankbuild1.png │ │ │ │ ├── deeptankbuild2.png │ │ │ │ ├── deeptankbuild3.png │ │ │ │ ├── deeptankbuild4.png │ │ │ │ ├── highovensmall.png │ │ │ │ ├── highgolembackground.png │ │ │ │ └── highovenbackground.png │ │ │ │ └── api.properties │ │ └── mcmod.info │ └── java │ │ └── toops │ │ └── tsteelworks │ │ ├── api │ │ ├── package-info.java │ │ ├── event │ │ │ ├── IRegistryListener.java │ │ │ └── IRegistry.java │ │ └── highoven │ │ │ ├── IMixAgentRegistry.java │ │ │ └── ISmeltingRegistry.java │ │ ├── lib │ │ ├── logic │ │ │ ├── INamable.java │ │ │ ├── IRedstonePowered.java │ │ │ ├── IFluidTankHolder.java │ │ │ ├── IMaster.java │ │ │ ├── IServantLogic.java │ │ │ └── IMasterLogic.java │ │ ├── util │ │ │ └── BookData.java │ │ ├── registry │ │ │ ├── TSClientRegistry.java │ │ │ ├── BasicRegistry.java │ │ │ └── AlloyInfo.java │ │ └── TSRepo.java │ │ ├── common │ │ ├── structure │ │ │ └── IStructure.java │ │ ├── plugins │ │ │ ├── tconstruct │ │ │ │ └── TCWorld.java │ │ │ ├── nei │ │ │ │ ├── NeiRegistrar.java │ │ │ │ ├── RecipeHandlerHighOven.java │ │ │ │ └── NEIPlugin.java │ │ │ ├── ModCompatPlugin.java │ │ │ ├── ICompatPlugin.java │ │ │ ├── waila │ │ │ │ └── WailaPlugin.java │ │ │ ├── mods │ │ │ │ ├── ThaumcraftPlugin.java │ │ │ │ └── FMPPlugin.java │ │ │ ├── PluginController.java │ │ │ ├── minetweaker3 │ │ │ │ └── handler │ │ │ │ │ ├── highoven │ │ │ │ │ └── HighOvenWrapper.java │ │ │ │ │ └── mix │ │ │ │ │ └── MixAgentHandler.java │ │ │ └── chisel │ │ │ │ └── ChiselPlugin.java │ │ ├── container │ │ │ ├── TSActiveSlot.java │ │ │ ├── DeepTankContainer.java │ │ │ └── HighOvenDuctContainer.java │ │ ├── items │ │ │ ├── blocks │ │ │ │ ├── TsSlabItemBlock.java │ │ │ │ ├── CementItemBlock.java │ │ │ │ ├── LimestoneItemBlock.java │ │ │ │ └── MachineItemBlock.java │ │ │ ├── TSArmorBasic.java │ │ │ └── TSManual.java │ │ ├── modifier │ │ │ └── TSActiveOmniMod.java │ │ ├── blocks │ │ │ ├── CementBlock.java │ │ │ ├── TSFluidBlock.java │ │ │ ├── DustStorageBlock.java │ │ │ ├── TSBaseBlock.java │ │ │ └── SteamTurbineBlock.java │ │ ├── core │ │ │ ├── TSCommonProxy.java │ │ │ ├── TSEventHandler.java │ │ │ └── TSLogger.java │ │ ├── entity │ │ │ └── projectile │ │ │ │ ├── EntityScorchedBrick.java │ │ │ │ └── EntityLimestoneBrick.java │ │ └── worldgen │ │ │ └── TSBaseWorldGenerator.java │ │ └── client │ │ ├── entity │ │ └── RenderHighGolem.java │ │ ├── core │ │ └── TSEventHandler.java │ │ ├── particle │ │ └── TSParticle.java │ │ └── pages │ │ └── TSPicturePage.java └── api │ └── java │ └── vazkii │ └── botania │ └── api │ ├── package-info.java │ ├── mana │ ├── TileSignature.java │ ├── IManaCollisionGhost.java │ ├── IIdentifiable.java │ ├── IClientManaHandler.java │ ├── ILaputaImmobile.java │ ├── ITinyPlanetExcempt.java │ ├── IThrottledPacket.java │ ├── IManaBlock.java │ ├── IManaTrigger.java │ ├── ICreativeManaProvider.java │ ├── IPoolOverlayProvider.java │ ├── IManaUsingItem.java │ ├── IManaSpreader.java │ ├── IKeyLocked.java │ ├── IManaReceiver.java │ ├── IManaDiscountArmor.java │ ├── IManaPool.java │ ├── IPingable.java │ ├── spark │ │ ├── SparkHelper.java │ │ ├── ISparkEntity.java │ │ └── ISparkAttachable.java │ ├── BurstProperties.java │ ├── ILens.java │ ├── IManaCollector.java │ ├── ILensEffect.java │ ├── ManaNetworkEvent.java │ └── IManaItem.java │ ├── recipe │ ├── IElvenItem.java │ ├── RecipeRuneAltar.java │ ├── IFlowerComponent.java │ ├── RecipeMiniFlower.java │ └── ElvenPortalUpdateEvent.java │ ├── wand │ ├── ICoordBoundItem.java │ ├── IWireframeAABBProvider.java │ ├── IWandHUD.java │ ├── ITileBound.java │ ├── IWandable.java │ └── IWandBindable.java │ ├── lexicon │ ├── KnowledgeType.java │ ├── ILexicon.java │ ├── ITwoNamedPage.java │ ├── IRecipeKeyProvider.java │ ├── ILexiconable.java │ ├── multiblock │ │ ├── IMultiblockRenderHook.java │ │ ├── component │ │ │ ├── FlowerComponent.java │ │ │ ├── ColorSwitchingComponent.java │ │ │ └── MultiblockComponent.java │ │ └── MultiblockSet.java │ ├── IAddonEntry.java │ └── LexiconRecipeMappings.java │ ├── internal │ ├── DummySubTile.java │ ├── ShaderCallback.java │ ├── DummyPage.java │ ├── DummyManaNetwork.java │ ├── VanillaPacketDispatcher.java │ ├── IManaBurst.java │ └── IGuiLexiconEntry.java │ ├── item │ ├── IDyablePool.java │ ├── ICosmeticBauble.java │ ├── IBurstViewerBauble.java │ ├── IGrassHornExcempt.java │ ├── IFlowerlessBiome.java │ ├── IPhantomInkable.java │ ├── IFlowerlessWorld.java │ ├── IAncientWillContainer.java │ ├── IPetalApothecary.java │ ├── IExtendedPlayerController.java │ ├── ISequentialBreaker.java │ ├── IManaDissolvable.java │ ├── IExtendedWireframeCoordinateListProvider.java │ ├── IPixieSpawner.java │ ├── IWireframeCoordinateListProvider.java │ ├── ICosmeticAttachable.java │ ├── IRelic.java │ ├── IExoflameHeatable.java │ └── ISortableTool.java │ ├── subtile │ ├── ISpecialFlower.java │ ├── ISubTileContainer.java │ └── signature │ │ ├── BasicSignature.java │ │ └── SubTileSignature.java │ ├── brew │ ├── IBrewItem.java │ └── IBrewContainer.java │ ├── corporea │ ├── ICorporeaAutoCompleteController.java │ ├── CorporeaRequestEvent.java │ └── ICorporeaInterceptor.java │ ├── wiki │ ├── IWikiProvider.java │ ├── WikiHooks.java │ └── SimpleWikiProvider.java │ └── boss │ └── IBotaniaBossWithShader.java ├── gradle.properties └── .gitignore /settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'TSteelworks' -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/liquid_cement_flow.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation": { 3 | "frametime": 3 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/liquid_steam_flow.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation": { 3 | "frametime": 3 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/liquid_limestone_flow.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation": { 3 | "frametime": 3 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/recolor_info.txt: -------------------------------------------------------------------------------- 1 | scorchedbrick -> limestone brick 2 | hue 47 3 | brightness 100 item, 90 block 4 | contrast 50 -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/logo.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/manuals/compound.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/manuals/compound.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/gui/duct.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/gui/duct.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/gui/icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/gui/icons.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/manuals/deeptankbuild1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/manuals/deeptankbuild1.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/manuals/deeptankbuild2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/manuals/deeptankbuild2.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/manuals/deeptankbuild3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/manuals/deeptankbuild3.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/manuals/deeptankbuild4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/manuals/deeptankbuild4.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/manuals/highovensmall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/manuals/highovensmall.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/armor/steel_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/armor/steel_1.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/armor/steel_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/armor/steel_2.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/gui/deeptank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/gui/deeptank.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/gui/highoven.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/gui/highoven.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/mob/highgolem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/mob/highgolem.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/drain_out.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/drain_out.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/duct_out.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/duct_out.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/limestone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/limestone.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/pipe_base.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/pipe_base.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/redpanel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/redpanel.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/gui/bookhighoven.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/gui/bookhighoven.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/mob/steel_golem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/mob/steel_golem.png -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/package-info.java: -------------------------------------------------------------------------------- 1 | @API(owner = "Botania", apiVersion = "57", provides = "BotaniaAPI") 2 | package vazkii.botania.api; 3 | import cpw.mods.fml.common.API; 4 | 5 | -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/manuals/highgolembackground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/manuals/highgolembackground.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/manuals/highovenbackground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/manuals/highovenbackground.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/drain_basin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/drain_basin.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/drain_side.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/drain_side.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/sugar_block.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/sugar_block.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/turbine_top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/turbine_top.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/charcoal_block.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/charcoal_block.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/highoven_side.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/highoven_side.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/limestonebrick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/limestonebrick.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/limestonepaver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/limestonepaver.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/limestoneroad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/limestoneroad.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/liquid_cement.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/liquid_cement.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/liquid_steam.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/liquid_steam.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/scorchedbrick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/scorchedbrick.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/scorchedcobble.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/scorchedcobble.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/scorchedpaver.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/scorchedpaver.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/scorchedroad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/scorchedroad.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/scorchedstone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/scorchedstone.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/turbine_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/turbine_back.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/turbine_output.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/turbine_output.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/turbine_side.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/turbine_side.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/gunpowder_block.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/gunpowder_block.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/highoven_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/highoven_active.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/limestonecobble.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/limestonecobble.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/limestonecreeper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/limestonecreeper.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/liquid_limestone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/liquid_limestone.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/redpanel_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/redpanel_active.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/scorchedcreeper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/scorchedcreeper.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/searedbrickmini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/searedbrickmini.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/items/armor/steel_boots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/items/armor/steel_boots.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/cement/cement_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/cement/cement_black.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/cement/cement_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/cement/cement_blue.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/cement/cement_brown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/cement/cement_brown.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/cement/cement_cyan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/cement/cement_cyan.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/cement/cement_gray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/cement/cement_gray.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/cement/cement_green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/cement/cement_green.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/cement/cement_lime.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/cement/cement_lime.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/cement/cement_pink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/cement/cement_pink.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/cement/cement_plain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/cement/cement_plain.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/cement/cement_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/cement/cement_red.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/cement/cement_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/cement/cement_white.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/deeptank_controller.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/deeptank_controller.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/highoven_inactive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/highoven_inactive.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/limestonebrickfancy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/limestonebrickfancy.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/limestonebrickmini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/limestonebrickmini.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/liquid_cement_flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/liquid_cement_flow.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/liquid_steam_flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/liquid_steam_flow.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/scorchedbrickfancy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/scorchedbrickfancy.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/scorchedbrickmini.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/scorchedbrickmini.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/scorchedbricksquare.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/scorchedbricksquare.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/items/armor/steel_helmet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/items/armor/steel_helmet.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/items/armor/steel_leggings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/items/armor/steel_leggings.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/items/tinkerbook_highoven.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/items/tinkerbook_highoven.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/cement/cement_magenta.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/cement/cement_magenta.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/cement/cement_orange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/cement/cement_orange.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/cement/cement_purple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/cement/cement_purple.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/cement/cement_yellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/cement/cement_yellow.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/limestonebrickcracked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/limestonebrickcracked.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/limestonebricksquare.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/limestonebricksquare.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/liquid_limestone_flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/liquid_limestone_flow.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/scorchedbrickcracked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/scorchedbrickcracked.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/items/armor/steel_chestplate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/items/armor/steel_chestplate.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/items/axe/hopper_axe_effect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/items/axe/hopper_axe_effect.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/items/materials/bucket_steam.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/items/materials/bucket_steam.png -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/api/package-info.java: -------------------------------------------------------------------------------- 1 | @API(owner = "TSteelworks", apiVersion = PluginFactory.apiVersion, provides = "TSteelworksAPI") package toops.tsteelworks.api; 2 | 3 | import cpw.mods.fml.common.API; -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/cement/cement_lightblue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/cement/cement_lightblue.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/cement/cement_lightgray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/blocks/cement/cement_lightgray.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/items/arrow/hopper_arrow_effect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/items/arrow/hopper_arrow_effect.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/items/materials/bucket_cement.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/items/materials/bucket_cement.png -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/lib/logic/INamable.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.lib.logic; 2 | 3 | public interface INamable { 4 | public String getCustomName(); 5 | 6 | public void setCustomName(String name); 7 | } 8 | -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/items/chisel/hopper_chisel_effect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/items/chisel/hopper_chisel_effect.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/items/dagger/hopper_dagger_effect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/items/dagger/hopper_dagger_effect.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/items/frypan/hopper_frypan_effect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/items/frypan/hopper_frypan_effect.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/items/hammer/hopper_hammer_effect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/items/hammer/hopper_hammer_effect.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/items/materials/bucket_limestone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/items/materials/bucket_limestone.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/items/rapier/hopper_rapier_effect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/items/rapier/hopper_rapier_effect.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/items/scythe/hopper_scythe_effect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/items/scythe/hopper_scythe_effect.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/items/shortbow/hopper_bow_effect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/items/shortbow/hopper_bow_effect.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/items/shovel/hopper_shovel_effect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/items/shovel/hopper_shovel_effect.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/items/broadsword/hopper_sword_effect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/items/broadsword/hopper_sword_effect.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/items/cleaver/hopper_cleaver_effect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/items/cleaver/hopper_cleaver_effect.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/items/cutlass/hopper_cutlass_effect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/items/cutlass/hopper_cutlass_effect.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/items/mattock/hopper_mattock_effect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/items/mattock/hopper_mattock_effect.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/items/pickaxe/hopper_pickaxe_effect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/items/pickaxe/hopper_pickaxe_effect.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/items/shortbow/hopper_bow_effect_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/items/shortbow/hopper_bow_effect_1.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/items/shortbow/hopper_bow_effect_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/items/shortbow/hopper_bow_effect_2.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/items/shortbow/hopper_bow_effect_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/items/shortbow/hopper_bow_effect_3.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/items/materials/material_limestonedust.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/items/materials/material_limestonedust.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/items/materials/material_scorchedbrick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/items/materials/material_scorchedbrick.png -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/lib/logic/IRedstonePowered.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.lib.logic; 2 | 3 | public interface IRedstonePowered { 4 | public boolean getRSmode(); 5 | 6 | public void setRSmode(boolean mode); 7 | 8 | } 9 | -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/items/battleaxe/hopper_battleaxe_effect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/items/battleaxe/hopper_battleaxe_effect.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/items/battlesign/hopper_battlesign_effect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/items/battlesign/hopper_battlesign_effect.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/items/excavator/hopper_excavator_effect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/items/excavator/hopper_excavator_effect.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/items/longsword/hopper_longsword_effect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/items/longsword/hopper_longsword_effect.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/items/lumberaxe/hopper_lumberaxe_effect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/items/lumberaxe/hopper_lumberaxe_effect.png -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/items/materials/material_limestonebrick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ephys/TinkersSteelworks/HEAD/src/main/resources/assets/tsteelworks/textures/items/materials/material_limestonebrick.png -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/lib/logic/IFluidTankHolder.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.lib.logic; 2 | 3 | import nf.fr.ephys.cookiecore.util.MultiFluidTank; 4 | 5 | public interface IFluidTankHolder { 6 | public MultiFluidTank getFluidTank(); 7 | } 8 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sun May 24 14:12:17 CEST 2015 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.1-all.zip 7 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/common/structure/IStructure.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.common.structure; 2 | 3 | public interface IStructure { 4 | public void validateStructure(final int x, final int y, final int z); 5 | 6 | public boolean isValid(); 7 | 8 | public int getNbLayers(); 9 | } 10 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/mana/TileSignature.java: -------------------------------------------------------------------------------- 1 | package vazkii.botania.api.mana; 2 | 3 | import net.minecraft.tileentity.TileEntity; 4 | 5 | public class TileSignature { 6 | 7 | public final TileEntity tile; 8 | public final boolean remoteWorld; 9 | 10 | public TileSignature(TileEntity tile, boolean remoteWorld) { 11 | this.tile = tile; 12 | this.remoteWorld = remoteWorld; 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/common/plugins/tconstruct/TCWorld.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.common.plugins.tconstruct; 2 | 3 | import net.minecraft.item.ItemStack; 4 | import net.minecraftforge.oredict.OreDictionary; 5 | import tconstruct.world.TinkerWorld; 6 | 7 | class TCWorld { 8 | public void preInit() { 9 | OreDictionary.registerOre("oreberryEssence", new ItemStack(TinkerWorld.oreBerries, 1, 5)); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/api/event/IRegistryListener.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.api.event; 2 | 3 | /** 4 | * Implements this if you wish to be alerted of event changes 5 | * 6 | * @param the object type registered by the registry 7 | * @param the data type associated with Key 8 | */ 9 | public interface IRegistryListener { 10 | void onRegistryChange(IRegistry.IRegistryEvent event); 11 | } -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | mod_name=TSteelworks 2 | package_group=nf.fr.ephys.tsteelworks 3 | 4 | mc_version=1.7.10 5 | forge_version=10.13.4.1448 6 | 7 | mod_version=1.1.2 8 | 9 | mantle_version = 0.3.1.jenkins176 10 | tcon_version = 1.8.2.build857 11 | WAILA_version = 1.5.11-RC2-NONEI 12 | ccl_version = 1.1.3.138 13 | ccc_version = 1.0.6.44 14 | nei_version = 1.0.4.107 15 | cookie_version = 1.4.0-10 16 | minetweaker_version=3.0.9B 17 | #chisel_version=2.3.7.4ac7f01 18 | 19 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/recipe/IElvenItem.java: -------------------------------------------------------------------------------- 1 | package vazkii.botania.api.recipe; 2 | 3 | import net.minecraft.item.ItemStack; 4 | 5 | /** 6 | * Any Item that implements this is classified as an "Elven Item", by which, 7 | * it'll not go through the alfheim portal. Any item that comes out of it 8 | * must implement this or it'll just go back in. 9 | */ 10 | public interface IElvenItem { 11 | 12 | public boolean isElvenItem(ItemStack stack); 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/api.properties: -------------------------------------------------------------------------------- 1 | # List of TSteelworks API implementations 2 | toops.tsteelworks.api.highoven.IFuelRegistry=toops.tsteelworks.lib.registry.HighOvenFuelRegistry 3 | toops.tsteelworks.api.highoven.ISmeltingRegistry=toops.tsteelworks.lib.registry.AdvancedSmelting 4 | toops.tsteelworks.api.highoven.IMixerRegistry=toops.tsteelworks.lib.registry.MixerRegistry 5 | toops.tsteelworks.api.highoven.IMixAgentRegistry=toops.tsteelworks.lib.registry.MixAgentRegistry -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/lib/logic/IMaster.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.lib.logic; 2 | 3 | import mantle.world.CoordTuple; 4 | 5 | public interface IMaster { 6 | /** 7 | * @return the coordinate of the master 8 | */ 9 | public CoordTuple getCoord(); 10 | 11 | /** 12 | * @return true = the master is valid / false = the master is not valid 13 | */ 14 | public boolean isValid(); 15 | 16 | public int getBlockMetadata(); 17 | 18 | public int getBlockId(); 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/common/plugins/nei/NeiRegistrar.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.common.plugins.nei; 2 | 3 | import codechicken.nei.api.API; 4 | import codechicken.nei.recipe.TemplateRecipeHandler; 5 | 6 | public class NeiRegistrar { 7 | public static void register() { 8 | //registerHandler(new RecipeHandlerHighOven()); 9 | } 10 | 11 | private static void registerHandler(TemplateRecipeHandler handler) { 12 | API.registerRecipeHandler(handler); 13 | API.registerUsageHandler(handler); 14 | } 15 | } -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/common/plugins/nei/RecipeHandlerHighOven.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.common.plugins.nei; 2 | 3 | import codechicken.nei.recipe.TemplateRecipeHandler; 4 | import net.minecraft.util.StatCollector; 5 | 6 | public class RecipeHandlerHighOven extends TemplateRecipeHandler { 7 | @Override 8 | public String getGuiTexture() { 9 | return null; 10 | } 11 | 12 | @Override 13 | public String getRecipeName() { 14 | return StatCollector.translateToLocal("crafters.HighOven"); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/common/plugins/nei/NEIPlugin.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.common.plugins.nei; 2 | 3 | import toops.tsteelworks.common.plugins.ModCompatPlugin; 4 | 5 | public class NEIPlugin extends ModCompatPlugin { 6 | @Override 7 | public String getModId() { 8 | return "NotEnoughItems"; 9 | } 10 | 11 | @Override 12 | public void init() { 13 | } 14 | 15 | @Override 16 | public void postInit() { 17 | NeiRegistrar.register(); 18 | } 19 | 20 | @Override 21 | public void preInit() { 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/common/plugins/ModCompatPlugin.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.common.plugins; 2 | 3 | import cpw.mods.fml.common.Loader; 4 | 5 | public abstract class ModCompatPlugin implements ICompatPlugin { 6 | /** 7 | * @return The Mod ID this plugin handles. 8 | */ 9 | public abstract String getModId(); 10 | 11 | @Override 12 | public String getPluginName() { 13 | return getModId(); 14 | } 15 | 16 | @Override 17 | public boolean mayLoad() { 18 | return Loader.isModLoaded(getModId()); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/wand/ICoordBoundItem.java: -------------------------------------------------------------------------------- 1 | package vazkii.botania.api.wand; 2 | 3 | import net.minecraft.item.ItemStack; 4 | import net.minecraft.util.ChunkCoordinates; 5 | import cpw.mods.fml.relauncher.Side; 6 | import cpw.mods.fml.relauncher.SideOnly; 7 | 8 | /** 9 | * The item equivalent of ITileBound, renders when the 10 | * item is in hand. 11 | * @see ITileBound 12 | */ 13 | public interface ICoordBoundItem { 14 | 15 | @SideOnly(Side.CLIENT) 16 | public ChunkCoordinates getBinding(ItemStack stack); 17 | 18 | } 19 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # ant stuff 2 | /bin/ 3 | /download/ 4 | 5 | # Remove OS generated garbage 6 | */.DS_Store 7 | .DS_Store 8 | .DS_Store? 9 | .Spotlight-V100 10 | .Trashes 11 | Icon? 12 | ehthumbs.db 13 | Thumbs.db 14 | 15 | # gradle stuff 16 | /.gradle 17 | /build/ 18 | /run/ 19 | 20 | # eclipse stuff 21 | /.settings 22 | /bin 23 | .project 24 | .classpath 25 | 26 | # idea stuff 27 | *.iml 28 | *.ipr 29 | *.iws 30 | 31 | # forge stuff 32 | eclipse/ 33 | CREDITS-fml.txt 34 | forge* 35 | Forge* 36 | MinecraftForge* 37 | README.txt 38 | LICENSE-fml.txt 39 | logs/ 40 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/lib/util/BookData.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.lib.util; 2 | 3 | import mantle.books.ManualReader; 4 | import org.w3c.dom.Document; 5 | 6 | /** 7 | * This class fixes the lack of 8 | */ 9 | public class BookData extends mantle.books.BookData { 10 | private BookData(Document xmlFile) { 11 | this.doc = xmlFile; 12 | } 13 | 14 | public static BookData newInstance(String xmlFile) { 15 | Document doc = ManualReader.readManual(xmlFile); 16 | 17 | if (doc == null) return null; 18 | 19 | return new BookData(doc); 20 | } 21 | } -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/lexicon/KnowledgeType.java: -------------------------------------------------------------------------------- 1 | package vazkii.botania.api.lexicon; 2 | 3 | import net.minecraft.util.EnumChatFormatting; 4 | 5 | public class KnowledgeType { 6 | 7 | public final String id; 8 | public final EnumChatFormatting color; 9 | public final boolean autoUnlock; 10 | 11 | public KnowledgeType(String id, EnumChatFormatting color, boolean autoUnlock) { 12 | this.id = id; 13 | this.color = color; 14 | this.autoUnlock = autoUnlock; 15 | } 16 | 17 | public String getUnlocalizedName() { 18 | return "botania.knowledge." + id; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/internal/DummySubTile.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Jan 24, 2014, 4:17:33 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.internal; 12 | 13 | import vazkii.botania.api.subtile.SubTileEntity; 14 | 15 | public class DummySubTile extends SubTileEntity { 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/common/plugins/ICompatPlugin.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.common.plugins; 2 | 3 | public interface ICompatPlugin { 4 | /** 5 | * @return The mod name of this plugin. 6 | */ 7 | String getPluginName(); 8 | 9 | /** 10 | * @return Whether this plugin should be loaded or not. 11 | */ 12 | boolean mayLoad(); 13 | 14 | /** 15 | * Called during TS PreInit 16 | */ 17 | void preInit(); 18 | 19 | /** 20 | * Called during TS Init 21 | */ 22 | void init(); 23 | 24 | /** 25 | * Called during TS PostInit 26 | */ 27 | void postInit(); 28 | } -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/lexicon/ILexicon.java: -------------------------------------------------------------------------------- 1 | package vazkii.botania.api.lexicon; 2 | 3 | import net.minecraft.item.ItemStack; 4 | 5 | /** 6 | * Basic interface for the Lexica Botania. 7 | */ 8 | public interface ILexicon { 9 | 10 | /** 11 | * Gets if a specific knowledge is unlocked. Check the knowledge types in 12 | * BotaniaAPI. 13 | */ 14 | public boolean isKnowledgeUnlocked(ItemStack stack, KnowledgeType knowledge); 15 | 16 | /** 17 | * Unlocks a specfic type of knowledge. 18 | */ 19 | public void unlockKnowledge(ItemStack stack, KnowledgeType knowledge); 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/resources/mcmod.info: -------------------------------------------------------------------------------- 1 | [{ 2 | "modid": "TSteelworks", 3 | "name": "Tinkers' Steelworks", 4 | "description": "A steel-based expansion for Tinkers' Construct. Now you're tinkering with steel!", 5 | "mcversion": "${mcversion}", 6 | "version" : "${version}", 7 | "url": "http://www.minecraftforum.net/topic/2227330-", 8 | "updateUrl": "", 9 | "authorList": ["Toops"], 10 | "credits": "SlimeKnights, EphysPotato, wisthy, riking, TheVikingWarrior", 11 | "logoFile": "assets/tsteelworks/textures/logo.png", 12 | "screenshots": [], 13 | "parent":"", 14 | "dependencies": ["MinecraftForge", "TConstruct", "CookieCore"] 15 | }] 16 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/internal/ShaderCallback.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Oct 29, 2014, 6:31:35 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.internal; 12 | 13 | /** 14 | * A Callback for when a shader is called. Used to define shader uniforms. 15 | */ 16 | public abstract class ShaderCallback { 17 | 18 | public abstract void call(int shader); 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/item/IDyablePool.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Jan 18, 2015, 12:20:44 AM (GMT)] 10 | */ 11 | package vazkii.botania.api.item; 12 | 13 | 14 | /** 15 | * Used to define a Mana Pool that can be dyed through floral powder. 16 | */ 17 | public interface IDyablePool { 18 | 19 | public int getColor(); 20 | 21 | public void setColor(int color); 22 | 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/common/container/TSActiveSlot.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.common.container; 2 | 3 | import net.minecraft.inventory.IInventory; 4 | import net.minecraft.inventory.Slot; 5 | 6 | public class TSActiveSlot extends Slot { 7 | protected boolean active; 8 | 9 | public TSActiveSlot(IInventory iinventory, int par2, int par3, int par4, boolean flag) { 10 | super(iinventory, par2, par3, par4); 11 | active = flag; 12 | } 13 | 14 | public boolean getActive() { 15 | return active; 16 | } 17 | 18 | public void setActive(boolean flag) { 19 | active = flag; 20 | } 21 | 22 | @Override 23 | public int getSlotStackLimit() { 24 | return 1; 25 | } 26 | } -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/liquid_cement.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation": { 3 | "frametime": 2, 4 | "frames": [ 5 | 0, 6 | 1, 7 | 2, 8 | 3, 9 | 4, 10 | 5, 11 | 6, 12 | 7, 13 | 8, 14 | 9, 15 | 10, 16 | 11, 17 | 12, 18 | 13, 19 | 14, 20 | 15, 21 | 16, 22 | 17, 23 | 18, 24 | 19, 25 | 18, 26 | 17, 27 | 16, 28 | 15, 29 | 14, 30 | 13, 31 | 12, 32 | 11, 33 | 10, 34 | 9, 35 | 8, 36 | 7, 37 | 6, 38 | 5, 39 | 4, 40 | 3, 41 | 2, 42 | 1 43 | ] 44 | } 45 | } -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/liquid_limestone.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation": { 3 | "frametime": 2, 4 | "frames": [ 5 | 0, 6 | 1, 7 | 2, 8 | 3, 9 | 4, 10 | 5, 11 | 6, 12 | 7, 13 | 8, 14 | 9, 15 | 10, 16 | 11, 17 | 12, 18 | 13, 19 | 14, 20 | 15, 21 | 16, 22 | 17, 23 | 18, 24 | 19, 25 | 18, 26 | 17, 27 | 16, 28 | 15, 29 | 14, 30 | 13, 31 | 12, 32 | 11, 33 | 10, 34 | 9, 35 | 8, 36 | 7, 37 | 6, 38 | 5, 39 | 4, 40 | 3, 41 | 2, 42 | 1 43 | ] 44 | } 45 | } -------------------------------------------------------------------------------- /src/main/resources/assets/tsteelworks/textures/blocks/liquid_steam.png.mcmeta: -------------------------------------------------------------------------------- 1 | { 2 | "animation": { 3 | "frametime": 2, 4 | "frames": [ 5 | 0, 6 | 1, 7 | 2, 8 | 3, 9 | 4, 10 | 5, 11 | 6, 12 | 7, 13 | 8, 14 | 9, 15 | 10, 16 | 11, 17 | 12, 18 | 13, 19 | 14, 20 | 15, 21 | 16, 22 | 17, 23 | 18, 24 | 19, 25 | 18, 26 | 17, 27 | 16, 28 | 15, 29 | 14, 30 | 13, 31 | 12, 32 | 11, 33 | 10, 34 | 9, 35 | 8, 36 | 7, 37 | 6, 38 | 5, 39 | 4, 40 | 3, 41 | 2, 42 | 1 43 | ] 44 | } 45 | } -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/mana/IManaCollisionGhost.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Mar 10, 2014, 7:49:19 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.mana; 12 | 13 | /** 14 | * Any TileEntity that implements this can be counted as a "ghost" block of 15 | * sorts, that won't call the collision code for the mana bursts. 16 | */ 17 | public interface IManaCollisionGhost { 18 | 19 | public boolean isGhost(); 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/item/ICosmeticBauble.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Feb 22, 2015, 2:02:02 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.item; 12 | 13 | /** 14 | * A bauble that counts as a cosmetic only item. These can be added to 15 | * other baubles to add the render to them. Other cosmetic baubles 16 | * can't be stacked on this. 17 | */ 18 | public interface ICosmeticBauble extends IBaubleRender { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/mana/IIdentifiable.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Jun 19, 2015, 10:05:24 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.mana; 12 | 13 | import java.util.UUID; 14 | 15 | /** 16 | * This interface marks a TileEntity that can be identified through 17 | * an UUID. This UUID must presist between sessions. 18 | */ 19 | public interface IIdentifiable { 20 | 21 | public UUID getIdentifier(); 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/mana/IClientManaHandler.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Jul 2, 2014, 5:26:02 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.mana; 12 | 13 | /** 14 | * A TileEntity that implements this will get it's recieveMana call 15 | * called on both client and server. If this is not implemented 16 | * the call will only occur on the server. 17 | */ 18 | public interface IClientManaHandler extends IManaReceiver { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/mana/ILaputaImmobile.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Jul 26, 2014, 9:51:58 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.mana; 12 | 13 | import net.minecraft.world.World; 14 | 15 | /** 16 | * A block that implements this has a flag for whether it can be moved by the Shard of Laputa. 17 | */ 18 | public interface ILaputaImmobile { 19 | 20 | public boolean canMove(World world, int x, int y, int z); 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/subtile/ISpecialFlower.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Jan 22, 2014, 7:12:28 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.subtile; 12 | 13 | /** 14 | * The special flowers in botania implement this. Used for cases where 15 | * BlockFlower would be checked against, but isn't convenient for 16 | * the special flowers with effects. For Azanor and Lycaon. 17 | */ 18 | public interface ISpecialFlower { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/common/container/DeepTankContainer.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.common.container; 2 | 3 | import net.minecraft.entity.player.EntityPlayer; 4 | import net.minecraft.entity.player.InventoryPlayer; 5 | import net.minecraft.inventory.Container; 6 | import toops.tsteelworks.common.blocks.logic.DeepTankLogic; 7 | 8 | public class DeepTankContainer extends Container { 9 | public DeepTankLogic logic; 10 | public InventoryPlayer playerInv; 11 | 12 | public DeepTankContainer(InventoryPlayer inventoryplayer, DeepTankLogic tank) { 13 | logic = tank; 14 | playerInv = inventoryplayer; 15 | } 16 | 17 | @Override 18 | public boolean canInteractWith(EntityPlayer p_75145_1_) { 19 | return true; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/item/IBurstViewerBauble.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Jan 24, 2015, 3:08:40 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.item; 12 | 13 | /** 14 | * Base Interface for the Manaseer Monocle and items of the sort. 15 | * Having a IBauble of this type equipped on the 0th slot (amulet) 16 | * will draw bursts without depth testing and to see sub tile radiuses. 17 | */ 18 | public interface IBurstViewerBauble { 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/item/IGrassHornExcempt.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Oct 29, 2014, 4:52:04 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.item; 12 | 13 | import net.minecraft.world.World; 14 | 15 | /** 16 | * A BlockBush can implement this to check if it can be broken 17 | * by a Horn/Drum of the Wild or not. 18 | */ 19 | public interface IGrassHornExcempt { 20 | 21 | public boolean canUproot(World world, int x, int y, int z); 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/lexicon/ITwoNamedPage.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Nov 3, 2014, 2:59:55 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.lexicon; 12 | 13 | /** 14 | * A LexiconPage that implements this has two unlocalized names 15 | * rather than one. (See brew pages) 16 | */ 17 | public interface ITwoNamedPage { 18 | 19 | public void setSecondUnlocalizedName(String name); 20 | 21 | public String getSecondUnlocalizedName(); 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/mana/ITinyPlanetExcempt.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Jul 22, 2014, 2:26:14 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.mana; 12 | 13 | import net.minecraft.item.ItemStack; 14 | 15 | /** 16 | * Any Item that implements ILensEffect and this will have 17 | * a check before being pulled by the Tiny Planet. 18 | */ 19 | public interface ITinyPlanetExcempt { 20 | 21 | public boolean shouldPull(ItemStack stack); 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/item/IFlowerlessBiome.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [? (GMT)] 10 | */ 11 | package vazkii.botania.api.item; 12 | import net.minecraft.world.World; 13 | /** 14 | * A BiomeGenBase that implements this will not have Botania flowers generated. 15 | */ 16 | public interface IFlowerlessBiome { 17 | /** 18 | * @return Should this world be allowed to generate flowers? 19 | */ 20 | public boolean canGenerateFlowers(World world, int x, int z); 21 | } -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/item/IPhantomInkable.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Mar 17, 2015, 4:57:44 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.item; 12 | 13 | import net.minecraft.item.ItemStack; 14 | 15 | /** 16 | * An Item that implements this can be crafted with Phantom Ink. 17 | */ 18 | public interface IPhantomInkable { 19 | 20 | public boolean hasPhantomInk(ItemStack stack); 21 | 22 | public void setPhantomInk(ItemStack stack, boolean ink); 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/item/IFlowerlessWorld.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [? (GMT)] 10 | */ 11 | package vazkii.botania.api.item; 12 | 13 | import net.minecraft.world.World; 14 | 15 | /** 16 | * A WorldProvider that implements this will not have Botania flowers generated. 17 | */ 18 | public interface IFlowerlessWorld { 19 | 20 | /** 21 | * @return Should this world be allowed to generate flowers? 22 | */ 23 | public boolean generateFlowers(World world); 24 | } 25 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/lexicon/IRecipeKeyProvider.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Mar 20, 2014, 6:08:48 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.lexicon; 12 | 13 | import net.minecraft.item.ItemStack; 14 | 15 | /** 16 | * Have an Item implement this so that the method used for mapping it into 17 | * the lexicon recipe mappings isn't the typical id:meta key. 18 | */ 19 | public interface IRecipeKeyProvider { 20 | 21 | public String getKey(ItemStack stack); 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/api/event/IRegistry.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.api.event; 2 | 3 | import java.util.Map; 4 | 5 | public interface IRegistry extends Iterable> { 6 | boolean addEventListener(IRegistryListener e); 7 | 8 | boolean removeEventListener(IRegistryListener e); 9 | 10 | interface IRegistryEvent { 11 | /** 12 | * @return the event type: ADD if an item has been registered or DELETE if it has been removed 13 | */ 14 | TYPE getType(); 15 | 16 | /** 17 | * @return the deleted or added entry 18 | */ 19 | Key getItem(); 20 | 21 | /** 22 | * @return the deleted or added entry informations 23 | */ 24 | Value getData(); 25 | 26 | enum TYPE {ADD, DELETE} 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/mana/IThrottledPacket.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Apr 12, 2015, 3:08:09 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.mana; 12 | 13 | /** 14 | * A TileEntity that will only send a few packets rather than one per every entity collision. 15 | * markDispatchable marks that this TE needs to send a packet. Further handling is to be done 16 | * in the TE itself. 17 | */ 18 | public interface IThrottledPacket { 19 | 20 | public void markDispatchable(); 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/mana/IManaBlock.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Jan 22, 2014, 4:59:05 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.mana; 12 | 13 | /** 14 | * A TileEntity that implements this is considered a Mana Block. 15 | * Just being a Mana Block doesn't mean much, look at the other IMana 16 | * interfaces. 17 | */ 18 | public interface IManaBlock { 19 | 20 | /** 21 | * Gets the amount of mana currently in this block. 22 | */ 23 | public int getCurrentMana(); 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/item/IAncientWillContainer.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Jan 30, 2015, 11:24:54 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.item; 12 | 13 | import net.minecraft.item.ItemStack; 14 | 15 | /** 16 | * An item that implements this can have Ancient Wills 17 | * crafted onto it. 18 | */ 19 | public interface IAncientWillContainer { 20 | 21 | public void addAncientWill(ItemStack stack, int will); 22 | 23 | public boolean hasAncientWill(ItemStack stack, int will); 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/mana/IManaTrigger.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [May 16, 2014, 7:52:53 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.mana; 12 | 13 | import net.minecraft.world.World; 14 | import vazkii.botania.api.internal.IManaBurst; 15 | 16 | /** 17 | * Have a block implement this class to make it do something when a mana burst collides with it. 18 | */ 19 | public interface IManaTrigger { 20 | 21 | public void onBurstCollision(IManaBurst burst, World world, int x, int y, int z); 22 | 23 | } 24 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/recipe/RecipeRuneAltar.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Feb 5, 2014, 1:41:14 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.recipe; 12 | 13 | import net.minecraft.item.ItemStack; 14 | 15 | public class RecipeRuneAltar extends RecipePetals { 16 | 17 | int mana; 18 | 19 | public RecipeRuneAltar(ItemStack output, int mana, Object... inputs) { 20 | super(output, inputs); 21 | this.mana = mana; 22 | } 23 | 24 | public int getManaUsage() { 25 | return mana; 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/common/plugins/waila/WailaPlugin.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.common.plugins.waila; 2 | 3 | import cpw.mods.fml.common.event.FMLInterModComms; 4 | import toops.tsteelworks.common.core.TSLogger; 5 | import toops.tsteelworks.common.plugins.ModCompatPlugin; 6 | 7 | public class WailaPlugin extends ModCompatPlugin { 8 | @Override 9 | public String getModId() { 10 | return "Waila"; 11 | } 12 | 13 | @Override 14 | public void preInit() { 15 | } 16 | 17 | @Override 18 | public void init() { 19 | TSLogger.info("Waila detected. Registering TSteelworks with Waila registry."); 20 | FMLInterModComms.sendMessage("Waila", "register", "toops.tsteelworks.common.plugins.waila.HighOvenTankDataProvider.register"); 21 | } 22 | 23 | @Override 24 | public void postInit() { 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/mana/ICreativeManaProvider.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [May 25, 2014, 7:34:00 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.mana; 12 | 13 | import net.minecraft.item.ItemStack; 14 | 15 | /** 16 | * Have an item implement this to flag it as an infinite 17 | * mana source for the purposes of the HUD rendered when 18 | * an IManaUserItem implementing item is present. 19 | */ 20 | public interface ICreativeManaProvider { 21 | 22 | public boolean isCreative(ItemStack stack); 23 | 24 | } 25 | 26 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/wand/IWireframeAABBProvider.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Apr 19, 2014, 7:23:59 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.wand; 12 | 13 | import net.minecraft.util.AxisAlignedBB; 14 | import net.minecraft.world.World; 15 | 16 | /** 17 | * A block that implements this can provide a custom AABB 18 | * for rendering the wireframe with ITileBound. 19 | */ 20 | public interface IWireframeAABBProvider { 21 | 22 | public AxisAlignedBB getWireframeAABB(World world, int x, int y, int z); 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/brew/IBrewItem.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Nov 1, 2014, 9:20:33 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.brew; 12 | 13 | import net.minecraft.item.ItemStack; 14 | 15 | /** 16 | * An Item that implements this is a Brew item, by which it contains 17 | * a brew. This is only used in vanilla to prevent the brew item 18 | * from going back into the brewery but other mods might use it for whatever. 19 | */ 20 | public interface IBrewItem { 21 | 22 | public Brew getBrew(ItemStack brew); 23 | 24 | } 25 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/recipe/IFlowerComponent.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Feb 15, 2014, 2:36:35 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.recipe; 12 | 13 | import net.minecraft.inventory.IInventory; 14 | import net.minecraft.item.ItemStack; 15 | 16 | /** 17 | * Have an Item implement this to allow it to be used in the Petal Apothecary. 18 | */ 19 | public interface IFlowerComponent { 20 | 21 | public boolean canFit(ItemStack stack, IInventory apothecary); 22 | 23 | public int getParticleColor(ItemStack stack); 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/lib/registry/TSClientRegistry.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.lib.registry; 2 | 3 | import net.minecraft.item.ItemStack; 4 | 5 | import java.util.HashMap; 6 | import java.util.Map; 7 | 8 | public class TSClientRegistry { 9 | public static Map recipeIcons = new HashMap<>(); 10 | 11 | public static ItemStack[] getRecipeIcons(String name) { 12 | return recipeIcons.get(name); 13 | } 14 | 15 | public static void registerManualHighOvenRecipe(String name, ItemStack output, ItemStack input, ItemStack oxyder, ItemStack reducer, ItemStack purifier) { 16 | final ItemStack[] recipe = new ItemStack[5]; 17 | recipe[0] = output; 18 | recipe[1] = input; 19 | recipe[2] = oxyder; 20 | recipe[3] = reducer; 21 | recipe[4] = purifier; 22 | 23 | recipeIcons.put(name, recipe); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/item/IPetalApothecary.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Aug 30, 2014, 4:22:15 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.item; 12 | 13 | /** 14 | * Base Interface for the Petal Apothecary block. Can 15 | * be safely casted to TileEntity. 16 | */ 17 | public interface IPetalApothecary { 18 | 19 | /** 20 | * Sets if the the apothecary has water or not. 21 | */ 22 | public void setWater(boolean water); 23 | 24 | /** 25 | * Does the apothecary have water in it? 26 | */ 27 | public boolean hasWater(); 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/mana/IPoolOverlayProvider.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Jul 2, 2014, 6:36:54 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.mana; 12 | 13 | import net.minecraft.util.IIcon; 14 | import net.minecraft.world.World; 15 | 16 | /** 17 | * A block that implements this can provide an IIcon (block icons only) 18 | * to be used as an overlay for the mana pool, similarly to the mana void 19 | * and catalysts. 20 | */ 21 | public interface IPoolOverlayProvider { 22 | 23 | public IIcon getIcon(World world, int x, int y, int z); 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/wand/IWandHUD.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Feb 5, 2014, 1:34:44 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.wand; 12 | 13 | import net.minecraft.client.Minecraft; 14 | import net.minecraft.client.gui.ScaledResolution; 15 | import net.minecraft.world.World; 16 | 17 | /** 18 | * Any block that implements this has a HUD rendered when being hovered 19 | * with a Wand of the Forest. 20 | */ 21 | public interface IWandHUD { 22 | 23 | public void renderHUD(Minecraft mc, ScaledResolution res, World world, int x, int y, int z); 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/client/entity/RenderHighGolem.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.client.entity; 2 | 3 | import cpw.mods.fml.relauncher.Side; 4 | import cpw.mods.fml.relauncher.SideOnly; 5 | import net.minecraft.client.renderer.entity.RenderLiving; 6 | import net.minecraft.entity.Entity; 7 | import net.minecraft.util.ResourceLocation; 8 | 9 | @SideOnly(Side.CLIENT) 10 | public class RenderHighGolem extends RenderLiving { 11 | private static final ResourceLocation textures = new ResourceLocation("tsteelworks", "textures/mob/highgolem.png"); 12 | private final ModelHighGolem model; 13 | 14 | public RenderHighGolem() { 15 | super(new ModelHighGolem(), 0.5F); 16 | model = (ModelHighGolem) super.mainModel; 17 | setRenderPassModel(model); 18 | } 19 | 20 | @Override 21 | protected ResourceLocation getEntityTexture(Entity entity) { 22 | return textures; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/mana/IManaUsingItem.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [May 25, 2014, 7:32:10 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.mana; 12 | 13 | import net.minecraft.item.ItemStack; 14 | 15 | /** 16 | * Any item that implements this interface is an item that would use mana 17 | * from the player's inventory. If there's any items in the inventory or 18 | * equipped in either the baubles or armor inventories that implement 19 | * this interface, a mana bar will be rendered. 20 | */ 21 | public interface IManaUsingItem { 22 | 23 | public boolean usesMana(ItemStack stack); 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/corporea/ICorporeaAutoCompleteController.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [June 8, 2015, 1:04:05 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.corporea; 12 | 13 | import cpw.mods.fml.relauncher.Side; 14 | import cpw.mods.fml.relauncher.SideOnly; 15 | 16 | /** 17 | * An interface for systems which may control if the item auto complete system should be active 18 | */ 19 | public interface ICorporeaAutoCompleteController { 20 | 21 | /** 22 | * Return true if auto completion should be enabled. 23 | */ 24 | @SideOnly(Side.CLIENT) 25 | public boolean shouldAutoComplete(); 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/subtile/ISubTileContainer.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Aug 26, 2014, 5:42:16 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.subtile; 12 | 13 | /** 14 | * A TileEntity that implements this contains a SubTileEntity. 15 | */ 16 | public interface ISubTileContainer { 17 | 18 | /** 19 | * Gets the SubTile in this block. Generally shouldn't return null, but in that 20 | * case use the fallback DummySubTile. 21 | */ 22 | public SubTileEntity getSubTile(); 23 | 24 | /** 25 | * Sets the SubTile on this block from it's name. 26 | */ 27 | public void setSubTile(String name); 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/lib/logic/IServantLogic.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.lib.logic; 2 | 3 | import net.minecraft.world.World; 4 | 5 | public interface IServantLogic { 6 | boolean hasMaster(); 7 | 8 | /** 9 | * The block should already have a valid master 10 | */ 11 | void notifyMasterOfChange(); 12 | 13 | /** 14 | * Checks if this block can be tied to this master 15 | * 16 | * @param master The master to be tied to. 17 | * @param world The world the master is in. 18 | * @return whether the servant can be tied to this master 19 | */ 20 | boolean setPotentialMaster(IMasterLogic master, World world); 21 | 22 | /** 23 | * Used to verify that this is the block's master 24 | * 25 | * @param master The master to verify. 26 | * @param world The world the master is in. 27 | * @return is this block tied to this master ? 28 | */ 29 | boolean verifyMaster(IMasterLogic master, World world); 30 | } 31 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/item/IExtendedPlayerController.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Aug 6, 2014, 6:02:29 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.item; 12 | 13 | /** 14 | * An interface that defines an instance of PlayerControllerMP with 15 | * the ability to modify reach. See vazkii.botania.client.core.handler.BotaniaPlayerController 16 | */ 17 | public interface IExtendedPlayerController { 18 | 19 | /** 20 | * Sets the extra reach the player should have. 21 | */ 22 | public void setReachDistanceExtension(float f); 23 | 24 | /** 25 | * Gets the current reach extension. 26 | */ 27 | public float getReachDistanceExtension(); 28 | } 29 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/lexicon/ILexiconable.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Jan 20, 2014, 7:05:44 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.lexicon; 12 | 13 | import net.minecraft.entity.player.EntityPlayer; 14 | import net.minecraft.item.ItemStack; 15 | import net.minecraft.world.World; 16 | 17 | /** 18 | * Any block that implements this can be right clicked with 19 | * a Lexica Botania to open a entry page. 20 | */ 21 | public interface ILexiconable { 22 | 23 | /** 24 | * Gets the lexicon entry to open at this location. null works too. 25 | */ 26 | public LexiconEntry getEntry(World world, int x, int y, int z, EntityPlayer player, ItemStack lexicon); 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/wand/ITileBound.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Mar 24, 2014, 6:47:53 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.wand; 12 | 13 | import net.minecraft.util.ChunkCoordinates; 14 | import cpw.mods.fml.relauncher.Side; 15 | import cpw.mods.fml.relauncher.SideOnly; 16 | 17 | /** 18 | * Any TileEntity that implements this is technically bound 19 | * to something, and the binding will be shown when hovering 20 | * over with a Wand of the Forest. 21 | */ 22 | public interface ITileBound { 23 | 24 | /** 25 | * Gets where this block is bound to, can return null. 26 | */ 27 | @SideOnly(Side.CLIENT) 28 | public ChunkCoordinates getBinding(); 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/common/items/blocks/TsSlabItemBlock.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.common.items.blocks; 2 | 3 | import net.minecraft.block.Block; 4 | import net.minecraft.item.ItemBlock; 5 | import net.minecraft.item.ItemStack; 6 | import net.minecraft.util.MathHelper; 7 | 8 | public class TsSlabItemBlock extends ItemBlock { 9 | private final String baseName; 10 | private final String[] blockNames; 11 | 12 | public TsSlabItemBlock(Block block, String baseName, String[] blockNames) { 13 | super(block); 14 | 15 | setMaxDamage(0); 16 | setHasSubtypes(true); 17 | 18 | this.baseName = baseName; 19 | this.blockNames = blockNames; 20 | } 21 | 22 | @Override 23 | public int getMetadata(int meta) { 24 | return meta; 25 | } 26 | 27 | @Override 28 | public String getUnlocalizedName(ItemStack itemstack) { 29 | int meta = MathHelper.clamp_int(itemstack.getItemDamage(), 0, blockNames.length - 1); 30 | 31 | return baseName + "." + blockNames[meta]; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/item/ISequentialBreaker.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Mar 30, 2015, 2:46:05 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.item; 12 | 13 | import net.minecraft.entity.player.EntityPlayer; 14 | import net.minecraft.item.ItemStack; 15 | 16 | /** 17 | * An item that implements this can break multiple blocks at once 18 | * with a Ring of Loki. Usage of this interface requires an implementation 19 | * (see ItemTerraPick). 20 | */ 21 | public interface ISequentialBreaker { 22 | 23 | public void breakOtherBlock(EntityPlayer player, ItemStack stack, int x, int y, int z, int originX, int originY, int originZ, int side); 24 | 25 | public boolean disposeOfTrashBlocks(ItemStack stack); 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/lib/logic/IMasterLogic.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.lib.logic; 2 | 3 | import mantle.world.CoordTuple; 4 | import toops.tsteelworks.common.structure.IStructure; 5 | 6 | public interface IMasterLogic { 7 | /** 8 | * Get coordinates of the master 9 | * 10 | * @return the coordinate of the master 11 | */ 12 | CoordTuple getCoord(); 13 | 14 | /** 15 | * Called when servants change their state 16 | * 17 | * @param servant The servant which changed state. 18 | * @param x Servant X 19 | * @param y Servant Y 20 | * @param z Servant Z 21 | */ 22 | void notifyChange(IServantLogic servant, int x, int y, int z); 23 | 24 | /** 25 | * Determine if a structure is valid 26 | * 27 | * @return true = the master is valid / false = the master is not valid 28 | */ 29 | boolean isValid(); 30 | 31 | /** 32 | * Check valid placement. 33 | */ 34 | void checkValidPlacement(); 35 | 36 | void onStructureChange(IStructure structure); 37 | 38 | IStructure getStructure(); 39 | } 40 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/wand/IWandable.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Jan 22, 2014, 5:12:53 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.wand; 12 | 13 | import net.minecraft.entity.player.EntityPlayer; 14 | import net.minecraft.item.ItemStack; 15 | import net.minecraft.world.World; 16 | 17 | /** 18 | * Any block that implements this can be used with the Wand for the Forest for some purpose. 19 | */ 20 | public interface IWandable { 21 | 22 | /** 23 | * Called when the block is used by a wand. Note that the player parameter can be null 24 | * if this function is called from a dispenser. 25 | */ 26 | public boolean onUsedByWand(EntityPlayer player, ItemStack stack, World world, int x, int y, int z, int side); 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/client/core/TSEventHandler.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.client.core; 2 | 3 | import cpw.mods.fml.common.eventhandler.SubscribeEvent; 4 | import net.minecraftforge.client.event.TextureStitchEvent; 5 | import toops.tsteelworks.common.core.TSContent; 6 | import toops.tsteelworks.lib.ModsData; 7 | 8 | public class TSEventHandler { 9 | @SubscribeEvent 10 | public void reloadResources(TextureStitchEvent.Post event) { 11 | if (TSContent.steamFluid != null) 12 | TSContent.steamFluid.setIcons(ModsData.Fluids.steamBlock.getIcon(0, 0), ModsData.Fluids.steamBlock.getIcon(2, 0)); 13 | 14 | if (TSContent.moltenLimestoneFluid != null) 15 | TSContent.moltenLimestoneFluid.setIcons(ModsData.Fluids.moltenLimestone.getIcon(0, 0), ModsData.Fluids.moltenLimestone.getIcon(2, 0)); 16 | 17 | if (TSContent.liquidCementFluid != null) 18 | TSContent.liquidCementFluid.setIcons(ModsData.Fluids.liquidCement.getIcon(0, 0), ModsData.Fluids.liquidCement.getIcon(2, 0)); 19 | 20 | TSClientProxy.readManuals(); 21 | } 22 | } -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/mana/IManaSpreader.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Apr 18, 2015, 7:30:00 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.mana; 12 | 13 | 14 | /** 15 | * Any TileEntity that implements this is considered a Mana Spreader, 16 | * by which can fire mana bursts as a spreader. 17 | * 18 | */ 19 | public interface IManaSpreader extends IManaBlock, IPingable { 20 | 21 | public float getRotationX(); 22 | 23 | public float getRotationY(); 24 | 25 | public void setCanShoot(boolean canShoot); 26 | 27 | public int getBurstParticleTick(); 28 | 29 | public void setBurstParticleTick(int i); 30 | 31 | public int getLastBurstDeathTick(); 32 | 33 | public void setLastBurstDeathTick(int ticksExisted); 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/item/IManaDissolvable.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Jan 18, 2015, 12:10:00 AM (GMT)] 10 | */ 11 | package vazkii.botania.api.item; 12 | 13 | import net.minecraft.entity.item.EntityItem; 14 | import net.minecraft.item.ItemStack; 15 | import vazkii.botania.api.mana.IManaPool; 16 | 17 | /** 18 | * An item that implements this will have a function called when its standing atop 19 | * a mana pool. 20 | */ 21 | public interface IManaDissolvable { 22 | 23 | /** 24 | * Called for every tick the item is on a mana pool. If the stack has stack 25 | * size 0 the item is killed. This is called in both the server and client. 26 | */ 27 | public void onDissolveTick(IManaPool pool, ItemStack stack, EntityItem item); 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/lexicon/multiblock/IMultiblockRenderHook.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Jun 27, 2015, 7:48:47 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.lexicon.multiblock; 12 | 13 | import java.util.HashMap; 14 | import java.util.Map; 15 | 16 | import net.minecraft.block.Block; 17 | import net.minecraft.client.renderer.RenderBlocks; 18 | import net.minecraft.world.IBlockAccess; 19 | 20 | /** 21 | * A hook for rendering blocks in the multiblock display. 22 | */ 23 | public interface IMultiblockRenderHook { 24 | 25 | public static Map renderHooks = new HashMap(); 26 | 27 | public void renderBlockForMultiblock(IBlockAccess world, Multiblock mb, Block block, int meta, RenderBlocks renderBlocks); 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/common/modifier/TSActiveOmniMod.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.common.modifier; 2 | 3 | import net.minecraft.entity.Entity; 4 | import net.minecraft.entity.EntityLivingBase; 5 | import net.minecraft.entity.player.EntityPlayer; 6 | import net.minecraft.item.ItemStack; 7 | import net.minecraft.nbt.NBTTagCompound; 8 | import net.minecraft.world.World; 9 | import nf.fr.ephys.cookiecore.helpers.EntityHelper; 10 | import tconstruct.library.ActiveToolMod; 11 | import tconstruct.library.tools.ToolCore; 12 | 13 | public class TSActiveOmniMod extends ActiveToolMod { 14 | @Override 15 | public void updateTool(ToolCore tool, ItemStack stack, World world, Entity entity) { 16 | if (!stack.hasTagCompound() || !(entity instanceof EntityPlayer) || ((EntityPlayer) entity).getHeldItem() != stack) 17 | return; 18 | 19 | NBTTagCompound tags = stack.getTagCompound().getCompoundTag("InfiTool"); 20 | 21 | if (tags.hasKey("Vacuous")) 22 | EntityHelper.drawItemsToEntity((EntityLivingBase) entity, tags.getInteger("Vacuous") + 1); 23 | } 24 | } -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/internal/DummyPage.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Jan 14, 2014, 6:41:23 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.internal; 12 | 13 | import vazkii.botania.api.lexicon.LexiconPage; 14 | import cpw.mods.fml.relauncher.Side; 15 | import cpw.mods.fml.relauncher.SideOnly; 16 | 17 | /** 18 | * A dummy page. It does absolutely nothing and is only 19 | * existant to make sure everything goes right even if 20 | * Botania isn't loaded. 21 | */ 22 | public class DummyPage extends LexiconPage { 23 | 24 | public DummyPage(String unlocalizedName) { 25 | super(unlocalizedName); 26 | } 27 | 28 | @Override 29 | @SideOnly(Side.CLIENT) 30 | public void renderScreen(IGuiLexiconEntry gui, int x, int y) { 31 | // NO-OP 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/item/IExtendedWireframeCoordinateListProvider.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Apr 30, 2015, 1:43:17 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.item; 12 | 13 | import net.minecraft.entity.player.EntityPlayer; 14 | import net.minecraft.item.ItemStack; 15 | import net.minecraft.util.ChunkCoordinates; 16 | 17 | /** 18 | * An extension of IWireframeCoordinateListProvider that allows for 19 | * rendering a single thicker wireframe. 20 | */ 21 | public interface IExtendedWireframeCoordinateListProvider extends IWireframeCoordinateListProvider { 22 | 23 | /** 24 | * Gets the source wireframe to draw, this one will be drawn thicker. 25 | */ 26 | public ChunkCoordinates getSourceWireframe(EntityPlayer player, ItemStack stack); 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/item/IPixieSpawner.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Aug 6, 2014, 6:06:27 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.item; 12 | 13 | import net.minecraft.item.ItemStack; 14 | 15 | /** 16 | * Any item that implements this allows for pixies to be spawned when the player takes damage when...
17 | * - Case the item is armor, having it equipped.
18 | * - Case the item is a bauble, having it worn.
19 | * - On any other case, having the item being the current held item. 20 | */ 21 | public interface IPixieSpawner { 22 | 23 | /** 24 | * The chance this item adds for pixies to be spawned. From 0.0 to 1.0. All values 25 | * are put together when calculating. 26 | */ 27 | public float getPixieChance(ItemStack stack); 28 | 29 | } -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/mana/IKeyLocked.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Jul 11, 2014, 4:29:32 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.mana; 12 | 13 | /** 14 | * A TileEntity that implements this interface has an IO key lock. This 15 | * interface defines an input and output key.

16 | * 17 | * A Spreader can only shoot mana into a IKeyLocked interfaced TE if the Input 18 | * key of the TE is equal to the Output key of the Spreader.

19 | * 20 | * A Spreader can only pull mana from a IKeyLocked interfaced IManaPool TE if the 21 | * Output key of the IManaPool is equal to the Input key of the Spreader. 22 | */ 23 | public interface IKeyLocked { 24 | 25 | public String getInputKey(); 26 | 27 | public String getOutputKey(); 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/mana/IManaReceiver.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Jan 22, 2014, 4:55:00 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.mana; 12 | 13 | /** 14 | * Any TileEntity that implements this can receive mana from mana bursts. 15 | */ 16 | public interface IManaReceiver extends IManaBlock { 17 | 18 | /** 19 | * Is this Mana Receiver is full? Being full means no mana bursts will be sent. 20 | */ 21 | public boolean isFull(); 22 | 23 | /** 24 | * Called when this receiver receives mana. 25 | */ 26 | public void recieveMana(int mana); 27 | 28 | /** 29 | * Can this tile receive mana from bursts? Generally set to false for 30 | * implementations of IManaCollector. 31 | */ 32 | public boolean canRecieveManaFromBursts(); 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/lexicon/IAddonEntry.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Jun 8, 2014, 7:02:48 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.lexicon; 12 | 13 | /** 14 | * Have a LexiconEntry implement this to signify it's an "Addon entry", as 15 | * in, one provided by an Addon. This allows it to draw a subtitle of 16 | * sorts, to prevent the [Mod tag here] nonsense that happened with thaumcraft 17 | * addons. It can also be used for other purposes, such as stating an 18 | * entry is WIP. 19 | */ 20 | public interface IAddonEntry { 21 | 22 | /** 23 | * Returns the unlocalized subtitle to show below the title. Here you'd 24 | * return something like "(This Entry is provided by the Botanic Tinkerer addon)". 25 | */ 26 | public String getSubtitle(); 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/client/particle/TSParticle.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.client.particle; 2 | 3 | import net.minecraft.client.particle.EntityBreakingFX; 4 | import net.minecraft.client.particle.EntityFX; 5 | import net.minecraft.world.World; 6 | import nf.fr.ephys.cookiecore.client.IParticleHandler; 7 | import nf.fr.ephys.cookiecore.client.ParticleRegistry; 8 | import toops.tsteelworks.common.core.TSContent; 9 | 10 | public class TSParticle implements IParticleHandler { 11 | public final int SCORCHED_BRICK_ID = ParticleRegistry.registerParticleHandler(this); 12 | public final int LIMESTONE_BRICK_ID = ParticleRegistry.registerParticleHandler(this); 13 | 14 | @Override 15 | public EntityFX getParticle(int id, World world, double x, double y, double z, double v4, double v5, double v6) { 16 | return new EntityBreakingFX(world, x, y, z, TSContent.materialsTS, id == SCORCHED_BRICK_ID ? 0 : 1); 17 | } 18 | 19 | @Override 20 | public double getRenderDistance(int id) { 21 | return 16; 22 | } 23 | 24 | @Override 25 | public int getMaxParticleSetting(int id) { 26 | return 3; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/item/IWireframeCoordinateListProvider.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Mar 29, 2015, 11:30:41 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.item; 12 | 13 | import java.util.List; 14 | 15 | import net.minecraft.entity.player.EntityPlayer; 16 | import net.minecraft.item.ItemStack; 17 | import net.minecraft.util.ChunkCoordinates; 18 | 19 | /** 20 | * An item that implements this will allow for various wireframes to be drawn 21 | * around the player. This will be called while the item is in the inventory, 22 | * armor slot or bauble slots. 23 | */ 24 | public interface IWireframeCoordinateListProvider { 25 | 26 | /** 27 | * Returns a list of ChunkCoordinates for the wireframes to draw. 28 | * Can be null. 29 | */ 30 | public List getWireframesToDraw(EntityPlayer player, ItemStack stack); 31 | 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/common/plugins/mods/ThaumcraftPlugin.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.common.plugins.mods; 2 | 3 | import net.minecraft.item.ItemStack; 4 | import nf.fr.ephys.cookiecore.helpers.DebugHelper; 5 | import nf.fr.ephys.cookiecore.helpers.RegistryHelper; 6 | import toops.tsteelworks.api.highoven.IFuelRegistry; 7 | import toops.tsteelworks.common.core.TSLogger; 8 | import toops.tsteelworks.common.plugins.ModCompatPlugin; 9 | 10 | public class ThaumcraftPlugin extends ModCompatPlugin { 11 | @Override 12 | public String getModId() { 13 | return "Thaumcraft"; 14 | } 15 | 16 | @Override 17 | public void preInit() { 18 | } 19 | 20 | @Override 21 | public void init() { 22 | ItemStack[] alumentum = RegistryHelper.getItemStacks("Thaumcraft:ItemResource@0"); 23 | 24 | if (alumentum == null || alumentum.length == 0) { 25 | if (DebugHelper.debug) throw new RuntimeException("Could not load Alumentum"); 26 | 27 | TSLogger.warning("Could not load Alumentum"); 28 | } else { 29 | IFuelRegistry.INSTANCE.addFuel(alumentum[0], 560, 4); 30 | } 31 | } 32 | 33 | @Override 34 | public void postInit() { 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/brew/IBrewContainer.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Nov 1, 2014, 6:26:40 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.brew; 12 | 13 | import net.minecraft.item.ItemStack; 14 | 15 | /** 16 | * An Item that implements this counts as a Brew Container, by which 17 | * it can be used a center item for brew recipes and can contain 18 | * a brew. 19 | */ 20 | public interface IBrewContainer { 21 | 22 | /** 23 | * Returs an ItemStack that should be an item that has the brew 24 | * passed in. 25 | */ 26 | public ItemStack getItemForBrew(Brew brew, ItemStack stack); 27 | 28 | /** 29 | * Gets the cost to add this brew onto this container. Return -1 30 | * to not allow for the brew to be added. Normally you'd 31 | * use brew.getManaCost(stack); 32 | */ 33 | public int getManaCost(Brew brew, ItemStack stack); 34 | 35 | } 36 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/mana/IManaDiscountArmor.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Jan 28, 2015, 9:22:53 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.mana; 12 | 13 | import net.minecraft.entity.player.EntityPlayer; 14 | import net.minecraft.item.ItemStack; 15 | 16 | /** 17 | * An armor item that implements this can provide a mana discount for mana tools. 18 | * Mana tools are the ones on the main toolset (Pick, Shovel, Axe, Sword and Shovel). 19 | */ 20 | public interface IManaDiscountArmor { 21 | 22 | /** 23 | * Gets the mana discount that this piece of armor provides. This is added 24 | * together to create the full discount. 25 | * Value is to be from 0.0 to 1.0. 0.1 is 10% discount, as an example. 26 | * You can also return negative values to make tools cost more. 27 | */ 28 | public float getDiscount(ItemStack stack, int slot, EntityPlayer player); 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/mana/IManaPool.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Jan 22, 2014, 5:03:09 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.mana; 12 | 13 | /** 14 | * Any TileEntity that implements this is considered a Mana Pool, 15 | * by which nearby functional flowers will pull mana from it.
16 | * Mana Distributors will also accept it as valid output.

17 | * 18 | * Implementation Instructions:
19 | * - Override invalidate() and onChunkUnload(), calling ManaNetworkEvent.removePool(this); on both.
20 | * - On the first tick of onUpdate(), call ManaNetworkEvent.addPool(this); 21 | */ 22 | public interface IManaPool extends IManaReceiver { 23 | 24 | /** 25 | * Returns false if the mana pool is accepting power from other power items, 26 | * true if it's sending power into them. 27 | */ 28 | public boolean isOutputtingPower(); 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/recipe/RecipeMiniFlower.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Apr 22, 2015, 5:57:59 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.recipe; 12 | 13 | import net.minecraft.item.ItemStack; 14 | import vazkii.botania.api.BotaniaAPI; 15 | 16 | public class RecipeMiniFlower extends RecipeManaInfusion { 17 | 18 | public RecipeMiniFlower(String flower, String mini, int mana) { 19 | super(BotaniaAPI.internalHandler.getSubTileAsStack(flower), BotaniaAPI.internalHandler.getSubTileAsStack(mini), mana); 20 | setAlchemy(true); 21 | } 22 | 23 | @Override 24 | public boolean matches(ItemStack stack) { 25 | String key = BotaniaAPI.internalHandler.getStackSubTileKey(stack); 26 | String input = this.input instanceof String ? (String) this.input : BotaniaAPI.internalHandler.getStackSubTileKey((ItemStack) this.input); 27 | return key != null && key.equals(input); 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/mana/IPingable.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Jun 19, 2015, 9:52:05 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.mana; 12 | 13 | import java.util.UUID; 14 | 15 | import vazkii.botania.api.internal.IManaBurst; 16 | 17 | /** 18 | * This describes an interface of a Mana Sender block that should be able to pingbackable 19 | * by a burst to tell it that the burst is still alive. 20 | */ 21 | public interface IPingable extends IIdentifiable { 22 | 23 | /** 24 | * Pings this object back, telling it that the burst passed in is still alive 25 | * in the world. The UUID parameter should be the UUID with which the burst 26 | * was created, this is used to let the object handle the check for if it's the 27 | * correct ID internally. IManaBurst implementations should do this every tick. 28 | */ 29 | public void pingback(IManaBurst burst, UUID expectedIdentity); 30 | 31 | } 32 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/mana/spark/SparkHelper.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Aug 21, 2014, 7:16:11 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.mana.spark; 12 | 13 | import java.util.List; 14 | 15 | import net.minecraft.util.AxisAlignedBB; 16 | import net.minecraft.world.World; 17 | 18 | public final class SparkHelper { 19 | 20 | public static final int SPARK_SCAN_RANGE = 12; 21 | 22 | public static List getSparksAround(World world, double x, double y, double z) { 23 | return SparkHelper.getEntitiesAround(ISparkEntity.class, world, x, y, z); 24 | } 25 | 26 | public static List getEntitiesAround(Class clazz, World world, double x, double y, double z) { 27 | int r = SPARK_SCAN_RANGE; 28 | List entities = world.getEntitiesWithinAABB(clazz, AxisAlignedBB.getBoundingBox(x - r, y - r, z - r, x + r, y + r, z + r)); 29 | return entities; 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/item/ICosmeticAttachable.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Feb 22, 2015, 8:31:39 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.item; 12 | 13 | import net.minecraft.item.ItemStack; 14 | 15 | /** 16 | * An Item that implements this interface can have cosmetic items attached to it. 17 | * The item does not have to be a bauble, but it is the render is automatically 18 | * handled by botania internally. Recipes to add and remove the cosmetic items will be 19 | * handled internally, but the cosmetic item has to be set as a container item. 20 | */ 21 | public interface ICosmeticAttachable { 22 | 23 | /** 24 | * Gets the cosmetic item stored in the stack passed in. 25 | */ 26 | public ItemStack getCosmeticItem(ItemStack stack); 27 | 28 | /** 29 | * Sets the stack's cosmetic item to the one passed in. 30 | */ 31 | public void setCosmeticItem(ItemStack stack, ItemStack cosmetic); 32 | 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/common/items/TSArmorBasic.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.common.items; 2 | 3 | import net.minecraft.client.renderer.texture.IIconRegister; 4 | import net.minecraft.entity.Entity; 5 | import net.minecraft.item.ItemArmor; 6 | import net.minecraft.item.ItemStack; 7 | import toops.tsteelworks.common.core.TSContent; 8 | import toops.tsteelworks.lib.TSRepo; 9 | 10 | public class TSArmorBasic extends ItemArmor { 11 | public String textureName; 12 | 13 | public TSArmorBasic(ArmorMaterial par2EnumArmorMaterial, int par3, String textureName) { 14 | super(par2EnumArmorMaterial, 0, par3); 15 | setCreativeTab(TSContent.creativeTab); 16 | this.textureName = textureName; 17 | } 18 | 19 | @Override 20 | public String getArmorTexture(ItemStack stack, Entity entity, int slot, String type) { 21 | return TSRepo.NAMESPACE + "textures/armor/" + textureName + "_" + (slot == 2 ? 2 : 1) + ".png"; 22 | } 23 | 24 | @Override 25 | public void registerIcons(IIconRegister par1IconRegister) { 26 | final String[] armorTypes = {"helmet", "chestplate", "leggings", "boots"}; 27 | itemIcon = par1IconRegister.registerIcon(TSRepo.NAMESPACE + "armor/" + textureName + "_" + armorTypes[armorType]); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/common/blocks/CementBlock.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.common.blocks; 2 | 3 | import cpw.mods.fml.relauncher.Side; 4 | import cpw.mods.fml.relauncher.SideOnly; 5 | import net.minecraft.block.material.Material; 6 | import net.minecraft.client.renderer.texture.IIconRegister; 7 | import net.minecraft.util.IIcon; 8 | import toops.tsteelworks.lib.TSRepo; 9 | 10 | public class CementBlock extends TSBaseBlock { 11 | static final String[] TEXTURE_NAME = {"white", "orange", "magenta", "lightblue", "yellow", "lime", "pink", "gray", "lightgray", "cyan", "purple", "blue", "brown", "green", "red", "black"}; 12 | 13 | public CementBlock() { 14 | super(Material.rock, 3F, TEXTURE_NAME); 15 | } 16 | 17 | // was this intended ? Caus it's causing renderTank weirdness 18 | /* @Override 19 | public int getRenderBlockPass() { 20 | return 1; 21 | }*/ 22 | 23 | @Override 24 | @SideOnly(Side.CLIENT) 25 | public void registerBlockIcons(IIconRegister iconRegister) { 26 | this.icons = new IIcon[TEXTURE_NAME.length]; 27 | 28 | for (int i = 0; i < this.icons.length; ++i) { 29 | this.icons[i] = iconRegister.registerIcon(TSRepo.NAMESPACE + "cement/" + "cement_" + TEXTURE_NAME[i]); 30 | } 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/common/core/TSCommonProxy.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.common.core; 2 | 3 | import cpw.mods.fml.common.network.NetworkRegistry; 4 | import cpw.mods.fml.common.registry.GameRegistry; 5 | import net.minecraftforge.common.MinecraftForge; 6 | import toops.tsteelworks.TSteelworks; 7 | import toops.tsteelworks.common.network.PacketMoveFluidHandler; 8 | import toops.tsteelworks.common.network.PacketSetDuctModeHandler; 9 | import toops.tsteelworks.common.worldgen.TSBaseWorldGenerator; 10 | import toops.tsteelworks.lib.registry.AlloyInfo; 11 | 12 | public class TSCommonProxy { 13 | public void preInit() { 14 | TSContent.preInit(); 15 | 16 | MinecraftForge.EVENT_BUS.register(new TSEventHandler()); 17 | 18 | GameRegistry.registerWorldGenerator(new TSBaseWorldGenerator(), 8); 19 | 20 | NetworkRegistry.INSTANCE.registerGuiHandler(TSteelworks.instance, new GuiHandler()); 21 | } 22 | 23 | public void init() { 24 | PacketMoveFluidHandler.register(0); 25 | PacketSetDuctModeHandler.register(1); 26 | 27 | TSContent.init(); 28 | } 29 | 30 | public void postInit() { 31 | TSContent.postInit(); 32 | 33 | TSRecipes.setupRecipes(); 34 | 35 | AlloyInfo.generateDealloyList(); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/lexicon/multiblock/component/FlowerComponent.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Jun 28, 2015, 3:23:15 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.lexicon.multiblock.component; 12 | 13 | import net.minecraft.block.Block; 14 | import net.minecraft.util.ChunkCoordinates; 15 | import net.minecraft.world.World; 16 | import vazkii.botania.api.BotaniaAPI; 17 | 18 | /** 19 | * A multiblock component that matches any botania flower. 20 | */ 21 | public class FlowerComponent extends ColorSwitchingComponent { 22 | 23 | public FlowerComponent(ChunkCoordinates relPos, Block block) { 24 | super(relPos, block); 25 | } 26 | 27 | @Override 28 | public boolean matches(World world, int x, int y, int z) { 29 | return BotaniaAPI.internalHandler.isBotaniaFlower(world, x, y, z); 30 | } 31 | 32 | @Override 33 | public MultiblockComponent copy() { 34 | return new FlowerComponent(relPos, block); 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/mana/BurstProperties.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Jan 31, 2014, 3:49:30 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.mana; 12 | 13 | /** 14 | * The properties of a mana burst, when shot. This is passed to the lens 15 | * currently on the mana spreader to apply changes. 16 | */ 17 | public final class BurstProperties { 18 | 19 | public int maxMana; 20 | public int ticksBeforeManaLoss; 21 | public float manaLossPerTick; 22 | public float gravity; 23 | public float motionModifier; 24 | 25 | public int color; 26 | 27 | public BurstProperties(int maxMana, int ticksBeforeManaLoss, float manaLossPerTick, float gravity, float motionModifier, int color) { 28 | this.maxMana = maxMana; 29 | this.ticksBeforeManaLoss = ticksBeforeManaLoss; 30 | this.manaLossPerTick = manaLossPerTick; 31 | this.gravity = gravity; 32 | this.motionModifier = motionModifier; 33 | this.color = color; 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/corporea/CorporeaRequestEvent.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Apr 30, 2015, 2:55:57 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.corporea; 12 | 13 | import cpw.mods.fml.common.eventhandler.Cancelable; 14 | import cpw.mods.fml.common.eventhandler.Event; 15 | 16 | /** 17 | * Fired when a corporea request is initiated. Can be cancelled. 18 | */ 19 | @Cancelable 20 | public class CorporeaRequestEvent extends Event { 21 | 22 | public final Object request; 23 | public final int count; 24 | public final ICorporeaSpark spark; 25 | public final boolean checkNBT; 26 | /** 27 | * If false then items won't be pulled. 28 | */ 29 | public final boolean realRequest; 30 | 31 | public CorporeaRequestEvent(Object request, int count, ICorporeaSpark spark, boolean nbt, boolean real) { 32 | this.request = request; 33 | this.count = count; 34 | this.spark = spark; 35 | checkNBT = nbt; 36 | realRequest = real; 37 | } 38 | 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/lexicon/multiblock/MultiblockSet.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Jun 27, 2015, 7:31:58 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.lexicon.multiblock; 12 | 13 | import net.minecraft.entity.Entity; 14 | import net.minecraft.util.MathHelper; 15 | 16 | /** 17 | * A set of Multiblock objects for various rotations. 18 | */ 19 | public class MultiblockSet { 20 | 21 | private final Multiblock[] mbs; 22 | 23 | public MultiblockSet(Multiblock[] mbs) { 24 | this.mbs = mbs; 25 | } 26 | 27 | public MultiblockSet(Multiblock mb) { 28 | this(mb.createRotations()); 29 | } 30 | 31 | public Multiblock getForEntity(Entity e) { 32 | return getForRotation(e.rotationYaw); 33 | } 34 | 35 | public Multiblock getForRotation(double rotation) { 36 | int facing = MathHelper.floor_double(rotation * 4.0 / 360.0 + 0.5) & 3; 37 | return getForIndex(facing); 38 | } 39 | 40 | public Multiblock getForIndex(int index) { 41 | return mbs[index]; 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/wand/IWandBindable.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Oct 9, 2014, 3:01:58 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.wand; 12 | 13 | import net.minecraft.entity.player.EntityPlayer; 14 | import net.minecraft.item.ItemStack; 15 | 16 | /** 17 | * A TileEntity that implements this can be bound to another block 18 | * via the Wand of the Forest. Also see IWireframeAABBProvider to change 19 | * the displayed bounding box. 20 | */ 21 | public interface IWandBindable extends ITileBound { 22 | 23 | /** 24 | * Return true if the Wand can select this tile. 25 | */ 26 | public boolean canSelect(EntityPlayer player, ItemStack wand, int x, int y, int z, int side); 27 | 28 | /** 29 | * Call to bind the TileEntity to where the player clicked. Return true to deselect 30 | * the TileEntity for another bind or false case the TileEntity should stay selected. 31 | */ 32 | public boolean bindTo(EntityPlayer player, ItemStack wand, int x, int y, int z, int side); 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/item/IRelic.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Mar 29, 2015, 7:17:41 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.item; 12 | 13 | import net.minecraft.item.ItemStack; 14 | import net.minecraft.stats.Achievement; 15 | 16 | /** 17 | * An item that implements this counts as a Relic item. This is purely for interaction 18 | * and other mod items should not implement this interface. 19 | */ 20 | public interface IRelic { 21 | 22 | /** 23 | * Binds to the player name passed in. 24 | */ 25 | public void bindToUsername(String playerName, ItemStack stack); 26 | 27 | /** 28 | * Gets the username of the person this relic is bound to. 29 | */ 30 | public String getSoulbindUsername(ItemStack stack); 31 | 32 | /** 33 | * Sets the achievement that this relic binds to. 34 | */ 35 | public void setBindAchievement(Achievement achievement); 36 | 37 | /** 38 | * Gets the achievement that this relic binds to. 39 | */ 40 | public Achievement getBindAchievement(); 41 | 42 | } 43 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/common/entity/projectile/EntityScorchedBrick.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.common.entity.projectile; 2 | 3 | import cpw.mods.fml.relauncher.Side; 4 | import cpw.mods.fml.relauncher.SideOnly; 5 | import net.minecraft.entity.EntityLivingBase; 6 | import net.minecraft.item.ItemStack; 7 | import net.minecraft.world.World; 8 | import tconstruct.library.tools.AbilityHelper; 9 | import toops.tsteelworks.client.core.TSClientProxy; 10 | import toops.tsteelworks.common.core.TSContent; 11 | 12 | public class EntityScorchedBrick extends EntityBrick { 13 | public EntityScorchedBrick(World world) { 14 | super(world); 15 | 16 | setKnockbackStrength(3); 17 | } 18 | 19 | public EntityScorchedBrick(World world, double x, double y, double z) { 20 | super(world, x, y, z); 21 | 22 | setKnockbackStrength(3); 23 | } 24 | 25 | public EntityScorchedBrick(World world, EntityLivingBase entity) { 26 | super(world, entity); 27 | 28 | setKnockbackStrength(3); 29 | } 30 | 31 | @Override 32 | protected void dropOnImpact() { 33 | AbilityHelper.spawnItemAtEntity(this, new ItemStack(TSContent.materialsTS, 1, 0), 0); 34 | } 35 | 36 | @Override 37 | @SideOnly(Side.CLIENT) 38 | public int getParticleID() { 39 | return TSClientProxy.PARTICLE_HANDLER.SCORCHED_BRICK_ID; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/common/plugins/PluginController.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.common.plugins; 2 | 3 | import toops.tsteelworks.common.core.TSLogger; 4 | 5 | import java.util.ArrayList; 6 | import java.util.List; 7 | 8 | public class PluginController { 9 | private List plugins = new ArrayList<>(); 10 | private Phase currPhase = Phase.PRELAUNCH; 11 | 12 | public void init() { 13 | currPhase = Phase.INIT; 14 | for (final ICompatPlugin plugin : plugins) 15 | plugin.init(); 16 | } 17 | 18 | public void postInit() { 19 | currPhase = Phase.POSTINIT; 20 | for (final ICompatPlugin plugin : plugins) 21 | plugin.postInit(); 22 | 23 | currPhase = Phase.DONE; 24 | } 25 | 26 | public void preInit() { 27 | currPhase = Phase.PREINIT; 28 | for (final ICompatPlugin plugin : plugins) 29 | plugin.preInit(); 30 | } 31 | 32 | public void registerPlugin(ICompatPlugin plugin) { 33 | if (plugin.mayLoad()) { 34 | TSLogger.info("Registering compat plugin for " + plugin.getPluginName()); 35 | plugins.add(plugin); 36 | 37 | if (currPhase != Phase.PRELAUNCH) 38 | throw new IllegalStateException("Compat plugins must be registered before preinit"); 39 | } 40 | } 41 | 42 | private enum Phase { 43 | PRELAUNCH, PREINIT, INIT, POSTINIT, DONE 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/common/entity/projectile/EntityLimestoneBrick.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.common.entity.projectile; 2 | 3 | import cpw.mods.fml.relauncher.Side; 4 | import cpw.mods.fml.relauncher.SideOnly; 5 | import net.minecraft.entity.EntityLivingBase; 6 | import net.minecraft.item.ItemStack; 7 | import net.minecraft.world.World; 8 | import tconstruct.library.tools.AbilityHelper; 9 | import toops.tsteelworks.client.core.TSClientProxy; 10 | import toops.tsteelworks.common.core.TSContent; 11 | 12 | public class EntityLimestoneBrick extends EntityBrick { 13 | public EntityLimestoneBrick(World world) { 14 | super(world); 15 | 16 | setKnockbackStrength(1); 17 | } 18 | 19 | public EntityLimestoneBrick(World world, double x, double y, double z) { 20 | super(world, x, y, z); 21 | 22 | setKnockbackStrength(1); 23 | } 24 | 25 | public EntityLimestoneBrick(World world, EntityLivingBase entity) { 26 | super(world, entity); 27 | 28 | setKnockbackStrength(1); 29 | } 30 | 31 | @Override 32 | protected void dropOnImpact() { 33 | AbilityHelper.spawnItemAtEntity(this, new ItemStack(TSContent.materialsTS, 1, 2), 0); 34 | } 35 | 36 | @Override 37 | @SideOnly(Side.CLIENT) 38 | public int getParticleID() { 39 | return TSClientProxy.PARTICLE_HANDLER.LIMESTONE_BRICK_ID; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/wiki/IWikiProvider.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Sep 2, 2014, 5:57:35 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.wiki; 12 | 13 | import net.minecraft.util.MovingObjectPosition; 14 | import net.minecraft.world.World; 15 | 16 | /** 17 | * An interface for a Wiki Provider, these are registered to allow a mod to provide a wiki 18 | * for all the blocks in them, used for the world interaction with the Lexica Botania. 19 | * A simple, mostly all-inclusive implementation can be found on SimpleWikiProvider. 20 | */ 21 | public interface IWikiProvider { 22 | 23 | /** 24 | * Gets the name of the block being looked at for display. 25 | */ 26 | public String getBlockName(World world, MovingObjectPosition pos); 27 | 28 | /** 29 | * Gets the URL to open when the block is clicked. 30 | */ 31 | public String getWikiURL(World world, MovingObjectPosition pos); 32 | 33 | /** 34 | * Gets the name of the wiki for display. 35 | */ 36 | public String getWikiName(World world, MovingObjectPosition pos); 37 | 38 | } 39 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/item/IExoflameHeatable.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Aug 30, 2014, 4:28:29 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.item; 12 | 13 | /** 14 | * A TileEntity that implements this can be heated by an Exoflame flower. 15 | */ 16 | public interface IExoflameHeatable { 17 | 18 | /** 19 | * Can this TileEntity smelt its contents. If true, the Exoflame is allowed 20 | * to fuel it. 21 | */ 22 | public boolean canSmelt(); 23 | 24 | /** 25 | * Gets the amount of ticks left for the fuel. If below 2, the exoflame 26 | * will call boostBurnTime. 27 | */ 28 | public int getBurnTime(); 29 | 30 | /** 31 | * Called to increase the amount of time this furnace should be burning 32 | * the fuel for. Even if it doesn't have any fuel. 33 | */ 34 | public void boostBurnTime(); 35 | 36 | /** 37 | * Called once every two ticks to increase the speed of the furnace. Feel 38 | * free to not do anything if all you want is to allow the exoflame to feed 39 | * it, not make it faster. 40 | */ 41 | public void boostCookTime(); 42 | 43 | } 44 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/client/pages/TSPicturePage.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.client.pages; 2 | 3 | import mantle.client.pages.BookPage; 4 | import net.minecraft.util.ResourceLocation; 5 | import net.minecraft.util.StatCollector; 6 | import org.w3c.dom.Element; 7 | import org.w3c.dom.NodeList; 8 | 9 | public class TSPicturePage extends BookPage { 10 | private String text; 11 | private ResourceLocation background; 12 | 13 | @Override 14 | public void readPageFromXML(Element element) { 15 | NodeList nodes = element.getElementsByTagName("text"); 16 | if (nodes != null) 17 | text = nodes.item(0).getTextContent(); 18 | 19 | nodes = element.getElementsByTagName("location"); 20 | 21 | if (nodes != null) { 22 | background = new ResourceLocation(nodes.item(0).getTextContent()); 23 | } 24 | } 25 | 26 | @Override 27 | public void renderContentLayer(int localWidth, int localHeight, boolean isTranslatable) { 28 | if (isTranslatable) { 29 | text = StatCollector.translateToLocal(text); 30 | } 31 | 32 | manual.fonts.drawSplitString(text, localWidth + 8, localHeight, 178, 0); 33 | } 34 | 35 | public void renderBackgroundLayer(int localWidth, int localHeight) { 36 | if (background != null) { 37 | manual.getMC().getTextureManager().bindTexture(background); 38 | } 39 | 40 | manual.drawTexturedModalRect(localWidth, localHeight + 12, 0, 0, 170, 144); 41 | } 42 | } -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/lib/TSRepo.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.lib; 2 | 3 | public class TSRepo { 4 | public static final String MOD_ID = "TSteelworks"; 5 | public static final String MOD_NAME = "Tinkers' Steelworks"; 6 | public static final String MOD_VER = "1.7.10-1.1.2"; 7 | public static final String MOD_SERV_PROXY = "toops.tsteelworks.common.core.TSCommonProxy"; 8 | public static final String MOD_CLIENT_PROXY = "toops.tsteelworks.client.core.TSClientProxy"; 9 | public static final String MOD_REQUIRE = "required-after:Forge@[10.13.4.1448,);required-after:cookiecore@[1.4.0,);required-after:TConstruct;after:CoFHCore;after:NotEnoughItems;after:ExtraTic;after:MineTweaker3;after:ThermalExpansion"; 10 | public static final String NAMESPACE = "tsteelworks:"; 11 | 12 | public class NBTNames { 13 | // Shared 14 | public static final String DIRECTION = "Direction"; 15 | 16 | // High Oven 17 | public static final String INTERNAL_TEMP = "InternalTemp"; 18 | public static final String IN_USE = "InUse"; 19 | public static final String USE_TIME = "UseTime"; 20 | public static final String USE_TIME_TOTAL = "UseTimeTotal"; 21 | public static final String FUEL_HEAT_RATE = "FuelHeatRate"; 22 | public static final String MELTING_TEMPS = "MeltingTemps"; 23 | public static final String ACTIVE_TEMPS = "ActiveTemps"; 24 | public static final String REDSTONE = "Redstone"; 25 | } 26 | } -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/common/blocks/TSFluidBlock.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.common.blocks; 2 | 3 | import net.minecraft.block.material.Material; 4 | import net.minecraft.client.renderer.texture.IIconRegister; 5 | import net.minecraft.util.IIcon; 6 | import net.minecraftforge.fluids.BlockFluidClassic; 7 | import net.minecraftforge.fluids.Fluid; 8 | import toops.tsteelworks.lib.TSRepo; 9 | 10 | public class TSFluidBlock extends BlockFluidClassic { 11 | private final String texture; 12 | private boolean alpha = false; 13 | private IIcon stillIcon; 14 | private IIcon flowIcon; 15 | 16 | public TSFluidBlock(Fluid fluid, Material material, String texture) { 17 | super(fluid, material); 18 | 19 | this.texture = texture; 20 | } 21 | 22 | public TSFluidBlock(Fluid fluid, Material material, String texture, boolean alpha) { 23 | this(fluid, material, texture); 24 | this.alpha = alpha; 25 | } 26 | 27 | @Override 28 | public int getRenderBlockPass() { 29 | return alpha ? 1 : 0; 30 | } 31 | 32 | @Override 33 | public void registerBlockIcons(IIconRegister iconRegister) { 34 | stillIcon = iconRegister.registerIcon(TSRepo.NAMESPACE + texture); 35 | flowIcon = iconRegister.registerIcon(TSRepo.NAMESPACE + texture + "_flow"); 36 | } 37 | 38 | @Override 39 | public IIcon getIcon(int side, int meta) { 40 | if (side == 0 || side == 1) 41 | return stillIcon; 42 | 43 | return flowIcon; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/recipe/ElvenPortalUpdateEvent.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Apr 17, 2015, 4:58:30 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.recipe; 12 | 13 | import java.util.List; 14 | 15 | import net.minecraft.item.ItemStack; 16 | import net.minecraft.tileentity.TileEntity; 17 | import net.minecraft.util.AxisAlignedBB; 18 | import cpw.mods.fml.common.eventhandler.Event; 19 | 20 | /** 21 | * An event fired when an Elven Portal TE updates. The portal's 22 | * relevant AABB and other stuff is passed in for convenience. This 23 | * is fired in MinecraftForge.EVENT_BUS. 24 | */ 25 | public class ElvenPortalUpdateEvent extends Event { 26 | 27 | /** 28 | * May be casted to TileAlfPortal if you have botania code access aside from the API. 29 | */ 30 | public final TileEntity portalTile; 31 | public final AxisAlignedBB aabb; 32 | public boolean open; 33 | public final List stacksInside; 34 | 35 | public ElvenPortalUpdateEvent(TileEntity te, AxisAlignedBB aabb, boolean open, List stacks) { 36 | portalTile = te; 37 | this.aabb = aabb; 38 | this.open = open; 39 | stacksInside = stacks; 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/lexicon/multiblock/component/ColorSwitchingComponent.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Jun 27, 2015, 7:20:09 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.lexicon.multiblock.component; 12 | 13 | import net.minecraft.block.Block; 14 | import net.minecraft.util.ChunkCoordinates; 15 | import net.minecraft.world.World; 16 | import vazkii.botania.api.BotaniaAPI; 17 | 18 | /** 19 | * A multiblock component that switches through the 16 colors of the 20 | * minecraft spectrum. This can be used for flowers, for example. 21 | */ 22 | public class ColorSwitchingComponent extends MultiblockComponent { 23 | 24 | public ColorSwitchingComponent(ChunkCoordinates relPos, Block block) { 25 | super(relPos, block, -1); 26 | } 27 | 28 | @Override 29 | public int getMeta() { 30 | return (int) (BotaniaAPI.internalHandler.getWorldElapsedTicks() / 20) % 16; 31 | } 32 | 33 | @Override 34 | public boolean matches(World world, int x, int y, int z) { 35 | return world.getBlock(x, y, z) == getBlock(); 36 | } 37 | 38 | @Override 39 | public MultiblockComponent copy() { 40 | return new ColorSwitchingComponent(relPos, block); 41 | } 42 | 43 | } 44 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/internal/DummyManaNetwork.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Mar 7, 2014, 3:47:43 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.internal; 12 | 13 | import java.util.ArrayList; 14 | import java.util.List; 15 | 16 | import net.minecraft.tileentity.TileEntity; 17 | import net.minecraft.util.ChunkCoordinates; 18 | import net.minecraft.world.World; 19 | import vazkii.botania.api.mana.TileSignature; 20 | 21 | public class DummyManaNetwork implements IManaNetwork { 22 | 23 | public static final DummyManaNetwork instance = new DummyManaNetwork(); 24 | 25 | @Override 26 | public void clear() { 27 | // NO-OP 28 | } 29 | 30 | @Override 31 | public TileEntity getClosestPool(ChunkCoordinates pos, World world, int limit) { 32 | return null; 33 | } 34 | 35 | @Override 36 | public TileEntity getClosestCollector(ChunkCoordinates pos, World world, int limit) { 37 | return null; 38 | } 39 | 40 | @Override 41 | public List getAllCollectorsInWorld(World world) { 42 | return new ArrayList(); 43 | } 44 | 45 | @Override 46 | public List getAllPoolsInWorld(World world) { 47 | return new ArrayList(); 48 | } 49 | 50 | } 51 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/wiki/WikiHooks.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Sep 2, 2014, 6:05:03 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.wiki; 12 | 13 | import java.util.HashMap; 14 | import java.util.Map; 15 | 16 | import net.minecraft.block.Block; 17 | import cpw.mods.fml.common.registry.GameRegistry; 18 | import cpw.mods.fml.common.registry.GameRegistry.UniqueIdentifier; 19 | 20 | public class WikiHooks { 21 | 22 | private static final IWikiProvider FALLBACK_PROVIDER = new SimpleWikiProvider("FTB Wiki", "http://ftb.gamepedia.com/%s"); 23 | 24 | private static final Map modWikis = new HashMap(); 25 | 26 | public static IWikiProvider getWikiFor(Block block) { 27 | UniqueIdentifier mod = GameRegistry.findUniqueIdentifierFor(block); 28 | return getWikiFor(mod == null ? "" : mod.modId.toLowerCase()); 29 | } 30 | 31 | public static IWikiProvider getWikiFor(String mod) { 32 | if(!modWikis.containsKey(mod)) 33 | modWikis.put(mod, FALLBACK_PROVIDER); 34 | 35 | return modWikis.get(mod); 36 | } 37 | 38 | public static void registerModWiki(String mod, IWikiProvider provider) { 39 | modWikis.put(mod.toLowerCase(), provider); 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/mana/ILens.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Jan 31, 2014, 3:03:04 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.mana; 12 | 13 | import net.minecraft.item.ItemStack; 14 | import cpw.mods.fml.relauncher.Side; 15 | import cpw.mods.fml.relauncher.SideOnly; 16 | 17 | /** 18 | * Have an Item implement this to be counted as a lens for the mana spreader. 19 | */ 20 | public interface ILens extends ILensEffect { 21 | 22 | @SideOnly(Side.CLIENT) 23 | public int getLensColor(ItemStack stack); 24 | 25 | /** 26 | * Can the source lens be combined with the composite lens? This is called 27 | * for both the ILens instance of ItemStack.getItem() of sourceLens and compositeLens. 28 | */ 29 | public boolean canCombineLenses(ItemStack sourceLens, ItemStack compositeLens); 30 | 31 | /** 32 | * Gets the composite lens in the stack passed in, return null for none. 33 | */ 34 | public ItemStack getCompositeLens(ItemStack stack); 35 | 36 | /** 37 | * Sets the composite lens for the sourceLens as the compositeLens, returns 38 | * the ItemStack with the combination. 39 | */ 40 | public ItemStack setCompositeLens(ItemStack sourceLens, ItemStack compositeLens); 41 | 42 | } 43 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/common/items/TSManual.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.common.items; 2 | 3 | import cpw.mods.fml.relauncher.Side; 4 | import cpw.mods.fml.relauncher.SideOnly; 5 | import net.minecraft.entity.player.EntityPlayer; 6 | import net.minecraft.item.ItemStack; 7 | import net.minecraft.util.EnumChatFormatting; 8 | import net.minecraft.util.StatCollector; 9 | import net.minecraft.world.World; 10 | import toops.tsteelworks.TSteelworks; 11 | import toops.tsteelworks.common.core.GuiHandler; 12 | 13 | import java.util.List; 14 | 15 | public class TSManual extends TSCraftingItem { 16 | static String[] name = new String[]{"highoven"}; 17 | static String[] textureName = new String[]{"tinkerbook_highoven"}; 18 | 19 | public TSManual() { 20 | super(name, textureName, ""); 21 | 22 | setUnlocalizedName("tsteelworks.manual"); 23 | } 24 | 25 | @Override 26 | @SideOnly(Side.CLIENT) 27 | @SuppressWarnings({"unchecked"}) 28 | public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean par4) { 29 | switch (stack.getItemDamage()) { 30 | case 0: 31 | list.add(EnumChatFormatting.ITALIC + StatCollector.translateToLocal("manual.steelworks.tooltip1")); 32 | break; 33 | } 34 | } 35 | 36 | @Override 37 | public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) { 38 | player.openGui(TSteelworks.instance, GuiHandler.MANUAL_GUI_ID, world, (int) player.posX, (int) player.posY, (int) player.posZ); 39 | 40 | return stack; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/common/items/blocks/CementItemBlock.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.common.items.blocks; 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.entity.player.EntityPlayer; 7 | import net.minecraft.item.ItemBlock; 8 | import net.minecraft.item.ItemStack; 9 | import net.minecraft.util.MathHelper; 10 | import net.minecraft.util.StatCollector; 11 | 12 | import java.util.List; 13 | 14 | public class CementItemBlock extends ItemBlock { 15 | public static final String blockType[] = {"white", "orange", "magenta", "lightblue", "yellow", "lime", "pink", "gray", "lightgray", "cyan", "purple", "blue", "brown", "green", "red", "black"}; 16 | 17 | public CementItemBlock(Block block) { 18 | super(block); 19 | setMaxDamage(0); 20 | setHasSubtypes(true); 21 | } 22 | 23 | @Override 24 | @SideOnly(Side.CLIENT) 25 | @SuppressWarnings({"rawtypes", "unchecked"}) 26 | public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean par4) { 27 | list.add(StatCollector.translateToLocal("cement.tooltip1")); 28 | } 29 | 30 | @Override 31 | public int getMetadata(int meta) { 32 | return meta; 33 | } 34 | 35 | @Override 36 | public String getUnlocalizedName(ItemStack itemstack) { 37 | final int pos = MathHelper.clamp_int(itemstack.getItemDamage(), 0, blockType.length - 1); 38 | return (new StringBuilder()).append("Cement.").append(blockType[pos]).toString(); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/common/plugins/minetweaker3/handler/highoven/HighOvenWrapper.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.common.plugins.minetweaker3.handler.highoven; 2 | 3 | import minetweaker.MineTweakerAPI; 4 | import minetweaker.api.item.IItemStack; 5 | import minetweaker.api.liquid.ILiquidStack; 6 | import stanhebben.zenscript.annotations.ZenClass; 7 | import stanhebben.zenscript.annotations.ZenMethod; 8 | 9 | import static toops.tsteelworks.common.plugins.minetweaker3.MinetweakerPlugin.parseItem; 10 | import static toops.tsteelworks.common.plugins.minetweaker3.MinetweakerPlugin.parseLiquid; 11 | 12 | @ZenClass("mods.tsteelworks.highoven") 13 | public class HighOvenWrapper { 14 | // fuel 15 | @ZenMethod 16 | public static void addFuel(final IItemStack fuel, final int burnTime, final int heatValue) { 17 | MineTweakerAPI.apply(new FuelHandler.Add(parseItem(fuel), burnTime, heatValue)); 18 | } 19 | 20 | @ZenMethod 21 | public static void removeFuel(final IItemStack fuel) { 22 | MineTweakerAPI.apply(new FuelHandler.Remove(parseItem(fuel))); 23 | } 24 | 25 | // meltables 26 | @ZenMethod 27 | public static void addMeltable(final IItemStack meltable, final boolean isOre, final ILiquidStack output, final int meltTemp) { 28 | MineTweakerAPI.apply(new MeltingHandler.Add(parseItem(meltable), isOre, parseLiquid(output), meltTemp)); 29 | } 30 | 31 | @ZenMethod 32 | public static void removeMeltable(final IItemStack meltable) { 33 | MineTweakerAPI.apply(new MeltingHandler.Remove(parseItem(meltable))); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/common/items/blocks/LimestoneItemBlock.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.common.items.blocks; 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.entity.player.EntityPlayer; 7 | import net.minecraft.item.ItemBlock; 8 | import net.minecraft.item.ItemStack; 9 | import net.minecraft.util.MathHelper; 10 | import net.minecraft.util.StatCollector; 11 | 12 | import java.util.List; 13 | 14 | /** 15 | * @author Toops 16 | */ 17 | public class LimestoneItemBlock extends ItemBlock { 18 | public static final String blockType[] = {"Stone", "Cobblestone", "Brick", "Brick.Cracked", "Paver", "Road", "Brick.Fancy", "Brick.Square", "Brick.Creeper"}; 19 | 20 | public LimestoneItemBlock(Block block) { 21 | super(block); 22 | setMaxDamage(0); 23 | setHasSubtypes(true); 24 | } 25 | 26 | @SuppressWarnings({"rawtypes", "unchecked"}) 27 | @Override 28 | @SideOnly(Side.CLIENT) 29 | public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean par4) { 30 | list.add(StatCollector.translateToLocal("limestone.tooltip1")); 31 | } 32 | 33 | @Override 34 | public int getMetadata(int meta) { 35 | return meta; 36 | } 37 | 38 | @Override 39 | public String getUnlocalizedName(ItemStack itemstack) { 40 | final int pos = MathHelper.clamp_int(itemstack.getItemDamage(), 0, blockType.length - 1); 41 | return (new StringBuilder()).append("Limestone.").append(blockType[pos]).toString(); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/common/plugins/mods/FMPPlugin.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.common.plugins.mods; 2 | 3 | import cpw.mods.fml.common.event.FMLInterModComms; 4 | import net.minecraft.item.ItemStack; 5 | import toops.tsteelworks.common.core.TSContent; 6 | import toops.tsteelworks.common.plugins.ModCompatPlugin; 7 | 8 | public class FMPPlugin extends ModCompatPlugin { 9 | @Override 10 | public String getModId() { 11 | return "ForgeMicroblock"; 12 | } 13 | 14 | @Override 15 | public void init() { 16 | FMLInterModComms.sendMessage("ForgeMicroblock", "microMaterial", new ItemStack(TSContent.tsCharcoalBlock)); 17 | 18 | for (int i = 0; i <= 1; i++) { 19 | FMLInterModComms.sendMessage("ForgeMicroblock", "microMaterial", new ItemStack(TSContent.dustStorageBlock, 0, i)); 20 | } 21 | 22 | FMLInterModComms.sendMessage("ForgeMicroblock", "microMaterial", new ItemStack(TSContent.highoven, 0, 2)); 23 | 24 | for (int i = 4; i <= 11; i++) { 25 | FMLInterModComms.sendMessage("ForgeMicroblock", "microMaterial", new ItemStack(TSContent.highoven, 0, i)); 26 | } 27 | 28 | for (int i = 0; i <= 8; i++) { 29 | FMLInterModComms.sendMessage("ForgeMicroblock", "microMaterial", new ItemStack(TSContent.limestoneBlock, 0, i)); 30 | } 31 | 32 | for (int i = 0; i <= 15; i++) { 33 | FMLInterModComms.sendMessage("ForgeMicroblock", "microMaterial", new ItemStack(TSContent.cementBlock, 0, i)); 34 | } 35 | } 36 | 37 | @Override 38 | public void postInit() { 39 | 40 | } 41 | 42 | @Override 43 | public void preInit() { 44 | 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/mana/IManaCollector.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Jan 22, 2014, 5:01:19 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.mana; 12 | 13 | import vazkii.botania.api.internal.IManaBurst; 14 | 15 | /** 16 | * Any TileEntity that implements this is considered a mana collector, by 17 | * which nearby generating flowers will pump mana into it.

18 | * 19 | * Implementation Instructions:
20 | * - Override invalidate() and onChunkUnload(), calling ManaNetworkEvent.removeCollector(this); on both.
21 | * - On the first tick of onUpdate(), call ManaNetworkEvent.addCollector(this); 22 | */ 23 | public interface IManaCollector extends IManaReceiver { 24 | 25 | /** 26 | * Called every tick on the client case the player is holding a Wand of the Forest. 27 | */ 28 | public void onClientDisplayTick(); 29 | 30 | /** 31 | * Get the multiplier of mana to input into the block, 1.0 is the original amount of mana 32 | * in the burst. 0.9, for example, is 90%, so 10% of the mana in the burst will get 33 | * dissipated. 34 | */ 35 | public float getManaYieldMultiplier(IManaBurst burst); 36 | 37 | /** 38 | * Gets the maximum amount of mana this collector can have. 39 | */ 40 | public int getMaxMana(); 41 | 42 | } 43 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/common/items/blocks/MachineItemBlock.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.common.items.blocks; 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.entity.player.EntityPlayer; 7 | import net.minecraft.item.ItemBlock; 8 | import net.minecraft.item.ItemStack; 9 | import net.minecraft.util.MathHelper; 10 | import net.minecraft.util.StatCollector; 11 | 12 | import java.util.List; 13 | 14 | public class MachineItemBlock extends ItemBlock { 15 | public static final String blockType[] = {"Turbine"}; 16 | 17 | public MachineItemBlock(Block block) { 18 | super(block); 19 | setMaxDamage(0); 20 | setHasSubtypes(true); 21 | } 22 | 23 | @SuppressWarnings({"unchecked", "rawtypes"}) 24 | @Override 25 | @SideOnly(Side.CLIENT) 26 | public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean par4) { 27 | switch (stack.getItemDamage()) { 28 | case 0: 29 | list.add(StatCollector.translateToLocal("machine.turbine.tooltip1")); 30 | list.add(StatCollector.translateToLocal("machine.turbine.tooltip2")); 31 | break; 32 | default: 33 | break; 34 | } 35 | } 36 | 37 | @Override 38 | public int getMetadata(int meta) { 39 | return meta; 40 | } 41 | 42 | @Override 43 | public String getUnlocalizedName(ItemStack itemstack) { 44 | final int pos = MathHelper.clamp_int(itemstack.getItemDamage(), 0, blockType.length - 1); 45 | return (new StringBuilder()).append("Machine.").append(blockType[pos]).toString(); 46 | } 47 | } -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/internal/VanillaPacketDispatcher.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Apr 9, 2015, 9:38:44 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.internal; 12 | 13 | import java.util.List; 14 | 15 | import net.minecraft.entity.player.EntityPlayerMP; 16 | import net.minecraft.tileentity.TileEntity; 17 | import net.minecraft.world.World; 18 | 19 | public final class VanillaPacketDispatcher { 20 | 21 | public static void dispatchTEToNearbyPlayers(TileEntity tile) { 22 | World world = tile.getWorldObj(); 23 | List players = world.playerEntities; 24 | for(Object player : players) 25 | if(player instanceof EntityPlayerMP) { 26 | EntityPlayerMP mp = (EntityPlayerMP) player; 27 | if(pointDistancePlane(mp.posX, mp.posZ, tile.xCoord + 0.5, tile.zCoord + 0.5) < 64) 28 | ((EntityPlayerMP) player).playerNetServerHandler.sendPacket(tile.getDescriptionPacket()); 29 | } 30 | } 31 | 32 | public static void dispatchTEToNearbyPlayers(World world, int x, int y, int z) { 33 | TileEntity tile = world.getTileEntity(x, y, z); 34 | if(tile != null) 35 | dispatchTEToNearbyPlayers(tile); 36 | } 37 | 38 | public static float pointDistancePlane(double x1, double y1, double x2, double y2) { 39 | return (float) Math.hypot(x1 - x2, y1 - y2); 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/corporea/ICorporeaInterceptor.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Apr 19, 2015, 6:23:31 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.corporea; 12 | 13 | import java.util.List; 14 | 15 | import net.minecraft.inventory.IInventory; 16 | import net.minecraft.item.ItemStack; 17 | 18 | /** 19 | * A TileEntity that implements this will be able to intercept corporea 20 | * requests case there is a Corporea Spark on top. 21 | */ 22 | public interface ICorporeaInterceptor { 23 | 24 | /** 25 | * Intercepts a request as it goes. The list of inventories has all the inventories 26 | * at this point, but the list of stacks is not complete. The request parameter can 27 | * be either a String or ItemStack. 28 | */ 29 | public void interceptRequest(Object request, int count, ICorporeaSpark spark, ICorporeaSpark source, List stacks, List inventories, boolean doit); 30 | 31 | /** 32 | * Intercepts a request after all the stacks have been found and processed. Both the 33 | * list of inventories and stacks is complete at this point. The request parameter can 34 | * be either a String or ItemStack. 35 | */ 36 | public void interceptRequestLast(Object request, int count, ICorporeaSpark spark, ICorporeaSpark source, List stacks, List inventories, boolean doit); 37 | 38 | } 39 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/api/highoven/IMixAgentRegistry.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.api.highoven; 2 | 3 | import net.minecraft.item.ItemStack; 4 | import toops.tsteelworks.api.PluginFactory; 5 | import toops.tsteelworks.api.event.IRegistry; 6 | 7 | public interface IMixAgentRegistry extends IRegistry { 8 | IMixAgentRegistry INSTANCE = (IMixAgentRegistry) PluginFactory.getInstance(IMixAgentRegistry.class); 9 | 10 | /** 11 | * Adds every ItemStack registered as oreName in the oredictionnary as valid Agents 12 | * 13 | * @param oreName The oredict name 14 | * @param type Agent type 15 | * @param consumeChance Chance that an item will be consumed 16 | * @return The previously registered information for this oreName or null if it wasn't already registered. 17 | */ 18 | IMixAgent registerAgent(String oreName, AgentType type, int consumeChance); 19 | 20 | /** 21 | * Removes an ItemStack as valid Agent 22 | * 23 | * @param oreName The oredict entry to unregister 24 | * @return the agent data, or null if it did not exist 25 | */ 26 | IMixAgent unregisterAgent(String oreName); 27 | 28 | /** 29 | * Gets informations about an agent 30 | * 31 | * @param itemStack The agent itemstack 32 | * @return the informations on the agent, or null if it does not exist 33 | */ 34 | IMixAgent getAgentData(ItemStack itemStack); 35 | 36 | enum AgentType { 37 | OXIDIZER, REDUCER, PURIFIER 38 | } 39 | 40 | /** 41 | * Hold information (mixer type, consume amount & consume chance) for a mix agent 42 | */ 43 | interface IMixAgent { 44 | AgentType getType(); 45 | 46 | int getConsumeChance(); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/subtile/signature/BasicSignature.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Oct 17, 2014, 5:34:35 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.subtile.signature; 12 | 13 | import net.minecraft.client.renderer.texture.IIconRegister; 14 | import net.minecraft.item.ItemStack; 15 | import net.minecraft.util.IIcon; 16 | import vazkii.botania.api.BotaniaAPI; 17 | 18 | /** 19 | * A basic (and fallback) implementation of SubTileSignature. 20 | */ 21 | public class BasicSignature extends SubTileSignature { 22 | 23 | final String name; 24 | 25 | public BasicSignature(String name) { 26 | this.name = name; 27 | } 28 | 29 | @Override 30 | public void registerIcons(IIconRegister register) { 31 | BotaniaAPI.internalHandler.registerBasicSignatureIcons(name, register); 32 | } 33 | 34 | @Override 35 | public IIcon getIconForStack(ItemStack stack) { 36 | return BotaniaAPI.internalHandler.getSubTileIconForName(name); 37 | } 38 | 39 | @Override 40 | public String getUnlocalizedNameForStack(ItemStack stack) { 41 | return unlocalizedName(""); 42 | } 43 | 44 | @Override 45 | public String getUnlocalizedLoreTextForStack(ItemStack stack) { 46 | return unlocalizedName(".reference"); 47 | } 48 | 49 | public String getName() { 50 | return name; 51 | } 52 | 53 | private String unlocalizedName(String end) { 54 | return "tile.botania:" + SubTileSignature.SPECIAL_FLOWER_PREFIX + name + end; 55 | } 56 | 57 | } 58 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/common/core/TSEventHandler.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.common.core; 2 | 3 | import cpw.mods.fml.common.eventhandler.Event; 4 | import cpw.mods.fml.common.eventhandler.SubscribeEvent; 5 | import net.minecraft.block.Block; 6 | import net.minecraft.init.Items; 7 | import net.minecraft.item.ItemStack; 8 | import net.minecraft.util.MovingObjectPosition; 9 | import net.minecraftforge.event.entity.player.FillBucketEvent; 10 | import toops.tsteelworks.lib.ModsData; 11 | 12 | public class TSEventHandler { 13 | @SubscribeEvent 14 | public void bucketFill(FillBucketEvent evt) { 15 | if (evt.current.getItem() == Items.bucket && evt.target.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) { 16 | int hitX = evt.target.blockX; 17 | int hitY = evt.target.blockY; 18 | int hitZ = evt.target.blockZ; 19 | 20 | if (evt.entityPlayer != null && !evt.entityPlayer.canPlayerEdit(hitX, hitY, hitZ, evt.target.sideHit, evt.current)) { 21 | return; 22 | } 23 | 24 | Block fluidBlock = evt.world.getBlock(hitX, hitY, hitZ); 25 | ItemStack bucket = null; 26 | 27 | if (fluidBlock == ModsData.Fluids.steamBlock) { 28 | bucket = ModsData.Fluids.bucketSteam; 29 | } else if (fluidBlock == ModsData.Fluids.moltenLimestone) { 30 | bucket = ModsData.Fluids.bucketLimestone; 31 | } else if (fluidBlock == ModsData.Fluids.liquidCement) { 32 | bucket = ModsData.Fluids.bucketCement; 33 | } 34 | 35 | if (bucket == null) 36 | return; 37 | 38 | if (evt.entityPlayer == null || !evt.entityPlayer.capabilities.isCreativeMode) { 39 | evt.result = bucket.copy(); 40 | evt.setResult(Event.Result.ALLOW); 41 | } 42 | 43 | evt.world.setBlockToAir(hitX, hitY, hitZ); 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/boss/IBotaniaBossWithShader.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Oct 29, 2014, 6:13:21 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.boss; 12 | 13 | import vazkii.botania.api.internal.ShaderCallback; 14 | import cpw.mods.fml.relauncher.Side; 15 | import cpw.mods.fml.relauncher.SideOnly; 16 | 17 | /** 18 | * A Botania boss whose HP bar makes use of shaders. Shaders 19 | * used through this have a few uniforms available: 20 | *
  • int time - The amount of total ticks elapsed.
  • 21 | *
  • int startX - The U coordinate passed in for the render of this bar's texture.
  • 22 | *
  • int startY - The V coordinate passed in for the render of this bar's texture.
  • 23 | */ 24 | public interface IBotaniaBossWithShader extends IBotaniaBoss { 25 | 26 | /** 27 | * The Shader Program to use for this boss bar. Return 0 case 28 | * you don't want a shader to be used. You can use separate shaders 29 | * for the background and foreground. 30 | * @param background True if rendering the background of the boss bar, 31 | * false if rendering the bar itself that shows the HP. 32 | */ 33 | @SideOnly(Side.CLIENT) 34 | public int getBossBarShaderProgram(boolean background); 35 | 36 | /** 37 | * A callback for the shader, used to pass in uniforms. Return null for no callback. 38 | */ 39 | @SideOnly(Side.CLIENT) 40 | public ShaderCallback getBossBarShaderCallback(boolean background, int shader); 41 | 42 | } 43 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/common/blocks/DustStorageBlock.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.common.blocks; 2 | 3 | import net.minecraft.block.BlockFalling; 4 | import net.minecraft.block.material.Material; 5 | import net.minecraft.client.renderer.texture.IIconRegister; 6 | import net.minecraft.creativetab.CreativeTabs; 7 | import net.minecraft.item.Item; 8 | import net.minecraft.item.ItemStack; 9 | import net.minecraft.util.IIcon; 10 | import net.minecraft.world.World; 11 | import toops.tsteelworks.common.core.TSContent; 12 | import toops.tsteelworks.lib.TSRepo; 13 | 14 | import java.util.List; 15 | 16 | public class DustStorageBlock extends BlockFalling { 17 | public static final String[] TEXTURE_NAMES = new String[]{"gunpowder", "sugar"}; 18 | public IIcon[] icons; 19 | 20 | public DustStorageBlock() { 21 | super(Material.sand); 22 | 23 | setCreativeTab(TSContent.creativeTab); 24 | setStepSound(soundTypeSand); 25 | } 26 | 27 | @Override 28 | public int damageDropped(int meta) { 29 | return meta; 30 | } 31 | 32 | @Override 33 | public float getBlockHardness(World world, int x, int y, int z) { 34 | return 3f; 35 | } 36 | 37 | @Override 38 | public IIcon getIcon(int side, int meta) { 39 | return icons[meta]; 40 | } 41 | 42 | @SuppressWarnings({"rawtypes", "unchecked"}) 43 | @Override 44 | public void getSubBlocks(Item item, CreativeTabs tab, List list) { 45 | for (int iter = 0; iter < 2; iter++) 46 | list.add(new ItemStack(item, 1, iter)); 47 | } 48 | 49 | @Override 50 | public void registerBlockIcons(IIconRegister iconRegister) { 51 | icons = new IIcon[TEXTURE_NAMES.length]; 52 | 53 | for (int i = 0; i < icons.length; ++i) 54 | icons[i] = iconRegister.registerIcon(TSRepo.NAMESPACE + TEXTURE_NAMES[i] + "_block"); 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/common/core/TSLogger.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.common.core; 2 | 3 | import nf.fr.ephys.cookiecore.helpers.DebugHelper; 4 | import org.apache.logging.log4j.LogManager; 5 | import org.apache.logging.log4j.Logger; 6 | import tconstruct.TConstruct; 7 | import toops.tsteelworks.TSteelworks; 8 | import toops.tsteelworks.lib.TSRepo; 9 | 10 | public class TSLogger { 11 | public static Logger logger = LogManager.getLogger(TSRepo.MOD_ID); 12 | 13 | public static void printIntroMessage() { 14 | TConstruct.logger.info("TSteelworks, are you pondering what I'm pondering?"); 15 | logger.info("I think so, TConstruct, but where are we going to find a duck and a hose at this hour?"); 16 | } 17 | 18 | public static void info(String desc) { 19 | logger.info(desc); 20 | } 21 | 22 | public static void info(String desc, int value) { 23 | logger.info(desc + ": " + value); 24 | } 25 | 26 | public static void info(String desc, float value) { 27 | logger.info(desc + ": " + value); 28 | } 29 | 30 | public static void info(String desc, String text) { 31 | logger.info(desc + ": " + text); 32 | } 33 | 34 | public static void info(String desc, boolean flag) { 35 | logger.info(desc + ": " + flag); 36 | } 37 | 38 | public static void warning(String desc) { 39 | logger.warn(desc); 40 | } 41 | 42 | public static void error(String msg, Throwable thrown) { 43 | logger.error(msg, thrown); 44 | 45 | if (DebugHelper.debug) { 46 | throw new RuntimeException(msg, thrown); 47 | } 48 | } 49 | 50 | public static void error(String msg) { 51 | logger.error(msg); 52 | 53 | if (DebugHelper.debug) { 54 | throw new RuntimeException(msg); 55 | } 56 | } 57 | 58 | public static void debug(String msg) { 59 | if (TSteelworks.DEBUG_MODE) 60 | logger.debug(msg); 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/mana/ILensEffect.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Apr 14, 2014, 7:30:00 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.mana; 12 | 13 | import net.minecraft.item.ItemStack; 14 | import net.minecraft.util.MovingObjectPosition; 15 | import vazkii.botania.api.internal.IManaBurst; 16 | 17 | /** 18 | * Have an item implement this for it to count as a lens effect and 19 | * be able to change the properties of Mana Bursts. 20 | */ 21 | public interface ILensEffect { 22 | 23 | /** 24 | * Called when a mana spreader that has this focus shoots a burst. This is where 25 | * you change the properties of the burst. 26 | */ 27 | public void apply(ItemStack stack, BurstProperties props); 28 | 29 | /** 30 | * Called when a mana burst fired from a mana spreader with this focus collides against 31 | * any block. This is called after the collision is handled. 32 | * @return True to kill the burst. False to keep it alive. 33 | */ 34 | public boolean collideBurst(IManaBurst burst, MovingObjectPosition pos, boolean isManaBlock, boolean dead, ItemStack stack); 35 | 36 | /** 37 | * Called when a mana burst fired from a mana spreader with this focus is updated. 38 | * This is called before the update is handled. 39 | */ 40 | public void updateBurst(IManaBurst burst, ItemStack stack); 41 | 42 | /** 43 | * Called when the mana burst should do it's particles. Return false to not 44 | * do any particles. 45 | */ 46 | public boolean doParticles(IManaBurst burst, ItemStack stack); 47 | 48 | } 49 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/common/worldgen/TSBaseWorldGenerator.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.common.worldgen; 2 | 3 | import cpw.mods.fml.common.IWorldGenerator; 4 | import net.minecraft.world.World; 5 | import net.minecraft.world.WorldType; 6 | import net.minecraft.world.chunk.IChunkProvider; 7 | import tconstruct.util.config.PHConstruct; 8 | import toops.tsteelworks.common.core.ConfigCore; 9 | import toops.tsteelworks.common.core.TSContent; 10 | 11 | import java.util.Random; 12 | 13 | public class TSBaseWorldGenerator implements IWorldGenerator { 14 | WorldGenLimestone limestone; 15 | 16 | public TSBaseWorldGenerator() { 17 | limestone = new WorldGenLimestone(32, TSContent.limestoneBlock, 0); 18 | } 19 | 20 | @Override 21 | public void generate(Random random, int chunkX, int chunkZ, World world, IChunkProvider chunkGenerator, IChunkProvider chunkProvider) { 22 | if (world.provider.terrainType != WorldType.FLAT) { 23 | if (world.provider.dimensionId == 0) 24 | generateSurface(random, chunkX * 16, chunkZ * 16, world); 25 | } 26 | } 27 | 28 | void generateSurface(Random random, int xChunk, int zChunk, World world) { 29 | if (ConfigCore.enableLimestoneWorldgen) 30 | generateLimestone(random, xChunk, zChunk, world); 31 | } 32 | 33 | //TODO: Generate in underground ponds 34 | // This currently generates under oceans, rivers, etc, around the same places you find sandstone 35 | void generateLimestone(Random random, int xChunk, int zChunk, World world) { 36 | int xPos, yPos, zPos; 37 | int maxamt = 32; 38 | int miny = 12; 39 | int maxy = PHConstruct.seaLevel; 40 | for (int q = 0; q <= maxamt; q++) { 41 | xPos = xChunk + random.nextInt(16); 42 | yPos = miny + random.nextInt(maxy - miny); 43 | zPos = zChunk + random.nextInt(16); 44 | limestone.generate(world, random, xPos, yPos, zPos); 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/mana/ManaNetworkEvent.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Jan 22, 2014, 5:04:30 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.mana; 12 | 13 | import net.minecraft.tileentity.TileEntity; 14 | import net.minecraftforge.common.MinecraftForge; 15 | import cpw.mods.fml.common.eventhandler.Event; 16 | 17 | public class ManaNetworkEvent extends Event { 18 | 19 | public final TileEntity tile; 20 | public final ManaBlockType type; 21 | public final Action action; 22 | 23 | public ManaNetworkEvent(TileEntity tile, ManaBlockType type, Action action) { 24 | this.tile = tile; 25 | this.type = type; 26 | this.action = action; 27 | } 28 | 29 | public static void addCollector(TileEntity tile) { 30 | ManaNetworkEvent event = new ManaNetworkEvent(tile, ManaBlockType.COLLECTOR, Action.ADD); 31 | MinecraftForge.EVENT_BUS.post(event); 32 | } 33 | 34 | public static void removeCollector(TileEntity tile) { 35 | ManaNetworkEvent event = new ManaNetworkEvent(tile, ManaBlockType.COLLECTOR, Action.REMOVE); 36 | MinecraftForge.EVENT_BUS.post(event); 37 | } 38 | 39 | public static void addPool(TileEntity tile) { 40 | ManaNetworkEvent event = new ManaNetworkEvent(tile, ManaBlockType.POOL, Action.ADD); 41 | MinecraftForge.EVENT_BUS.post(event); 42 | } 43 | 44 | public static void removePool(TileEntity tile) { 45 | ManaNetworkEvent event = new ManaNetworkEvent(tile, ManaBlockType.POOL, Action.REMOVE); 46 | MinecraftForge.EVENT_BUS.post(event); 47 | } 48 | 49 | public enum ManaBlockType { 50 | POOL, COLLECTOR 51 | } 52 | 53 | public enum Action { 54 | REMOVE, ADD 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/subtile/signature/SubTileSignature.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Oct 17, 2014, 5:29:26 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.subtile.signature; 12 | 13 | import java.util.List; 14 | 15 | import net.minecraft.client.renderer.texture.IIconRegister; 16 | import net.minecraft.entity.player.EntityPlayer; 17 | import net.minecraft.item.ItemStack; 18 | import net.minecraft.util.IIcon; 19 | 20 | /** 21 | * A singleton instance for a SubTileEntity, this is called for a few methods. 22 | */ 23 | public abstract class SubTileSignature { 24 | 25 | public static final String SPECIAL_FLOWER_PREFIX = "flower."; 26 | 27 | /** 28 | * Equivalent to Block.registerBlockIcons. 29 | */ 30 | public abstract void registerIcons(IIconRegister register); 31 | 32 | /** 33 | * Gets the icon to display for the flower item. 34 | */ 35 | public abstract IIcon getIconForStack(ItemStack stack); 36 | 37 | /** 38 | * Gets the display name for the flower item. 39 | */ 40 | public abstract String getUnlocalizedNameForStack(ItemStack stack); 41 | 42 | /** 43 | * Gets the lore text for the flower item, displayed in the item's tooltip. 44 | * If you do not want a reference return a key that does not have localization such 45 | * as "botaniamisc.noloc". 46 | */ 47 | public abstract String getUnlocalizedLoreTextForStack(ItemStack stack); 48 | 49 | /** 50 | * Adds additional text to the tooltip. This text is added after getUnlocalizedLoreTextForStack. 51 | */ 52 | public void addTooltip(ItemStack stack, EntityPlayer player, List tooltip) { 53 | // NO-OP 54 | } 55 | 56 | } 57 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/item/ISortableTool.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Feb 23, 2015, 7:03:48 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.item; 12 | 13 | import net.minecraft.item.ItemStack; 14 | 15 | /** 16 | * This interface describes a tool that can be sorted by the Ring of 17 | * Correction. 18 | */ 19 | public interface ISortableTool { 20 | 21 | /** 22 | * Gets the type of tool that this is. A pick, axe or shovel. 23 | */ 24 | public ToolType getSortingType(ItemStack stack); 25 | 26 | /** 27 | * Gets the priority that this tool should have when being sorted. The 28 | * tool with the highest priority will be picked. The way this is specified 29 | * should be (tool-level) * 100 + (tool-modifier) * 10 + (efficiency-level). 30 | *

    31 | * For example, a Manasteel Pickaxe is tool-level 10 and it doesn't have 32 | * modifiers. Assuming Efficiency 4, the priority should be 10 * 100 + 4 = 1004. 33 | * This will rate higher than a similar pickaxe with Efficiency 3.
    34 | * A Terra Shatterer has a modifier, its rank and is tool-level 20. With Efficiency 35 | * 5 and rank B (2) the priority should be 20 * 100 + 2 * 10 + 5 = 2025. 36 | *

    37 | * All intermediate tool levels are there for other mod tools that wish to occupy the spots inbetween. 38 | * Of course, you don't have to always adhere to this. Tools like the Vitreous Pickaxe don't, 39 | * that one in particular is priority 0 so it's never picked. 40 | */ 41 | public int getSortingPriority(ItemStack stack); 42 | 43 | public static enum ToolType { 44 | PICK, AXE, SHOVEL 45 | } 46 | 47 | } -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/internal/IManaBurst.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Jan 31, 2014, 4:36:13 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.internal; 12 | 13 | import java.util.UUID; 14 | 15 | import net.minecraft.item.ItemStack; 16 | import net.minecraft.util.ChunkCoordinates; 17 | 18 | /** 19 | * Interface for the Mana Burst entity. This can safely be casted to EntityThrowable. 20 | */ 21 | public interface IManaBurst { 22 | 23 | public boolean isFake(); 24 | 25 | public void setMotion(double x, double y, double z); 26 | 27 | public int getColor(); 28 | 29 | public void setColor(int color); 30 | 31 | public int getMana(); 32 | 33 | public void setMana(int mana); 34 | 35 | public int getStartingMana(); 36 | 37 | public void setStartingMana(int mana); 38 | 39 | public int getMinManaLoss(); 40 | 41 | public void setMinManaLoss(int minManaLoss); 42 | 43 | public float getManaLossPerTick(); 44 | 45 | public void setManaLossPerTick(float mana); 46 | 47 | public float getGravity(); 48 | 49 | public void setGravity(float gravity); 50 | 51 | public ChunkCoordinates getBurstSourceChunkCoordinates(); 52 | 53 | public void setBurstSourceCoords(int x, int y, int z); 54 | 55 | public ItemStack getSourceLens(); 56 | 57 | public void setSourceLens(ItemStack lens); 58 | 59 | public boolean hasAlreadyCollidedAt(int x, int y, int z); 60 | 61 | public void setCollidedAt(int x, int y, int z); 62 | 63 | public int getTicksExisted(); 64 | 65 | public void setFake(boolean fake); 66 | 67 | public void setShooterUUID(UUID uuid); 68 | 69 | public UUID getShooterUIID(); 70 | 71 | public void ping(); 72 | 73 | } 74 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/mana/spark/ISparkEntity.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Aug 21, 2014, 5:44:07 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.mana.spark; 12 | 13 | import java.util.Collection; 14 | 15 | /** 16 | * An Entity that implements this is considered a Spark. 17 | */ 18 | public interface ISparkEntity { 19 | 20 | /** 21 | * Which TileEntity is this Spark attached to? A common implementation is checking the block below. 22 | * 23 | int x = MathHelper.floor_double(posX); 24 | int y = MathHelper.floor_double(posY) - 1; 25 | int z = MathHelper.floor_double(posZ); 26 | TileEntity tile = worldObj.getTileEntity(x, y, z); 27 | if(tile != null && tile instanceof ISparkAttachable) 28 | return (ISparkAttachable) tile; 29 | 30 | return null; 31 | */ 32 | public ISparkAttachable getAttachedTile(); 33 | 34 | /** 35 | * Gets a collection of all Sparks this is tranfering to. 36 | */ 37 | public Collection getTransfers(); 38 | 39 | /** 40 | * Registers the Spark passed in as a Spark meant for mana to be transfered towards. 41 | */ 42 | public void registerTransfer(ISparkEntity entity); 43 | 44 | /** 45 | * Gets which upgrade is in this Spark.
    46 | * 0: None
    47 | * 1: Dispersive
    48 | * 2: Dominant
    49 | * 3: Recessive
    50 | * 4: Isolated 51 | */ 52 | public int getUpgrade(); 53 | 54 | /** 55 | * Sets the upgrade on this Spark. See {@link ISparkEntity#getUpgrade} 56 | */ 57 | public void setUpgrade(int upgrade); 58 | 59 | /** 60 | * See {@link ISparkAttachable#areIncomingTranfersDone()} 61 | */ 62 | public boolean areIncomingTransfersDone(); 63 | 64 | } 65 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/common/blocks/TSBaseBlock.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.common.blocks; 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.material.Material; 7 | import net.minecraft.client.renderer.texture.IIconRegister; 8 | import net.minecraft.creativetab.CreativeTabs; 9 | import net.minecraft.item.Item; 10 | import net.minecraft.item.ItemStack; 11 | import net.minecraft.util.IIcon; 12 | import toops.tsteelworks.common.core.TSContent; 13 | import toops.tsteelworks.lib.TSRepo; 14 | 15 | import java.util.List; 16 | 17 | public class TSBaseBlock extends Block { 18 | public String[] textureNames; 19 | public IIcon[] icons; 20 | 21 | public TSBaseBlock(Material material, float hardness) { 22 | super(material); 23 | 24 | setHardness(hardness); 25 | setCreativeTab(TSContent.creativeTab); 26 | } 27 | 28 | public TSBaseBlock(Material material, float hardness, String[] tex) { 29 | super(material); 30 | 31 | setHardness(hardness); 32 | setCreativeTab(TSContent.creativeTab); 33 | textureNames = tex; 34 | } 35 | 36 | @Override 37 | public int damageDropped(int meta) { 38 | return meta; 39 | } 40 | 41 | @Override 42 | @SideOnly(Side.CLIENT) 43 | public IIcon getIcon(int side, int meta) { 44 | return meta < icons.length ? icons[meta] : icons[0]; 45 | } 46 | 47 | @SuppressWarnings({"rawtypes", "unchecked"}) 48 | @Override 49 | public void getSubBlocks(Item block, CreativeTabs tab, List list) { 50 | for (int iter = 0; iter < icons.length; iter++) 51 | list.add(new ItemStack(block, 1, iter)); 52 | } 53 | 54 | @Override 55 | @SideOnly(Side.CLIENT) 56 | public void registerBlockIcons(IIconRegister iconRegister) { 57 | icons = new IIcon[textureNames.length]; 58 | for (int i = 0; i < icons.length; ++i) 59 | icons[i] = iconRegister.registerIcon(TSRepo.NAMESPACE + textureNames[i]); 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/common/blocks/SteamTurbineBlock.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.common.blocks; 2 | 3 | import net.minecraft.block.BlockContainer; 4 | import net.minecraft.block.material.Material; 5 | import net.minecraft.client.renderer.texture.IIconRegister; 6 | import net.minecraft.entity.EntityLivingBase; 7 | import net.minecraft.item.ItemStack; 8 | import net.minecraft.tileentity.TileEntity; 9 | import net.minecraft.util.IIcon; 10 | import net.minecraft.world.World; 11 | import nf.fr.ephys.cookiecore.helpers.BlockHelper; 12 | import toops.tsteelworks.common.blocks.logic.SteamTurbineLogic; 13 | 14 | public class SteamTurbineBlock extends BlockContainer { 15 | private IIcon textureFront; 16 | private IIcon textureBack; 17 | private IIcon textureTop; 18 | private IIcon textureSide; 19 | 20 | public SteamTurbineBlock() { 21 | super(Material.iron); 22 | } 23 | 24 | @Override 25 | public TileEntity createNewTileEntity(World p_149915_1_, int p_149915_2_) { 26 | return new SteamTurbineLogic(); 27 | } 28 | 29 | @Override 30 | public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase entityliving, ItemStack stack) { 31 | world.setBlockMetadataWithNotify(x, y, z, BlockHelper.orientationToMetadataXZ(entityliving.rotationYaw), 2); 32 | } 33 | 34 | @Override 35 | public IIcon getIcon(int side, int metadata) { 36 | if (side == 0 || BlockHelper.getOppositeSide(side) == metadata) return textureBack; 37 | 38 | if (side == 1) return textureTop; 39 | 40 | if (side == metadata) return textureFront; 41 | 42 | return textureSide; 43 | } 44 | 45 | @Override 46 | public void registerBlockIcons(IIconRegister register) { 47 | textureBack = register.registerIcon("tsteelworks:turbine_back"); 48 | textureFront = register.registerIcon("tsteelworks:turbine_output"); 49 | textureSide = register.registerIcon("tsteelworks:turbine_side"); 50 | textureTop = register.registerIcon("tsteelworks:turbine_top"); 51 | } 52 | } -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/common/plugins/chisel/ChiselPlugin.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.common.plugins.chisel; 2 | 3 | import cpw.mods.fml.common.event.FMLInterModComms; 4 | import net.minecraft.block.Block; 5 | import toops.tsteelworks.common.blocks.HighOvenBlock; 6 | import toops.tsteelworks.common.core.TSContent; 7 | import toops.tsteelworks.common.plugins.ModCompatPlugin; 8 | 9 | public class ChiselPlugin extends ModCompatPlugin { 10 | 11 | @Override 12 | public String getModId() { 13 | return "chisel"; 14 | } 15 | 16 | @Override 17 | public void preInit() { 18 | } 19 | 20 | @Override 21 | public void init() { 22 | final String scorchedGroup = "scorchedstone"; 23 | 24 | addBlockVariation(scorchedGroup, TSContent.highoven, HighOvenBlock.META_BRICK); 25 | addBlockVariation(scorchedGroup, TSContent.highoven, HighOvenBlock.META_CRACKED); 26 | addBlockVariation(scorchedGroup, TSContent.highoven, HighOvenBlock.META_STONE); 27 | addBlockVariation(scorchedGroup, TSContent.highoven, HighOvenBlock.META_PAVER); 28 | addBlockVariation(scorchedGroup, TSContent.highoven, HighOvenBlock.META_CRACKED); 29 | addBlockVariation(scorchedGroup, TSContent.highoven, HighOvenBlock.META_ROAD); 30 | addBlockVariation(scorchedGroup, TSContent.highoven, HighOvenBlock.META_FANCY); 31 | addBlockVariation(scorchedGroup, TSContent.highoven, HighOvenBlock.META_CHISELED); 32 | addBlockVariation(scorchedGroup, TSContent.highoven, HighOvenBlock.META_CREEPY); 33 | //addBlockVariation(scorchedGroup, TSContent.highoven, HighOvenBlock.META_COBBLE); 34 | } 35 | 36 | @Override 37 | public void postInit() { 38 | } 39 | 40 | private void addBlockVariation(String group, Block block, int metadata) { 41 | System.out.println(group + "|" + Block.blockRegistry.getNameForObject(block) + "|" + metadata); 42 | FMLInterModComms.sendMessage(getModId(), 43 | "variation:add", group + "|" + Block.blockRegistry.getNameForObject(block) + "|" + metadata); 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/lib/registry/BasicRegistry.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.lib.registry; 2 | 3 | import toops.tsteelworks.api.event.IRegistry; 4 | import toops.tsteelworks.api.event.IRegistryListener; 5 | 6 | import java.util.ArrayList; 7 | import java.util.List; 8 | 9 | abstract class BasicRegistry implements IRegistry { 10 | private List> listeners = new ArrayList<>(); 11 | 12 | @Override 13 | public boolean addEventListener(IRegistryListener e) { 14 | return listeners.add(e); 15 | } 16 | 17 | @Override 18 | public boolean removeEventListener(IRegistryListener e) { 19 | return listeners.remove(e); 20 | } 21 | 22 | protected void dispatchAddEvent(Key item, Value data) { 23 | if (listeners.size() == 0) return; 24 | 25 | IRegistryEvent event = new BasicRegistryEvent<>(IRegistryEvent.TYPE.ADD, data, item); 26 | 27 | for (IRegistryListener l : listeners) { 28 | l.onRegistryChange(event); 29 | } 30 | } 31 | 32 | protected void dispatchDeleteEvent(Key item, Value data) { 33 | if (listeners.size() == 0) return; 34 | 35 | IRegistryEvent event = new BasicRegistryEvent<>(IRegistryEvent.TYPE.DELETE, data, item); 36 | 37 | for (IRegistryListener l : listeners) { 38 | l.onRegistryChange(event); 39 | } 40 | } 41 | 42 | private static class BasicRegistryEvent implements IRegistryEvent { 43 | private final TYPE type; 44 | private final Value data; 45 | private final Key item; 46 | 47 | private BasicRegistryEvent(TYPE type, Value data, Key key) { 48 | this.type = type; 49 | this.data = data; 50 | this.item = key; 51 | } 52 | 53 | @Override 54 | public TYPE getType() { 55 | return type; 56 | } 57 | 58 | @Override 59 | public Key getItem() { 60 | return item; 61 | } 62 | 63 | @Override 64 | public Value getData() { 65 | return data; 66 | } 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/internal/IGuiLexiconEntry.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Jan 14, 2014, 6:48:41 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.internal; 12 | 13 | import java.util.List; 14 | 15 | import net.minecraft.client.gui.GuiButton; 16 | import vazkii.botania.api.lexicon.LexiconEntry; 17 | 18 | /** 19 | * Internal interface for the Lexicon Entry GUI. This contains 20 | * everything that can be accessed from it. It's safe to cast 21 | * this type to GuiScreen. 22 | */ 23 | public interface IGuiLexiconEntry { 24 | 25 | /** 26 | * Gets the entry currently portrayed in this gui. 27 | */ 28 | public LexiconEntry getEntry(); 29 | 30 | /** 31 | * Gets the current page the lexicon GUI is browsing. 32 | */ 33 | public int getPageOn(); 34 | 35 | /** 36 | * Gets the leftmost part of the GUI. 37 | */ 38 | public int getLeft(); 39 | 40 | /** 41 | * Gets the topmost part of the GUI. 42 | */ 43 | public int getTop(); 44 | 45 | /** 46 | * Gets the GUI's width. 47 | */ 48 | public int getWidth(); 49 | 50 | /** 51 | * Gets the GUI's height 52 | */ 53 | public int getHeight(); 54 | 55 | /** 56 | * Gets the GUI's Z level for rendering. 57 | */ 58 | public float getZLevel(); 59 | 60 | /** 61 | * Gets the list of buttons in this gui. 62 | */ 63 | public List getButtonList(); 64 | 65 | /** 66 | * Gets the total amount of ticks (+ partial ticks) the player 67 | * has been in this gui. 68 | */ 69 | public float getElapsedTicks(); 70 | 71 | /** 72 | * Gets the current partial ticks. 73 | */ 74 | public float getPartialTicks(); 75 | 76 | /** 77 | * Gets the delta (1F = 1 tick) between this render call 78 | * and the last one. 79 | */ 80 | public float getTickDelta(); 81 | } 82 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/common/plugins/minetweaker3/handler/mix/MixAgentHandler.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.common.plugins.minetweaker3.handler.mix; 2 | 3 | import toops.tsteelworks.api.highoven.IMixAgentRegistry; 4 | import toops.tsteelworks.api.highoven.IMixAgentRegistry.IMixAgent; 5 | import toops.tsteelworks.common.plugins.minetweaker3.MinetweakerPlugin; 6 | 7 | class MixAgentHandler { 8 | static class Add extends MinetweakerPlugin.Add { 9 | public Add(final String agent, final int consumeChance, final IMixAgentRegistry.AgentType agentType) { 10 | super(agent, new IMixAgent() { 11 | @Override 12 | public IMixAgentRegistry.AgentType getType() { 13 | return agentType; 14 | } 15 | 16 | @Override 17 | public int getConsumeChance() { 18 | return consumeChance; 19 | } 20 | }); 21 | } 22 | 23 | @Override 24 | public void apply() { 25 | oldData = IMixAgentRegistry.INSTANCE.registerAgent(key, newData.getType(), newData.getConsumeChance()); 26 | } 27 | 28 | @Override 29 | public void undo() { 30 | if (oldData == null) 31 | IMixAgentRegistry.INSTANCE.unregisterAgent(key); 32 | else 33 | IMixAgentRegistry.INSTANCE.registerAgent(key, oldData.getType(), oldData.getConsumeChance()); 34 | } 35 | 36 | @Override 37 | public String describe() { 38 | return (oldData == null ? "Added " : "Replaced ") + key + " as valid mixing agent."; 39 | } 40 | } 41 | 42 | static class Remove extends MinetweakerPlugin.Remove { 43 | public Remove(String agent) { 44 | super(agent); 45 | } 46 | 47 | @Override 48 | public void apply() { 49 | oldData = IMixAgentRegistry.INSTANCE.unregisterAgent(key); 50 | } 51 | 52 | @Override 53 | public void undo() { 54 | if (oldData == null) return; 55 | 56 | IMixAgentRegistry.INSTANCE.registerAgent(key, oldData.getType(), oldData.getConsumeChance()); 57 | } 58 | 59 | @Override 60 | public String describe() { 61 | return "Removed " + key + " as valid mixing agent."; 62 | } 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/lexicon/multiblock/component/MultiblockComponent.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Jun 27, 2015, 2:42:32 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.lexicon.multiblock.component; 12 | 13 | import net.minecraft.block.Block; 14 | import net.minecraft.item.ItemStack; 15 | import net.minecraft.util.ChunkCoordinates; 16 | import net.minecraft.world.World; 17 | 18 | /** 19 | * A component of a multiblock, the normal one 20 | * is just a block. 21 | */ 22 | public class MultiblockComponent { 23 | 24 | public ChunkCoordinates relPos; 25 | public final Block block; 26 | public final int meta; 27 | 28 | public MultiblockComponent(ChunkCoordinates relPos, Block block, int meta) { 29 | this.relPos = relPos; 30 | this.block = block; 31 | this.meta = meta; 32 | } 33 | 34 | public ChunkCoordinates getRelativePosition() { 35 | return relPos; 36 | } 37 | 38 | public Block getBlock() { 39 | return block; 40 | } 41 | 42 | public int getMeta() { 43 | return meta; 44 | } 45 | 46 | public boolean matches(World world, int x, int y, int z) { 47 | return world.getBlock(x, y, z) == getBlock() && (meta == -1 || world.getBlockMetadata(x, y, z) == meta); 48 | } 49 | 50 | public ItemStack[] getMaterials() { 51 | return new ItemStack[] { new ItemStack(block, 1, meta) }; 52 | } 53 | 54 | public void rotate(double angle) { 55 | double x = relPos.posX; 56 | double z = relPos.posZ; 57 | double sin = Math.sin(angle); 58 | double cos = Math.cos(angle); 59 | 60 | double xn = x * cos - z * sin; 61 | double zn = x * sin + z * cos; 62 | relPos = new ChunkCoordinates((int) Math.round(xn), relPos.posY, (int) Math.round(zn)); 63 | } 64 | 65 | public MultiblockComponent copy() { 66 | return new MultiblockComponent(relPos, block, meta); 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/mana/spark/ISparkAttachable.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Aug 21, 2014, 5:44:13 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.mana.spark; 12 | 13 | import net.minecraft.item.ItemStack; 14 | import vazkii.botania.api.mana.IManaReceiver; 15 | 16 | /** 17 | * A TileEntity that implements this can have a Spark attached to it. 18 | * For the Spark to be allowed to have upgrades, it needs to be an IManaPool. 19 | */ 20 | public interface ISparkAttachable extends IManaReceiver { 21 | 22 | /** 23 | * Can this block have a Spark attached to it. Note that this will not 24 | * unattach the Spark if it's changed later. 25 | */ 26 | public boolean canAttachSpark(ItemStack stack); 27 | 28 | /** 29 | * Called when the Spark is attached. 30 | */ 31 | public void attachSpark(ISparkEntity entity); 32 | 33 | /** 34 | * Returns how much space for mana is available in this block, normally the total - the current. 35 | * Should NEVER return negative values. Make sure to check against that. 36 | */ 37 | public int getAvailableSpaceForMana(); 38 | 39 | /** 40 | * Gets the Spark that is attached to this block. A common implementation is 41 | * to check for Spark entities above: 42 | * 43 | List sparks = worldObj.getEntitiesWithinAABB(ISparkEntity.class, AxisAlignedBB.getBoundingBox(xCoord, yCoord + 1, zCoord, xCoord + 1, yCoord + 2, zCoord + 1)); 44 | if(sparks.size() == 1) { 45 | Entity e = (Entity) sparks.get(0); 46 | return (ISparkEntity) e; 47 | } 48 | 49 | return null; 50 | */ 51 | public ISparkEntity getAttachedSpark(); 52 | 53 | /** 54 | * Return true if this Tile no longer requires mana and all Sparks 55 | * transferring mana to it should cancel their transfer. 56 | */ 57 | public boolean areIncomingTranfersDone(); 58 | 59 | } 60 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/lib/registry/AlloyInfo.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.lib.registry; 2 | 3 | import net.minecraftforge.fluids.Fluid; 4 | import net.minecraftforge.fluids.FluidStack; 5 | import tconstruct.library.crafting.AlloyMix; 6 | import tconstruct.library.crafting.Smeltery; 7 | import toops.tsteelworks.common.core.ConfigCore; 8 | 9 | import java.util.ArrayList; 10 | import java.util.List; 11 | 12 | public final class AlloyInfo { 13 | private static final List whitelistedFluids = new ArrayList<>(); 14 | 15 | /** 16 | * Takes a FluidStack alloy, returns it's components. Should equal the reagents required to produce this 17 | * function's input in a Tinker's Construct smeltery. 18 | * Scaled to the size of our input stack. 19 | * 20 | * @param input The alloy fluidstack. 21 | * @return A list of fluid stacks produced by the dealloying. 22 | */ 23 | public static FluidStack[] deAlloy(FluidStack input) { 24 | List alloys = Smeltery.getAlloyList(); 25 | 26 | for (AlloyMix alloy : alloys) { 27 | if (alloy.result.isFluidEqual(input)) { 28 | List components = alloy.mixers; 29 | 30 | FluidStack[] output = new FluidStack[components.size()]; 31 | 32 | for (int i = 0; i < output.length; i++) { 33 | float ratio = (float) components.get(i).amount / alloy.result.amount; 34 | 35 | output[i] = new FluidStack(components.get(i), (int) (input.amount * ratio)); 36 | } 37 | 38 | return output; 39 | } 40 | } 41 | 42 | return null; 43 | } 44 | 45 | public static void generateDealloyList() { 46 | List alloys = Smeltery.getAlloyList(); 47 | 48 | for (AlloyMix alloy : alloys) { 49 | if (!isBlackListed(alloy.result.getFluid())) 50 | whitelistedFluids.add(alloy.result); 51 | } 52 | } 53 | 54 | public static boolean isAlloy(FluidStack fluid) { 55 | return whitelistedFluids.contains(fluid); 56 | } 57 | 58 | private static boolean isBlackListed(Fluid fluid) { 59 | for (String name : ConfigCore.blacklistedAlloys) { 60 | if (name.equals(fluid.getName())) return true; 61 | } 62 | 63 | return false; 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/mana/IManaItem.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Mar 6, 2014, 9:07:40 AM (GMT)] 10 | */ 11 | package vazkii.botania.api.mana; 12 | 13 | import net.minecraft.item.ItemStack; 14 | import net.minecraft.tileentity.TileEntity; 15 | 16 | /** 17 | * An item that implements this can be counted as an item that can 18 | * contain mana. 19 | */ 20 | public interface IManaItem { 21 | 22 | /** 23 | * Gets the amount of mana this item contains 24 | */ 25 | public int getMana(ItemStack stack); 26 | 27 | /** 28 | * Gets the max amount of mana this item can hold. 29 | */ 30 | public int getMaxMana(ItemStack stack); 31 | 32 | /** 33 | * Adds mana to this item. 34 | */ 35 | public void addMana(ItemStack stack, int mana); 36 | 37 | /** 38 | * Can this item receive mana from a mana Pool? 39 | * @param pool The pool it's receiving mana from, can be casted to IManaPool. 40 | * @see IManaPool#isOutputtingPower() 41 | */ 42 | public boolean canReceiveManaFromPool(ItemStack stack, TileEntity pool); 43 | 44 | /** 45 | * Can this item recieve mana from another item? 46 | */ 47 | public boolean canReceiveManaFromItem(ItemStack stack, ItemStack otherStack); 48 | 49 | /** 50 | * Can this item export mana to a mana Pool? 51 | * @param pool The pool it's exporting mana to, can be casted to IManaPool. 52 | * @see IManaPool#isOutputtingPower() 53 | */ 54 | public boolean canExportManaToPool(ItemStack stack,TileEntity pool); 55 | 56 | /** 57 | * Can this item export mana to another item? 58 | */ 59 | public boolean canExportManaToItem(ItemStack stack, ItemStack otherStack); 60 | 61 | /** 62 | * If this item simply does not export mana at all, set this to true. This is 63 | * used to skip items that contain mana but can't export it when drawing the 64 | * mana bar above the XP bar. 65 | */ 66 | public boolean isNoExport(ItemStack stack); 67 | 68 | } 69 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/wiki/SimpleWikiProvider.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Sep 2, 2014, 5:58:39 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.wiki; 12 | 13 | import net.minecraft.block.Block; 14 | import net.minecraft.item.ItemStack; 15 | import net.minecraft.util.MovingObjectPosition; 16 | import net.minecraft.world.World; 17 | 18 | import org.apache.commons.lang3.text.WordUtils; 19 | 20 | public class SimpleWikiProvider implements IWikiProvider { 21 | 22 | final String name, urlBase, replacement; 23 | 24 | public SimpleWikiProvider(String name, String urlBase) { 25 | this(name, urlBase, "%20"); 26 | } 27 | 28 | public SimpleWikiProvider(String name, String urlBase, String replacement) { 29 | this.name = name; 30 | this.urlBase = urlBase; 31 | this.replacement = replacement; 32 | } 33 | 34 | @Override 35 | public String getBlockName(World world, MovingObjectPosition pos) { 36 | int x = pos.blockX; 37 | int y = pos.blockY; 38 | int z = pos.blockZ; 39 | 40 | Block block = world.getBlock(x, y, z); 41 | if(block == null) 42 | return null; 43 | 44 | ItemStack stack = block.getPickBlock(pos, world, x, y, z); 45 | 46 | if(stack == null || stack.getItem() == null) 47 | stack = new ItemStack(block, 1, world.getBlockMetadata(x, y, z)); 48 | 49 | if(stack.getItem() == null) 50 | return null; 51 | 52 | String name = stack.getDisplayName(); 53 | if(name == null || name.isEmpty()) 54 | return null; 55 | 56 | return name; 57 | } 58 | 59 | @Override 60 | public String getWikiURL(World world, MovingObjectPosition pos) { 61 | String name = getBlockName(world, pos); 62 | if(name == null) 63 | return null; 64 | return String.format(urlBase, WordUtils.capitalizeFully(name).replaceAll(" ", replacement)); 65 | } 66 | 67 | @Override 68 | public String getWikiName(World world, MovingObjectPosition pos) { 69 | return name; 70 | } 71 | 72 | } 73 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/api/highoven/ISmeltingRegistry.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.api.highoven; 2 | 3 | import net.minecraft.item.ItemStack; 4 | import net.minecraftforge.fluids.FluidStack; 5 | import toops.tsteelworks.api.PluginFactory; 6 | import toops.tsteelworks.api.event.IRegistry; 7 | 8 | public interface ISmeltingRegistry extends IRegistry { 9 | ISmeltingRegistry INSTANCE = (ISmeltingRegistry) PluginFactory.getInstance(ISmeltingRegistry.class); 10 | 11 | /** 12 | * Adds mappings between an input and its liquid. 13 | * 14 | * @param input The item to liquefy 15 | * @param isOre The itemstack is an ore 16 | * @param output The result of the process 17 | * @param meltTemperature How hot the block should be before liquefying 18 | * @return The previously registered information for this input or null if it wasn't already registered. 19 | */ 20 | IMeltData addMeltable(ItemStack input, boolean isOre, FluidStack output, int meltTemperature); 21 | 22 | /** 23 | * Adds all Items to the Smeltery based on the oreDictionary Name. 24 | * Beware that entries beginning with "ore" will be marked as being ores. 25 | * 26 | * @param inputOre oreDictionary name e.g. oreIron 27 | * @param output FluidStack to add to the high oven when the ore melts 28 | * @param meltTemperature How hot the ItemStacks should be before liquefying 29 | */ 30 | void addDictionaryMeltable(String inputOre, FluidStack output, int meltTemperature); 31 | 32 | /** 33 | * Returns melt information about an itemstack 34 | * 35 | * @param stack The ItemStack to melt 36 | * @return The melt information instance, or null if does not melt 37 | */ 38 | IMeltData getMeltable(ItemStack stack); 39 | 40 | /** 41 | * Sets an itemstack as non meltable. 42 | * 43 | * @param stack the itemstack to remove 44 | * @return the previously registered melting information 45 | */ 46 | IMeltData removeMeltable(ItemStack stack); 47 | 48 | /** 49 | * Hold information about a meltable ItemStack 50 | */ 51 | interface IMeltData { 52 | int getMeltingPoint(); 53 | 54 | FluidStack getResult(); 55 | 56 | boolean isOre(); 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /src/main/java/toops/tsteelworks/common/container/HighOvenDuctContainer.java: -------------------------------------------------------------------------------- 1 | package toops.tsteelworks.common.container; 2 | 3 | import net.minecraft.entity.player.EntityPlayer; 4 | import net.minecraft.entity.player.InventoryPlayer; 5 | import net.minecraft.inventory.Container; 6 | import net.minecraft.inventory.Slot; 7 | import net.minecraft.item.ItemStack; 8 | import toops.tsteelworks.common.blocks.logic.HighOvenDuctLogic; 9 | 10 | public class HighOvenDuctContainer extends Container { 11 | private HighOvenDuctLogic logic; 12 | 13 | public HighOvenDuctContainer(InventoryPlayer inventoryplayer, HighOvenDuctLogic duct) { 14 | logic = duct; 15 | 16 | for (int column = 0; column < 9; column++) 17 | addSlotToContainer(new Slot(logic, column, 54 + (column * 18), 16)); 18 | 19 | /* Player inventory */ 20 | for (int column = 0; column < 3; column++) 21 | for (int row = 0; row < 9; row++) 22 | addSlotToContainer(new Slot(inventoryplayer, row + (column * 9) + 9, 54 + (row * 18), 84 + (column * 18))); 23 | for (int column = 0; column < 9; column++) 24 | addSlotToContainer(new Slot(inventoryplayer, column, 54 + (column * 18), 142)); 25 | } 26 | 27 | @Override 28 | public boolean canInteractWith(EntityPlayer entityplayer) { 29 | return logic.isUseableByPlayer(entityplayer); 30 | } 31 | 32 | @Override 33 | public void detectAndSendChanges() { 34 | super.detectAndSendChanges(); 35 | } 36 | 37 | @Override 38 | public ItemStack transferStackInSlot(EntityPlayer player, int slotID) { 39 | ItemStack stack = null; 40 | final Slot slot = (Slot) inventorySlots.get(slotID); 41 | if ((slot != null) && slot.getHasStack()) { 42 | final ItemStack slotStack = slot.getStack(); 43 | stack = slotStack.copy(); 44 | 45 | if (slotID < logic.getSizeInventory()) { 46 | if (!mergeItemStack(slotStack, logic.getSizeInventory(), inventorySlots.size(), true)) 47 | return null; 48 | } else if (!mergeItemStack(slotStack, 0, logic.getSizeInventory(), false)) 49 | return null; 50 | 51 | if (slotStack.stackSize == 0) 52 | slot.putStack(null); 53 | else 54 | slot.onSlotChanged(); 55 | } 56 | 57 | return stack; 58 | } 59 | 60 | public HighOvenDuctLogic getLogic() { 61 | return logic; 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /src/api/java/vazkii/botania/api/lexicon/LexiconRecipeMappings.java: -------------------------------------------------------------------------------- 1 | /** 2 | * This class was created by . It's distributed as 3 | * part of the Botania Mod. Get the Source Code in github: 4 | * https://github.com/Vazkii/Botania 5 | * 6 | * Botania is Open Source and distributed under the 7 | * Botania License: http://botaniamod.net/license.php 8 | * 9 | * File Created @ [Mar 6, 2014, 3:54:12 PM (GMT)] 10 | */ 11 | package vazkii.botania.api.lexicon; 12 | 13 | import java.util.HashMap; 14 | import java.util.Map; 15 | 16 | import net.minecraft.item.ItemStack; 17 | 18 | /** 19 | * This class contains mappings for which entry and page correspond to each 20 | * craftable ItemStack. Use the map method to map an ItemStack to a page in 21 | * an entry in the lexicon. 22 | */ 23 | public final class LexiconRecipeMappings { 24 | 25 | private static Map mappings = new HashMap(); 26 | 27 | /** 28 | * Maps the given stack to the given page of the entry. 29 | */ 30 | public static void map(ItemStack stack, LexiconEntry entry, int page, boolean force) { 31 | EntryData data = new EntryData(entry, page); 32 | String str = stackToString(stack); 33 | 34 | if(force || !mappings.containsKey(str)) 35 | mappings.put(str, data); 36 | if(entry.getIcon() == null) 37 | entry.setIcon(stack.copy()); 38 | } 39 | 40 | public static void map(ItemStack stack, LexiconEntry entry, int page) { 41 | map(stack, entry, page, false); 42 | } 43 | 44 | public static void remove(ItemStack stack) { 45 | mappings.remove(stackToString(stack)); 46 | } 47 | 48 | public static EntryData getDataForStack(ItemStack stack) { 49 | return mappings.get(stackToString(stack)); 50 | } 51 | 52 | public static String stackToString(ItemStack stack) { 53 | if(stack.hasTagCompound() && stack.getItem() instanceof IRecipeKeyProvider) 54 | return ((IRecipeKeyProvider) stack.getItem()).getKey(stack); 55 | 56 | return stack.getUnlocalizedName() + "~" + stack.getItemDamage(); 57 | } 58 | 59 | public static class EntryData { 60 | 61 | public final LexiconEntry entry; 62 | public final int page; 63 | 64 | public EntryData(LexiconEntry entry, int page) { 65 | this.entry = entry; 66 | this.page = page; 67 | } 68 | 69 | } 70 | } 71 | --------------------------------------------------------------------------------