Giter Club home page Giter Club logo

atomic-science's Introduction

Atomic-Science

Reboot and full rewrite of Calclavia's Atomic Science mod

About

Atomic science is a mod focused on building and using reactors in the game Minecraft.

Features

Fission Reactor

Fussion Reactor

Accelerator

Thermal System

Radiation System

Radioactive Material System

QA

Why the rewrite?

The old code was a mess, very outdated, and depended on dead libraries. No matter what the code base was going to need an overhaul and major rework. So thought was give "why not just rewrite it from the ground up?". This solves a lot of problems with the old code. Start first with clearing out the mess and outdated segements. Then removes the problem of copyright used by the old mod. For all purposes this is a new mod that looks and feels like the old one.

What was Atomic Science?

In short it was a reactor mod created by calclavia and maintained by the Universal Electricity team. It had a mixed popularity due to being a good mod but only created to feed ICBM. This left it in a tricky situtation as it was not maintained well. However, it did offer enough content for people to enjoy.

The mod itself featured roughly the same content with some minor differences. Some of the large differences are how the logic worked and some interaction. The old mod used a lot of real time updates and scanning of the world. The new mod is very passive and rarely runs logic on the world. As well a lot of the machines have been overhauled and reworked in the new version. This includes expanded recipes introducing waste recovery mechanics. As well simplified logic in the reactors to encourage creative building.

Credits

  • Calclavia - former author
  • Morton - assets
  • Sakur42 - assets
  • Graugger - assets
  • Dmod - buildscripts
  • Tgame14 - code
  • Everyone else - will fill in list as I go

atomic-science's People

Contributors

darkguardsman avatar deshiba avatar dmodoomsirius avatar hennamann avatar p1ao12138 avatar tommeh1 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

atomic-science's Issues

[1.7] Recreate Atomic Assemblier

For this we want to redesign the block from the ground up. As it was unbalanced and no one will care if its changed.

  • Create notes and designs for old code
  • Create a new design (multi-block, lasers, nice render)
  • Build recipe system
  • Build core
  • Build laser blocks (recycle for future reactors)
  • Build strange matter insertion system
  • Build nice renders (rotating animation, slow building of block, fluid movement of strange matter to core)

[1.7] Generate radioactive dust

When a player is moving around in a radioactive area dust should kick up. This dust should include radioactive material that can then be spread or inhaled.

Dust that is inhaled will cause a massive increase in radiation levels of a player.

[1.7] Ore dictionary registry issue for Uranium Ore

[21:55:02] [Server thread/WARN] [FML]: ****************************************
[21:55:02] [Server thread/WARN] [FML]: * Invalid registration attempt for an Ore Dictionary item with name oreUranium has occurred. The registration has been denied to prevent crashes. The mod responsible for the registration needs to correct this.
[21:55:02] [Server thread/WARN] [FML]: * at net.minecraftforge.oredict.OreDictionary.registerOreImpl(OreDictionary.java:522)
[21:55:02] [Server thread/WARN] [FML]: * at net.minecraftforge.oredict.OreDictionary.registerOre(OreDictionary.java:501)
[21:55:02] [Server thread/WARN] [FML]: * at net.minecraftforge.oredict.OreDictionary.registerOre(OreDictionary.java:500)
[21:55:02] [Server thread/WARN] [FML]: * at com.builtbroken.atomic.content.blocks.BlockUraniumOre.(BlockUraniumOre.java:23)
[21:55:02] [Server thread/WARN] [FML]: * at com.builtbroken.atomic.content.ASBlocks.preInit(ASBlocks.java:54)
[21:55:02] [Server thread/WARN] [FML]: * at com.builtbroken.atomic.proxy.ProxyLoader.preInit(ProxyLoader.java:58)...
[21:55:02] [Server thread/WARN] [FML]: ****************************************

Wrench change mode/color

Wrench pop-up information says to hold ctrl, but shift key is needed to make it work, otherwise mouse wheel just change selected slot of the toolbar

[1.7] Possible slow memory leak

Unable to tell if this is a bug with AS or one of the testing mods. However, there is a slow crawl of memory usage going from 500mb to 1000mb. This will cycle very minute roughly before GC clears up the ram.

Likely sources are the packet or particle system. As both generate a lot of objects that could be filling up the memory.

Solutions: Create another object pool to store dead objects for reuse. As well to stop sending 100s of packets to the client every tick. This can be done by sending the raw data and caching it client side.

[1.7] Recreate items

  • Empty Cell
  • Antimatter Cell
  • Strange matter cell
  • Deuterium Cell
  • Fissile Fuel Rod
  • Yellow Cake
  • Toxic Waste Bucket
  • Breeder Fuel rod
  • Water Cell (likely can just make a generic fluid cell)
  • Uranium-235
  • Uranium-238

[1.7] Replace Control Rod model

It needs a custom model rather than being an iron rod.
screenshot 2018-04-18 12 53 48

What I'm thinking is maybe a glass rod with iron bars. Similiar in visual to a buildcraft pipe for the shell. Then inside a graphite rod with a noise texture.

[1.7] Storage containers

Containers to storage material without it leaking

  • Barrel - fluid storage
  • Drum - dust storage
  • Box - fuel storage

Still being worked on?

I have been waiting for AS to be updated to 1.7.10 for a long time, so is this still being worked on along with VE and others, or is this on the back-bench for now?

[1.7] Recreate radioative blocks

Might want to consider a redesign before implementation. As the current systems is block based and could be implemented more effectively.

  • Radioactive Material
  • Toxic Waste fluid Block

[1.7] Make Hazmat suit dye-able

Random thought, since hazmat suit uses wool (colored or not) why not make it change colors? This could be done via an RBG system tied into armor texture. Then applied via color dye similar to leather armor.

Reason for doing this is simple enough. You can have different color suits for roleplaying reasons.

[1.7] Update Fusion Reactor

Rebuild fusion reactor

  • Document original design
  • Create plans and notes for old design
  • Redesign for usability
  • Implement fusion core
  • Implement plasma
  • Implement Electromagnet block
  • Implement Electromagnet glass block
  • Performance test

[1.12][JEI] Better display of random dust

Random dust displays are 1 recipe, to improve handling it should split out to 1 recipe per output. As well show the expect spawn chance and weights to better predict drop chance.

[1.7] Create radiation system

Rather than using a potion effect it might be better to create a system. This way better logic can be implemented and shielding can be used.

[1.7] Update processing machines

Update machines used to turn ore blocks into reactor fuel

  • Build flow chart of recipes from old code
  • Build designs of usage from old code
  • Redesign for usability
  • Implement 'Centrifuge' Logic
  • Implement 'Nuclear Boiler' Logic
  • Implement 'Chmical Extractor' Logic

[1.7] Add heat fins

Improve spread of heat from one block to the next by increasing surface area.

Right now the thermal system is designed to move heat based on surface area. Adding heat fins would increase the surface area and allow more heat to move around.

[1.7] Check chunks save

Just had a thought, chunks only save when marked as changed. Due to the mod using external data from the world it might be possible its not saving in all cases. Mainly in cases were chunks have been set with data from a connected chunk (reactor leak).

[1.7] Hazmat suit - Armor Texture issues

Reminder to self to fix model and texture

Texture
Has a few parts were texture does not cover the model
screenshot 2018-04-18 11 52 56
Comparison of vanilla Iron armor
screenshot 2018-04-18 11 53 23

Model
Model does not render in first person
screenshot 2018-04-18 12 44 35

Model should fit closer on arms to look nicer. Can easily use a custom model for this or render layer.
screenshot 2018-04-18 11 29 48

This is more of a vanilla problem than an issue with the mod. As vanilla assumes the arms are not covered for armor.

[1.7] Material Checker Tool

A tool that can show properties about a block:

  • Material name
  • Radiation blocking ability
  • Heat transfer rate
  • Melting Point
  • Heating rates
  • Melting conversion

[1.12] TODO list for 1.12 udpate

  • Configuration system
  • Mod info file
  • Rework network code
  • Add IC2 support
  • Add BC support
  • Add recipes
  • Add recipes for mods
  • Add is mod loaded conditional
  • Disable vanilla recipes if mods are loaded that can provide resources
  • Shift+Click for GUIs
  • Slot support for batteries and fluids
  • Slot validation to prevent wrong items in slots
  • Slot icons
  • Check if we need an upper limit on generator output
  • Check if we need a real output energy storage for generators
  • Fix reactor heat not decaying
  • Add recipe for 238
  • Add recipe for the controller
  • GUI fluid render

Beta Release

  • Rework grid system to work with nodes

  • Have sources store node list for easy removal (could store as an array of chunk coords contain list of nodes per chunk)

  • Switch threads to path using source as the input

  • Have nodes set as dead if a source is invalid

  • Have chunks scan for dead sources and remove

  • Have chunks clean up data to reduce memory usage (remove empty layers & chunks)

  • Have map check for updates near sources to queue updates of sources

  • Rework grid system to use capabilities

  • Rework heat and radiation sources to use capabilities

ICBM integration

In older versions of ICBM and Atomic Science, the Hazmat Suit protected against Chemical and Contagious explosions. Player was still vulnerable to Debilitation though, but I don't know if it was intentional or just an implementation error

[1.7] Handheld radiation detector

Should do a series of items each with a different cost and feature set

  • Color badge - changes colors based on radiation exposure
  • Audio beeper - beeps as you get close to radiation
  • Digital meter - simple display of radiation level
  • Exposure meter - simple display of absorbed radation
  • Giger counter - beeps based on radiation in front of the unit (directional unit)
  • Display - shows radiation level and absorbed radation

[1.7][MFR] Plastic recipe options

Requested by Graugger:

Ability to use plastic armor and sheets in place of parts of some recipes

Hazmat suit -> replace leather armor with plastic armor
Hazmat suit -> replace wool with plastic

Adjuster -> replace wool with plastic

[1.12] Fix ore generator

[12:25:45] [Server thread/WARN] [FML]: Please report this to the mod's issue tracker. This log can be disabled in the Forge config.
[12:25:45] [Server thread/WARN] [FML]: Atomic Science loaded a new chunk [-36, -39] in dimension 0 (overworld) while populating chunk [-35, -38], causing cascading worldgen lag.
[12:25:45] [Server thread/WARN] [FML]: Please report this to the mod's issue tracker. This log can be disabled in the Forge config.
[12:25:45] [Server thread/WARN] [FML]: Atomic Science loaded a new chunk [-36, -40] in dimension 0 (overworld) while populating chunk [-36, -39], causing cascading worldgen lag.
[12:25:45] [Server thread/WARN] [FML]: Please report this to the mod's issue tracker. This log can be disabled in the Forge config.
[12:25:45] [Server thread/WARN] [FML]: Atomic Science loaded a new chunk [-37, -40] in dimension 0 (overworld) while populating chunk [-36, -39], causing cascading worldgen lag.
[12:25:45] [Server thread/WARN] [FML]: Please report this to the mod's issue tracker. This log can be disabled in the Forge config.
[12:25:45] [Server thread/WARN] [FML]: Atomic Science loaded a new chunk [-37, -41] in dimension 0 (overworld) while populating chunk [-37, -40], causing cascading worldgen lag.
[12:25:45] [Server thread/WARN] [FML]: Please report this to the mod's issue tracker. This log can be disabled in the Forge config.
[12:25:45] [Server thread/WARN] [FML]: Atomic Science loaded a new chunk [-38, -41] in dimension 0 (overworld) while populating chunk [-37, -40], causing cascading worldgen lag.
[12:25:45] [Server thread/WARN] [FML]: Please report this to the mod's issue tracker. This log can be disabled in the Forge config.
[12:25:45] [Server thread/WARN] [FML]: Atomic Science loaded a new chunk [-38, -42] in dimension 0 (overworld) while populating chunk [-38, -41], causing cascading worldgen lag.

Neutrons, breeder reactors, plutonium, and cherenkov radiation

Some thoughts I had regarding breeder reactors in the mod:

Neutron radiation: along with the regular (gamma?) radiation that fission reactor cores currently emit when active, they should also emit a large amount of neutron radiation to their surroundings. This would behave in a similar manner to the radiation currently in the mod, except it has the ability to "activate" exposed blocks, and is shielded rather effectively by water and coal blocks.. This would contaminate those blocks until they were emitting as much radiation as they were receiving in neutron radiation. Additionally, exposing other fission reactor cores to neutron radiation would boost their heat and radiation output while causing them to use up fuel faster.

Breeder reactors and plutonium: while breeder fuel rods are currently in the mod, it might be more interesting if they required neutron radiation from a reactor core fueled with fission fuel in order to function. If a reactor core fueled with breeder fuel is exposed to neutron radiation, it will generate heat and radiation in a similar manner to a core fueled with fission fuel, but no neutron radiation will be emitted. In addition, the higher the neutron flux, the faster the breeder fuel is consumed. Once the fuel is used up, right-clicking the reactor core will return a fuel cell filled with toxic waste and a small amount of plutonium-239. The plutonium-239 can be used to make fission fuel rods that are more powerful than the uranium-235 based ones, but at the expense of a shorter lifetime as well increased radiation and toxic waste production.

Cherenkov radiation: this would appear as a fuzzy blue glow around active reactor cores, perhaps using something like the blue spherical glow that the EMP explosives from ICBM-Classic use.

[1.7] Recreate Thermometer

Do after heat system is added

  • Implement thermometer block
  • Implement separate block to render temperature display (was part of the same block)
  • Hand-held Thermometer

[1.7] Update Particle Accelerator

  • Create notes and designs from old code
  • Create designs
  • Redesign for usability
  • Create multi-block code (simplified if possible [aka no multi-block code, just connection logic])
  • Create core (handles logic)
  • Create particle (entity, or logic + graphic effect)
  • Create recipe system (item -> output)
  • Performance test (automated testing to check performance)
  • Consider new blocks to make it easier to input and export items

Added 5/18/2018 (do last)

  • Create Power Cable (move power to core, only need if multi-block code is simplified)
  • Item input hopper (inputs items into core, limited range from core)
  • Item output hopper (outputs items from core, limited range from core)
  • Power convert (converts power to a generic unit)

[1.7] Add heat pipes

Used to move heat around without it leaking into the world.

The idea would be to use these to move heat into machines from the reactor. As well to spread heat in a more controlled way.

[1.7] World mechanic: Radiation zones

This will be a mechanic to allow using the radiation system for world customization. In which a world can be set with background radiation or a default radiation level.

How this will work is that a JSON config will exist per world. This config will contain

  • Default radiation level
  • Source of radiation (ground, sun, air)
  • Radiation areas (3D cube)
  • Radiation area source type (ground, sun, air)

Radiation source will control the logic for the areas.

Ground -> works the same way as the current system. Each tile will have a default value and will path radiation. Will cause contamination to spread overtime but can be cleaned up.

Sun -> any block connected to the top of the map by line of sight will have radiation. This can be blocked by anything between the player and the sun. Is a cached value just like the normal map. However, will be stored in a separate system and added to getRadiation(x, y, z) as a percentage of current sun exposure.

air -> any air block connected to the sky will have radiation. Can be stopped by normal mechanics and will not contaminate blocks.

Porting Roadmap?

I would like to contribute to porting AtomicScience to 1.7.10 and above.

Do you have a road map for porting that I can use for contributing?

[1.7] Update reactor

Rebuild reactor

  • Creates designs from old code
  • Redesign for usability
  • Implement 'Fission Reactor'
  • Implement 'Thermal system' (reactor -> heat)
  • Implement 'Steam system' (water + heat -> steam)
  • Implement 'Reactor Turbine' (steam -> power)

[1.7] Add heat furnace

Use the thermal system to power furnaces.

By default, we don't want to support existing furnaces. The lore reasoning for this is that furnaces are designed to keep heat in and not let it inside from outside.

[1.7] World mechanic: Radiation weather effects

Add some radiation weather effects as optional mechanics, off by default.

  • Radiation rain - pulls radioactive material from air to ground
  • Radiation storm - blows around radioactive material as dust
  • Sunspot - radiation from sun, moving hole in atmosphere

Steam funnels not working

Steam funnels produce steam but don't store it nor output it to fluiduct (even with servos installed)

[1.7] Add reactor waste

  • Implement toxic waste generation in reactor
  • Implement toxic waste overflow in reactor
  • Implement 'Reactor drain' (output toxic materials)

[1.7] Rebuild models

Convert current models from techne to .obj

  • Centrifuge
  • Fission Reactor
  • Reactor Turbine
  • Nuclear Boiler
  • Fusion Reactor
  • Chemical Extractor

[1.7] Recode radiation pathfinding

Most of the problems are not resolved as of the commit e5cf5c8

However, I want to recode the pathfinder to not use rotation angle guesses. This way there is a reduction in CPU usage and improvement in radiation pathing.

[1.7] World mechanic: world generation

Custom world generation, disabled by default. To allow random areas to spawn:

  • Radioactive barrels
  • Radioactive bunker
  • Radioactive pools of water
  • Radioactive pools of sludge
  • Radioactive bomb blasts

This will be used as examples of world generation for modpack makers. Should be intergrated with VoltzEngine in some way for reuse and done via JSON templates. Each area will have some risk vs reward mechanic. In which cleaning up the area could give rare resources. At the risk of radiation exposure and risk of death.

For this new content should be added as decoration.

[1.7] Design upgraded power generation

Old mod only has 1 power turbine. I think the mod will do better with an expanded range of machines.

Current thoughts:

  • Tiered turbines (improvised, basic, advanced, elite? or copper, iron, steel, titanium)
  • Scaled turbines (3x3, 5x5) likely will be done via the Resonant Induction merge system
  • High pressured steam system (collect and pressurize steam)
  • Steam turbine room system (build room -> add turbines -> feel with steam)
  • Multi-block turbine block (railcraft style, best to avoid)

[1.7] Add: radiation detector

Block to detect and display radiation values

  • Detector block - redstone trigger with GUI for value
  • Directional detector block - limit area cone of detection
  • Ray trace detector - line of sight exact spot detector
  • Detector display - renders a text value or graph over time
  • Portable unit - block that detects and shows the area value

Display should have a few mods

  • Text value
  • Radiation bar - bar that goes from green to red and scales with % value
  • Radiation meter
  • Radiation graph

Portable unit should include

  • Simple display
  • Easy pickup and placement
  • Battery charge
  • Slot rechargablity
  • Slots for batteries
  • Audio warning options
  • Save settings when moved

[Improvement] add @ObjectHolder annotation

It would be nice to have the mod follow Forge conventions and have @GameRegistry.ObjectHolder annotations on all the relevant fields, or have annotations on the registry-relevant classes and rename the fields to match the registry names of the objects they hold.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.