Esempio n. 1
0
        public override bool PreDraw(int i, int j, SpriteBatch spriteBatch)
        {
            int ID = mod.GetID <TEQETank>(i, j);

            if (ID == -1)
            {
                return(false);
            }

            Tile tile = Main.tile[i, j];

            if (tile.TopLeft())
            {
                Vector2 zero = new Vector2(Main.offScreenRange, Main.offScreenRange);
                if (Main.drawToScreen)
                {
                    zero = Vector2.Zero;
                }
                Vector2 position = new Vector2(i * 16 - (int)Main.screenPosition.X, j * 16 - (int)Main.screenPosition.Y) + zero;

                TEQETank qeTank = (TEQETank)TileEntity.ByID[ID];
                ModFluid fluid  = qeTank.GetFluid();

                if (fluid != null)
                {
                    spriteBatch.Draw(ModLoader.GetTexture(FluidLoader.GetFluid(fluid.Name).Texture), new Rectangle((int)position.X + 6, (int)(position.Y + 6 + (20 - 20 * (fluid.volume / (float)TEQETank.MaxVolume))), 20, (int)(20 * (fluid.volume / (float)TEQETank.MaxVolume))), null, Color.White, 0f, Vector2.Zero, SpriteEffects.None, 0f);
                }
            }

            return(true);
        }
Esempio n. 2
0
        public override void Load()
        {
            Instance = this;

            TagSerializer.AddSerializer(new EnergySerializer());
            TagSerializer.AddSerializer(new HeatSerializer());
            TagSerializer.AddSerializer(new FluidSerializer());

            FluidLoader.Autoload();
            FluidLoader.SetupContent();

            if (!Main.dedServ)
            {
                borderTexture     = TextureManager.Load("Images/UI/PanelBorder");
                backgroundTexture = TextureManager.Load("Images/UI/PanelBackground");

                corner = ModLoader.GetTexture(TexturePath + "BarCorner");
                side   = ModLoader.GetTexture(TexturePath + "BarSide");

                LayerDisplayUI = new LayerDisplayUI();
                LayerDisplayUI.Activate();
                ILayerDisplayUI = new UserInterface();
                ILayerDisplayUI.SetState(LayerDisplayUI);
            }
        }
Esempio n. 3
0
        public override void Unload()
        {
            recipes.Clear();

            FluidLoader.Unload();

            this.UnloadNullableTypes();

            GC.Collect();
        }
Esempio n. 4
0
        public void AddFluid(string fluid, int volume = 1, int tanks = -1)
        {
            ModFluid modFluid = FluidLoader.GetFluid(fluid).NewInstance();

            modFluid.volume = volume;
            if (tanks == -1)
            {
                requiredFluids.Add(modFluid);
            }
            else
            {
                requiredFluids[tanks] = modFluid;
            }
        }
Esempio n. 5
0
        public override void Update()
        {
            if (fluid == null)
            {
                Utility.SetDefaults(ref fluid, FluidLoader.FluidType <Water>());
            }

            int pumpRate = 0;

            for (int x = Position.X; x < Position.X + 3; x++)
            {
                for (int y = Position.Y; y < Position.Y + 2; y++)
                {
                    if (Main.tile[x, y].liquidType() == Tile.Liquid_Water)
                    {
                        pumpRate += Main.tile[x, y].liquid;
                    }
                }
            }

            fluid.volume += Math.Min(pumpRate, GetFluidCapacity() - fluid.volume);
        }
Esempio n. 6
0
        public override void UpdateInventory(Player player)
        {
            FluidStack stack = new FluidStack(FluidLoader.CreateInstance <Water>(), 1, 0);

            FluidStorage.InsertFluid(player, ref stack);
        }