[-] daddybutter@lemmy.world 3 points 1 day ago* (last edited 1 day ago)

I live in a desert so extremely low humidity and the pantry area is often over 80. I've used potatoes over a month after buying them many times. I still use them for myself if they have small sprouts. I usually don't see mold until closer to two months in. If I'm cooking for others I'll buy fresh. Our local grocer has a very small selection of produce so I tend to buy a bunch of the nicer ones if I see they've restocked since the next grocery store is about an hour away. When I lived in the city though I'd only buy what I planned on using within the next couple days. More trips but always fresh.

[-] daddybutter@lemmy.world 33 points 3 weeks ago

Winter in Australia is June-August, so that December temp is their summer record.

[-] daddybutter@lemmy.world 24 points 2 months ago

Z-library was a massive pirate repository for ebooks.

[-] daddybutter@lemmy.world 4 points 2 months ago

It is not compatible with Linux and IIRC the dev does not know how to port it.

[-] daddybutter@lemmy.world 16 points 2 months ago

I've seen a bunch of people recommend this and I've played around with it a bit since they initially added frame gen to Lossless Scaling. It never feels smooth. There's always some stutter/jitter in the frames that makes it feel terrible, even when it's "100+ fps". Definitely feels worse than a native 60. Also worse than AMDs fluid motion frames option which does feel and look smoother. I leave it installed and come back from time to time to see if it's improved but it's just not something I've found to be enjoyable or an improvement to my gaming experience.

[-] daddybutter@lemmy.world 1 points 4 months ago

Maybe, maybe not... The dev could just be busy with life right now. The last build was released early September and the last commit was just over 3 months ago so IDK, I suppose we'll see. I also love InnerTune and would love to see it continue to grow.

[-] daddybutter@lemmy.world 6 points 5 months ago

I've been using this on and off for a while, since v1.3 in September (and swapping with InnerTune which seems to now be abandoned..) but I have a few glaring issues with it as a daily driver.

Downloads are a mess. Tap download and it may or may not download. The download notification frequently becomes persistent for some reason, even if the downloads have finished and you kill/restart the app. Restarting my phone will get rid of it. Accessing auto cached songs is hit and miss if you don't have internet which completely defeats the point of it. Also there's no download management so whatever you download is now what you have saved unless you delete the library and start over...

The library page is ass. There's no breakdowns by song or artist or album or any other category. You have favorites, followed, most played, and downloaded along with a bunch of playlists under that and finally a recently added list. If I want to shuffle my library I go to downloaded (because I download everything) and just tap a song which will start playing but take the UI ~10 seconds to catch up while, I'm assuming, it builds the playlist.

When I connect to a bluetooth device and my screen turns off I immediately lose the bluetooth connection. Turn the screen back on, reconnect, start playing the music again and it works fine after that. This only happens with SimpMusic. Occasionally have had issues connecting to bluetooth and the app says it's playing via bluetooth but when you change the volume it says it's playing via phone while no audio is coming out anywhere. This is usually paired with a "something unexpected happened" error message and app restart (have had this issue loop before for hours, phone restart fixed it).

The music player notification stops working regularly and just won't come back until I restart the phone.

Intense lag after listening for a while.

No dislike button to help avoid songs.

And maybe my last complaint which is relatively minor to the other things, but under some categories, like new releases, it will show the art, the name of the album/single and then say "Album" instead of the artist which probably annoys me more than it should and may be a result of the other issues adding up.

No, my last complaint is the copying of Spotify's horrible UI, but somehow it's even worse.

On the upside, sponsorblock works well, my YTM playlists are all accessible, even ones I forgot existed from the GPM days, and the app does work for the most part. Long listening sessions work better than Innertune or Vimusic did. Hoping to see this continue to be worked on and improved, it still has a long way to go though.

[-] daddybutter@lemmy.world 2 points 5 months ago

Got curious and looked it up. 2x64GB DDR5 kits exist though it looks like they're all ECC (probably a good thing in OPs use case). The cheapest kits, which are 4800Mhz CL40 sticks, start around $500 after tax.

[-] daddybutter@lemmy.world 4 points 6 months ago

Like the others said, double check your connections. It's easy to accidentally not plug something in all the way. Also, an extra preinstalled standoff wouldn't be out of the question and I have had that happen, would be worth checking out as well. You didn't mention what power supply you are using. New/used? Older used? Can you test the power supply on another computer to help rule that out?

[-] daddybutter@lemmy.world 6 points 6 months ago

Ryzen 1700 doesn't have integrated graphics.

[-] daddybutter@lemmy.world 10 points 6 months ago

Duck sauce is a name that was adapted in American Chinese cooking. The original product, which is used in Asia (particularly known with Canto food), is plum sauce. Same thing, though you may get a slightly different product depending on where it was made.

9
submitted 10 months ago* (last edited 10 months ago) by daddybutter@lemmy.world to c/godot@programming.dev

Solution: I removed the else statement from the integrated_forces process and left the two lines from the condition within the process and it fixed it :) Before:

func _integrate_forces(state):
	if Input.is_action_pressed("move_up"):
		state.apply_force(thrust.rotated(rotation))
	if Input.is_action_pressed("strafe_left"):
		state.apply_force(thrust.rotated(rotation + 4.712))
	if Input.is_action_pressed("strafe_right"):
		state.apply_force(thrust.rotated(rotation + 1.5708))
	if Input.is_action_pressed("move_down"):
		state.apply_force((thrust.rotated(rotation) * -1))
	else:
		state.apply_force(Vector2())
		Globals.player_rotation = rotation

After:

func _integrate_forces(state):
	if Input.is_action_pressed("move_up"):
		state.apply_force(thrust.rotated(rotation))
	if Input.is_action_pressed("strafe_left"):
		state.apply_force(thrust.rotated(rotation + 4.712))
	if Input.is_action_pressed("strafe_right"):
		state.apply_force(thrust.rotated(rotation + 1.5708))
	if Input.is_action_pressed("move_down"):
		state.apply_force((thrust.rotated(rotation) * -1))
	state.apply_force(Vector2())
	Globals.player_rotation = rotation

Hey guys, making some progress on this game but having a weird issue and I can't figure out what's happening. I'm instancing a ship scene into the level scene based on player selection. Weapon projectile instancing happens in the level scene. Fixed weapons shoot straight forward and this works fine as I'm moving and rotating until I hold the key to move backward, then all of the shots continue firing in the same direction I was facing when I started holding the key. Video example. This was all working fine prior to instancing the player into the scene. Here's the code I'm working with (please disregard the messy code lol).

level.gd:

extends Node2D
class_name LevelParent

var selected_ship = Globals.player_selected_ship
var format_ship_resource_path = "res://scenes/ships/ship_%s.tscn"
var ship_resource_path = format_ship_resource_path % selected_ship

var laser_scene: PackedScene = preload("res://scenes/weapons/laser.tscn")

func _ready():
	var ship_scene = load(ship_resource_path)
	var ship = ship_scene.instantiate()
	$Player.add_child(ship)
	ship.connect("shoot_fixed_weapon", _shoot_fixed_weapon)
	ship.connect("shoot_gimbal_weapon", _shoot_gimbal_weapon)
	
func _shoot_gimbal_weapon(pos,direction):
	var laser = laser_scene.instantiate() as Area2D
	laser.position = pos
	laser.rotation_degrees = rad_to_deg(direction.angle()) + 90
	laser.direction = direction
	$Projectiles.add_child(laser)
	
func _shoot_fixed_weapon(pos, direction):
	var laser = laser_scene.instantiate() as Area2D
	laser.position = pos
	laser.rotation_degrees = rad_to_deg(Globals.player_rotation)
	Globals.fixed_hardpoint_direction = Vector2(cos(Globals.player_rotation),sin(Globals.player_rotation))
	laser.direction = Globals.fixed_hardpoint_direction.rotated(-1.5708)
	$Projectiles.add_child(laser)

ship_crescent.gd:

extends ShipTemplate


var can_boost: bool = true

#Weapons variables
var can_shoot: bool = true
#hardpoint type should use 0=fixed, 1=gimbal, 2=turret
#later add ability to have mixed hardpoints
var hardpoint_type: int = 0

#Signals
signal shoot_gimbal_weapon(pos,direction)
signal shoot_fixed_weapon(pos,direction)

func _ready():
	Globals.boost_max = boost_max

func _process(delta):
	Globals.player_pos = global_position
	#Build out section to target planetary bodies/NPCs/etc for auto routing
	if Input.is_action_just_pressed("get_cords"):
		print(str(Globals.player_pos))
	#weapon aiming toggle, remove later after hardpoints developed
	if Input.is_action_just_pressed("gimbal_toggle"):
		if hardpoint_type == 0:
			hardpoint_type += 1
		else:
			hardpoint_type -= 1
		
	if can_boost == false:
		_boost_recharge(boost_regen*delta)
		print("boost max: " + str(boost_max))
		print("boost regen: " + str(boost_regen))
		print("global boost level: " + str(Globals.boost_level))
		if Globals.boost_level == boost_max:
			can_boost = true
			print("can boost: Boost recharged!")
	### WEAPONS ###
	#Remove LaserTimer when weapon modules are set up
	
	#Fixed weapon code
	var player_direction = (Globals.player_pos - $FixedHardpointDirection.position).normalized()
	if Input.is_action_just_pressed("fire_primary") and can_shoot and Globals.laser_ammo > 0 and hardpoint_type == 0:
		Globals.laser_ammo -= 1
		var hardpoint_positions = $HardpointPositions.get_children()
		can_shoot = false
		$Timers/LaserTimer.start()
		for i in hardpoint_positions:
			print("ship shot fired")
			shoot_fixed_weapon.emit(i.global_position, player_direction)
	#Gimbal weapon code
	var gimbal_direction = (get_global_mouse_position() - position).normalized()
	if Input.is_action_just_pressed("fire_primary") and can_shoot and Globals.laser_ammo > 0 and hardpoint_type == 1:
		Globals.laser_ammo -= 1
		var hardpoint_positions = $HardpointPositions.get_children()
		can_shoot = false
		$Timers/LaserTimer.start()
		for i in hardpoint_positions:
			shoot_gimbal_weapon.emit(i.global_position, gimbal_direction)
	#Add turret (auto aim system) later

#Spaceflight physics based controls
func _integrate_forces(state):
	if Input.is_action_pressed("move_up"):
		state.apply_force(thrust.rotated(rotation))
	if Input.is_action_pressed("strafe_left"):
		state.apply_force(thrust.rotated(rotation + 4.712))
	if Input.is_action_pressed("strafe_right"):
		state.apply_force(thrust.rotated(rotation + 1.5708))
	if Input.is_action_pressed("move_down"):
		state.apply_force((thrust.rotated(rotation) * -1))
	else:
		state.apply_force(Vector2())
		Globals.player_rotation = rotation
	#REWORK boost mechanic. button hold (gradual) vs press (instant), increase cooldown, adjust boost length, add fuel/special requirements for use
	if Input.is_action_just_pressed("boost") and can_boost:
		can_boost = false
		Globals.boost_level = 0
		#$Timers/BoostRecharge.start()
		state.apply_impulse((thrust.rotated(rotation) * 2))
	var rotation_direction = 0
	if Input.is_action_pressed("turn_right"):
		rotation_direction += 1
	if Input.is_action_pressed("turn_left"):
		rotation_direction -= 1
	state.apply_torque(rotation_direction * torque)

#modify later to remove globals. Base boost data on ship equipment
func _boost_recharge(recharge_rate):
	Globals.boost_level = clamp(Globals.boost_level + recharge_rate, 0, boost_max)
	print(Globals.boost_level)

#Timer timeout functions
func _on_boost_timer_timeout():
	print("boost depleted")

func _on_boost_recharge_timeout():
	print("boost timer recharged!")
	can_boost = true

func _on_laser_timer_timeout():
	can_shoot = true
1
submitted 11 months ago* (last edited 11 months ago) by daddybutter@lemmy.world to c/godot@programming.dev

Hey y'all, throwing a little project together in Godot 4.1 to practice stuff I learned after a tutorial project. I've set up two markers as my projectile spawn points, but the shots are spawning slightly off from the markers and I can't figure out why. Code and pics below. ~~I "fixed" it by shifting the player sprite2D 5 pixels to the right. Not sure why the spawns are being offset though.~~ NVM that only fixed it at the starting position, the shots are way off when rotating. In editor you can see the markers at the two tips on the ship.

In game you can see the shots spawning just to the side of the markers.

Edit: I broke the formatting posting on mobile 🙃

This snippet is from the player script

` var player_direction = (Globals.player_pos - $FixedHardpointDirection.position).normalized()

if Input.is_action_just_pressed("fire_primary") and can_shoot and Globals.laser_ammo > 0 and hardpoint_type == 0:

	Globals.laser_ammo -= 1

	var hardpoint_positions = $ShotStartPositions.get_children()

	can_shoot = false

	$Timers/LaserTimer.start()

	for i in hardpoint_positions:

		player_shot_fixed_weapon.emit(i.global_position, player_direction)

`

And this is from the level script

` func _shoot_fixed_weapon(pos, direction):

var laser = laser_scene.instantiate() as Area2D

laser.position = pos

laser.rotation_degrees = rad_to_deg(Globals.player_rotation)

direction.x = cos(Globals.player_rotation)

direction.y = sin(Globals.player_rotation)

Globals.fixed_hardpoint_direction = Vector2(direction.x,direction.y)

print(Globals.fixed_hardpoint_direction)

laser.direction = Globals.fixed_hardpoint_direction.rotated(-1.5708)

$Projectiles.add_child(laser)

`

view more: next ›

daddybutter

joined 11 months ago